Experience luxury and convenience with our modern, full-stack car rental solution
Features β’ Tech Stack β’ Installation β’ Documentation β’ License
BookForDrive is a production-ready, full-stack car rental platform built with modern web technologies. Designed for scalability, performance, and exceptional user experience, it provides everything needed to run a professional car rental business online.
- π― Modern Architecture - Built with Next.js 14 App Router and NestJS
- π Secure Authentication - JWT-based auth with refresh tokens and OAuth support
- π± Responsive Design - Beautiful UI that works seamlessly on all devices
- β‘ High Performance - Optimized for speed with server-side rendering
- π¨ Premium UI/UX - Crafted with Tailwind CSS and shadcn/ui components
- π Real-time Updates - Live booking status and notifications
- π Analytics Dashboard - Comprehensive insights for business decisions
- π Advanced Search - Filter by location, date, car type, and price
- π Premium Fleet - Browse luxury and economy vehicles with detailed specs
- π Easy Booking - Intuitive booking flow with real-time availability
- π Delivery Service - Optional car delivery to your location
- β Reviews & Ratings - Share experiences and read verified reviews
- π³ Secure Payments - Multiple payment methods with Stripe integration
- π± User Dashboard - Manage bookings, reviews, and preferences
- π Notifications - Stay updated on booking status and promotions
- π Analytics Dashboard - Revenue, bookings, and user metrics
- π Fleet Management - Add, edit, and manage vehicle inventory
- π Location Management - Configure pickup/delivery locations
- π₯ User Management - Manage customers and permissions
- π° Booking Management - Track and update booking status
- π Review Moderation - Approve and manage customer reviews
- π Reports - Generate detailed business reports
- π JWT Authentication - Secure token-based authentication
- π OAuth Integration - Google and Facebook login support
- π§ Email Notifications - Automated booking confirmations
- ποΈ Database ORM - Type-safe queries with Prisma
- π¨ Dark Mode - System-aware theme switching
- π± PWA Support - Install as a mobile app
- π SEO Optimized - Server-side rendering for better rankings
- π§ͺ Type Safety - Full TypeScript coverage
- Framework: Next.js 14 (App Router)
- Language: TypeScript
- Styling: Tailwind CSS
- UI Components: shadcn/ui, Radix UI
- State Management: Zustand
- Data Fetching: TanStack Query (React Query)
- Forms: React Hook Form + Zod
- Animations: Framer Motion
- Icons: Lucide React
- Framework: NestJS 10
- Language: TypeScript
- Database: SQLite (Prisma ORM)
- Authentication: Passport.js (JWT, OAuth)
- Validation: class-validator
- API Documentation: Swagger/OpenAPI
- Security: Helmet, CORS, Rate Limiting
- Version Control: Git
- Package Manager: npm
- Code Quality: ESLint, Prettier
- API Testing: Swagger UI
- Development: Hot Module Replacement
- Node.js 18+ and npm
- Git
- Clone the repository
git clone https://github.com/jaiyan-th/Car-Rent-Main.git
cd Car-Rent-Main- Backend Setup
cd backend
npm install
cp .env.example .env
# Edit .env with your configuration
npx prisma migrate dev
npx prisma db seed
npm run start:dev- Frontend Setup
cd frontend
npm install
cp .env.example .env.local
# Edit .env.local with your configuration
npm run dev- Access the Application
- Frontend: http://localhost:3000
- Backend API: http://localhost:3001/api
- API Documentation: http://localhost:3001/api/docs
setup.batchmod +x setup.sh
./setup.shCar-Rent-Main/
βββ backend/ # NestJS backend application
β βββ src/
β β βββ modules/ # Feature modules
β β β βββ auth/ # Authentication & authorization
β β β βββ users/ # User management
β β β βββ cars/ # Vehicle management
β β β βββ bookings/ # Booking system
β β β βββ reviews/ # Review & rating system
β β β βββ payments/ # Payment processing
β β β βββ analytics/ # Analytics & reporting
β β β βββ locations/ # Location management
β β βββ common/ # Shared utilities
β β βββ main.ts # Application entry point
β βββ prisma/ # Database schema & migrations
β βββ package.json
β
βββ frontend/ # Next.js frontend application
β βββ src/
β β βββ app/ # App Router pages
β β βββ components/ # React components
β β β βββ layout/ # Layout components
β β β βββ sections/ # Page sections
β β β βββ ui/ # UI components
β β βββ services/ # API services
β β βββ store/ # State management
β β βββ types/ # TypeScript types
β β βββ lib/ # Utilities
β βββ package.json
β
βββ docs/ # Additional documentation
βββ CHANGELOG.md # Version history
βββ CONTRIBUTING.md # Contribution guidelines
βββ INSTALLATION.md # Detailed installation guide
βββ TROUBLESHOOTING.md # Common issues & solutions
βββ README.md # This file
POST /api/v1/auth/register- User registrationPOST /api/v1/auth/login- User loginPOST /api/v1/auth/refresh- Refresh access tokenGET /api/v1/auth/google- Google OAuth login
GET /api/v1/cars- List all carsGET /api/v1/cars/:id- Get car detailsGET /api/v1/cars/featured- Get featured carsPOST /api/v1/cars- Create car (Admin)
POST /api/v1/bookings- Create bookingGET /api/v1/bookings/user/my-bookings- User's bookingsPATCH /api/v1/bookings/:id- Update bookingGET /api/v1/bookings/admin/all- All bookings (Admin)
POST /api/v1/reviews- Create reviewGET /api/v1/reviews/car/:carId- Car reviewsGET /api/v1/reviews/user/my-reviews- User's reviewsDELETE /api/v1/reviews/:id- Delete review
Modern, responsive homepage with hero section, featured cars, and testimonials.
Advanced filtering and sorting with beautiful card layouts.
Intuitive multi-step booking process with real-time availability.
Comprehensive dashboard for managing bookings and reviews.
Powerful admin interface for managing the entire platform.
DATABASE_URL="file:./dev.db"
JWT_SECRET="your-secret-key"
JWT_REFRESH_SECRET="your-refresh-secret"
GOOGLE_CLIENT_ID="your-google-client-id"
GOOGLE_CLIENT_SECRET="your-google-client-secret"
FRONTEND_URL="http://localhost:3000"NEXT_PUBLIC_API_URL="http://localhost:3001/api/v1"
NEXT_PUBLIC_APP_NAME="BookForDrive"
NEXT_PUBLIC_GOOGLE_MAPS_API_KEY="your-maps-api-key"cd backend
npm run test
npm run test:e2ecd frontend
npm run testcd frontend
vercel deploy --prodcd backend
# Configure your deployment platform
# Set environment variables
# DeployWe welcome contributions! Please see CONTRIBUTING.md for details.
- Fork the repository
- Create your feature 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
This project is licensed under the MIT License - see the LICENSE file for details.
- Jaiyan - Initial work - @jaiyan-th
- Next.js team for the amazing framework
- NestJS team for the robust backend framework
- shadcn for the beautiful UI components
- All contributors who help improve this project
For support, email support@bookfordrive.com or open an issue on GitHub.
- Mobile app (React Native)
- Advanced analytics dashboard
- Multi-language support
- Payment gateway integration (Stripe, PayPal)
- Real-time chat support
- AI-powered car recommendations
- Loyalty program
- Fleet tracking with GPS
Made with β€οΈ by the BookForDrive Team
β Star us on GitHub β it motivates us a lot!