<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom"><channel><title>Web App on Wouter Brunenberg</title><link>https://brunenberg.github.io/nl/categories/web-app/</link><description>Recent content in Web App on Wouter Brunenberg</description><generator>Hugo</generator><language>nl-nl</language><lastBuildDate>Tue, 24 Mar 2026 00:00:00 +0000</lastBuildDate><atom:link href="https://brunenberg.github.io/nl/categories/web-app/index.xml" rel="self" type="application/rss+xml"/><item><title>birdsandbe.es Dagelijkse Puzzel</title><link>https://brunenberg.github.io/nl/projects/birdsandbees/</link><pubDate>Tue, 24 Mar 2026 00:00:00 +0000</pubDate><guid>https://brunenberg.github.io/nl/projects/birdsandbees/</guid><description>&lt;p&gt;&lt;a href="https://birdsandbe.es"&gt;Speel het spel op birdsandbe.es!&lt;/a&gt;&lt;/p&gt;
&lt;h2 id="overview-"&gt;Overview 🗺️&lt;/h2&gt;
&lt;p&gt;Dit is een dagelijks puzzelspel dat ik heb gemaakt omdat ik zulke spellen al in mijn dagelijkse routine had (Wordle, enclose.horse, dagelijkse LinkedIn-spellen). Het idee ontstond toen ik aan het eten was en om de een of andere reden bedacht hoe de voorwerpen op tafel geplaatst zouden moeten worden zodat licht/lasers van opzij zo veel mogelijk oppervlak zouden bedekken. Ik heb het idee meteen opgeschreven en de dag erna meteen aan de slag gegaan. In ongeveer 2 weken, waarbij ik er steeds aan werkte wanneer ik daar zin in had, had ik een afgerond product, een puzzelgenerator en een algoritme waarmee ik snel de optimale oplossing(en) kon vinden voor elke puzzel die ik het gaf.&lt;/p&gt;</description></item><item><title>Zwemles Beoordeling Tool</title><link>https://brunenberg.github.io/nl/projects/swimming-evaluation-tool/</link><pubDate>Sun, 29 Jun 2025 00:00:00 +0000</pubDate><guid>https://brunenberg.github.io/nl/projects/swimming-evaluation-tool/</guid><description>&lt;h2 id="overzicht-"&gt;Overzicht 🗺️&lt;/h2&gt;
&lt;p&gt;Dit was een groepsproject voor school dat ongeveer 20 weken duurde. We moesten een oplossing maken die meerdere problemen van de opdrachtgever aanpakte. De klant was een zwemvereniging die kinderen zwemmend lesgeeft en zwemdiploma&amp;rsquo;s uitgeeft. De instructeurs hielden de voortgang van zwemmers bij op papier, wat onhandig bleek in een natte omgeving. Andere problemen waren dat papier kwijt kon raken, het lang duurde om informatie te vinden, ouders/verzorgers geen inzage hadden in de voortgang van hun kind en dat ouders/verzorgers soms geen Nederlands spreken, waardoor het lastig was uit te leggen waar kinderen aan moesten werken.&lt;/p&gt;</description></item><item><title>Huishoudboekje Webapp</title><link>https://brunenberg.github.io/nl/projects/household-budget-web-app/</link><pubDate>Sun, 22 Jun 2025 00:00:00 +0000</pubDate><guid>https://brunenberg.github.io/nl/projects/household-budget-web-app/</guid><description>&lt;h2 id="overview-"&gt;Overview 🗺️&lt;/h2&gt;
&lt;p&gt;Dit was een duo opdracht voor het vak &amp;ldquo;Advanced Javascript&amp;rdquo;. Het doel was om een huishoudboekje applicatie te maken aan de hand van React en Firebase.&lt;/p&gt;
&lt;h2 id="technologies-used-"&gt;Technologies Used 🛠️&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;React&lt;/li&gt;
&lt;li&gt;Firebase&lt;/li&gt;
&lt;li&gt;Next.js&lt;/li&gt;
&lt;li&gt;TypeScript&lt;/li&gt;
&lt;li&gt;Tailwind + DaisyUI&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id="showcase-"&gt;Showcase 📸&lt;/h2&gt;
&lt;h4 id="account-select-pagina"&gt;Account select pagina&lt;/h4&gt;
&lt;p&gt;&lt;img src="https://brunenberg.github.io/images/projects/household_budget_accounts.png" alt="Account select page"&gt;&lt;/p&gt;
&lt;h4 id="startpagina"&gt;Startpagina&lt;/h4&gt;
&lt;p&gt;&lt;img src="https://brunenberg.github.io/images/projects/household_budget_home.png" alt="Home page"&gt;&lt;/p&gt;
&lt;h4 id="transacties"&gt;Transacties&lt;/h4&gt;
&lt;p&gt;&lt;img src="https://brunenberg.github.io/images/projects/household_budget_transactions.png" alt="Transactions page"&gt;&lt;/p&gt;
&lt;h4 id="analytics"&gt;Analytics&lt;/h4&gt;
&lt;p&gt;&lt;img src="https://brunenberg.github.io/images/projects/household_budget_analytics.png" alt="Analytics page"&gt;&lt;/p&gt;
&lt;h4 id="categorieën"&gt;Categorieën&lt;/h4&gt;
&lt;p&gt;&lt;img src="https://brunenberg.github.io/images/projects/household_budget_categories.png" alt="Categories page"&gt;&lt;/p&gt;</description></item><item><title>Beestje Op Je Feestje</title><link>https://brunenberg.github.io/nl/projects/beestje-op-je-feestje/</link><pubDate>Sun, 07 Apr 2024 00:00:00 +0000</pubDate><guid>https://brunenberg.github.io/nl/projects/beestje-op-je-feestje/</guid><description>&lt;h2 id="overzicht-"&gt;Overzicht 🗺️&lt;/h2&gt;
&lt;p&gt;&amp;lsquo;Beestje Op Je Feestje&amp;rsquo; is een app die we met z’n tweeën hebben gebouwd in ASP.NET voor een schoolproject. De nadruk lag op validatieregels, autorisatie en authenticatie, unit‑tests en hosting. Een admin kan dieren met specifieke eigenschappen aanmaken. Deze dieren kunnen vervolgens door klanten voor een dag worden gehuurd, vaak voor feestjes. Er zijn regels voor het combineren van dieren (bijv. bepaalde dieren mogen niet samen, afhankelijk van naam of type). Er zijn ook kortingsregels (zoals 2% korting voor elke opeenvolgende letter in het alfabet die voorkomt in de gecombineerde namen van alle gehuurde dieren). Daarnaast moesten we unit‑tests schrijven tot minimaal 40% code coverage. Tot slot hebben we de webapplicatie gehost op Azure, inclusief database.&lt;/p&gt;</description></item><item><title>Bazaar</title><link>https://brunenberg.github.io/nl/projects/bazaar/</link><pubDate>Mon, 01 Apr 2024 00:00:00 +0000</pubDate><guid>https://brunenberg.github.io/nl/projects/bazaar/</guid><description>&lt;h2 id="overzicht-"&gt;Overzicht 🗺️&lt;/h2&gt;
&lt;p&gt;&amp;lsquo;Bazaar&amp;rsquo; 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.&lt;/p&gt;
&lt;h3 id="gebruikersverhalen-zonder-acceptatiecriteria-die-maakten-geen-onderdeel-uit-van-de-opdracht"&gt;Gebruikersverhalen (zonder acceptatiecriteria; die maakten geen onderdeel uit van de opdracht)&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;Als gebruiker kan ik me registreren op het platform (zonder de mogelijkheid om te adverteren)&lt;/li&gt;
&lt;li&gt;Als gebruiker kan ik me registreren als particuliere adverteerder&lt;/li&gt;
&lt;li&gt;Als gebruiker kan ik me registreren als zakelijke adverteerder&lt;/li&gt;
&lt;li&gt;Als platformeigenaar wil ik de zakelijke registratie als PDF (contract) kunnen exporteren zodat deze ondertekend kan worden (gebruik van een package toegestaan)&lt;/li&gt;
&lt;li&gt;Als platformeigenaar wil ik de applicatie in twee talen aanbieden&lt;/li&gt;
&lt;li&gt;Als platformeigenaar wil ik contracten kunnen uploaden zodat deze kunnen worden goedgekeurd&lt;/li&gt;
&lt;li&gt;Als platformeigenaar wil ik dat API‑calls veilig worden aangeroepen&lt;/li&gt;
&lt;li&gt;Als bedrijf wil ik mijn eigen look‑and‑feel aan de applicatie kunnen geven&lt;/li&gt;
&lt;li&gt;Als bedrijf wil ik mijn eigen URL kunnen instellen zodat ik een landingspagina kan maken&lt;/li&gt;
&lt;li&gt;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.&lt;/li&gt;
&lt;li&gt;Als bedrijf wil ik een API ontsluiten zodat alleen mijn advertenties door een andere applicatie gebruikt kunnen worden&lt;/li&gt;
&lt;li&gt;Als bedrijf wil ik een CSV met advertenties kunnen uploaden zodat ik alles in één keer kan inladen en tijd bespaar&lt;/li&gt;
&lt;li&gt;Als platformeigenaar wil ik elke advertentie voorzien van een QR‑code zodat deze makkelijk te delen is (gebruik van een package toegestaan)&lt;/li&gt;
&lt;li&gt;Als adverteerder wil ik een huuradvertentie kunnen plaatsen&lt;/li&gt;
&lt;li&gt;Als adverteerder wil ik een kalenderoverzicht van al mijn verhuurmomenten zodat ik weet wanneer ik iets moet uitlenen en terugkrijgen&lt;/li&gt;
&lt;li&gt;Als adverteerder wil ik een kalenderoverzicht van wanneer mijn advertenties verlopen&lt;/li&gt;
&lt;li&gt;Als gebruiker wil ik een geschiedenis van gekochte producten kunnen zien&lt;/li&gt;
&lt;li&gt;Als gebruiker wil ik favorieten kunnen aanmaken&lt;/li&gt;
&lt;li&gt;Als gebruiker wil ik een kalenderoverzicht van gehuurde producten kunnen zien zodat ik weet wanneer ik iets kan ophalen en terugbrengen&lt;/li&gt;
&lt;li&gt;Als gebruiker wil ik een homepage met de laatste advertenties kunnen zien&lt;/li&gt;
&lt;li&gt;Als gebruiker wil ik een review van een huurproduct kunnen plaatsen&lt;/li&gt;
&lt;li&gt;Als gebruiker wil ik een review van een adverteerder kunnen plaatsen&lt;/li&gt;
&lt;li&gt;Algemeen &amp;gt; elke lijst moet gefilterd en gesorteerd kunnen worden&lt;/li&gt;
&lt;li&gt;Algemeen &amp;gt; elke lijst bevat paginering&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id="businessregels"&gt;Businessregels&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;Bij het retourneren van een product wordt slijtage berekend (volgens instellingen)&lt;/li&gt;
&lt;li&gt;Bij het retourneren van een product moet een foto worden geüpload&lt;/li&gt;
&lt;li&gt;Je mag maximaal 4 biedingen doen&lt;/li&gt;
&lt;li&gt;Je mag maximaal 4 advertenties plaatsen&lt;/li&gt;
&lt;li&gt;Je mag maximaal 4 huuradvertenties plaatsen&lt;/li&gt;
&lt;li&gt;Een advertentie is de koppeling met meerdere plaatsingen; met andere woorden: als je een kettingzaag verhuurt, kun je er een fles olie bij verkopen&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id="technologieën-"&gt;Technologieën 🛠️&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;PHP&lt;/li&gt;
&lt;li&gt;Laravel&lt;/li&gt;
&lt;li&gt;SQL‑database&lt;/li&gt;
&lt;li&gt;Microsoft SQL Server Management Studio&lt;/li&gt;
&lt;li&gt;Trello&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id="uitdagingen-en-oplossingen-"&gt;Uitdagingen en oplossingen 🧗🏻&lt;/h2&gt;
&lt;p&gt;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.&lt;/p&gt;</description></item><item><title>Project Bumbo</title><link>https://brunenberg.github.io/nl/projects/project-bumbo/</link><pubDate>Sun, 21 Jan 2024 00:00:00 +0000</pubDate><guid>https://brunenberg.github.io/nl/projects/project-bumbo/</guid><description>&lt;h2 id="overzicht-"&gt;Overzicht 🗺️&lt;/h2&gt;
&lt;p&gt;&amp;lsquo;Project Bumbo&amp;rsquo; was een groepsproject waaraan ik meedeed op school. Met een team van vijf pakten we een probleem aan voor ‘Bumbo’, een fictieve supermarktketen. De uitdaging: de tijdrovende en inefficiënte roosterplanning van de filiaalmanager. Dat leidde vaak tot overuren en diensten met te weinig of juist te veel personeel.&lt;/p&gt;
&lt;h2 id="technologieën-"&gt;Technologieën 🛠️&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;C#&lt;/li&gt;
&lt;li&gt;ASP.NET&lt;/li&gt;
&lt;li&gt;Entity Framework Core&lt;/li&gt;
&lt;li&gt;Azure‑hosting&lt;/li&gt;
&lt;li&gt;MVC&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id="uitdagingen-en-oplossingen-"&gt;Uitdagingen en oplossingen 🧗🏻&lt;/h2&gt;
&lt;p&gt;De overstap naar ‘echte’ software‑frameworks was een flinke stap. Mijn eerdere ervaring lag vooral bij JavaFX (meer een library dan een framework). ASP.NET bracht nieuwe uitdagingen met zich mee. Gelukkig kende ik het MVC‑patroon al, wat hielp bij het leren. Na wat opstartproblemen heb ik me erin vastgebeten en werd ik gaandeweg steeds vaardiger.&lt;/p&gt;</description></item><item><title>Sesamstraat‑website</title><link>https://brunenberg.github.io/nl/projects/sesame-street-website/</link><pubDate>Sun, 30 Oct 2022 00:00:00 +0000</pubDate><guid>https://brunenberg.github.io/nl/projects/sesame-street-website/</guid><description>&lt;h2 id="overzicht-"&gt;Overzicht 🗺️&lt;/h2&gt;
&lt;p&gt;Voor dit project moest ik een website maken rond een zelfgekozen thema. Ik koos voor Sesamstraat: de stijl spreekt me aan en het is lekker nostalgisch. De site moest aan een aantal eisen voldoen: vijf pagina’s met elk een eigen lay‑out, responsive met media queries en een webformulier (buiten de vijf pagina’s om).&lt;/p&gt;
&lt;h2 id="technologieën-"&gt;Technologieën 🛠️&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;HTML&lt;/li&gt;
&lt;li&gt;CSS&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id="uitdagingen-en-oplossingen-"&gt;Uitdagingen en oplossingen 🧗🏻&lt;/h2&gt;
&lt;p&gt;CSS onder de knie krijgen vond ik best lastig. De basis snapte ik wel, maar ik kende lang niet alle properties en vooral flexbox was verwarrend. Align‑items, justify‑items, align‑content en justify‑content haalde ik vaak door elkaar. Daardoor kostte het project meer tijd dan gedacht, maar ik was wel ruim voor de deadline klaar.&lt;/p&gt;</description></item></channel></rss>