4.POCE.2: Drummers for Hire


Create an app that allows anyone to hire a drummer for their party or event.


URL Path
Render a single drummer. The id param is a primary key from the users table.
Accept a post request to make a reservation with this drummer. The drummer_id param is a primary key from the users table.
Get a list of all reservations for this drummer.
Render a list of drummers.

Getting Started

Begin by forking the exercise repo:​


Part 1

Begin by making the migrations and seed data for the app.
For simplicity, seed the app with all of the drummers. That is, don't allow creation of new drummers in the app.
The app has no user login. Anyone can create a reservation.
A reservation only has a date. A drummer is hired by day only (no time).
A drummer has many reservations.

Part 2

When creating the routes begin with a single route and then follow with it's associated MVC components.
Create a route. If needed add a new controller. If needed add a new model. If needed add a new EJS file. Don't add all routes or models or controllers at once.
Create the routes in the order shown above.

More Comfortable


Add a per-gig price for each user/drummer. Create a migration to add this column to the drummers table.


Add the ability for the drummer to record what equipment they have, such as a drum set or other percussion instruments such as a xylophone. A drummer can have many pieces of equipment. Since the app does not allow creation of a new drummer, create the seed data for all equipment as well.


Add the ability for users to log in and reserve a drummer.

Reference solution

Click here to see the reference solution for this post class.