Technisch ontwerp¶
Op basis van het functioneel ontwerp wordt een technisch ontwerp gemaakt.
Class structuur¶
Leg de class structuur vast met je team:
- Beschrijf welke belangrijke entiteiten er zijn en wat die doen.
- Beschrijf welke architectuur “lagen” jullie gaan toepassen. Denk hierbij bijvoorbeeld aan de toepassing van MVC, Services, enzovoorts.
- Beschrijf visueel de structuur met een Class Diagram.
Zoveel mogelijk logica in de Backend
Het uitgangspunt moet zijn dat de frontend zo “dom” of “dun” mogelijk is. Dit houdt in dat de Frontend enkel logica mag bevatten om data visueel te representeren en met de Backend API te communiceren. Al het overige, bijvoorbeeld database communicatie, zit dus in de Backend zelf!
Endpoint overzicht¶
Denk na over welke endpoints er zijn en noteer deze. Beantwoord ook de volgende vragen voor iedere endpoint:
- Wat doet het endpoint? Iets opslaan? Iets berekenen?
- Wat voor entiteit(en) geeft het endpoint terug?
- Wat voor entiteiten ontvangt het endpoint? Is het een GET, POST, anders? Welke parameters zijn er?
Database¶
De webshop kan niet bestaan zonder een database. Die moet dus ook worden ontworpen met en geimplementeerd. Denk hierbij aan de volgende stappen:
- Het bestand met product data analyseren.
- Toepassen van normalisatie bij het ontwerpen van de database.
- ERD ontwerp maken op basis van product data.
- EERD ontwerp maken op basis van het ERD.
- Implementeren van de database.
- Afstemmen met stakeholders en feedback verwerken.
- Documenteren in de project repository.
Bijgewerkt .sql
-bestand
Er moet ten alle tijden een bijgewerkt .sql
-bestand in je repository staan om de database opnieuw mee aan te kunnen maken. Dit bestand kun je met meerdere tools exporteren van een bestaande database, of met de hand maken.
Infrastructuur¶
Leg vast welke derde partijen er nodig zijn en hoe deze toegepast zullen gaan worden in de applicatie.
Verwachtingen
We verwachten dat het technisch ontwerp ondergebracht wordt in verschillende .md
-bestanden in de docs
-folder van het project. Ieder teamlid dient hier een evenredige bijdrage aan te leveren!