Overzicht 🗺️

‘Bazaar’ is een webapplicatie ontwikkeld met het Laravel‑framework als onderdeel van een studieproject. Het is gezamenlijk gebouwd door twee studenten. Het platform combineert elementen die doen denken aan Marktplaats en iBood en biedt zo een unieke marktplaatservaring. De applicatie ondersteunt drie gebruikersrollen: particuliere adverteerders, zakelijke adverteerders en klanten. Elke rol heeft specifieke rechten en functionaliteiten en kan interacteren met entiteiten zoals producten en bedrijven.

Gebruikersverhalen (zonder acceptatiecriteria; die maakten geen onderdeel uit van de opdracht)

  • Als gebruiker kan ik me registreren op het platform (zonder de mogelijkheid om te adverteren)
  • Als gebruiker kan ik me registreren als particuliere adverteerder
  • Als gebruiker kan ik me registreren als zakelijke adverteerder
  • Als platformeigenaar wil ik de zakelijke registratie als PDF (contract) kunnen exporteren zodat deze ondertekend kan worden (gebruik van een package toegestaan)
  • Als platformeigenaar wil ik de applicatie in twee talen aanbieden
  • Als platformeigenaar wil ik contracten kunnen uploaden zodat deze kunnen worden goedgekeurd
  • Als platformeigenaar wil ik dat API‑calls veilig worden aangeroepen
  • Als bedrijf wil ik mijn eigen look‑and‑feel aan de applicatie kunnen geven
  • Als bedrijf wil ik mijn eigen URL kunnen instellen zodat ik een landingspagina kan maken
  • Als bedrijf wil ik verschillende componenten aan mijn landingspagina kunnen koppelen zodat ik niet alles zelf hoef te bouwen. Een component kan zijn: uitgelichte advertenties, een introductietekst, afbeelding. Zie het als een paginalay‑outbouwer.
  • Als bedrijf wil ik een API ontsluiten zodat alleen mijn advertenties door een andere applicatie gebruikt kunnen worden
  • Als bedrijf wil ik een CSV met advertenties kunnen uploaden zodat ik alles in één keer kan inladen en tijd bespaar
  • Als platformeigenaar wil ik elke advertentie voorzien van een QR‑code zodat deze makkelijk te delen is (gebruik van een package toegestaan)
  • Als adverteerder wil ik een huuradvertentie kunnen plaatsen
  • Als adverteerder wil ik een kalenderoverzicht van al mijn verhuurmomenten zodat ik weet wanneer ik iets moet uitlenen en terugkrijgen
  • Als adverteerder wil ik een kalenderoverzicht van wanneer mijn advertenties verlopen
  • Als gebruiker wil ik een geschiedenis van gekochte producten kunnen zien
  • Als gebruiker wil ik favorieten kunnen aanmaken
  • Als gebruiker wil ik een kalenderoverzicht van gehuurde producten kunnen zien zodat ik weet wanneer ik iets kan ophalen en terugbrengen
  • Als gebruiker wil ik een homepage met de laatste advertenties kunnen zien
  • Als gebruiker wil ik een review van een huurproduct kunnen plaatsen
  • Als gebruiker wil ik een review van een adverteerder kunnen plaatsen
  • Algemeen > elke lijst moet gefilterd en gesorteerd kunnen worden
  • Algemeen > elke lijst bevat paginering

Businessregels

  • Bij het retourneren van een product wordt slijtage berekend (volgens instellingen)
  • Bij het retourneren van een product moet een foto worden geüpload
  • Je mag maximaal 4 biedingen doen
  • Je mag maximaal 4 advertenties plaatsen
  • Je mag maximaal 4 huuradvertenties plaatsen
  • Een advertentie is de koppeling met meerdere plaatsingen; met andere woorden: als je een kettingzaag verhuurt, kun je er een fles olie bij verkopen

Technologieën 🛠️

  • PHP
  • Laravel
  • SQL‑database
  • Microsoft SQL Server Management Studio
  • Trello

Uitdagingen en oplossingen 🧗🏻

De uitdaging was om een lange lijst aan eisen in een relatief korte tijd te implementeren. Veel van die eisen waren vrij vaag geformuleerd, waardoor interpretatie belangrijk was.

Showcase 📸

Afbeelding van de homepage
Afbeelding van de productpagina
Afbeelding van de agendapagina

Conclusie 🏁

Het project verliep over het algemeen soepel, maar richting de deadline bleken er meer werkzaamheden open te staan dan verwacht. Hoewel we op tijd begonnen, was het combineren met andere opdrachten uitdagender dan voorzien. Achteraf gezien had extra tijd aan het begin van de periode de werkdruk aan het einde kunnen verlagen.