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. |