Mission 2 of 12
Build a Book Collection Manager
Build an app to manage a book collection - add books, mark them read, and search or filter the shelf. Store the data in the browser so it survives a refresh.
By the end of this mission: “I can build an interactive CRUD app in JavaScript that stores, updates, searches and filters data.”
The tech stack for this mission
What you learn, checkpoint by checkpoint
Checkpoint A
Render the book list from data using JavaScript
- Model a book as a JavaScript object and store the collection in an array
- Generate an HTML card for each book and render it into the page
- Show the relevant fields - title, author and read status - on each card
Checkpoint B
Add, edit and remove books, and persist with localStorage
- Add a form to create new books and push them into the collection
- Edit and remove books, and re-render the list on every change
- Persist the collection with localStorage so it survives a refresh
Checkpoint C
Add search and filtering, then deploy
- Read a search input in real time and match it against book fields
- Add filters (for example read vs unread) and handle the empty state
- Polish the layout, test the full flow and deploy
AI companion mode · AI as Tutor
Most guidance · you still write first
Companion explains concepts, walks you through setup, and reviews your code. You still write the first draft and must explain what you shipped.
What proves you’re done
Deployed book manager with add / search / filter + Loom
Every mission ships something real and public. If you can’t explain it, you can’t submit it.
Reading is not building.
This mission is part of the paid 12-week programme - but the way we teach is free to try. The free trial puts you inside Sigmo, the learning portal our students use daily, with the 6 Projects in 6 Days precourse: real projects, real code, published to your own GitHub.
Start the free trialReady for the real thing?
The AI-Native Software Development Programme - all 12 missions with a live cohort, daily Buildroom, and mentors watching your back.