Created
April 15, 2017 10:47
-
-
Save galulex/502bdbaf9cf84132be673704f3020962 to your computer and use it in GitHub Desktop.
Premium
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Summary | |
We are a local home cleaning company called Homework. Today we are keeping track of all our bookings using a spreadsheet and we want to move it into a web application instead using Ruby on Rails. Our main goal with this project is to make it possible for customers to schedule a booking online. I've already created the scaffolding of the app for you and now I need you to add some functionality to it. This should take you about 1-2 hours, but you have up to 4 hours to complete it. | |
Deliverables | |
All models and columns should have validation as described in the model spec below. | |
Currently we operate in 10 cities, but plan to expand quickly. We need a way to store the list of cities we operate in and the ability to add to the list. You should create a new table to do this. | |
On the Cleaner Form we need a way to select the cities a cleaner works in. This should be a checkbox list populated by the list of cities we operate in. You may need to need to create a new table to store this data. | |
We need a way for customers to signup and schedule a booking all on one form. To accomplish this you will need to do the following: | |
Create a new root page for the application with a form designed for customers to signup and create a booking. | |
On this form, capture all the data needed to create a customer in the database (first name, last name, phone number). | |
If the customer already exists in the database (use phone number to determine this) use the existing record instead of creating a new one. You should probably add a validation to enforce this. | |
Let the customer select what city they are in from the cities table created earlier. | |
Let the customer specify a date and time when they would like their house cleaned. | |
When the user submits the form, look for cleaners that work in the specified city that do not have any bookings that conflict with the time specified. | |
If you can find an available cleaner, create the booking and display the name of the cleaner assigned to the booking. | |
If you can't find an available cleaner, tell the user that we could not fulfill their request. | |
Write tests for the parts of the application you feel need it the most. | |
When you are done, please zip up the whole app directory with dependencies and upload it below. | |
Models | |
customer | |
first_name (required) | |
last_name (required) | |
phone_number (optional) | |
booking | |
customer (required) | |
cleaner (required) | |
date (required) | |
cleaner | |
first_name (required) | |
last_name (required) | |
quality_score (required, must be a number between 0.0 and 5.0) | |
Restrictions | |
Do not remove git from your application directory. | |
No additional third-party gems other than those already included | |
Setup | |
git clone https://github.com/prehire/1679fa79-5dbc-489a-b0dd-2288e0cf9e54.git | |
cd 1679fa79-5dbc-489a-b0dd-2288e0cf9e54 | |
bundle install | |
rake db:migrate | |
rails server |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment