Skip to content

Latest commit

 

History

History
113 lines (88 loc) · 11 KB

scope.adoc

File metadata and controls

113 lines (88 loc) · 11 KB

Scope

Solid voor kleine erfgoedinstellingen: Opzet van een collectiebeheersysteem voor digitale objecten van kleine erfgoedinstellingen. Beheerders kunnen collecties en objecten toevoegen, bezoekers kunnen deze browsen op de publieke website. Het systeem is beperkt tot collecties van beeldmateriaal en heeft beperkte functies voor gebruikers.

1. Definities

Gebruiker

Persoon die het collectiebeheersysteem gebruikt als beheerder of bezoeker.

Collectiebeheersysteem

Systeem om collecties bestaande uit digitale objecten van kleine erfgoedinstellingen te beheren en presenteren.

Beheerder

Gebruiker die de pod en daarbij horende collecties en objecten van de ergfoedinstelling beheert.

Bezoeker

Gebruiker die de publieke website van NDE bezoekt.

Pod

Container waarin data van een kleine ergfoedinstelling is opgeslaan.

Erfgoedobject

Werkelijk object, te bezichtigen bij de kleine erfgoedinstelling.

Digitaal object

Digitale representatie van een erfgoedobject.

Objectbeschrijving

Beschrijving, bestaande uit metadata, van een erfgoedobject.

Term

Paraplubegrip om 'dingen' aan te duiden en te beschrijven, zoals een persoon, plaats, onderwerp, tijdsperiode of gebeurtenis ('wie', 'wat', 'waar', 'wanneer').

Om dit project snel te kunnen implementeren wordt er gewerkt in twee fasen: een Proof of Concept (PoC) en een Minimum Viable Product (MVP). De PoC bevat de functionele vereisten met de hoogste prioriteit. De functies die in de MVP worden toegevoegd zijn belangrijk, maar niet van vitaal belang om tot een Proof of Concept te komen die de kleine erfgoedinstellingen kunnen gebruiken. Het systeem bestaat uit vier componenten: twee front-end applicaties, een pod server (en pods) en een identity provider. De eerste front-end applicatie maakt een directe connectie met de pod van de erfgoedinstelling om objecten en collecties te beheren (beheerder). De tweede applicatie staat in voor de presentatie naar de bezoeker toe. De objecten en collecties worden opgeslagen in pods, die moeten voldoen aan de open standaarden van de Solid specificatie. Daarom is het mogelijk dat derde partijen applicaties ontwikkelen die gebruik maken van dezelfde gegevens.

De objecten en collecties worden opgeslagen in pods, die moeten voldoen aan de open standaarden van de Solid specificatie. Daarom is het mogelijk dat derde partijen applicaties ontwikkelen die gebruik maken van dezelfde gegevens.

Voor de identity provider wordt er beroep gedaan op de standaard identity provider van de Community Solid Server, welke momenteel in ontwikkeling is. Belangrijk om hierbij op te merken, is dat deze identity provider en Solid server niet klaar zijn om naar productie te gaan. Beide front-end applicaties zullen bovendien beroep doen op de verschillende onderdelen van het SemCom onderzoeksproject. Deze technologie zal de applicaties toelaten om op dynamische wijze platform-agnostische componenten te laden vanaf een repository, gebaseerd op de aanwezige objecten in de collecties. Daarnaast maakt SemCom het eenvoudig deze componenten later in meerdere andere applicaties te hergebruiken en ze indien nodig in één vlotte beweging te updaten.

2. Assumpties

  • De erfgoedinstelling heeft reeds een pod met daarin de nodige data.

  • Het collectiebeheersysteem is bestemd voor één soort erfgoedobject: beeldmateriaal​. Dit betekent dat onder molens en begraafplaatsen, scans van foto’s van molens en begraafplaatsen worden verstaan.

3. Functionele vereisten

3.1. Proof of Concept

De Proof of Concept moet illustreren hoe de gekozen use case in de praktijk zal werken. De PoC zal dienen om extra duiding te geven bij de functionele werking alsook de technische haalbaarheid. In deze demo-applicatie kunnen kleine erfgoedinstellingen al aan de slag om collecties en objecten te beheren. De metadata die wordt toegevoegd aan de collecties en objecten is echter beperkt tot het minimum. De PoC omvat drie delen die de belangrijkste componenten vormen voor de demo-applicatie in deze fase.

Authenticeer de erfgoedinstelling

Digita creëert een user interface voor de erfgoedinstellingen. Na registratie van de WebID en pod van de erfgoedinstelling, kan de gebruiker zich authenticeren in het collectiebeheersysteem. Digita staat niet in voor de registratie van de WebID en pod van de erfgoedinstelling. Een gebruiker logt in d.m.v. Solid-OIDC authenticatie. De gebruikersbeleving bestaat uit volgende stappen:

  • Gebruiker voert WebID in op de startpagina van het collectiebeheersysteem.

  • Gebruiker wordt omgeleid van het collectiebeheersysteem naar de loginpagina van de Solid server.

  • Gebruiker logt in met e-mailadres en paswoord.

  • Gebruiker verleent toegang aan het collectiebeheersysteem .

  • Gebruiker wordt omgeleid van de Solid server, terug naar het collectiebeheersysteem.

Als onderdeel van de laatste omleiding wordt een toegangstoken naar de demo-applicatie gestuurd. Dit toegangstoken kan door de demo-applicatie worden gebruikt om te communiceren met de Solid-pod van de gebruiker.

Beheer collecties

Digita ontwikkelt een user interface waar beheerders op een eenvoudige manier collecties kunnen toevoegen, bekijken en bewerken in het collectiebeheersysteem. Er werd geen tijd voorzien voor het beheren van de publicatiestatus van een collectie, noch voor het sorteren of filteren van collecties. Zoeken naar collecties zal wel mogelijk zijn, maar de zoekopdracht zal op de front-end worden uitgevoerd.

Beheer objecten

Digita ontwikkelt een user interface waar beheerders op een eenvoudige manier digitale objecten kunnen toevoegen, bekijken, bewerken en toewijzen aan een collectie. Er werd geen tijd voorzien voor het beheren van de publicatiestatus van een object, noch voor het sorteren en filteren van objecten. Verder wordt de mogelijkheid voorzien om bestaand beeldmateriaal te hergebruiken door het opgeven van de uri, alsook door het uploaden van nieuw beeldmateriaal.

3.2. Minimum Viable Product

De Minimum Viable Product (MVP) bouwt verder op de PoC en voegt meer functionaliteiten toe. Naast een beheerapplicatie zal er nu ook een presentatie-applicatie zijn waarop bezoekers erfgoedobjecten kunnen raadplegen.

Authenticeer de beheerders

Het collectiebeheersysteem is nu in staat om, naast de erfgoedinstelling, ook afzonderlijke beheerders te authenticeren. Om dit te bewerkstelligen, zullen de toegangsrechten op de pod van de Erfgoedinstelling manueel worden aangepast. Er werd geen tijd voorzien om toegangsrechten in te stellen via de beheermodule.

Implementeer termen en het termennetwerk

Aan de objecten en collecties kunnen termen worden toegewezen. Een term kan worden gekozen uit een reeds bestaande lijst met termen en is gelinkt aan het bestaande Termennetwerk. Het Termennetwerk kan worden bevraagd aan de hand van GraphQL. Er is geen testomgeving voor het Termennetwerk, dus er wordt direct getest op het bestaande Termennetwerk.

Presentatie

Bezoekers kunnen erfgoedobjecten browsen en collecties bekijken per erfgoedinstelling. Daarnaast kunnen ze beeldmateriaal downloaden. Erfgoedobjecten zoeken en filteren per erfgoedinstelling zal mogelijk zijn. Er zal geen zoek-server voorzien worden, daarom zullen alle zoekopdrachten op de front-end worden uitgevoerd.

4. Infrastructuur

Ondersteuning bij het opzetten van de Community Solid Server

Digita zal het technische team van NDE ondersteunen bij het opzetten van een gehoste instantie van de Community Solid Server. Hierdoor kan NDE erfgoedinstellingen bijstaan in het voorzien van een pod voor de opslag van hun erfgoedinformatie. De opstelling die voorzien wordt zal gebruik maken van een Kubernetes omgeving, waarbij de pod server zal draaien op een file backend. NDE zal zelf instaan voor het beschikbaar maken van een Kubernetes omgeving waarbinnen de nodige setup kan worden uitgevoerd.

Ondersteuning bij het opzetten van de Digita Identity Proxy

Digita biedt ondersteuning aan het technisch team van NDE bij het opzetten van de Digita Identity Proxy. Deze service laat toe het collectieregistratiesysteem te gebruiken met een reeds bestaande OIDC-compatibele identity provider, zoals Auth0, waarbij reeds aanwezige accounts automatisch voorzien worden van een WebID nodig voor authenticatie. Er wordt voorzien deze service naast de Community Solid Server op te stellen in eenzelfde Kubernetes omgeving. Hierbij wordt ervan uitgegaan dat deze achterliggende identity provider reeds aanwezig is.

5. Niet-functionele vereisten

  • De architectuur en kwaliteit van de software artefacten moet geschikt zijn voor productie, afgezien van de elementen omschreven in “Out-of-scope”.

  • De uitvoering van de software artefacten moet een goede user experience opleveren, maar moet niet op grote schaal uitvoerbaar zijn.

  • De software artefacten zullen worden getest op een gelimiteerd aantal moderne web browsers zoals Chrome en Firefox.

  • De software artefacten worden gebouwd met technologieën gekozen door Digita en kunnen eigen software-ontwikkelingskits bevatten.

  • De front-end applicaties zullen gebouwd worden in een reactieve component- en event- gebaseerde architectuur. Deze wordt geïmplementeerd door gebruik te maken van een combinatie van Lit-Element Web Components, XState, RxJs en Components.js. Waar mogelijk wordt gebruik gemaakt van Typescript om de onderhoudbaarheid te bevorderen.

  • Waar opportuun zullen front-end components worden gebouwd door gebruik te maken van Semcom.

  • De software artefacten mogen door de klant open-source beschikbaar worden gemaakt onder de European Union Public Licence.

  • Alle documentatie, inclusief projectdocumentatie, codedocumentatie en gebruikershandleiding, worden overgedragen aan de klant.

6. Out-of-scope

  • Digita staat niet in voor het hosten van pods of de voornoemde applicaties.

  • Digita staat niet in voor de registratie van de WebID en registratie van de pods voor erfgoedinstellingen of beheerders.

  • Digita staat niet in voor het verbeteren of doorontwikkelen van een Solid-opslagserver, identity provider of implementatie van andere gedistribueerde technieken zoals IPFS of blockchain.

  • Digita zal geen security-gerelateerde testen uitvoeren op de code of de demo-omgeving.

  • Er zal geen zoek-server voorzien worden, daarom zullen alle zoekopdracht op de front-end worden uitgevoerd.

  • Vertalingen worden bijgehouden in een afzonderlijk tekstbestand, maar er is geen functionaliteit voorzien om meerdere talen te ondersteunen of hiertussen te wisselen.

  • Importeren en exporteren van objecten en collecties als functionaliteit.

  • Objecten delen op sociale media als functionaliteit in de presentatielaag.

  • Opmerkingen plaatsen als functionaliteit in de presentatielaag.

  • Het beheren van toegangsrechten van beheerders vanuit de beheer-module.