# Simple Ride Sharing Application
## General Requirements
### Setup
You're building a simple ride sharing application with the following features, where the users can
- **Sign up and Login** using Open Authentication.
- **Search** for rides using start and end locations.
- **Book** a ride. The user must be able to see the route while booking a ride, and the estimated time required for the ride to be completed.
- **Cancel** a booked ride.
Note: Seed the riders(users) into the database on different locations.
## Application Requirements
- Create a suitable schema with the database of your choice.
- Containerize your server side application into different services so that they can be run separately in services like Fargate/K8s.
- Be RESTful.
- Write Unit Tests.
- Have proper access control.
- Maintain history of past rides for a user (passenger) and rider, along with the complete ride information (geolocation, start and end points, user and rider information).
- Show the route when the user is booking the ride.
- Use your own judgement for the UI/UX.
- Be creative.
- Do your best to implement and follow best practices, conventions and standards under all aspects.
---
### Your submission must include
- Unit Tests
- API Documentation
- Your Postman collection
- Level 2 and Level 3 C4 models
- An Entity Relationship Diagram
- The link to the source repository
- A working containerized application
- A proper `README.md` with all necessary instructions required to run the application.