Web-based car rental platform for Ghana with secure identity verification, online booking, and admin management.
# Car Rental Web Application
A complete car rental management system built with Python Flask, featuring admin management, customer bookings, identity verification via document uploads, and Paystack payment integration.
## π Features
### π¨βπΌ Admin Features
- β
Secure admin authentication (login/logout)
- β
Comprehensive admin dashboard with statistics
- β
Full CRUD operations for cars (Create, Read, Update, Delete)
- β
Car management:
- Add new cars with details (name, model, brand, year, price, images, etc.)
- Edit existing car information
- Delete cars (with booking validation)
- Update car status (Available, Rented, Out of Stock, Sold Out)
- β
View and manage all customer bookings
- β
View uploaded customer identity documents (Driver's License & Ghana Card)
- β
Verify customer documents
- β
Update booking status (Pending, Confirmed, Completed, Cancelled)
- β
Generate reports and view revenue statistics
### π€ Customer Features
- β
User registration and authentication
- β
Upload identity documents:
- Driver's License (front & back)
- Ghana Card (front & back)
- Support for images (JPG, PNG) and PDF
- β
Browse available cars with search and filters
- β
View detailed car information
- β
Select rental duration (start date to end date)
- β
Submit booking requests
- β
Secure payment via Paystack integration
- β
View booking confirmation and history
- β
Manage profile and change password
- β
Cancel pending bookings
### π Security Features
- Document verification system
- Secure file uploads with validation (max 10MB)
- Password hashing with Werkzeug
- Flask-Login session management
- CSRF protection with Flask-WTF
## π¦ Technology Stack
- **Backend**: Python 3.8+, Flask 3.0
- **Database**: SQLAlchemy (SQLite/PostgreSQL)
- **Authentication**: Flask-Login
- **Forms**: Flask-WTF, WTForms
- **Payment**: Paystack API
- **Frontend**: HTML5, CSS3, Bootstrap 5, JavaScript
- **Icons**: Font Awesome 6
## ποΈ Database Schema
### Users Table
- id, first_name, last_name, em β¦