We would like you to build a simple appointment system.
A appointment should comprise of 1, 2 or all 3 of these things but is limited to 1 of each:
Person(a living breathing human , i.e. Joe Bloggs) Resource(a piece of equipment, or a room, i.e. Room 34) Service(The non physical part of the appointment, i.e. Mortage advice, Yoga Class)
A person has:
-
a name
-
a description
-
an email address
-
many companies
-
can be disabled
A service has:
-
a name
-
a description
-
a price
-
many companies
-
can be disabled
A resource has:
-
a name
-
a description
-
many companies
-
can be disabled
A company should have:
-
a name
-
a contact email
-
many services
-
many people
-
many resources
-
can be disabled
If something is disabled, it means it cannot have appointments made against it.
An appointment should have:
-
a date
-
a time
-
name of the booker
-
a company
Has 1 of:
-
a service
-
a resource
-
a person
Your task:
To clone this repository and finish the API that has been started.
-
Finish off the API by building the following endpoints:
-
Full CRUD for people, services, resources and appointments
-
Read and Update for Companies.
-
-
Add tests for both happy and sad path outcomes, use Rspec.
-
Be prepared to talk through your approach and any significant design decisions that you made whilst completing this challenge.
-
Please provide all the steps needed to run the project.
Remember to take your time, encapsulate your code, make it as DRY as possible and follow Ruby and Rails best practices.
PLEASE DO NOT MAKE YOUR SOLUTION PUBLIC ON GITHUB OR ANY OTHER CODE REPO.