Create a basic Hotel API - Coding Challenge
Use Valet or Homestead to run this project.
docker-compose up -d
Visit localhost:8081
to see the OpenAPI Specification. Use any HTTP Client tool you want for interacting with the API.
The workflow I'm using for building every feature of this API is:
- Design the API using the OpenAPI Spec
- Write tests according to the API Specification
- Write the code needed for making those tests pass
- Create project scaffolding
- Add SwaggerUI to docker-compose
- Add Accommodation schema to yml
- Add user authentication via API
- Add Accommodations model, migration and factory
- Add Locations model, migration and factory
- Make users able to post an accommodation
- Make users able to retrieve all accommodations
- Make users able to retrieve a single accommodation
- Make users able to update accommodations
- Make users able to delete accomodations
- Add booking endpoint than whenever is called reduces the accommodation availability, and that fails if there is no availability.
- Make all errors and exceptions to follow the RFC7807 spec
- Add tests for each validation
- Add installation instructions