MonsterBattles
Van Kotlin-basisconcepten naar een werkende REST API. Deze leeswijzer laat zien wat ik heb gebouwd, wat ik heb geleerd en waar het bewijs te vinden is.
Wat is MonsterBattles?
MonsterBattles is een backendapplicatie waarmee monsters beheerd kunnen worden via een REST API. Elk monster heeft een element en statistieken zoals HP, aanval, verdediging en snelheid. Daarnaast kunnen twee monsters een gevecht aangaan, waarbij de applicatie de aanvalvolgorde, schade en winnaar berekent.
Ik gebruik Kotlin voor de applicatielogica, Ktor voor de HTTP API en H2 met Exposed voor gegevensopslag. De code is verdeeld over routes, services, modellen en repositories.
Leeswijzer: zeven weken
De weekpagina's bouwen op elkaar voort. Elke pagina beschrijft de theorie, bevat codevoorbeelden en legt de toepassing binnen MonsterBattles uit. Via onderstaande links is het bewijs per onderwerp terug te vinden.
Variabelen, functies, condities en basislogica.
WEEK 02 Objectgericht programmeren →Monster, Stats, Element en encapsulatie.
WEEK 03 OO & Functional Programming →Battlelogica, functies en damageberekening.
WEEK 04 Ktor & REST →Routes, services en monster-CRUD.
WEEK 05 Collections & Serialization →Filteren, sorteren en JSON.
WEEK 06 Architectuur & Battles →Scheiding van verantwoordelijkheden en battle-API.
WEEK 07 Persistence & Testing →H2, Exposed en automatische tests.
Broncode en bewijsmateriaal
De GitHub-repository bevat het gerealiseerde Kotlin-project, inclusief broncode, configuratie en tests. Dit portfolio vormt de toelichting op de gebruikte concepten en ontwerpkeuzes.
GitHub: https://github.com/CleanPrompt/MonsterBattles ↗
Diagrammen en systeemontwerp
De onderstaande diagrammen geven een overzicht van de functionaliteit, code-indeling en verwerking van verzoeken. Klik op een afbeelding om de volledige versie te openen. De uitgebreide uitleg staat bij de bijbehorende week.
Persoonlijke reflectie
Tijdens MonsterBattles heb ik geleerd hoe ik verschillende programmeerconcepten uit Kotlin kan combineren in één backendproject. Vooral het werken met classes, REST API's en de verdeling tussen routes, services en repositories heeft mij geholpen om de structuur van een applicatie beter te begrijpen.
Ik kwam ook compilerfouten en ontbrekende imports tegen. Door de foutmeldingen te onderzoeken en de code aan te passen, heb ik geleerd om gerichter problemen op te lossen. Uiteindelijk zijn alle 13 automatische tests geslaagd en kon ik meerdere API-verzoeken succesvol uitvoeren.
De zeven weekpagina's laten zien hoe ik de theorie heb toegepast. De code, diagrammen en testresultaten ondersteunen dit. Mijn belangrijkste leerpunt is dat software niet alleen moet werken, maar ook overzichtelijk en testbaar moet zijn.
AI-verantwoording
Tijdens het ontwikkelen van MonsterBattles heb ik ChatGPT gebruikt als hulpmiddel bij het begrijpen van programmeerconcepten, het uitwerken van de projectstructuur, het schrijven van code en het oplossen van foutmeldingen. AI heeft ook geholpen bij het opstellen en structureren van de documentatie.
De gegenereerde code en uitleg heb ik als basis gebruikt. Vervolgens heb ik de applicatie zelf uitgevoerd, compilerfouten opgelost en de werking gecontroleerd met automatische tests en HTTP-verzoeken. Alle 13 automatische tests zijn geslaagd. In dit portfolio laat ik zien hoe ik de leerstof heb toegepast en hoe AI het ontwikkelproces heeft ondersteund.
Verder lezen
Begin bij Week 01 – Kotlin Fundamentals en volg de opbouw tot en met Week 07. Wie vooral de technische keuzes wil bekijken, kan direct naar Week 06 – Architectuur & Battles en Week 07 – Persistence & Testing.