Java Script Challenge
🎯 DOM Challenge – InteractieveBouw Boekenkastjouw eigen mini-app
🎯 Leerdoelen
- Je past alle basisvaardigheden toe rondom DOM-manipulatie.
- Je maakt een interactieve webapp met HTML, CSS en JavaScript.
- Je leert werken met
localStoragegebruikersinvoer, events enheteventueelverwerken van gebruikersinvoer.localStorage. - Je leert een eenvoudige planning te maken voor je project.
- Je leert AI bewust inzetten en daarover verantwoording afleggen.
💡 Uitleg
JeIn werktdeze bijles eenontwerp uitgeverij.je Ze willen een interactieve webpagina waarop bezoekers hun favoriete boeken kunnen opslaan, bekijken en beheren. Jij gaatzelf een kleine webappinteractieve bouwenDOM-app. waarinJe gebruikerspast boekende kunnentechnieken toevoegen,toe bekijken,uit afvinkende alsvorige gelezen,lessen. verwijderenKies enéén zoeken.van de volgende apps, of verzin een eigen variant:
MogelijkhedenMogelijke van je webapp:projecten:
BoekenTodo-lijst:toevoegengebruiker(titelvoert+eenschrijver)taak Boekenin, kan deze toevoegen, afvinkenals gelezen(class toggle) , Boekenen verwijderen (event.target.remove()).BoekenQuiz: gebruiker kiest een antwoord en krijgt direct feedback.- Poll/stemming: klik op een optie, zie het aantal stemmen stijgen.
- Chatbox: gebruikersberichtjes invoeren die onder elkaar verschijnen.
- Boekenkast: boeken toevoegen, afvinken als gelezen, verwijderen, zoeken
(live filter) Boekenén opslaan in localStorage.
Let op: Bij elk project gebruik je minimaal deze onderdelen:
- Een invoerveld + knop
- Een lijst of reeks elementen die via JavaScript groeit
- Event-handling (bijv. click, submit)
classList.toggle()
ofremove()
Bij het project Boekenkast moet je daarnaast ook werken met localStorage
(blijften bewaardeen bijlive herladen)
zoekveld.
🛠️ Opdracht – BouwKies jeen eigenbouw boekenkastjouw mini-app
- Maak een
nieuw HTML-bestand metdeeennaamduidelijke naam, bijv.
.boekenkast.dom-project.html VoegKieseenwelkinvoerformulierkleintoeDOM-projectmetjeveldenmaaktvoor(zietitelenschrijver, en een knop “Voeg toe”hierboven).LaatMaakdeeenboekenplanningverschijnenvan je project in eenlijst.tabelElke(zierijvoorbeeldbevat:De titel en schrijverhieronder).EenWerkknopstap“✔voorgelezen”stap:(togglebeginclassmetgelezen)HTML, Eenvoegknopdaarna“🗑JavaScriptverwijder”
- Gebruik technieken uit eerdere lessen zoals
,localStoragequerySelectorom de lijst te bewarenaddEventListener
, enopnieuw te laden bij het openen van de pagina.innerHTML
. VoegStijlbovenaanjeeenpaginazoekveldmettoeCSSwaarmeezodatdedezegebruikeroverzichtelijklive kan filteren op titel of schrijver.is.
Bonus:
📋 voegVoorbeeld een knop toe om alles te wissen (met localStorage.clear()
).
🗓️ Planning maken
Maak vóórdat je begint een planning. Zet hierin:
Welke onderdelen je gaat bouwen (bijv. HTML-formulier, toevoegen, verwijderen...)In welke volgorde je daaraan werktEen schatting van hoeveel tijd je per onderdeel nodig hebt
Voorbeeldplanning
| Onderdeel | Tijd | Status |
|---------------------------|------|--------|
| HTML structuur | 20m | |
| JS: boekenitems toevoegen | 30m | |
| .....JS: verwijderen/afvinken | ....20m | |
| ......Styling | ....15m | |
etc.| etc.Reflectie schrijven | 15m | |
🧠 Reflectie
- Wat vond je het makkelijkst en het moeilijkst?
- Welke technieken heb je
toegepasttoegepast?(noemNoem er minstensdrie)?drie. - Waar heb je AI voor gebruikt?
- Wat zou je in de toekomst nog willen verbeteren of leren?
📤 Inleveren
- Lever je
boekenkast.dom-project.htmlinin,(zetsamende <style>sectie enmet jecodeCSS-bestandde(indien<code> sectie)apart). - Lever je planning in
(als .txt of .pdf)pdf. - Lever je reflectie in als .txt of .pdf.
- Lever je AI-logboek in: geef aan welke prompts je gebruikte, wat je codeerde met hulp van AI, en wat je zelf schreef of aanpaste.
Lever jereflectiein als .txt of .pdf.Bonus:Eventueel: voegeen screenshotscreenshots toe van je werkendewebapp.webapp als je trots bent op het resultaat!