Skip to content
Melvin Idema edited this page Feb 14, 2022 · 21 revisions

Wiki Project Tech

Week 1

Brainstorm

https://github.com/MelvinIdema/blok-tech/blob/main/wiki/CamScanner_02-07-2022_11.28n_1.jpg?raw=true

Job Stories

  1. Wanneer ik een huisdier wil wil ik weten of er adoptiedieren beschikbaar zijn zodat ik er één kan adopteren.
  2. Wanneer ik een huisdier adopteer wil ik zien welke bij mij passen zodat ik zeker weet dat het een succes is.
  3. Wanneer ik een adoptiedier zoek wil ik kunnen filteren op filters zodat ik niet lang hoef te zoeken.
  4. Wanneer ik een dier ter adoptie wil stellen wil ik snel een nieuw baasje vinden zodat het dier niet lang alleen is.
  5. Wanneer ik een adoptiedier zoek wil ik dieren aanbevolen krijgen zodat ik niet lang hoef te zoeken.

Requirements List

  1. De gebruiker moet kunnen inloggen
  2. De gebruiker moet een account kunnen aanmaken waarin de contactgegevens en voorkeuren opgeslagen staan.
  3. Het asiel moet een profiel voor verschillende dieren kunnen maken waarin eigenschappen, foto’s en voorkeuren opgeslagen staan.
  4. De gebruiker moet een overzicht van de eigenschappen, foto’s en voorkeuren bij een bepaald dier zien en in hoeverre dit een match is.
  5. De gebruiker moet adoptie kunnen aanvragen voor een bepaald dier.
  6. Het asiel moet kunnen zien wie er interesse heeft voor een dier.

Wireflow

https://github.com/MelvinIdema/blok-tech/blob/main/wiki/Untitled_Diagram.jpg?raw=true

Target Audience

Mijn doelgroep zijn dierenasielen en wanna-be huisdiereigenaren.

De Idee

Het concept is een matching app voor asieldieren en wanna-be huisdiereigenaren. Een dierenasiel kan een profiel aanmaken voor de asieldieren en daarbij informatie toevoegen. Wanna-be huisdiereneigenaren kunnen ook een profiel aanmaken en daarbij aangeven waar zij naar opzoek zijn en informatie over zichzelf toevoegen. Als de informatie en vereisten matchen krijgen beide profielen een melding -> het is een match!

Week 2

Templating Engines

Ik heb al ervaring met React (JSX) en heb in het verleden gewerkt met PHP. Daarom zoek ik een intuïtieve templating engine die zoveel mogelijk lijkt op wat ik al ken. Hiermee verlaag ik m'n leercurve en kan ik sneller iets vets produceren. Ook wil ik een wat populairdere templating engine gebruiken zodat er veel documentatie beschikbaar is op internet en vrijwel alle beginners vragen al gesteld zijn op StackOverflow.

Top 5 Templating Engines.

De top 5 Templating Engines zijn:

  1. Handlebars
  2. ETA
  3. EJS
  4. Mustache
  5. Marko

Handlebars

Handlebars is gebaseerd op Mustache. Ik ben het eens met Handlebars op het punt dat logica apart van de view moet staan. Naast dat deze enorm populair is lijkt mij dit een goede keus. Het lijkt ook wel een beetje op JSX {{ variable }} wat ik fijn vind. Alleen de niet ontsnapbare logica vind ik onlogisch. {{#each people}}. Heel lelijk. Hopelijk lost een andere populaire Templating Engine dit wel netjes op.

ETA

Volgens de website van ETA lijkt ETA erg op EJS maar is het beter in een aantal punten. Voornamelijk compiling en rendering tijd. Dus naast Mustache kan ik ook EJS afstrepen. Aangezien ETA populairder is dan EJS. Ik vind het fijn bij ETA dat je 'gewoon' Javascript kunt schrijven in je view. Zeker een pluspunt!

Marko

Hier ben ik eigenlijk direct het meest enthousiast over. Elk HTML bestand is valide Marko, dus dat is echt heel fijn. Verder breid het HTML uit. Dus de leercurve is, vermoed ik, heel klein. Het lijkt ook echt veel op JSX; tenminste, op het eerste gezicht. Ook de progressive rendering is heel cool.

Bij het uitproberen van Marko kwam ik erachter dat je voor Marko een bundler nodig hebt. Nu heb ik wel eens met WebPack gewerkt en een taskmanager als Gulp. Maar heb ik niet veel ervaring met het zelf instellen van een bundler. Zeker niet op de server-side. Leuke uitdaging wel.

Mijn Keuze

Ik heb al eerder gewerkt met Handlebars en EJS en vond beide eigenlijk niet heel intuïtief werken. Met Marko heb ik nog niet eerder gewerkt maar het klinkt veelbelovend en uitdagend. Daarom kies ik voor Marko als m'n templating engine.

Clone this wiki locally