joeni

prioriteitenlijst.org

1
#+language: nl
2
#+latex_class: article
3
#+latex_class_options: [a4paper]
4
#+latex_header: \usepackage{pdfpages}
5
#+latex_header: \usepackage[dutch]{babel}
6
#+OPTIONS: toc:nil
7
#+author: Maarten Vangeneugden
8
#+email: maarten.vangeneugden@student.uhasselt.be
9
#+title: Prioriteitenlijst bachelorproef
10
Zoals gevraagd bij de vorige vergadering, heb ik een prioriteitenlijst
11
opgesteld, waarin ik (informeel) oplijst hoe ik denk dat het project het beste
12
kan worden voortgezet.
13
14
In aflopende volgorde van prioriteit:
15
16
1. *Huidige staat Administration afwerken.* Ik heb op dit moment de basis gelegd
17
   voor wat de functionaliteit van het Studentendossier moet implementeren.
18
   Alhoewel het praktisch met
19
   zekerheid te zeggen is dat het nog niet af is, is afwerken wat ik nu al heb
20
   het beste om nu te doen. Als dat is afgewerkt, hoeft er ook niet meer worden
21
   omgekeken naar de basis, omdat die al klaar is, en kan er verder gewerkt
22
   worden aan nieuwe features.
23
   Dit betekent echter _niet_ dat, moesten er nieuwe features gevraagd worden,
24
   dat deze genegeerd worden. Deze zullen worden opgeslagen in een TODO-lijstje,
25
   zodat deze later kunnen worden toegevoegd.
26
2. *Huidige staat Courses afwerken.* Dezelfde redenering als Administration is van toepassing.
27
28
Administration en Courses zullen elk in een welbepaalde volgorde worden
29
afgewerkt. _Hoofdzakelijk_ zal dat in deze volgorde zijn:
30
   1. *URL's en Views.* De databank is ondertussen in orde. Het is nu zaak om
31
      URL's op te stellen, zodat de verschillende pagina's bereikt kunnen
32
      worden, en Views die op deze URL's kunnen antwoorden. In de Views (de
33
      functies die reageren als een URL wordt opgevraagd, en alle benodigde
34
      informatie verzamelen en terugsturen naar de gebruiker) zal ook
35
      toegezien worden op de status van de gebruiker, zodat een student bv. niet
36
      zijn/haar eigen punten kan aanpassen.
37
      De reden dat dit als eerste wordt gedaan, is omdat de volgende onderdelen
38
      niet kunnen werken zonder dat de Views/URL's er zijn.
39
   2. *Forms.* Forms laten toe dat de gebruiker via de website informatie
40
      voorziet aan de server (en dus aan de databank). Dit wordt gedaan via
41
      HTML-formulieren ("Forms"). Deze worden in Django echter apart opgesteld,
42
      zodat ze gemakkelijk verbonden kunnen worden met de databank, maar ook
43
      mooi in de templates kunnen worden voorgesteld.
44
   3. *Templates.* Dit zijn de HTML-templates die gebruikmaken van de
45
      [[https://docs.djangoproject.com/en/2.0/ref/templates/language/][Django Template Language]]. Hiermee zullen de uiteindelijke pagina's
46
      geconstrueerd worden, en zo aan de gebruiker getoond worden. Deze bouwen
47
      voort op de informatie van Views, construeren links met de informatie van
48
      URL's, en laten interactie toe met de informatie uit Forms. Merk op dat
49
      dit enkel over de HTML-pagina's gaat, *niet over de stylesheets (CSS)*.
50
Merk op dat ik zeg: "Hoofdzakelijk"; deze onderdelen houden allemaal in meer of
51
mindere mate verband met elkaar. Het is af en toe dus handig om van de
52
opgestelde volgorde af te wijken, om een bepaald onderdeel af te kunnen werken.
53
54
Het uiteindelijke resultaat hiervan zal er voor de eindgebruiker relatief
55
"barok'' uitzien; geen enkele pagina heeft op dit moment stylesheets (de
56
documenten die uitleggen hoe een webpagina eruit moet zien). Maar dit is ook
57
expres, omdat ik van mening ben dat de pagina's op zich ook bruikbaar moeten
58
zijn. Hiervoor maak ik veel/handig gebruik van de HTML(5)-tags, die /betekenis/
59
overbrengen aan de browser. (Een gedetailleerde uitleg over wat dit precies
60
betekent zal ik in de eigenlijke bachelorthesis uitleggen)
61
62
Als de bovenstaande punten zijn afgewerkt, zijn er nog enkele additionele
63
punten:
64
65
3. [@3] *(S)CSS-code schrijven.* Dit hoeft nog geen definitieve versie te zijn, maar
66
   het moet wel een bruikbaar geheel teweeg brengen, dat ook voor het oog fijn
67
   is om mee te werken.
68
4. *Nieuwe functionaliteit implementeren.* Dit gaat over de later aangebrachte
69
   verzoeken inzake nieuwe /features/ voor de applicaties. Deze zullen een stuk
70
   sneller kunnen worden geschreven, omdat alle onderliggende vereisten (zoals
71
   templates, URL's, ...) al deels geschreven zijn, of er voorbeelden zijn die
72
   gemakkelijk gekopieerd kunnen worden. Dankzij de CSS-bestanden zullen deze er
73
   ook al uitzien alsof ze al volledig klaar zijn.
74
5. *Vertalingen opstellen.* De code wordt overal in het Engels geschreven;
75
   teksten, menu's, ... Ik heb echter op voorhand (waar nodig) in de code
76
   aangegeven welke delen vertaald moeten worden. Als al het bovenstaande
77
   degelijk werkt, kan er begonnen worden met de Nederlandse vertaling.
78
79
Tussen al dit werk door, zal er ook gewerkt worden aan *tests*. Mijn methode om
80
te testen in dit project, is dat ik de code eerst schrijf, en als er fouten
81
optreden (of ik kan snel voorzien waar een fout zou kunnen zitten), dat ik voor
82
die functies direct tests schrijf. [[https://docs.djangoproject.com/en/2.0/ref/validators/][Validators]] (functies die controleren of wat
83
een gebruiker heeft ingevoerd wel in het juiste formaat is) zijn goede
84
voorbeelden van tests waarvan ik ze op voorhand al kan schrijven.
85
Ik zal geen testen schrijven van functionaliteit van de /software libraries/ die
86
ik gebruik van derden (zoals Django zelf). Ik ga er hierbij uit dat die al
87
getest ís.
88
89
Als deze punten zijn afgerond, kan de prioriteit verschuiven naar Agora.
90
Dezelfde volgorde zoals eerder opgesomd zal worden aangehouden.