Webapplicatie personeelsfeest · 2020. 1. 27. · 2 Naar usecase persoonlijke inschrijving beheren....
Transcript of Webapplicatie personeelsfeest · 2020. 1. 27. · 2 Naar usecase persoonlijke inschrijving beheren....
Webapplicatie personeelsfeest
Ontwerprapport projectweek
Teamnr: 52
Verhoeven Gert, Vanaelten Wouter, Vangoetsenhoven Arno, van Eck Yannick
2de fase IT Factory
Academiejaar 2019-2020
Campus Geel, Kleinhoefstraat 4, BE-2440 Geel
2
INHOUDSTAFEL
INHOUDSTAFEL ................................................................................................ 2
INLEIDING ....................................................................................................... 3
1 OPDRACHTBESCHRIJVING ................................................................. 4
1.1 Achtergrondinformatie ....................................................................... 4 1.2 Doelstellingen en doelgroepen ........................................................... 4
2 EISENANALYSE .................................................................................. 5
2.1 Functionele eisen ............................................................................... 5 2.1.1 Usecasediagram .................................................................................... 5 2.1.2 Usecases .............................................................................................. 7 2.1.2.1 Persoonlijke inschrijving .................................................................................................... 7 2.1.2.2 Helpers uitnodigen .......................................................................................................... 12 2.1.2.3 Helper inschrijving beheren .............................................................................................. 13 2.1.2.4 Organisator inloggen ....................................................................................................... 15 2.1.2.5 Personeelsfeest beheren .................................................................................................. 19 2.1.2.6 Activiteiten beheren ........................................................................................................ 23 2.1.2.7 Taken beheren................................................................................................................ 26 2.1.2.8 Inschrijvingen beheren .................................................................................................... 28 2.1.2.9 Mail template beheren ..................................................................................................... 32 2.1.2.10 Dagdeel beheren ............................................................................................................. 34 2.1.2.11 Personeelsfeest aanmaken ............................................................................................... 38 2.1.2.12 Deelnemers uitnodigen .................................................................................................... 40 2.1.2.13 Organisatoren beheren .................................................................................................... 42 2.1.2.14 Herinnering versturen ...................................................................................................... 45 2.1.2.15 Personeelsfeest archiveren ............................................................................................... 46 2.2 Niet-functionele eisen ...................................................................... 50 2.2.1 Implementatie ..................................................................................... 50 2.2.2 Externe interface ................................................................................. 50 2.2.3 Schaalbaarheid .................................................................................... 50 2.2.4 Beveiliging .......................................................................................... 50 2.2.5 Gebruiksvriendelijkheid ......................................................................... 50
3 DATAMODEL ..................................................................................... 51
4 PLANNING .......................................................................................... 2
3
INLEIDING
In verband met het vak Ontwerpproject maken wij een ontwerprapport voor een
systeem van de Thomas More hogeschool in Geel. Thomas More organiseert voor zijn
personeelsleden elk jaar een personeelsfeest.
In deze opdracht ontwerpen we een systeem dat onder andere kan dienen om
personeelsleden makkelijk te laten inschrijven voor personeelsfeesten en voor
bepaalde activiteiten die op dit personeelsfeest plaatsvinden.
In het eerste hoofdstuk vindt u de achtergrondinformatie van de opdrachtgever, de
doelstellingen en doelgroepen van het project. Vervolgens zal u onze eisenanalyse
vinden, hier stellen we ons systeem voor in een usecasediagram. Hierna vindt u ons
datamodel, dit is een voorstelling van de structuur van onze database. Tot slot sluiten
we dit rapport af met een planning van onze komende weken.
4
1 OPDRACHTBESCHRIJVING
In dit hoofdstuk wordt kort toegelicht hoe men voorheen het personeelsfeest organiseerde. Ook wordt beschreven hoe dit vlotter kan verlopen met behulp van ons systeem. Daarna wordt duidelijk gemaakt welke voordelen het nieuwe systeem zal opleveren en wie kan genieten van de voordelen.
1.1 Achtergrondinformatie
Onze webapplicatie is gemaakt om personeelsfeesten te organiseren. Organisatoren kunnen makkelijk het overzicht van een feest bekijken, personeelsleden en helpers kunnen zich via een link inschrijven en direct aangeven wat ze allemaal willen doen.
Momenteel organiseert men het personeelsfeest manueel. Men wordt uitgenodigd via e-mail en de organisatoren maken de planning. Om de planning van het personeelsfeest te maken moeten de organisatoren veel e-mails uitwisselen en mondeling communiceren, wat inefficiënt is en voor allerlei verwarring zorgt. Ons systeem minimaliseert drastisch alle zaken die kunnen mislopen omdat alle informatie in één applicatie wordt opgeslagen en weergegeven. Hierdoor verloopt de organisatie vlotter, efficiënter en overzichtelijker. Wat resulteert in een aangenaam gebruiksgemak voor zowel de deelnemers en organisatoren.
1.2 Doelstellingen en doelgroepen
Het hoofddoel van de toepassing is om de organisatie van het personeelsfeest vlotter en efficiënter te laten verlopen, afspraken en informatie duidelijk over te brengen en de planning van het personeelsfeest voor iedereen overzichtelijk te maken. Hierdoor zullen minder fouten worden gemaakt en kunnen de organisatoren zich focussen op het personeelsfeest.
Elke betrokken partij zal de volgende voordelen ondervinden van dit nieuwe systeem:
De organisatoren van het personeelsfeest zullen minder tijd moeten besteden aan het organiseren van het personeelsfeest. Ze zullen een overzicht hebben van deelnemers, helpers en de planning die ze snel en gemakkelijk kunnen aanpassen.
De deelnemers zullen zich makkelijker kunnen inschrijven. Ze zullen een duidelijk overzicht krijgen van alle activiteiten waaraan ze kunnen deelnemen. Ze kunnen aanduiden of ze willen eten en kunnen, als dit het geval is, kiezen uit de opties die de organisator bepaald heeft. Dit geldt ook voor de transportopties. De organisator bepaalt welke transportopties mogelijk zijn en de deelnemers kunnen daaruit kiezen.
Ten slotte zijn er nog de helpers. Via het systeem zal het makkelijker zijn om je als helper op te geven. Ze kunnen indien gewenst een voorkeur opgeven voor de taken die ze het liefst willen uitvoeren. Ook de helpers kunnen aanduiden of ze willen eten of niet en hun keuze opgeven indien ze blijven eten. De helpers kunnen ook uit de transportopties kiezen die de organisator heeft opgegeven.
5
2 EISENANALYSE
In dit hoofdstuk worden alle eisen en wensen van de klant beschreven, wat leidt tot een
overzicht van de mogelijkheden van het systeem.
2.1 Functionele eisen
De functionele eisen van het systeem worden in dit onderdeel voorgesteld a.d.h.v. een
usecasediagram en verklaard door verscheidene usecasebeschrijvingen. Deze eisen zijn
de hoofddoelen van het systeem, de functies die het systeem zeker moet bieden aan de
gebruikers.
2.1.1 Usecasediagram
Een usecasediagram geeft een mooi overzicht van de functionele eisen van het systeem,
alsook de verschillende soorten gebruikers van het systeem. Deze gebruikers, links van
het systeem voorgesteld, hebben interactie met het systeem. Deze gebruikers, ook wel
actoren genoemd, stellen al de mensen voor die in aanraking komen met het systeem
d.m.v. de functionaliteiten die zij kunnen gebruiken.
6
7
2.1.2 Usecases
2.1.2.1 Persoonlijke inschrijving
Functionaliteit: Als deelnemer, wil ik mijzelf inschrijven voor een personeelsfeest.
Voorwaarde: Ik heb mijn gepersonaliseerde link in mijn persoonlijke mail opengedaan.
Datamodel view:
Schermen:
Scherm 1 beginscherm:
8
Actie Beschrijving
1 Het systeem slaat de gegevens op en toont een melding vervolgens verwijst
het systeem door naar pagina 2 home deelnemer.
Scherm 2 home deelnemer:
Actie Beschrijving
1 Naar usecase helper inschrijving.
2 Naar scherm 3 inschrijven deelnemer.
3 Naar usecase helper uitnodigen.
4 Systeem geeft een pop-up venster waar de gebruiker het uitschrijven
moet bevestigen.
9
Scherm 3 inschrijven deelnemer:
Actie Beschrijving
1 Naar scherm 4 activiteit kiezen om een optionele activiteit te kiezen.
2 Het systeem slaat de gegevens op en verwijst naar scherm 2 home deelnemer
en systeem stuurt bevestigingsmail naar deelnemer.
3 Naar scherm 4 om activiteit te kiezen.
4 Naar scherm 4 activiteit kiezen om vorige activiteit te wijzigen.
10
Scherm 4 activiteit kiezen:
Actie Beschrijving
1 Naar scherm 3 inschrijven deelnemer.
2 Het systeem slaat de keuzes op en verwijst door naar scherm 3 inschrijven
deelnemer.
3 Naar scherm 5 detailpagina.
11
Scherm 5 detailpagina:
Actie Beschrijving
1 Naar scherm 4 activiteit kiezen.
12
2.1.2.2 Helpers uitnodigen
Functionaliteit: Als deelnemer, wil ik anderen kunnen uitnodigen om vrijwillig mee te
helpen op het personeelsfeest.
Voorwaarde: Ik heb mijn extra info ingegeven na het openen van de link.
Extra opmerking: Deelnemers kunnen zelf, zonder interactie van organisatoren, externe
personen uitnodigen om vrijwillig mee te helpen op het personeelsfeest.
Datamodel view:
Schermen:
Scherm Helpers uitnodigen:
Actie Beschrijving
1 Het systeem slaat de helper op en stuurt een uitnodigingsmail naar het
opgegeven email adres.
13
2.1.2.3 Helper inschrijving beheren
Functionaliteit: Als helper, wil ik mij inschrijven om vrijwillig te helpen tijdens het
personeelsfeest.
Voorwaarde: Helper heeft een persoonlijke link in zijn mail ontvangen.
Datamodel view:
14
Schermen:
Scherm inschrijven helper:
Actie Beschrijving
1 Het systeem slaat de gegevens op en stuurt een mail met de bevestiging en
verdere info naar de helper.
15
2.1.2.4 Organisator inloggen
Functionaliteit: Als organisator, wil ik inloggen in het systeem.
Voorwaarde: Organisator heeft een account.
Datamodel view:
Schermen:
Scherm 1 organisator nieuw wachtwoord:
Actie Beschrijving
1 Het systeem slaat het nieuwe wachtwoord op en geeft hier melding van,
waarna de gebruiker doorverwezen wordt naar het home scherm voor
organisatoren.
16
Scherm 2 inlogscherm:
Actie Beschrijving
1 Naar scherm 4 home organisator.
2 Naar scherm 3 wachtwoord vergeten.
Scherm 3 wachtwoord vergeten:
17
Actie Beschrijving
1 Organisator krijgt een nieuw wachtwoord opgestuurd en wordt teruggestuurd
naar scherm 1 organisator nieuw wachtwoord.
2 Naar scherm 2 inlogscherm zonder mail te versturen.
Scherm 4 home organisator:
18
Actie Beschrijving
1 Naar usecase helper inschrijving beheren.
2 Naar usecase persoonlijke inschrijving beheren.
3 Naar usecase helpers uitnodigen.
4 Naar usecase taken beheren.
5 Naar usecase activiteiten beheren.
6 Naar usecase inschrijvingen beheren.
7 Systeem logt de gebruiker uit en verwijst naar scherm 2 inlogscherm.
8 Naar usecase personeelsfeest beheren.
9 Naar usecase mail template beheren.
19
2.1.2.5 Personeelsfeest beheren
Functionaliteit: Als organisator, wil ik het personeelsfeest beheren.
Voorwaarde: Organisator is ingelogd.
Extra opmerking: Enkel de hoofdorganisator kan personeelsfeesten aanmaken.
Datamodel view:
Schermen:
Scherm 1 overzicht personeelsfeesten:
Actie Beschrijving
1 Naar scherm home organisator.
2 Naar scherm 2 personeelsfeest detail.
3 Naar scherm 3 personeelsfeest opties.
20
Scherm 2 personeelsfeest detail:
21
Actie Beschrijving
2 Naar scherm home organisator.
3 Systeem genereert een download bestand met de info van de
namiddagactiviteiten.
4 Systeem genereert een download bestand met de lijsten van vrijwilligers voor
het avondmaal.
5 Systeem genereert een download bestand met info van het aantal gekozen
gerechten en een lijst met allergieën.
Scherm 3 personeelsfeest opties:
22
Actie Beschrijving
1 Naar usecase activiteiten beheren.
2 Naar usecase taken beheren.
3 Naar usecase deelnemers beheren.
4 Naar usecase dagdeel beheren.
5 Naar usecase organisatoren beheren.
6 Naar home organisator.
23
2.1.2.6 Activiteiten beheren
Functionaliteit: Als organisator, wil ik de activiteiten tijdens een personeelsfeest beheren.
Voorwaarde: Organisator is ingelogd.
Datamodel view:
24
Schermen:
Scherm 1 activiteiten beheren:
Actie Beschrijving
1 Naar scherm 2 activiteit aanmaken/aanpassen.
2 Naar scherm 2 activiteit aanmaken/aanpassen.
3 Systeem verwijdert de geselecteerde items.
4 Naar scherm home organisator.
25
Scherm 2 activiteiten aanmaken/aanpassen:
Actie Beschrijving
1 Naar scherm 1 activiteiten beheren en slaat de gegevens op.
26
2.1.2.7 Taken beheren
Functionaliteit: Als organisator, wil ik alle taken behorende bij een personeelsfeest
beheren.
Voorwaarde: Organisator is ingelogd.
Datamodel view:
Schermen:
Scherm 1 taken beheren:
27
Actie Beschrijving
1 Naar scherm 2 taak aanmaken/aanpassen.
2 Naar scherm home organisator.
3 Naar scherm 2 taak aanmaken/aanpassen.
Scherm 2 taak aanmaken/aanpassen:
Actie Beschrijving
1 Naar scherm 1 taken beheren en sla de gegevens op.
2 Naar scherm 1 taken beheren.
28
2.1.2.8 Inschrijvingen beheren
Functionaliteit: Als organisator, wil ik alle inschrijvingen behorende bij een
personeelsfeest beheren
Voorwaarde: Organisator is ingelogd.
Datamodel view:
29
Schermen:
Scherm 1 inschrijvingen voor activiteiten:
30
Actie Beschrijving
1 Naar scherm feestarchief.
2 Systeem genereert een download bestand met de info van de
namiddagactiviteiten.
3 Systeem genereert een download bestand met de lijsten van vrijwilligers voor
het avondmaal.
4 Systeem genereert een download bestand met de info het aantal gekozen
gerechten en allergieën.
31
Scherm 2 inschrijvingen per activiteit detail:
Actie Beschrijving
1 Systeem geeft een pop-up melding waar de gebruiker het verwijderen moet
bevestigen.
2 Naar scherm 1 inschrijvingen voor activiteiten.
32
2.1.2.9 Mail template beheren
Functionaliteit: Als organisator, wil ik alle mail templates beheren.
Voorwaarde: Organisator is ingelogd.
Datamodel view:
Schermen:
Scherm 1 Mail template overzicht:
Actie Beschrijving
1 Naar scherm mail template detail.
2 Naar scherm mail template detail.
33
3 Naar scherm home organisator.
4 Systeem toont pop-upvenster waarin de gebruiker het verwijderen moet
bevestigen.
5 Naar scherm mail template - herinnering.
Scherm 2 Mail template detail:
Actie Beschrijving
1 Naar scherm 1 Mail template overzicht.
2 Het template wordt opgeslagen en verwijst naar scherm 1 Mail template
overzicht.
34
2.1.2.10 Dagdeel beheren
Functionaliteit: Als hoofdorganisator, wil ik alle dagdelen kunnen beheren.
Voorwaarde: Hoofdorganisator is ingelogd.
Datamodel view:
Schermen:
Scherm 1 home hoofdorganisator:
35
Actie Beschrijving
1 Naar usecase Persoonlijke inschrijving beheren.
2 Naar usecase Helper inschrijving beheren.
3 Naar usecase helper uitnodigen.
4 Systeem toont een pop-upvenster waar de gebruiker zijn uitschrijving
moet bevestigen.
5 naar usecase personeelsfeest aanmaken.
6 Naar usecase personeelsfeest beheren
7 Naar usecase mail template beheren
Scherm 2 dagdelen beheren:
36
Actie Beschrijving
1 Systeem toont een pop-upvenster waar de gebruiker het verwijderen moet
bevestigen.
2 Naar scherm 3 dagdeel aanpassen/aanmaken.
3 Naar scherm 3 dagdeel aanpassen/aanmaken.
4 Naar scherm 1 home hoofdorganisator.
37
Scherm 3 dagdeel aanpassen/aanmaken:
Actie Beschrijving
1 Systeem slaat de gegevens op en geeft melding over nieuw/aangepast
dagdeel.
2 Naar scherm 2 dagdelen beheren.
38
2.1.2.11 Personeelsfeest aanmaken
Functionaliteit: Als hoofdorganisator, wil ik een nieuw personeelsfeest aanmaken.
Voorwaarde: Hoofdorganisator is ingelogd.
Datamodel view:
39
Schermen:
Scherm 1 personeelsfeest aanmaken:
Actie Beschrijving
1 Systeem toont pop-up melding dat het nieuwe feest aangemaakt is en gaat
naar usecase personeelsfeest beheren.
2 Naar scherm home hoofdorganisator.
3 Systeem vult de gegevens van het vorige personeelsfeest in aan de linkerkant,
zodat de hoofdorganisator eventuele wijzigen kan aanbrengen.
40
2.1.2.12 Deelnemers uitnodigen
Functionaliteit: Als hoofdorganisator, wil ik deelnemers uitnodigen.
Voorwaarde: Hoofdorganisator is ingelogd.
Datamodel view:
Schermen:
Scherm 1 overzicht genodigden:
41
Actie Beschrijving
1 Systeem stuurt een inschrijving mail naar alle e-mailadressen in de lijst en
gaat naar scherm home hoofdorganisator.
2 Systeem verwijdert de geselecteerde genodigden uit de lijst.
3 De gebruiker selecteert vanuit zijn toestel een Excel bestand en importeert alle
e-mails en voegt ze toe aan de lijst.
4 Systeem voegt het ingevulde e-mailadres toe aan de lijst met genodigden.
42
2.1.2.13 Organisatoren beheren
Functionaliteit: Als hoofdorganisator, wil ik alle (mede) organisatoren beheren.
Voorwaarde: Hoofdorganisator is ingelogd.
Datamodel view:
43
Schermen:
Scherm 1 organisatoren beheren:
Actie Beschrijving
1 Systeem toont een pop-upvenster waarin de gebruiker het verwijderen moet
bevestigen.
2 Naar scherm 2 organisatoren aanmaken/aanpassen.
3 Naar scherm 2 organisatoren aanmaken/aanpassen.
4 Naar Home Scherm hoofdorganisator.
44
Scherm 2 organisatoren aanmaken/aanmaken:
Actie Beschrijving
1 Naar scherm 1 organisatoren beheren.
2 Systeem slaat de gegevens op en de gebruiker krijgt hier een melding over,
systeem stuurt mail naar organisator met persoonlijke link naar usecase
Organisator inloggen.
45
2.1.2.14 Herinnering versturen
Functionaliteit: Als tijd, wil ik herinneringen versturen naar iedereen die deelneemt aan
het personeelsfeest.
Extra opmerking: De herinneringsmail zal automatisch gestuurd worden, een bepaald
aantal dagen voor aanvang van het personeelsfeest.
Datamodel view:
Schermen:
Scherm 1 mail template herinnering:
Actie Beschrijving
1 Naar usecase mail templates beheren.
2 Systeem slaat de veranderingen op en geeft hier melding van, vervolgens
verwijst het systeem door naar usecase mail templates beheren.
46
2.1.2.15 Personeelsfeest archiveren
Functionaliteit: Als tijd, wil ik een personeelsfeest archiveren.
Voorwaarde: Het personeelsfeest is voorbij.
Extra opmerking: Een personeelsfeest wordt automatisch gearchiveerd als deze voorbij
is. De gebruiker hoeft hier niets voor te doen.
Datamodel view:
Schermen:
Scherm 1 overzicht personeelsfeest:
47
Actie Beschrijving
1 Naar scherm home hoofdorganisator.
2 Naar scherm 2 archief detail.
48
Scherm 2 archief detail:
49
Actie Beschrijving
1 Naar scherm 1 overzicht personeelsfeesten.
2 Systeem genereert een download bestand met de info van de
namiddagactiviteiten.
3 Systeem genereert een download bestand met de lijsten van vrijwilligers voor
het avondmaal.
4 Systeem genereert een download bestand met info van het aantal gekozen
gerechten en een lijst met allergieën.
50
2.2 Niet-functionele eisen
In dit hoofdstuk worden de niet-functionele eisen van het systeem, de webapplicatie,
besproken. In tegenstelling tot de functionele eisen hebben niet-functionele eisen wel
betrekking tot de randvoorwaarden van het systeem.
2.2.1 Implementatie
Het systeem wordt een webapplicatie zodat het overal bereikbaar is. Voor de taal kiezen
we PHP en jQuery, het framework wordt Laravel omdat dit een betrouwbaar framework
is. Als database gebruiken we phpMyAdmin dat draait op MySQL.
2.2.2 Externe interface
Er is in ons systeem geen nood aan een externe interface omdat de mails vanuit onze
webapplicatie kunnen versturen.
2.2.3 Schaalbaarheid
Het systeem moet minimaal 50 gebruikers tegelijk aankunnen tot een maximum van 250
gebruikers, gemiddeld zijn er ongeveer 100 gebruikers tegelijk.
2.2.4 Beveiliging
De wachtwoorden van de organisatoren moeten geëncrypteerd worden. Het systeem
moet met een veilige manier omgaan met alle data.
2.2.5 Gebruiksvriendelijkheid
Het systeem moet snel, vlot en simpel zijn voor alle deelnemers, organisatoren en
helpers.
51
3 DATAMODEL
52
Organisator: Een persoon die helpt bij het organiseren van een personeelsfeest.
Personeelsfeest: Een feest met bepaalde activiteiten dat georganiseerd wordt voor
deelnemers.
Dagdeel: Een deel van een dag waar een activiteit kan plaatsvinden op een
personeelsfeest.
Activiteit: Een activiteit die plaatsvindt op een personeelsfeest.
Locatie: De plaats waar een activiteit plaatsvindt.
Taak: Een opdracht behorende bij een activiteit, deze moet worden uitgevoerd door
een helper.
Persoon: Een persoon die kan helpen of deelnemen aan een personeelsfeest.
R1 + R2: Een personeelsfeest wordt georganiseerd door meerdere organisatoren.
Een organisator organiseert meerdere personeelsfeesten
R3: Een personeelsfeest kan meerdere dagdelen bevatten.
Een dagdeel kan maar in 1 personeelsfeest voorkomen.
R4: In 1 dagdeel kunnen meerdere activiteiten plaatsvinden.
Een activiteit kan maar in 1 dagdeel plaatsvinden.
R5: Voor een activiteit kunnen meerdere inschrijvingen zijn.
Een inschrijving is maar voor 1 activiteit.
R6: Voor een taak kunnen meerdere inschrijvingen zijn.
Maar een inschrijving is slechts voor 1 taak.
R7: Een persoon kan zich voor meerdere activiteiten inschrijven.
Een inschrijving is maar voor 1 persoon.
R8: Tot een activiteit behoren meerdere taken.
Maar een taak behoort maar tot 1 activiteit.
R9: Een persoon kan zich voor meerdere taken inschrijven.
Een inschrijving voor een taak is maar van 1 persoon.
R10: Een activiteit vindt maar op 1 locatie plaats.
Op een locatie kunnen meerdere activiteiten plaatsvinden.
2
4 PLANNING
Team NS52
Opdrachtgever Natalie Smets
Onderwerp Personeelsfeest
Teamleden Projectleider Documentbeheerder
Gert Verhoeven X
Yannick van Eck
Arno Vangoetsenhoven X
Wouter Vanaelten
3
4
5