Skip to content

Commit

Permalink
Merge remote-tracking branch 'origin/development' into feature/DIMOC-240
Browse files Browse the repository at this point in the history
  • Loading branch information
rubenvdlinde committed Aug 13, 2024
2 parents e138956 + e4028a5 commit 9e75311
Show file tree
Hide file tree
Showing 65 changed files with 1,079 additions and 210 deletions.
1 change: 1 addition & 0 deletions appinfo/routes.php
Original file line number Diff line number Diff line change
Expand Up @@ -14,6 +14,7 @@
['name' => 'dashboard#page', 'url' => '/', 'verb' => 'GET'],
['name' => 'metadata#page', 'url' => '/metadata', 'verb' => 'GET'],
['name' => 'publications#page', 'url' => '/publications', 'verb' => 'GET'],
['name' => 'publications#attachments', 'url' => '/api/publications/{id}/attachments', 'verb' => 'GET', 'requirements' => ['id' => '.+']],
['name' => 'catalogi#page', 'url' => '/catalogi', 'verb' => 'GET'],
['name' => 'search#index', 'url' => '/search', 'verb' => 'GET'],
['name' => 'search#index', 'url' => '/api/search', 'verb' => 'GET'],
Expand Down
Binary file added docs/.gitbook/assets/Metadata_modal.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added docs/.gitbook/assets/bijlage_toevoegen.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added docs/.gitbook/assets/bijlage_toevoegen_modal.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added docs/.gitbook/assets/image (1).png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added docs/.gitbook/assets/image (2).png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added docs/.gitbook/assets/image.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added docs/.gitbook/assets/metadata-settings.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added docs/.gitbook/assets/publicatie_modal.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added docs/.gitbook/assets/publicatie_mogelijkheden.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
11 changes: 6 additions & 5 deletions docs/README.md
Original file line number Diff line number Diff line change
Expand Up @@ -3,23 +3,24 @@
description: >-
Welkom bij de gebruikersdocumentatie voor de OpenCatalogi Nextcloud App. Veel
succes met het gebruik van de app.
coverY: 0
---------
----------------------------------

# Welkom

***

Deze documentatie richt zich op het gebruik van onze beheerapplicatie, speciaal ontworpen voor het beheren van publicaties en catalogi binnen het federatief netwerk. De OpenCatalogi Nextcloud App is een eenvoudig te installeren:

* [**Quickstart**](installatie/instructies.md)voor een test/demo-omgeving
* [**Quickstart**](installatie/instructies.md) voor een test/demo-omgeving
* [**Quickstart** ](developers/installatie-van-nextcloud-development-omgeving.md)voor een development-omgeving

Onze app ondersteunt de Common Ground-aanpak, waardoor je snel toegang hebt tot bestaande IT-oplossingen die je kunt hergebruiken om de ontwikkeltijd te verkorten en de kosten te verlagen. In deze gids vind je stapsgewijze instructies, nuttige tips en best practices om je te helpen bij het optimaal beheren van je federatief netwerk, zoals publicaties of softwarecomponenten.

Deze documentatie is bedoeld voor diverse doelgroepen:

* **Gebruikers:** iedereen die wilt delen binnen het netwerk.
* **Gebruikers:** iedereen die wil delen binnen het netwerk.
* **Developers:** Ontwikkelaars die bijdragen aan de OpenCatalogi-projecten en behoefte hebben aan gedetailleerde technische informatie en API-documentatie.
* **Beheerders:** Professionals die verantwoordelijk zijn voor het beheren en onderhouden van het federatief netwerk voor publicaites en componenten.
* **Beheerders:** Professionals die verantwoordelijk zijn voor het beheren en onderhouden van het federatief netwerk voor publicaties en componenten.

Voor meer informatie over OpenCatalogi en onze gemeenschappelijke inspanningen, bezoek onze [documentatie-pagina](https://documentatie.opencatalogi.nl) of de officiële website op [OpenCatalogi.nl](https://opencatalogi.nl).

Expand Down
2 changes: 1 addition & 1 deletion docs/SUMMARY.md
Original file line number Diff line number Diff line change
Expand Up @@ -24,4 +24,4 @@
* [SAAS en Dashboarding](installatie/saas.md)
* [On-Prem server](installatie/on-prem-server.md)
* [Systeemeisen voor Nextcloud](installatie/systeemeisen-voor-nextcloud.md)
* [Veel gestelde vragen](f-a-g.md)
* [Veel gestelde vragen](veel-gestelde-vragen.md)
553 changes: 553 additions & 0 deletions docs/assets/Opencatalogi CRUD.postman_collection.json

Large diffs are not rendered by default.

14 changes: 13 additions & 1 deletion docs/beheerders/README.md
Original file line number Diff line number Diff line change
@@ -1 +1,13 @@
# beheerders
***

description: >-
De rol van een "Beheerder" binnen het platform is gericht op het beheren van
de publicaties, catalogi en metadata, evenals de autorisatie van gebruikers.
De verantwoordelijkheden van de beheerder:
------------------------------------------

# Beheerders

* **Beheer van Publicaties:** Beheerders hebben toegang tot een overzicht van alle (concept-)publicaties, het bewerken van publicatie, verwijderen en (de)publiceren. 
* **Metadata en Thema's Beheren:** Beheerders kunnen het metadatamodel configureren, extra informatiecategorieën en thema's toevoegen en beheren. Ze kunnen deze koppelen aan publicaties voor beter beheer en toegang.
* **Logging en Monitoring:**
2 changes: 1 addition & 1 deletion docs/beheerders/catalogi.md
Original file line number Diff line number Diff line change
Expand Up @@ -12,7 +12,7 @@ De organisatie-eigen catalogi (waartoe een gebruiker toegang heeft) zijn opgenom

## Catalogi beheren

Catalogi kunnen worden beheerd via het menu-item Instellingen -> Catalogi.
Catalogi kunnen worden beheerd via het menu-item Instellingen -> Catalogi en dan de drie bolletjes te selecten voor de opties. 

* **Configuratie**: Onder de configuratie van een catalogus kan worden aangegeven
* Of deze actief is (anders wordt de catalogus niet getoond in het navigatiemenu en de zoekresultaten)
Expand Down
12 changes: 11 additions & 1 deletion docs/developers/README.md
Original file line number Diff line number Diff line change
@@ -1 +1,11 @@
# developers
***

description: >-
De rol van een "Developer" binnen het publicatieplatform is voornamelijk
gericht om bij te dragen aan de ontwikkeling aan de codebase of om
aanpassingen te kunnen testen of demonstreren.
----------------------------------------------

# Developers

In dit hoofdstuk worden de verschillende manieren gegeven om een test- of demo-omgevingen op te starten. 
70 changes: 59 additions & 11 deletions docs/developers/aan-de-slag-met-development.md
Original file line number Diff line number Diff line change
Expand Up @@ -89,42 +89,49 @@ Als onderdeel van de CI/CD-straat voeren we een aantal tests uit, hiermee handha

### Voor de kwaliteit van de code maken we gebruik van linters

Voor frontend is dat:
Voorzowel de frontend als de backend geldt dat het aantal acceptabele errors 0 is.

#### Frontend 

Voor frontend gebruiken we ESLint, de installatiehandleiding is [hier](https://www.npmjs.com/package/eslint) te vinden. Het commando om ESLint uit te voeren. ESLint is voornamelijk een linter, met enige format-functionaliteit. 

```cli
npm run lint
```

![alt text](npm_lint.png)

Voor de backend is dat:
#### Backend

Voor de backend gebruiken we PHP Code Sniffer. [Zie hier](https://dev.to/xxzeroxx/phpcs-php-code-sniffer-59f4) de handleiding voor de installatiemogelijkheden. PHP-code sniffer bestaat uit een linter ( `phpcs)` en een formatter(`phpcbf`). De formatter werkt hetzelfde als de linter en kan soms aardig wat errors wegwerken. De regels voor zowel de linter als de formatter zijn te vinden in `phpcs.xml` in de root van de applicatie. 

```cli
phpcs [filename]
phpcbf [filename]
```

Hiervoor moet php code sniffer geïnstalleerd zijn. [Zie hier](https://dev.to/xxzeroxx/phpcs-php-code-sniffer-59f4) de handleiding ervoor
## Voor stabiliteit gebruiken we unit tests

Voor beide geldt dat het aantal acceptabele errors 0 is.
Voor beide geldt dat minimale test coverage 80% is, en het aantal acceptabele errors 0.

## Voor stabilliteit gebruiken we unit tests
#### Frontend

Voor frontend is dat:
Voor het uitvoeren van de unit tests gebruiken we aan de frontend Jest. Indien je deze nog moet installeren of meer erover wilt weten, kijk dat [hier](https://www.npmjs.com/package/jest). Het uit te voeren commando is:

```cli
npm run test-coverage
```

![alt text](npm_test.png)

Voor de backend is dat:
#### Backend:

Voor het uitvoeren van de unit tests gebruiken we aan de backend PHPunit. Indien je deze nog moet installeren of meer erover wilt weten, kijk dan [hier](https://docs.phpunit.de/en/11.3/). Het uit te voeren commando is:

```cli
phpunit
```

Voor beide geldt dat minimale test coverage 80% is, en het aantal acceptabele errors 0.

> **NOTE 1** We volgen de Nextcloud wijze voor unit testing, zie hier voor [de details](https://docs.nextcloud.com/server/latest/developer_manual/server/unit-testing.html), maar dit komt neer op [phpunit](https://docs.phpunit.de/en/11.3/index.html) en de juist configuratie van `phpunit.xml`en de `bootstrap.php`. Een voorbeeld van deze files zijn te vinden in de `root` van de applicatie (`phpunit.xml`) en de `/tests/unit`(`bootstrap.php`). Er zijn veel mogelijkheden om het jezelf makkelijk te maken, zoals een percentageoverzicht in de terminal. Het commando dat wij gebruiken is :
`XDEBUG_MODE=coverage phpunit --bootstrap ./tests/bootstrap.php --configuration phpunit.xml --coverage-html ./coverage --coverage-text | tee coverage.txt`
Expand All @@ -133,15 +140,15 @@ Voor beide geldt dat minimale test coverage 80% is, en het aantal acceptabele er
## Voor veiligheid gebruiken we dependency scanning

Voor frontend is dat:
#### Frontend:

```cli
npm audit
```

![alt text](npm_audit.png)

Voor de backend is dat:
#### Backend

```cli
composer audit
Expand All @@ -150,3 +157,44 @@ composer audit
![alt text](composer_audit.png)

Voor beide geldt dat het aantal acceptabele critical vulnerabilities in *production packadges* 0 is.

### Gebruikersdocumentatie

We gebruiken Gitbook voor de gebruikersdocumentatie. Features binnen de app zouden zo veel mogelijk direct moeten doorverwijzen naar deze documentatie.

Ook voor de documentatie wordt een linter gebruikt namelijk [remarklint](https://github.com/remarkjs/remark-lint).

De commando's om deze linter in de CLI te gebruiken zijn [hier te vinden](https://github.com/remarkjs/remark-lint?tab=readme-ov-file#what-is-this) voor een uitgebreide output in de terminal.

## API Development

De ontwikkeling van de API wordt bijgehouden met de documentatietool [Stoplight.io](https://stoplight.io/), die automatisch een [OpenAPI Specificatie (OAS)](https://www.noraonline.nl/wiki/FS:Openapi-specification) genereert uit de documentatie. De Stoplight voor OpenCatalogi is [hier](https://conduction.stoplight.io/docs/open-catalogi/6yuj08rgf7w44-open-catalogi-api) te vinden.

## Frontend Development

### Storage en Typing

Om gegevens deelbaar te maken tussen de verschillende Vue-componenten maken we gebruik van [statemanagement](https://vuejs.org/guide/scaling-up/state-management) waarbij we het Action, State, View patroon van Vue zelf volgen. Omdat de applicatie ingewikkeld begint te worden stappen we daarbij over van [simple state management](https://vuejs.org/guide/scaling-up/state-management#simple-state-management-with-reactivity-api) naar [Pinia](https://pinia.vuejs.org/), de door Vue zelf geadviseerde opvolger van [Vuex](https://vuejs.org/guide/scaling-up/state-management#pinia).

Daarnaast gebruiken we Typescript voor het definiëren van entities.

### Modals

* Er mag altijd slechts één modal actief zijn.
* Modals moeten abstract en overal bereikbaar zijn.
* Modals moeten geplaatst worden in de map src/modals.
* Modals moeten getriggerd worden via de state (zodat knoppen die modal openen overal plaatsbaar zijn).
* Modals moeten geïmporteerd worden via `/src/modals/Modals.vue`.

### Views

* Views moeten dezelfde bestandsnaam hebben als de geëxporteerde naam en een correlatie hebben met de map waarin het bestand zich bevindt.
* Bijvoorbeeld, als het bestand een detailpagina is en het zich in de map `publications` bevindt, moet het bestand de naam `PublicationDetail.vue` hebben.

## Documentatie

Het is goed om bij development kennnis te nemen/hebben van de volgende gebruikte Nextcloud onderdelen:

* [Icons](https://pictogrammers.com/library/mdi/)
* [Layout](https://docs.nextcloud.com/server/latest/developer_manual/design/layout.html)-
* [Componenten](https://nextcloud-vue-components.netlify.app/)
12 changes: 12 additions & 0 deletions docs/gebruikers/README.md
Original file line number Diff line number Diff line change
@@ -1 +1,13 @@
***

description: >-
Een "Gebruiker" binnen het Publicatieplatform heeft de primaire taak om
publicaties te creëren en te bewerken. De rol van de gebruiker omvat de
volgende verantwoordelijkheden en mogelijkheden:
------------------------------------------------

# Gebruikers

* **Creëren van Publicaties:** Gebruikers kunnen nieuwe publicaties aanmaken, afhankelijk van hun autorisaties. Ze kunnen kiezen namens welke organisatie of onderdeel ze publiceren en de juiste informatiecategorieën selecteren. Documenten kunnen worden geüpload en metadata ingevuld.
* **Bewerken van Publicaties:** Gebruikers hebben toegang tot een overzicht van hun eigen (concept-)publicaties. Ze kunnen deze filteren, sorteren en wijzigen. Gebruikers kunnen concept-publicaties definitief maken en gepubliceerde documenten intrekken naar concept-status.
* **Downloaden van Publicaties:** Gebruikers kunnen gepubliceerde documenten en bijbehorende metadata downloaden.
12 changes: 8 additions & 4 deletions docs/gebruikers/dashboard.md
Original file line number Diff line number Diff line change
Expand Up @@ -2,14 +2,18 @@

description: >-
Deze handleiding gaat ervan uit dat de gebruiker beschikt tot een werkende
OpenCatalogi-Nextcloud app.
---------------------------
OpenCatalogi-Nextcloud app
--------------------------

# Dashboard

***

## Dashboard

Op het dashboard van OpenCatalogi vindt u handige informatie die je meteen verder helpt en in staat stelt de juiste keuzes te maken. Aan de linkerkant tref je een aantal overzichtsstatistieken en aan de rechterkant een sidebar met daarin de mogelijkheid om direct actie te ondernemen.

## Statistieken
### Statistieken

1. **Zoekverkeer** Het aantal zoekvragen dat er afgelopen maand aan jouw index (geheel van catalogi) is gesteld.
2. **Metadata** De verdeling over metadata-types van jouw publicaties
Expand All @@ -18,7 +22,7 @@ Op het dashboard van OpenCatalogi vindt u handige informatie die je meteen verde

![app menu](../assets/oc_dashboard.png)

## Sidebar
### Sidebar

Vanuit de sidebar heb je toegang tot 3 tabbladen

Expand Down
38 changes: 26 additions & 12 deletions docs/gebruikers/publicaties.md
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
# Publicaties

> Publicaties zijn onderdeel van de (Open Catalogi Standaard)\[] en gebaseerd op het [publication object](https://conduction.stoplight.io/docs/open-catalogi/9bebd6bf4fe35-publication). Publicaties kennen eigenschappen zo als gedefineerd in een publicaite type en kunnen worden gekopeld aan bijlagen
Publicaties zijn onderdeel van de [Open Catalogi Standaard](https://github.com/OpenCatalogi/.github/blob/main/docs/Standaard.md) en gebaseerd op het [publication object](https://conduction.stoplight.io/docs/open-catalogi/9bebd6bf4fe35-publication). Publicaties kennen eigenschappen zoals gedefinieerd in een publicatietype en kunnen worden gekoppeld aan bijlagen

Een publicatie representeerd iets wat je wilt publiceren, het beschrijft de handeling van publiceren en de spelregels waaronder iets gepubliceerd wordt.het is een soort "verpakking" of "omhulsel" dat zowel de kerngegevens (data) als aanvullende informatie over die gegevens (metadata) bevat.

Expand All @@ -14,29 +14,27 @@ Publicaties zijn altijd onderdeel van een collectie in de vorm van een [catalogu

Publicaties kunnen worden toegevoegd via:

* De publicatie toeveogen knop boven aan het hoofd menu (links)
* Een catalogus geselecteerd in het hoofd menu (via het hamburger menu achter de zoekbalk)
* Een catalogus detail pagina
* De publicatie toevoegen knop boven aan het hoofd menu (links)
* Een catalogus geselecteerd in het hoofdmenu (via het hamburgermenu achter de zoekbalk)
* Een catalogus detailpagina

Een publicatie leeft altijd binnen één catalogus en word gedefineerd door één publicatie type. Omdat catalogi bepalen welke publicatie typen beschickbaar zijn voor die catalogi moet er eerst een catalogus worden gekozen voordat er een metadata type kan worden gekozen. Daarmee word de volgorde bij het aanmaken van een publicatie:
Een publicatie leeft altijd binnen één catalogus en wordt gedefinieerd door één publicatietype. Omdat catalogi bepalen welke publicatietypen beschikbaar zijn voor die catalogi moet er eerst een catalogus worden gekozen voordat er een metadatatype kan worden gekozen. Daarmee wordt de volgorde bij het aanmaken van een publicatie:

1. Catalogus kiezen (indien niet opgestart vanuit een specifieke catalogus)
2. Publicatietype kiezen
3. Publicatie detalis aanvullen
3. Publicatiedetails aanvullen

Eigenschapen en bijlagen kunnen worden toegevoegd nadat de publicatie is toegevoegd.
Eigenschappen en bijlagen kunnen worden toegevoegd nadat de publicatie is toegevoegd.

## Publicaties beheren

De gebruikersbeheerinterface werkt intuïtief. Aan de linkerkant van de pagina bevindt zich een overzicht van catalogi. Met de blauwe knop bovenaan kun je een publicatie aanmaken. Dit opent een modal genaamd "Publicatie toevoegen".
De gebruikersbeheerinterface werkt intuïtief. Aan de linkerkant van de pagina bevindt zich een overzicht van catalogi. Met de blauwe knop bovenaan kun je een publicatie aanmaken. Dit opent een modal genaamd "Publicatie toevoegen". Er wordt eerst gevraagd aan welke catalogus deze behoort en welke publicatietype het heeft (metadata)

Hieronder is een voorbeeld van een ingevulde modal voor het aanmaken van een Woo-publicatie.

<div align="left">
<div align="center">

<figure><img src="../assets/oc_publicatie_toevoegen_form_1.png" alt="" width="371"><figcaption><p>Het eerste gedeelte - gegevens over de publicatie</p></figcaption></figure>

<figure><img src="../assets/Open-Catalogi-Nextcloud.png" alt="" width="374"><figcaption><p>het tweede gedeelte - het aanwijzen van de catalogi</p></figcaption></figure>
<figure><img src="../.gitbook/assets/publicatie_toevoegen_modal.png" alt="" width="300"><figcaption><p>De publicatiemodal</p></figcaption></figure>

</div>

Expand Down Expand Up @@ -64,4 +62,20 @@ Naast een bestand kan een bijlage (per verwijzing) bijvoorbeeld ook een website

Een tweede manier om informatie op te nemen in een publicaite is via eigenschappen. Eigenschappen zijn voor gedefineerde opties (via [publicatie type](../beheerders/metadata.md)) waar een waarde aan kan worden toegekend.

## Bijlagen

![alt text](image-2.png)

Publicaties hebben vaak bijlagen, zoals een verslag of een besluit. Deze zijn eenvoudig toe te voegen door op de Actie-knop te klikken bij een geselecteerde publicatie, of de drie bolletjes naast een publicatie. Dit opent de Bijlage toevoegen modal.

<div>

<figure><img src="../.gitbook/assets/bijlage_toevoegen_drie_bolletjes.png" alt=""><figcaption><p>bijlage toevoegen via drie bolletjes</p></figcaption></figure>

<figure><img src="../.gitbook/assets/bijlage_toevoegen_actieknop.png" alt=""><figcaption><p>bijlage toevoegen via de actie-knop</p></figcaption></figure>

</div>

In de `Bijlage toevoegen`-modal worden er gevraagd om een aantal velden. Er zijn twee mogelijkheden een bijlage toe te voegen. De eerste manier is via een `Toegangs URL`. Dit zorgt ervoor dat het bestand vanuit een andere plek automatisch gedownload wordt. Een `Titel` is dan verplicht.&#x20;

De tweede manier is door zelf een bestand up te loaden. De bestandsnaam wordt dan meegegeven.&#x20;
Loading

0 comments on commit 9e75311

Please sign in to comment.