The Car Rent Application is a web-based platform that allows users to rent cars according to their needs. It provides a user-friendly interface for renting cars and listing cars for rent. The application utilizes modern technologies such as React, Mantine UI, Redux, Node.js, Redis, Express, and MongoDB to deliver a seamless user experience.
The Car Rent Application is built using the following technologies:
- Frontend: React, Mantine UI, Redux
- Backend: Node.js, Redis, Express, MongoDB
The Car Rent Application offers the following key features:
- 2FA Authentication: Secure two-factor authentication is implemented to protect user accounts.
- Google OAuth: Users can sign in using their Google accounts for a convenient login experience.
- Payment Integration: Seamless payment integration is included to enable users to make rental payments easily.
To get started with the Car Rent Application, follow the steps below.
-
Clone the repository:
git clone https://github.com/git-rishab/car-rental-application.git
-
Install Dependencies:
npm i
-
Run backend server:
npm run server
-
Start Frontend
npm run start
The Car Rent Application provides the following API endpoints:
POST /user/login
: Authenticates a user and generates an access tokenPOST /user/register
: Registers a new userPOST /user/logout
: Logs out the user and invalidates their sessionGET /user
: Data of individual userPATCH /user/wishlist/add
: Add cars to the wishlist of the individual userPATCH /user/wishlist/remove
: Remove cars from the wishlist of individual userPATCH /user/update/password
: Resets the password of the userPATCH /user/update/details
: update the details of the user
GET /car
: Get all the car details available for rentPOST /car/add
: Add a car for rentPOST /car/payment
: Create a request for paymentPATCH /car/edit
: Edit the details of a listed carPATCH /car/rent
: Rent a carDELETE /car/delete
: Remove a car from search resultsGET /car/:carId
: Data of an individual car
GET /otp/generate
: Generates QR for setupGET /otp/validate
: Validates the OTP while set upGET /otp/verify
: Verifies the OTP everytime user Logs InGET /otp/disable
: Removes the 2FA