Giter VIP home page Giter VIP logo

museum4punkt0 / sammlungonline Goto Github PK

View Code? Open in Web Editor NEW
0.0 1.0 1.0 65.01 MB

Die Plattform Sammlungen Online der Staatlichen Museen zu Berlin zeigt als Online-Datenbank über 270.000 Objektdatensätze. Neben der RECHERCHE bieten die Online-Angebote THEMEN und TOUREN weitere Einblicke.

Home Page: https://sammlung.smb.museum

License: GNU General Public License v3.0

Dockerfile 0.14% PHP 0.09% PLpgSQL 1.52% Kotlin 8.92% Java 41.61% Batchfile 0.09% JavaScript 0.36% Shell 0.23% HTML 0.30% TypeScript 45.70% CSS 0.02% SCSS 1.03%
museum museum-collections museum4punkt0 staatliche-museen-zu-berlin

sammlungonline's Introduction

Sammlungen Online

Die Sammlungen Online der Staatlichen Museen zu Berlin (SMB) zeigen derzeit über 280.000 Datensätze zu Objekten aus den unterschiedlichsten Epochen und Regionen der Welt. Die Neugestaltung der Online Sammlungen verfolgt dabei folgende Ziele:

  1. Die Objekte der Staatlichen Museen sollen im Digitalen Raum und international angemessen zeitgemäß zugänglich und recherchierbar gemacht werden.
  2. Die Sichtbarkeit der SMB im Digitalen Raum soll erhöht werden.
  3. Die Diversität der Online BesucherInnen soll verstärkt und die Zahl der Online BesucherInnen erhöht werden.

Beim Besuch der Online Sammlungen weisen BesucherInnen individuelle und spezifischen Motivationen und Bedürfnisse auf. Um diesen individuellen Zugriffen auf die Objekte der Online Sammlung gerecht zu werden, stehen die Objekte der Sammlungen im Mittelpunkt. Durch verschiedene Themenformate, werden für die individuellen Motivationen der Online BesucherInnen, individuelle Zugänge zu den Objekten geschaffen. Die Online Sammlungen wurden modular wachsend sowie mit der Möglichkeit der mehrsprachigen Nutzung geplant.

Entstehungskontext

Die Plattform Sammlungen Online ist initial entstanden im Verbundprojekt museum4punkt0 – Digitale Strategien für das Museum der Zukunft im Teilprojekt Visitor Journeys neu gedacht – digitale Erweiterung des Museumsbesuchs der Staatlichen Museen zu Berlin – Preußischer Kulturbesitz. Die Plattform wurde über die beiden weiteren Förderphasen des Verbundprojekts museum4punkt0 im Projekt (De-)Coding Culture. Kulturelle Kompetenz im digitalen Raum der Staatlichen Museen zu Berlin um weitere Funktionen und Module erweitert.

Förderung

Das Projekt museum4punkt0 wird gefördert durch die Beauftragte der Bundesregierung für Kultur und Medien aufgrund eines Beschlusses des Deutschen Bundestages.

BKM-Logo NeustartKultur

Plattformen

Die einzelen Themenformate wurden als separate Plattformen umgesetzt, die im Folgenden kurz beschrieben werden. Alle dieser Plattformen nutzen modulare Komponenten aus einer geteilten Bibliothek react-component-library.

Alle Plattformen basieren auf TypeScript und React.

SMB Intro

SMB Intro react-landingpage dient als Landingpage für die Online Sammlungen. Hier werden die verschiedenen Plattformen geteasert und zu einem Portal zusammengefügt.

SMB Recherche

SMB Recherche react-research bildet den Zugang der Scientific Community zu den Sammlungen ab. Ziel dieser Anwendung ist das professionelle und effektive Forschen und Arbeiten an und mit den Sammlungen sowie die Objektrecherche. SMB Recherche ist als Such-Portal mit Objektdetailseiten umgesetzt.

SMB Touren

SMB Touren react-guide ist die Brücke der Online Sammlung in die Häuser der Staatlichen Museen zu Berlin. Online BesucherInnen soll es ermöglicht werden, aktuelle Informationen zu den Ausstellungsorten von Objekten in den Museen zu erhalten und themenbezogene oder eigene Führungen aus SMB Touren zusammenzustellen, um den Museumsbesuch zu planen und zu begleiten. SMB Touren zeigt kuratierte Routen durch die Online Sammlungen, wobei die einzelnen Objekte in einen gemeinsamen Kontext in Form einer Tour gesetzt werden.

SMB Themen

SMB Themen react-topics soll explizit Online BesucherInnen ansprechen, die nicht die Möglichkeit haben regelmäßig die Häuser der SMB vor Ort zu besuchen. Dennoch sollen ihre unterschiedlichen Motivationen als BesucherInnen durch die Anwendung erfüllt werden. Ähnlich wie bei SMB Touren werden die Objekte hier in einen Themenkontext zusammengefasst, wobei die Themen verschiedene Besucherinteressen abfangen und als Einstiegspunkt in die Online Sammlungen dienen.

SMB API

Um Sammlungsobjekte aus dem Museumdokumentationssystem in die verschiedenen Formate einzubinden und aktuell zu halten, benötigt es eine offene, URL-Request-basierte Schnittstelle (API core/hasura), die es ermöglicht, Objektdaten dynamisch in Web-Anwendungen einzubinden. Hierfür steht eine generische GraphQL-API zur Verfügung, die es erlaubt verschiedenste Daten und Attribute je nach Anwendungsfall abzufragen. Die Plattformen SMB Intro, SMB Touren und SMB Themen nutzen diese generische API um die Plattform-Inhalte anzuzeigen. SMB Recherche nutzt einen dedizierten Search-Service search-indexer, der die GraphQL erweitert und eine exemplarische Implementierung für zukünftige Web-Services auf Basis der öffentlichen API darstellt.

Weitere Backend-Services

Um die Plattformen im Hintergrund mit den notwendigen Daten zu versorgen, sind weitere Backend-Services implementiert. Diese sind mit Java11/Kotlin und Springboot umgesetzt. Die Services sind im einzelnen:

Name Beschreibung
hasura-auth Webhook Authentifizierungs-Service für Hasura
mds-sync Service um den Daten-Index mit Änderungen im MDS zu synchronisieren
search-indexer Service für die Indizierung von Suchergebnissen mit Elasticsearch sowie Implementierung des Search-Webservices
sitemap Generierung und Bereitstellung der Sitemaps für SMB Recherche, SMB Touren und SMB Themen (SEO)

Infrastruktur-Komponenten

Im core befinden sich verwendete Docker-Container. Je nach Bedarf, müssen verschiedene Container gestartet werden. In den jeweiligen Ordnern liegen Instruktionen und Testdaten bereit.

Achtung: Die Umgebungsvariablen in den docker-compose.yml Dateien, sowohl im core als auch in den eigens implementierten Services, müssen ggf. auf die eigene Umgebung angepasst werden. Vor allem Benutzernamen und Passwörter sind in der vorhandenen Konfiguration aus Sicherheitsgründen nicht vollständig ausgefüllt.

Hinweis: Die Docker-Container, welche im core definiert sind, befinden sich in einer nicht-öffentlichen Registry der Entwicklerfirma. Es können an deren Stelle auch die äquivalenten offiziellen Container aus dem Docker-Hub verwendet werden.

Der Nginx core/reverse-proxy enthält eine kleine Beispielkonfiguration, um die gestarteten Dienste über einen zentralen Einstiegspunkt mit Subrouten verfügbar zu machen. Er ist nicht essentiell für die Nutzung.

Essentiell für die Nutzung jedes Dienstes ist die API core/hasura. Diese erlaubt Zugriff auf die Datenbank core/postgres und die Objektbilder core/image-provider. Der Zugriff auf die API wird über einen Webhook hasura-auth authentifiziert. Die entsprechende Startsequenz der Docker-Container ist daher wie folgt:

  1. core/postgres
  2. core/image-provider
  3. core/hasura
  4. hasura-auth

Nach dem ersten Start von Hasura, müssen inital das Postgres-Schema aus core/postgres/001_scheme.sql und die entsprechenden Metadaten aus core/hasura/hasura_metadata.json importiert werden. Für einen besseren Start empfiehlt sich auch der Import von core/postgres/002_base_data.sql. Weitere Informationen dazu gibt es in core/howto-init-datamodel.txt.

Matomo core/matomo wird für das User-Tracking auf den einzelnen Plattformen verwendet. Die Tracking-Daten werden in einer relationalen Datenbank core/mysql gespeichert. Soll vom Tracking in einer eigenen Matomo-Instanz Gebrauch gemacht werden, müssen diese Container zusätzlich in folgender Reihenfolge gestartet werden:

  1. core/mysql
  2. core/matomo

Achtung: Bei Nutzung einer eigenen Matomo-Instanz muss die Matomo-Konfiguration in allen Plattformen in public/matomo.js angepasst werden.

Container-Nutzung für konkrete Anwendungsfälle

Je nach Anwendungsfall, müssen zusätzliche Container gestartet werden.

Intro

SMB Intro nutzt keine zusätzlichen Services. Alle notwendigen Container sind oben beschrieben. Startsequenz:

  1. s.o.
  2. react-landingpage: npm run start

Recherche

SMB Recherche nutzt zusätzlich den Search-Webservice (search-indexer), welcher wiederum Elasticsearch (core/elasticsearch) verwendet. Startsequenz:

  1. s.o.
  2. core/elasticsearch
  3. search-indexer
  4. react-research: npm run start

Touren

Aktuell ist SMB Touren noch im Aufbau und nur rudimentär implementiert. Zukünftig werden die Museumsgrundriss-Informationen für die Touren allerdings aus einer Graph-DB (core/orientdb) geladen. Es empfiehlt sich daher, den entsprechenden Container bei der Nutzung von Touren mitzustarten. Startsequenz:

  1. s.o.
  2. core/orientdb
  3. react-guide: npm run start

Themen

SMB Themen nutzt keine zusätzlichen Services. Alle notwendigen Container sind oben beschrieben. Startsequenz:

  1. s.o.
  2. react-topics: npm run start

Lizenz

Copyright (c) 2020-2023 / museum4punkt0

Die hier hinterlegte Anwendung wird unter der GNU GPLv3 Lizenz veröffentlicht. Sämtliche verwendete Programmteile Dritter sind mit der jeweiligen Lizenz in der Datei react-component-library/LICENSES aufgeführt. Alle verwendeten Bibliotheken stehen unter Open-Source Lizenzen. Diese sind:

  • Apache 2.0
  • Artistic-2.0
  • BSD
  • ISC
  • LGPL-3.0
  • MIT
  • Public Domain
  • WTFPL

sammlungonline's People

Contributors

m4p0zar avatar rezellme avatar tschuhmacher avatar xai-tlt avatar

Watchers

 avatar

Forkers

tschuhmacher

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.