From cf5b62981a6f0cef544bdc7a340e00c9c1215bb0 Mon Sep 17 00:00:00 2001 From: Ruben van der Linde Date: Wed, 7 Aug 2024 14:45:32 +0200 Subject: [PATCH 1/2] New testing screens --- .../developers/aan-de-slag-met-development.md | 98 ++++++++++-------- docs/developers/npm_lint.png | Bin 6744 -> 6766 bytes docs/developers/npm_test.png | Bin 8195 -> 58271 bytes 3 files changed, 54 insertions(+), 44 deletions(-) diff --git a/docs/developers/aan-de-slag-met-development.md b/docs/developers/aan-de-slag-met-development.md index 71b36131..442f7f83 100644 --- a/docs/developers/aan-de-slag-met-development.md +++ b/docs/developers/aan-de-slag-met-development.md @@ -26,10 +26,61 @@ De Ontwikkelpartijen van [Core](https://documentatie.opencatalogi.nl/Docs/Projec ![alt text](feature_flow.png) +## Known issues +Iedere applicatie heeft technical debt, hier open en eerlijk over zijn helpt developers die willen bijdragen. Op dit moment hebben wij de volgende aandachtspunten waar we aan werken + +- Test coverage frontend is te laag (is 70% zou 80%) moeten zijn +- Test coverage backend is te laag (is 60% zou 80%) moeten zijn +- Op de frontend bevaten de stores nog busnes logica die naar apparte services moet worden verplaats + ## Application development Omdat de applicatie is ontwikkeld met Nextcloud, is er uitgebreide informatie te vinden in de [Nextcloud-documentatie](https://docs.nextcloud.com/server/latest/developer_manual/index.html) zelf. Dit geldt zowel voor de lay-out van de app als voor de vele componenten die eraan toegevoegd kunnen worden. Tijdens de ontwikkeling van de OpenCatalogi-app is het *documentation-first* principe gehanteerd, waarbij de ontwikkelaars eerst de [Nextcloud-documentatie](https://docs.nextcloud.com/server/latest/developer_manual/index.html) hebben geraadpleegd. +### 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. + +### Performance +Voor een goede gebruikers ervaring voor zowel bezoekers als medewerkers is het belangrijk dat dat de applicatie snel reageerd, we streven daarbij naar een performance van rond de 100 miliseconde (1/10) van een seconde. Maar overall zou de performance odner de 200 miliseconde moeten blijven. Acties die langer dan een seconde duren zijn reden om een purrl request te weigeren. + +## 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#:~:text=Een%20OpenAPI%20Specification%20\(OAS\)%20beschrijft,er%20achter%20de%20API%20schuilgaat.) 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 van next cloud + +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/) + ## Kwaliteit, Stabiliteit en Veiligheid Als onderdeel van de CI/CD-straat voeren we een aantal tests uit, hiermee handhaven we zowel de code kwaliteiteisen van Nextcloud als die van onszelf. Deze testen worden geborgd in een workflow zodat je de resultaten zelf op iedere commit ziet. Let op! het falen van deze tests betekent dat de code niet naar master/main kan worden gemerged en dus niet in productie kan worden genomen. @@ -42,7 +93,7 @@ Voor frontend is dat: npm run lint ``` -![alt text](npm_lint.png) +![alt text](npm_lint.png) Voor de backend is dat: @@ -61,7 +112,7 @@ Voor frontend is dat: ```cli npm run test-coverage ``` - +![alt text](image.png) ![alt text](npm_test.png) Voor de backend is dat: @@ -96,45 +147,4 @@ composer audit ![alt text](composer_audit.png) -Voor beide geldt dat het aantal acceptabele critical vulnerabilities 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#:~:text=Een%20OpenAPI%20Specification%20\(OAS\)%20beschrijft,er%20achter%20de%20API%20schuilgaat.) 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/) +Voor beide geldt dat het aantal acceptabele critical vulnerabilities in _production packadges_ 0 is. \ No newline at end of file diff --git a/docs/developers/npm_lint.png b/docs/developers/npm_lint.png index 58136835485d36a4443f04989225140784695130..89df63039df234b792bf0430a6f49fda557cb209 100644 GIT binary patch literal 6766 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 QiknrH6*T0_WZwk*7nw~Uu>b%7 literal 6744 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

+`8nYcQ|ENy> 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 EALnhX>;M1& literal 8195 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 A?EnA( From 21d656a311840f96122f9d7404552668bbc6924c Mon Sep 17 00:00:00 2001 From: GitHub Actions Date: Wed, 7 Aug 2024 12:46:37 +0000 Subject: [PATCH 2/2] Update src from remark-lint --- docs/developers/aan-de-slag-met-development.md | 13 ++++++++----- 1 file changed, 8 insertions(+), 5 deletions(-) diff --git a/docs/developers/aan-de-slag-met-development.md b/docs/developers/aan-de-slag-met-development.md index 442f7f83..b62f5a6d 100644 --- a/docs/developers/aan-de-slag-met-development.md +++ b/docs/developers/aan-de-slag-met-development.md @@ -27,11 +27,12 @@ De Ontwikkelpartijen van [Core](https://documentatie.opencatalogi.nl/Docs/Projec ![alt text](feature_flow.png) ## Known issues + Iedere applicatie heeft technical debt, hier open en eerlijk over zijn helpt developers die willen bijdragen. Op dit moment hebben wij de volgende aandachtspunten waar we aan werken -- Test coverage frontend is te laag (is 70% zou 80%) moeten zijn -- Test coverage backend is te laag (is 60% zou 80%) moeten zijn -- Op de frontend bevaten de stores nog busnes logica die naar apparte services moet worden verplaats +* Test coverage frontend is te laag (is 70% zou 80%) moeten zijn +* Test coverage backend is te laag (is 60% zou 80%) moeten zijn +* Op de frontend bevaten de stores nog busnes logica die naar apparte services moet worden verplaats ## Application development @@ -46,6 +47,7 @@ Ook voor de documentatie wordt een linter gebruikt namelijk [remarklint](https:/ 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. ### Performance + Voor een goede gebruikers ervaring voor zowel bezoekers als medewerkers is het belangrijk dat dat de applicatie snel reageerd, we streven daarbij naar een performance van rond de 100 miliseconde (1/10) van een seconde. Maar overall zou de performance odner de 200 miliseconde moeten blijven. Acties die langer dan een seconde duren zijn reden om een purrl request te weigeren. ## API Development @@ -93,7 +95,7 @@ Voor frontend is dat: npm run lint ``` -![alt text](npm_lint.png) +![alt text](npm_lint.png) Voor de backend is dat: @@ -112,6 +114,7 @@ Voor frontend is dat: ```cli npm run test-coverage ``` + ![alt text](image.png) ![alt text](npm_test.png) @@ -147,4 +150,4 @@ composer audit ![alt text](composer_audit.png) -Voor beide geldt dat het aantal acceptabele critical vulnerabilities in _production packadges_ 0 is. \ No newline at end of file +Voor beide geldt dat het aantal acceptabele critical vulnerabilities in *production packadges* 0 is.