The Future of Car Rental - AI-Powered, Social, and Eco-Conscious
Features β’ Installation β’ Documentation β’ API
MyCars isn't just another car rental platform - it's a complete reimagination of how car rental should work in the modern era. We've implemented 10 revolutionary features that don't exist in any other rental service:
| π€ AI Recommendations | π 5-Tier Loyalty | πΊοΈ AI Trip Planner |
|---|---|---|
| π₯ Social Bookings | π§ IoT Monitoring | π Carbon Tracking |
| π° Dynamic Pricing | πΈ Virtual Inspection | π§ 24/7 AI Support |
- Personalized suggestions based on your preferences and history
- Smart scoring algorithm (0-100% match)
- Trip type awareness (Business, Leisure, Family, Adventure)
- Budget-conscious recommendations
- Learn and improve with each booking
- Bronze β Silver β Gold β Platinum β Diamond
- Earn 1 point per β¬ spent
- Redeemable rewards catalog
- Referral program with bonus points
- Subscription plans (save up to 25%)
- Achievement badges & gamification
- Smart route generation
- Real-time weather forecasts
- Carbon footprint calculation
- Budget estimation (fuel, tolls, parking, food)
- EV charging station recommendations
- Scenic route options
- Split payments among friends
- Group chat for coordination
- Carpooling integration
- Custom cost splitting
- Booking rules (smoking, pets, music)
- GPS location tracking
- Fuel/battery level monitoring
- Tire pressure alerts
- Engine diagnostics
- Maintenance scheduling
- Health score (0-100%)
- Photo-based pre/post rental inspection
- AI damage detection
- Condition rating
- Dispute resolution with evidence
- Historical records
- Real-time COβ emission calculation
- Comparison with public transport
- Eco-friendly car recommendations
- Carbon offset purchase option
- Environmental rewards
- Real-time price adjustments
- Demand-based pricing
- Weather multipliers
- Seasonal variations
- Loyalty member discounts
- Instant AI chatbot responses
- Intelligent ticket routing
- Priority support for members
- Automated suggestions
- Real-time tracking
- Automatic preference tracking
- No manual setup required
- Learns from each booking
- Budget pattern analysis
- Eco-consciousness scoring
Node.js v14+ β’ MongoDB β’ npm/yarn# Clone the repository
git clone <repository-url>
cd RentCars-main
# Backend Setup
cd MyCarsT-Backend-master/MyCarsT-Backend-master
npm install
# Create .env file (see INSTALLATION_GUIDE.md)
npm start
# Frontend Setup (new terminal)
cd MyCar-FrontEnd-main/MyCar-FrontEnd-main
npm install
npm start- Frontend: http://localhost:3000
- Backend API: http://localhost:5000
- MongoDB: mongodb://localhost:27017/mycars
For detailed setup instructions, see INSTALLATION_GUIDE.md
- Runtime: Node.js
- Framework: Express.js
- Database: MongoDB + Mongoose
- Payment: Stripe
- Authentication: JWT (ready)
- Framework: React.js v17
- UI Library: Ant Design
- State Management: Redux + Thunk
- Routing: React Router v5
- HTTP Client: Axios
- AOS for scroll animations
- Stripe Checkout for payments
- Node.js v22.21.1
- Express 4.17.1
- MongoDB with Mongoose 6.0.13
- Stripe API for payments
- CORS enabled
- dotenv for environment variables
Before you begin, ensure you have the following installed:
- Node.js (v22.21.1 or higher)
- MongoDB (v8.2.2 or higher)
- npm or yarn
- Git
git clone https://github.com/tekteku/RentCars.git
cd RentCars# Navigate to backend directory
cd MyCarsT-Backend-master/MyCarsT-Backend-master
# Install dependencies
npm install
# Create .env file
echo MONGODB_URI=mongodb://localhost:27017/Cars > .env
echo PORT=5000 >> .env
echo STRIPE_SECRET_KEY=your_stripe_secret_key >> .env
# Seed the database with sample cars
node seedCars.js
# Start the backend server
npm startThe backend will run on http://localhost:5000
# Open a new terminal and navigate to frontend directory
cd MyCar-FrontEnd-main/MyCar-FrontEnd-main
# Install dependencies
npm install
# Create .env file
echo REACT_APP_PUBLIC_URL=http://localhost:5000 > .env
# Start the frontend server
npm startThe frontend will run on http://localhost:3000
# Windows (PowerShell)
mongod --dbpath "C:\data\db"
# macOS/Linux
mongod --dbpath /data/dbRentCars/
βββ MyCar-FrontEnd-main/
β βββ MyCar-FrontEnd-main/
β βββ public/
β βββ src/
β β βββ components/ # Reusable components
β β βββ pages/ # Page components
β β βββ redux/ # Redux store, actions, reducers
β β βββ services/ # API services
β β βββ App.js
β β βββ index.css # Global styles
β βββ package.json
β βββ .env
β
βββ MyCarsT-Backend-master/
βββ MyCarsT-Backend-master/
βββ models/ # Mongoose models
βββ routes/ # API routes
βββ db.js # Database configuration
βββ server.js # Express server
βββ seedCars.js # Database seeding script
βββ package.json
βββ .env
MONGODB_URI=mongodb://localhost:27017/Cars
PORT=5000
STRIPE_SECRET_KEY=your_stripe_secret_key_hereREACT_APP_PUBLIC_URL=http://localhost:5000
NODE_OPTIONS=--openssl-legacy-providerGET /api/cars/getallcars- Get all carsPOST /api/cars/addcar- Add new car (Admin)PUT /api/cars/editcar- Edit car (Admin)DELETE /api/cars/deletecar- Delete car (Admin)
POST /api/bookings/bookcar- Book a carGET /api/bookings/getallbookings- Get all bookingsGET /api/bookings/getuserbookings- Get user's bookings
POST /api/users/register- Register new userPOST /api/users/login- User login
- Browse available cars
- Search and filter cars
- Book cars for specific dates
- View booking history
- Make payments via Stripe
- All user capabilities
- Add new cars
- Edit existing cars
- Delete cars
- View all bookings
- Manage user accounts
{
name: String,
image: String,
capacity: Number,
fuelType: String,
bookedTimeSlots: Array,
rentPerHour: Number
}{
username: String,
password: String (hashed),
role: String (default: "user")
}{
car: ObjectId (ref: Car),
user: ObjectId (ref: User),
bookedTimeSlots: Object,
totalHours: Number,
totalAmount: Number,
transactionId: String
}- Glassmorphism Effects - Frosted glass design with backdrop blur
- Gradient Backgrounds - Ocean blue to teal color scheme
- Smooth Animations - Float, pulse, shimmer, and ripple effects
- Responsive Cards - Hover effects and lift animations
- Modern Typography - Poppins and Inter fonts
- Loading States - Skeleton loaders and spinners
- Form Validation - Real-time input validation
- Toast Notifications - Success and error messages
To test the payment system, use Stripe's test card:
- Card Number: 4242 4242 4242 4242
- Expiry: Any future date
- CVC: Any 3 digits
- ZIP: Any 5 digits
The seedCars.js script populates the database with 12 premium cars:
- Tesla Model S
- BMW M5
- Mercedes C-Class
- Audi A6
- Porsche 911
- Range Rover Sport
- Lamborghini Huracan
- Toyota Camry
- Ford Mustang
- Honda Civic
- Jeep Wrangler
- Ferrari 488
- Ensure MongoDB is running
- Check if port 5000 is available
- Verify .env file exists with correct values
- Clear npm cache:
npm cache clean --force - Delete node_modules and reinstall:
rm -rf node_modules && npm install - Check if port 3000 is available
- Verify MongoDB service is running
- Check MongoDB URI in .env
- Ensure database directory exists
- Add
NODE_OPTIONS=--openssl-legacy-providerto .env - Or downgrade to Node.js v16
Contributions are welcome! Please follow these steps:
- Fork the repository
- Create a new branch (
git checkout -b feature/AmazingFeature) - Commit your changes (
git commit -m 'Add some AmazingFeature') - Push to the branch (
git push origin feature/AmazingFeature) - Open a Pull Request
Taher
- GitHub: @tekteku
- Ant Design for the UI components
- Stripe for payment processing
- Unsplash for car images
- MongoDB for the database solution
For support, email your-email@example.com or open an issue in the GitHub repository.
Made with β€οΈ by Taher