Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.

...

In het deployment diagram is te zien dat de backend en frontend in dezelfde springboot server staan. Dit is gedaan zodat de hele applicatie op 1 server kan functioneren. Ook staat deze springboot server al in een JDI Server, aangezien dit een plek is waar de applicatie waarschijnlijk op gaat draaien. De database server is echter nog niet bekend en daarom heet die dan ook gewoon database server.

...

Design decisions related to the database

...

Hieronder de beslissingen die wij hebben genomen met betrekking tot de database:

Decision

Description

Problem/Issue

Het opslaan van de dag bij werktijden.
DecisionBij het oplsaan van de dag hebben wij ervoor gekozen om dit te doen als een int in plaats van een string met daadwerkelijk: 'maandag', 'dinsdag' etc.
AlternativesHet wel opslaan als strings.
ArgumentsWe hebben hiervoor gekozen omdat het zo makkelijker was voor zowel de frontend en de backend om er doorheen te kunnen lopen met bijv loops.

Decision

Description

Problem/Issue

Het ophalen van een verlof aanvraag of declaratie.
DecisionIn eerste instantie hadden wij primary keys opgesteld die bestond uit meerde kolommen, uiteindelijk hebben we ervoor gekozen een ID kolom toe te voegen.
AlternativesHet laten als een collectie van kolommen.
ArgumentsWe hebben hiervoor gekozen omdat het zo makkelijker was om ze op te halen en je minder gegevens nodig had in zowel de front als backend om dit voor elkaar te krijgen.

Decision

Description

Problem/Issue

Afstanden berekenen voor een declaratie d.m.v. de Google API.
DecisionWij hebben ervoor gekozen een route tabel aan te maken om zo afstanden van routes op te slaan zodat we de Google API zo min mogelijk aan roepen om requests te besparen.
AlternativesTelkens de API aanroepen om de meest up to date afstand te krijgen.
ArgumentsWe hebben hiervoor gekozen omdat we op deze manier requests besparen naar de API, je kan maar een bepaald aantal requests gratis doen voordat je moet gaan betalen.

Decision

Description

Problem/Issue

Afstanden uit routes halen.
DecisionWij hebben ervoor gekozen om de route tabel los te koppelen van de declaratie tabel, eerst waren deze gekoppeld.
AlternativesRoutes wel koppelen aan de declaratie tabel. De foreign key op no action zetten.
ArgumentsWe hebben hiervoor gekozen omdat we de declaraties los wouden hebben staan van de routes, als een route veranderd of weg gaat willen wij dat dit niks veranderd aan de al bestaande declaraties.

Decision

Description

Problem/Issue

Adressen oplaan om de afstanden te berekenen.
DecisionWij hebben ervoor gekozen om ook coordinaten op te slaan.
AlternativesHet adres gebruiken.
ArgumentsWe hebben hiervoor gekozen omdat het met coordinaten is meer precies is en er ook geen probleem kan voorkomen als er 2 straten zijn die hetzelfde heten per ongeluk verward worden.

Decision

Description

Problem/Issue

Start en eindtijd van een verlof aanvraag opslaan.
DecisionWij hebben ervoor gekozen om de start en eindtijd op te slaan als een int.
AlternativesEen start en eind datetime gebruiken in plaats van ze opsplitsen.
ArgumentsWe hebben hiervoor gekozen omdat het berekenen van de uren makkelijker ging met als ze een int waren.

Decision

Description

Problem/Issue

Bij de tabellen locatie, reiskostenDeclaratie, verlof en tarief zijn er types en soorten.
DecisionWij hebben ervoor gekozen om hier checks op te zetten.
AlternativesGeen checks gebruiken.
ArgumentsWe hebben hiervoor gekozen om ervoor te zorgen dat iedereen dezelfde standaard gebruikt en deze overal overeen komen.

Decision

Description

Problem/Issue

Werknemers mogen wel meerdere klanten reizen maken op een dag maar niet meer dan 1 thuiswerk of woon-werk op een dag.
DecisionWij hebben ervoor gekozen om hier checks op te zetten met een functie die kijkt of als de declaratie thuis of woon-werk is, kijkt of er al een bestaat van een van die types.
AlternativesGeen check gebruiken.
ArgumentsWe hebben hiervoor gekozen om ervoor te zorgen dat het inserten hiervan altijd goed verloopt en er geen declaraties in komen die er dus niet in zouden mogen staan.