Case Study
Makers BnB: Accommodation Booking Platform
This project solved the core booking workflow problem from scratch: users needed to list spaces, request dates, and avoid booking clashes. In a one-week team sprint, I focused on backend delivery, schema design, session auth flow, availability logic, and test coverage in a TDD-first setup.

Project Overview
MakersBnB was our final engineering project at Makers Academy, inspired by Airbnb. Over one intense week we built a full stack accommodation booking app from scratch, including accounts, listings, pricing, and booking management.
We worked in a team of four using pair programming, TDD, and Agile practices. Every feature started from a user story, then an RSpec test, then implementation. I naturally gravitated towards backend architecture, data modelling, and routing.
The goal was not just to tick off features but to build something that feels like a real product: clear user flows, a reliable database, and code we’d be happy to maintain.
Challenge and solution
One challenge was handling overlapping date requests reliably under time pressure. I solved it by validating booking windows in repository queries before writes, which reduced booking clashes and made request outcomes deterministic.
My Contributions
- Database & schema design: designed tables for users, listings, and bookings, with foreign keys, normalised structure, and SQL queries for availability and clash detection.
- Core routes & controllers: implemented routes for viewing listings, creating listings, requesting bookings, and viewing booking requests.
- Authentication & sessions: built login / signup flows, hashed passwords, and protected routes for logged in users.
- Testing: wrote unit tests for repositories plus Capybara feature tests covering full booking flows.
What this project demonstrates
- Comfort designing and querying a relational database.
- Ability to architect a full stack product from scratch.
- Experience working in a TDD first team environment.
- Strong communication through pairing, standups, and PR reviews.
Engineering decisions and trade-offs
- Availability checks before booking writes: we validated date ranges before persisting requests so overlapping bookings were rejected consistently.
- Session auth over heavier token setup: session-based auth kept the one-week delivery realistic while still protecting create and booking routes.
- Repository-style query flow: separating data access from route handlers made booking logic easier to test and reason about.
Debugging and implementation depth
- I implemented route handlers for listings, booking requests, and request review flows.
- I designed booking-related schema and query paths for date filtering and conflict checks.
- I fixed date-boundary failures in specs by tracing request values through route, repository, and query layers.
- I improved confidence with feature tests that covered create-listing, request-booking, and user-session behaviour end to end.
MakersBnB was the project where everything I'd learned at Makers came together with TDD, clean code, teamwork, and real product thinking. It's the foundation for the way I now approach every new project.