A full-stack modern car rental application built with the MERN Stack. This platform allows users to browse cars, view details, and book vehicles, while providing robust authentication and seamless image management.
-
User Authentication & Authorization
-Secure user registration and login
-JWT-based authentication
-Password hashing with bcrypt
-Protected routes and role-based access
-
Car Management
-Browse available cars with detailed information
-Advanced search and filtering options
-High-quality car images with Cloudinary integration
-Real-time availability status
-
Responsive Design
-Mobile-first approach with Tailwind CSS
-Smooth animations using Framer Motion
-Modern and intuitive user interface
-
User Experience
-Real-time notifications with React Hot Toast
-Fast and responsive interactions
-Seamless navigation
-
React.js: Library for building the user interface.
-
Tailwind CSS: Utility-first CSS framework for styling.
-
Axios: HTTP client.
-
React Hot Toast: Toast notifications.
-
Node.js: Runtime environment.
-
Express.js: Web framework for the API.
-
MongoDB: NoSQL database for storing user and listing data.
-
Mongoose: ODM (Object Data Modeling) library for MongoDB.
-
Cloudinary: Cloud storage service for property images.
-
Multer: File upload handling.
-
JWT (JSON Web Tokens): For secure user authentication.
-
Bcrypt.js: For password hashing and security.
Follow these steps to set up the project locally.
Make sure you have the following installed:
- Node.js (v14 or higher)
- npm or yarn
- MongoDB (Local or Atlas URL)
- Cloudinary Account (Free tier available)
-
Clone the repository
First, clone the repository:
git clone https://github.com/Kafoor-Nimas/CarRental.git
cd car-rental
```
2. **Install Backend Dependencies**
```bash
# Assuming you are in the root directory
cd server
npm install
```
3. **Install Frontend Dependencies**
```bash
cd client
npm install
```
### Environment Configuration
1. Create a `.env` file in your **root** directory and add the following variables:
```env
MONGO_URI=your_mongodb_connection_string
JWT_SECRET=your_secret_key
PORT=3000
# Cloudinary Configuration
CLOUDINARY_CLOUD_NAME=your_cloud_name
CLOUDINARY_API_KEY=your_api_key
CLOUDINARY_API_SECRET=your_api_secret-
Create a
.envfile in your client directory for Firebase:VITE_CURRENCY=your_country_currency VITE_FIREBASE_API_KEY=your_firebase_api_key
-
Start the Backend Server
cd server npm run start # or for development with nodemon npm run server
-
Start the Client
cd client npm run dev
Visit http://localhost:5173 (or your configured port) to view the app.
The application will be available at:
Frontend: http://localhost:5173
Backend: http://localhost:3000
Nimas Kafoor
- Email: nimaskafoor@gmail.com
- GitHub: github.com/Kafoor-Nimas
- LinkedIn: linkedin.com/in/nimas-kafoor




