India's fastest-growing rental marketplace for electronics, furniture, appliances, and vehicles.
Live Demo โข Documentation โข Report Bug โข Request Feature
Rentkart is a full-stack, production-ready rental marketplace platform that connects customers with verified vendors across India. Built with modern technologies and designed for scalability, Rentkart makes renting as simple as shopping online.
Whether you need a camera for the weekend, furniture for your apartment, or equipment for a project, Rentkart provides a trusted platform where you can:
- Browse thousands of verified products
- Book rentals instantly with secure payments
- Track your rentals in real-time
- Manage everything from a powerful dashboard
For vendors, Rentkart offers a complete business management suite to list products, track earnings, and manage incoming rental requestsโall from a dedicated vendor portal.
The rental economy is growing exponentially, yet most people still face challenges accessing quality products temporarily. Rentkart solves this by:
- Making Premium Products Accessible: Rent high-quality items at a fraction of the purchase cost
- Empowering Vendors: Helping individuals and businesses monetize idle assets
- Building Trust: Through verified vendors, secure payments, and transparent processes
- Promoting Sustainability: Reducing waste by encouraging shared consumption
- Streamlining Operations: Providing enterprise-grade tools for rental management
Our mission is to democratize access to products and create a sustainable sharing economy that benefits everyone.
-
Smart Product Discovery
- Advanced search with filters (category, location, price)
- Featured products and trending rentals
- Category-wise browsing (Electronics, Furniture, Appliances, Vehicles)
- Product details with high-quality images
-
Seamless Rental Experience
- Instant booking with flexible rental periods (daily, weekly, monthly)
- Real-time availability checking
- Security deposit management with full refund guarantee
- Rental duration calculator with transparent pricing
-
Comprehensive Dashboard
- Live rental overview with active/completed/pending status
- Rental progress tracking with visual indicators
- Days remaining countdown for active rentals
- Rental history with detailed analytics
-
Payment & Invoicing
- Secure simulated payment processing (card, UPI, net banking)
- Automated invoice generation with GST breakdown
- PDF invoice download with professional formatting
- Transaction history and payment receipts
-
Profile Management
- Personal information management
- Profile picture upload/remove
- Multiple delivery address management
- Google Maps autocomplete for address entry
- Set default addresses for quick checkout
-
Dedicated Vendor Portal
- Isolated dashboard with vendor-specific UI
- Role-based access control (vendors cannot access customer features)
- Real-time business metrics and earnings tracking
-
Product Management
- Add products with image upload and detailed specifications
- Edit product details, pricing, and inventory
- Toggle product availability (show/hide from marketplace)
- Delete products with confirmation
- Category selection and product organization
-
Rental Operations
- View incoming rental requests with customer details
- Track active rentals per product
- Monitor rental durations and return dates
- Rental status updates
-
Business Analytics
- Total earnings dashboard
- Active rentals count
- Product performance metrics
- Pending rental requests overview
-
Secure Admin Access
- Hidden admin login URL (
/admin-login) - Separate authentication flow
- Superuser-level permissions
- Hidden admin login URL (
-
Complete Platform Control
- User management (customers, vendors, admins)
- Block/activate user accounts
- Role-based user filtering
-
Content Management
- Category CRUD operations
- Product CRUD with image management
- Bulk product operations
-
Operations Dashboard
- System-wide statistics (users, products, rentals, revenue)
- Rental monitoring and status updates
- Payment transaction logs
- Vendor verification and approval
-
Advanced Authentication
- JWT-based stateless authentication
- Token refresh mechanism
- Role-based route guards (Customer/Vendor/Admin isolation)
- Secure password hashing
-
Responsive Design
- Mobile-first approach
- Tailwind CSS utility-first styling
- Modern UI with smooth animations
- Professional gradient backgrounds and card designs
-
Developer Experience
- RESTful API architecture
- Comprehensive error handling
- Toast notifications for user feedback
- Loading states and shimmer effects
- Form validation with instant feedback
-
Integrations
- Google Maps API for address autocomplete
- Interactive maps with draggable markers
- PDF generation with ReportLab
- Email notifications (configurable)
| Technology | Version | Purpose |
|---|---|---|
| Angular | 19.x | Progressive web framework |
| TypeScript | 5.x | Type-safe development |
| Tailwind CSS | 3.x | Utility-first styling |
| RxJS | 7.x | Reactive programming |
| Angular Router | 19.x | Client-side routing |
| Technology | Version | Purpose |
|---|---|---|
| Django | 5.0 | Python web framework |
| Django REST Framework | 3.14 | RESTful API development |
| Django CORS Headers | 4.x | Cross-origin requests |
| SimpleJWT | 5.x | JWT authentication |
| Pillow | 10.x | Image processing |
| ReportLab | 4.x | PDF generation |
- PostgreSQL (Production) - Robust relational database
- SQLite (Development) - Lightweight local database
- Google Maps API - Address autocomplete and geocoding
- Gunicorn - WSGI HTTP server for production
- WhiteNoise - Static file serving
โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ
โ Angular Frontend (SPA) โ
โ โโโโโโโโโโโโโโโ โโโโโโโโโโโโโโโ โโโโโโโโโโโโโโโ โ
โ โ Customer โ โ Vendor โ โ Admin โ โ
โ โ Dashboard โ โ Dashboard โ โ Dashboard โ โ
โ โโโโโโโโโโโโโโโ โโโโโโโโโโโโโโโ โโโโโโโโโโโโโโโ โ
โ โ โ โ โ
โ โโโโโโโโโโโโโโโโโโดโโโโโโโโโโโโโโโโโโ โ
โ โ โ
โ HTTP/REST API โ
โ โ โ
โโโโโโโโโโโโโโโโโโโโโโโโโโโโผโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ
โ
โโโโโโโโโโโโผโโโโโโโโโโโ
โ Django REST API โ
โ โโโโโโโโโโโโโโโโโ โ
โ โ Authenticationโ โ
โ โ (JWT) โ โ
โ โโโโโโโโโโโโโโโโโ โ
โ โโโโโโโโโโโโโโโโโ โ
โ โ Products API โ โ
โ โโโโโโโโโโโโโโโโโ โ
โ โโโโโโโโโโโโโโโโโ โ
โ โ Rentals API โ โ
โ โโโโโโโโโโโโโโโโโ โ
โ โโโโโโโโโโโโโโโโโ โ
โ โ Payments API โ โ
โ โโโโโโโโโโโโโโโโโ โ
โโโโโโโโโโโโฌโโโโโโโโโโโ
โ
โโโโโโโโโโโโผโโโโโโโโโโโ
โ PostgreSQL DB โ
โ โโโโโโโโโโโโโโโโโ โ
โ โ Users โ โ
โ โ Products โ โ
โ โ Subscriptions โ โ
โ โ Payments โ โ
โ โ Invoices โ โ
โ โโโโโโโโโโโโโโโโโ โ
โโโโโโโโโโโโโโโโโโโโโโโ
Architecture Highlights:
- Separation of Concerns: Frontend and backend are completely decoupled
- RESTful Design: Stateless API with JWT authentication
- Role-Based Access: Three distinct user roles with isolated dashboards
- Scalable: Horizontal scaling possible for both frontend and backend
- Modern Stack: Industry-standard technologies used throughout
rentkart/
โ
โโโ backend/ # Django REST API
โ โโโ rentkart/ # Project settings
โ โ โโโ settings.py # Django configuration
โ โ โโโ urls.py # Main URL routing
โ โ โโโ wsgi.py # WSGI entry point
โ โ
โ โโโ users/ # User management app
โ โ โโโ models.py # Custom User model
โ โ โโโ views.py # Auth & profile APIs
โ โ โโโ serializers.py # User serialization
โ โ โโโ urls.py # User routes
โ โ
โ โโโ products/ # Product management app
โ โ โโโ models.py # Product & Category models
โ โ โโโ views.py # Product CRUD APIs
โ โ โโโ serializers.py # Product serialization
โ โ โโโ urls.py # Product routes
โ โ
โ โโโ customers/ # Customer app
โ โ โโโ models.py # Address model
โ โ โโโ views.py # Customer profile APIs
โ โ โโโ urls.py # Customer routes
โ โ
โ โโโ subscriptions/ # Rental management app
โ โ โโโ models.py # Subscription model
โ โ โโโ views.py # Rental APIs
โ โ โโโ urls.py # Subscription routes
โ โ
โ โโโ payments/ # Payment processing app
โ โ โโโ models.py # Payment & Invoice models
โ โ โโโ views.py # Payment & invoice APIs
โ โ โโโ invoice_generator.py # PDF generation logic
โ โ โโโ urls.py # Payment routes
โ โ
โ โโโ media/ # Uploaded files (images)
โ โโโ manage.py # Django management script
โ โโโ requirements.txt # Python dependencies
โ
โโโ frontend/ # Angular application
โ โโโ src/
โ โ โโโ app/
โ โ โ โโโ core/ # Core services & guards
โ โ โ โ โโโ guards/ # Route guards
โ โ โ โ โ โโโ auth.guard.ts
โ โ โ โ โ โโโ role.guard.ts
โ โ โ โ โโโ services/ # Business logic services
โ โ โ โ โ โโโ auth.service.ts
โ โ โ โ โ โโโ product.service.ts
โ โ โ โ โ โโโ toast.service.ts
โ โ โ โ โ โโโ google-maps.service.ts
โ โ โ โ โโโ interceptors/ # HTTP interceptors
โ โ โ โ โโโ auth.interceptor.ts
โ โ โ โ
โ โ โ โโโ features/ # Feature modules
โ โ โ โ โโโ home/ # Landing page
โ โ โ โ โโโ auth/ # Login & register
โ โ โ โ โโโ products/ # Product listing & detail
โ โ โ โ โโโ dashboard/ # Customer dashboard
โ โ โ โ โโโ vendor/ # Vendor portal
โ โ โ โ โโโ admin/ # Admin panel
โ โ โ โ โโโ rent/ # Rental booking flow
โ โ โ โ
โ โ โ โโโ shared/ # Shared components & pipes
โ โ โ โ โโโ components/
โ โ โ โ โโโ pipes/
โ โ โ โ โโโ currency.pipe.ts
โ โ โ โ
โ โ โ โโโ app.component.ts # Root component
โ โ โ โโโ app.routes.ts # Route configuration
โ โ โ
โ โ โโโ environments/ # Environment configs
โ โ โ โโโ environment.ts # Development
โ โ โ โโโ environment.prod.ts # Production
โ โ โ
โ โ โโโ assets/ # Static assets
โ โ
โ โโโ angular.json # Angular configuration
โ โโโ package.json # Node dependencies
โ โโโ tailwind.config.js # Tailwind CSS config
โ โโโ tsconfig.json # TypeScript config
โ
โโโ README.md # This file
- Python: 3.10 or higher
- Node.js: 18.x or higher
- npm: 9.x or higher
- PostgreSQL: 14.x or higher (optional, SQLite works for development)
- Clone the repository
git clone https://github.com/yourusername/rentkart.git
cd rentkart/backend- Create virtual environment
python -m venv venv
# On Windows
venv\Scripts\activate
# On macOS/Linux
source venv/bin/activate- Install dependencies
pip install -r requirements.txt- Environment configuration
cp .env.example .env
# Edit .env with your settings- Run migrations
python manage.py makemigrations
python manage.py migrate- Create superuser (admin)
python manage.py createsuperuser- Load sample data (optional)
python manage.py loaddata fixtures/sample_data.json- Run development server
python manage.py runserverBackend will be available at: http://localhost:8000
- Navigate to frontend directory
cd ../frontend- Install dependencies
npm install- Environment configuration
# Update src/environments/environment.ts with your API URL- Start development server
npm start
# or
ng serveFrontend will be available at: http://localhost:4200
- Get API key from Google Cloud Console
- Enable Maps JavaScript API and Places API
- Add to
frontend/src/index.html:
<script src="https://maps.googleapis.com/maps/api/js?key=YOUR_API_KEY&libraries=places"></script>
Modern landing page with real-time stats and featured products
Comprehensive rental management with progress tracking
Dedicated vendor dashboard with product & earnings management
Complete platform control with user & product management
cd backend
python manage.py testcd frontend
npm run testnpm run e2eUsing Gunicorn + Nginx:
# Install gunicorn
pip install gunicorn
# Run production server
gunicorn rentkart.wsgi:application --bind 0.0.0.0:8000
# Configure Nginx as reverse proxyEnvironment Variables:
DEBUG=False
SECRET_KEY=your-secret-key
ALLOWED_HOSTS=yourdomain.com
DATABASE_URL=postgresql://user:password@host:port/dbnameBuild for production:
cd frontend
npm run build --configuration=productionDeploy to:
- Netlify: Drag & drop
dist/rentkartfolder - Vercel: Connect GitHub repo
- AWS S3 + CloudFront: Upload static files
- Firebase Hosting: Use Firebase CLI
- โ JWT token-based authentication
- โ Password hashing with Django's built-in hasher
- โ CORS protection with whitelist
- โ CSRF token validation
- โ SQL injection prevention (Django ORM)
- โ XSS protection with Angular sanitization
- โ Role-based access control
- โ Secure HTTP headers
- โ Rate limiting (configurable)
- Razorpay payment gateway integration
- Stripe for international payments
- Wallet system for customers
- Automatic refund processing
- React Native mobile app
- Push notifications
- Offline mode support
- Biometric authentication
- AI-powered product recommendations
- Chatbot for customer support
- Real-time chat between customer & vendor
- Advanced analytics dashboard
- Vendor subscription plans
- Commission management system
- Automated vendor payouts
- Marketing automation
- Multi-language support
- Multi-currency support
- Franchise model
- White-label solution
| Method | Endpoint | Description |
|---|---|---|
| POST | /api/v1/auth/register/ |
User registration |
| POST | /api/v1/auth/login/ |
User login (JWT) |
| POST | /api/v1/auth/logout/ |
User logout |
| POST | /api/v1/auth/token/refresh/ |
Refresh JWT token |
| GET | /api/v1/auth/profile/ |
Get user profile |
| PATCH | /api/v1/auth/profile/ |
Update profile |
| Method | Endpoint | Description |
|---|---|---|
| GET | /api/v1/products/ |
List all products |
| GET | /api/v1/products/{slug}/ |
Get product details |
| POST | /api/v1/products/vendor/products/create/ |
Create product (vendor) |
| PATCH | /api/v1/products/vendor/products/{id}/ |
Update product (vendor) |
| DELETE | /api/v1/products/vendor/products/{id}/ |
Delete product (vendor) |
| Method | Endpoint | Description |
|---|---|---|
| GET | /api/v1/subscriptions/ |
List user rentals |
| POST | /api/v1/subscriptions/ |
Create rental booking |
| GET | /api/v1/subscriptions/{id}/ |
Get rental details |
| Method | Endpoint | Description |
|---|---|---|
| POST | /api/v1/payments/process/ |
Process payment |
| GET | /api/v1/payments/invoices/ |
List invoices |
| GET | /api/v1/payments/invoices/{id}/download/ |
Download invoice PDF |
Full API documentation: Swagger UI
Contributions are welcome! Please follow these steps:
- Fork the repository
- Create a 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
Coding Standards:
- Follow PEP 8 for Python
- Use ESLint for TypeScript
- Write unit tests for new features
- Update documentation
This project is licensed under the MIT License - see the LICENSE file for details.
Sumit Suman
- Portfolio: sumitsuman.dev
- LinkedIn: linkedin.com/in/thesumitsuman
- GitHub: @sumit6258
- Email: sumitsuman6258@gmail.com
- Angular Team for the amazing framework
- Django for the robust backend
- Tailwind CSS for beautiful styling
- Google Maps Platform for geocoding services
- All open-source contributors
For support, email support@rentkart.in or join our Slack channel.
Made with โค๏ธ in India๐ฎ๐ณ
โญ Star this repository if you found it helpful!

