Webapplicatie personeelsfeest · 2020. 1. 27. · 2 Naar usecase persoonlijke inschrijving beheren....

Post on 29-Sep-2020

0 views 0 download

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