Read-only mirror of https://github.com/SwissFederalArchives/chgov-brprotokolle-server — Schweizerisches Bundesarchiv. Issues & pull requests at the source.
  • TypeScript 96.9%
  • Python 1.7%
  • HTML 1%
  • Shell 0.2%
  • Dockerfile 0.2%
Find a file
Repository files (latest commit first)
Filename Latest commit message Latest commit date
2023-11-27 10:11:10 +01:00
doc/images 4eyes: Consolidated changes since 2020 2023-08-18 18:07:41 +02:00
docs IIIF implementation for eCodices 2022-10-17 13:49:05 +02:00
solr 4eyes: Consolidated changes since 2020 2023-08-18 18:07:41 +02:00
src BRP-43: Integrated pdfalto ocr extraction in indexing process 2023-09-27 17:27:44 +02:00
test Add DNS caching 2022-12-20 11:06:31 +01:00
.dockerignore Update to new Node LTS and build optimizations 2019-11-04 11:41:23 +01:00
.env.example 4eyes: Consolidated changes since 2020 2023-08-18 18:07:41 +02:00
.gitignore 4eyes: Consolidated changes since 2020 2023-08-18 18:07:41 +02:00
.nvmrc BRP-43: Integrated pdfalto ocr extraction in indexing process 2023-09-27 17:27:44 +02:00
.test.env Add DNS caching 2022-12-20 11:06:31 +01:00
docker-compose.yml 4eyes: Consolidated changes since 2020 2023-08-18 18:07:41 +02:00
docker-compose.yml.example Allow reindex of specified collections 2022-08-16 13:45:42 +02:00
Dockerfile 4eyes: Consolidated changes since 2020 2023-08-18 18:07:41 +02:00
iiif-server.sh 4eyes: Consolidated changes since 2020 2023-08-18 18:07:41 +02:00
ingest.py 4eyes: Consolidated changes since 2020 2023-08-18 18:07:41 +02:00
LICENSE 4eyes: Consolidated changes since 2020 2023-08-18 18:07:41 +02:00
nodemon.json BRP-70: Adapted nodemon.json as it has to work with js sources now 2023-09-25 10:34:46 +02:00
package-lock.json BRP-70: Updated 'sharp' dependency (security bugfix) 2023-11-27 10:11:10 +01:00
package.json BRP-70: Fixing vulnerabilities 2023-11-10 09:44:07 +01:00
README.md 4eyes: Consolidated changes since 2020 2023-08-18 18:07:41 +02:00
tsconfig.json BRP-70: Fix various brp services/libs 2023-09-25 13:31:49 +02:00
untyped.d.ts BRP-70: Fix various brp services/libs 2023-09-25 13:31:49 +02:00

chgov-brprotokolle-server

Context

The chgov-brprotokolle project is settled around managing, retrieving and displaying historic minutes of the Federal Council, based on the IIIF standard and the live project set-up can be experienced over at Federal Archives's site. The project is separated into 4 dedicated repositories while this current repository chgov-brprotokolle-server is the backend for the ingestion of minutes and the interface for SOLR search requests. It was developed using TypeScript and is based on the archival-iiif-server. The other projects include the publicly accessible frontend (chgov-brprotokolle-frontend), a frontend utility to properly enable OCR display in Mirador (chgov-brprotokolle-mirador-ocr-helper) and documentation chgov-brprotokolle-markdown. The frontend is written in React and the frontend utility in plain JavaScript.

Architecture and components

The backend server has two major tasks: ingestion and search routing. The latter is more or less directly passed to the corresponding SOLR instance and it's objective is to provide an interface for queries.. The former is outlined below with its objective to store data in the SOLR instance and create IIIF representations of the minutes.

Pipeline Ingestion

Pipeline

The ingestion pipline handles either handwritten minutes (e.g. with provided OCR from the Transkribus project) or machine written minutes (e.g. as PDF files, no OCR provided), enhances the minutes with provided metadata and ultimately stores relevant information in a SOLR instance. In order to start the ingestion, files in the appropriate format have to be added to the HOTFOLDER, which the dirWatcher catches. Then, depending on the type of minutes the collectionBuilder handles handwritten minutes for further processing. Machine written minutes are ingested as single PDFs, thus before further processing, the images have to be extracted (imgExtractor) and subsequently, OCR is extracted based on the images (ocrExtractor). At this point, the images, ocr data and metadata are provided and there is no distinction between machine written and handwritten anymore. The ocr data is compiled into a single text file, the ocr plaintext and together with the images, and, ocr data, it's stored under the DATAFOLDER directory. The metadata and known locations of the images, ocr data, and, ocr plaintext are used to generate the IIIF manifests (manifestCreate). These manifests are delivered by an external webserver and are not further part of the backend project. The pipeline is built in such a way that the solrAdd step finalises the ingestion and adds relevant information to the SOLR instance.

First steps

Preparations

To prepare the backend server's setup, it is mandatory to have a running SOLR instance, prepared with the appropriate schema and plugin.

Install

Installation of the development enviornment is done by calling npm install, as this is a node project.

Customization

General

Custom elements for the pipeine can be added as described in the archival-iiif-server documentation.

Run tests

There aren't any automated tests available. End to end runs have to be manually checked.

Authors

License

GNU Affero General Public License (AGPLv3), see LICENSE

Contribute

This repository is a copy which is updated regularly - therefore contributions via pull requests are not possible. However, independent copies (forks) are possible under consideration of the The MIT license.

Contact

  • For general questions (and technical support), please contact the Swiss Federal Archives by e-mail at bundesarchiv@bar.admin.ch.
  • Technical questions or problems concerning the source code can be posted here on GitHub via the "Issues" interface.