The Car-Rental-Backend is the backbone of a user-friendly car rental web app. It ensures secure user authentication, powers features like browsing cars and managing reservations, and provides exclusive admin functions. The backend guarantees data consistency, and responsiveness for both mobile and desktop, and offers detailed API documentation using Rails Rswag for seamless integration with the frontend.
- ✅ Ruby
- ✅ Ruby on Rails
- ✅ Postgresql
- ✅ Linters
Language
- Ruby-on-Rails
-
🔐 User Authentication API Implement a secure authentication system that supports user registration, login, and password management. Enable token-based authentication to ensure secure communication between the frontend and backend.
-
🚗 Car Management API: Develop endpoints to add, retrieve, update, and delete cars in the system. Implement logic to mark cars as removed when deleted by administrators, ensuring they are not displayed on the frontend.
-
📅 Reservation Handling API: Create endpoints to manage reservations, allowing users to make, view, and cancel reservations. Implement logic to autofill user information and selected car details during reservation creation.
-
📊 Admin Privileges API: Design a role-based access control system to differentiate between regular users and administrators. Allow administrators to access the delete car functionality and other admin-specific features.
-
📱 Responsive Design API: Develop API endpoints that provide data in a format optimized for both mobile and desktop views. Ensure the backend supports responsive design principles, facilitating an optimal user experience on various devices.
-
📄 API Documentation using Rails Rswag: Leverage Rails Rswag to generate comprehensive and user-friendly API documentation. Include details about each endpoint, expected request/response formats, and authentication requirements.
-
🔍 Search and Filtering API: Implement search and filtering capabilities for cars based on various criteria such as city, availability, and car features. Enable users to efficiently find and reserve cars that match their preferences.
-
🔄 Real-time Updates API: Implement a system for real-time updates to notify users of changes in car availability, reservation status, or other relevant information. Utilize technologies such as WebSockets or server-sent events to enable real-time communication between the backend and frontend.
-
📈 Analytics and Reporting API: Develop APIs for collecting and analyzing data related to reservations, user activity, and car availability. Provide administrators with insights through reporting features to help in decision-making and system optimization.
The front-end repo is available here
To get a local copy up and running, follow these steps.
- Download or clone this repostory.
- Provide a modern web browser.
In order to run this project you need:
- ✔ Ruby installed in your machine. you can download it from here
- ✔ IDE or a code editor installed in your machine.
- ✔ IRB.
- ✔ Get Postgresql up and running. you can download it from here.
- ✔ Git installed in your machine.
- ✔ Sign in or sign up to your Github account.
- ✔ A professional editer such as VS Code.
- ✔ An Updated web browser such as Google Chrome, you can download it from here.
-
Clone this repository to your desired folder:
-
Run this command in your command line interface:
cd [YOUR FOLDER]
git clone git@github.com:omwomo/car-rental-backend.git
cd Full-Stack-Capstone-Backend
-
open the folder in your code editor
-
Update the config/database.yml with your database credentials under the development section
-
Update the GEMFILE to match your version of ruby.
-
Run these command in your command line interface:
sudo bundle install
rails db:drop
rails db:create
rails db:migrate
rails db:seed
- (Note : this 'sudo bundle install' command is only for UNIX and LINUX users if you are using windows run the terminal as a administrator and then run 'bundle install')
- To run the project, execute the following command:
rails server
- After running 'rails server' paste this link in your browser to see full Api-Documentation.
http://127.0.0.1:3000/api-docs/index.html
This project is deployed by the author, no permission for deployment by any other client.
👤 Muhammad Umair Muqeem
- GitHub: @umair-rao
- Twitter: @umair_ra0
- LinkedIn: LinkedIn
👤 Eugene Omwomo
- GitHub: @Omwomo
- Twitter: @eugeneoduor9
- LinkedIn: LinkedIn
👤 Bhushan Deshmukh
- GitHub: @bhushan354
- LinkedIn: Bhushan Deshmukh
- Add info about each category
Contributions, issues, and feature requests are welcome!
Feel free to check the issues page.
If you like this project, kindly drop a start ⭐ for the repository;
I would like to express my heartfelt gratitude to my teammates for hard work and great collaboration efforts.
This project is MIT licensed.