A web application for managing a car rental business, built with Django with multi-language support (Polish/English).
CarRental is a comprehensive car rental management system that enables:
- Browse available cars by category
- Display detailed vehicle information
- Book cars for logged-in users
- Manage fleet and orders (admin panel)
- Recommendations and ranking of the most popular cars
View of the client-facing homepage and its modular design.
Left: Comprehensive overview of the homepage, featuring personalized recommendations and popularity rankings.
Right: Complete fleet browser displaying all available vehicles by category.
Internal system for administrators to manage fleet, add new vehicles, and configure equipment options.
- Backend: Django 6.0.2
- Frontend: Jinja2 templates
- Database: SQLite (development)
- Programming Language: Python 3.14+
- Additional Libraries:
- Pandas - for data processing
- Pillow - for image management
- NumPy - data operations
All dependencies are located in the requirements.txt file:
- Clone the repository
git clone https://github.com/MacPal2002/CarRental.git
cd CarRental- Create a virtual environment
python -m venv venv
source venv/bin/activate # Linux/Mac
# or
venv\Scripts\activate # Windows- Install dependencies
pip install -r requirements.txt- Navigate to the project directory
cd carrental- Run database migrations
python manage.py makemigrations
python manage.py migrate- Create a superuser (optional)
python manage.py createsuperuser- Run the development server
python manage.py runserver- Open your browser
http://127.0.0.1:8000
CarRental/
├── carrental/ # Main Django project directory
│ ├── carrental/ # Project configuration
│ │ ├── settings.py # Django settings
│ │ ├── urls.py # URL routing
│ │ └── wsgi.py # WSGI config
│ ├── rental/ # Main application
│ │ ├── models.py # Database models
│ │ ├── views.py # Views and business logic
│ │ ├── forms.py # Forms
│ │ └── admin.py # Admin panel
│ ├── templates/ # HTML templates (Jinja2)
│ ├── media/ # Media files (car photos)
│ └── manage.py # Django CLI tool
├── requirements.txt # Project dependencies
└── README.md # This file
- Categories: SUV, City-friendly, Off-road, Van, Sports
- Engine Types: Petrol, Diesel, Hybrid, Electric, Hydrogen
- Transmissions: Automatic, Manual, Semi-automatic
- Details: Brand, model, number of seats/doors, engine power, fuel consumption, rental price, vehicle value
- Multiple equipment assignment to cars
- Extended Django user model
- Reservation data handling
- Reservation system with deposit handling (10% of vehicle value)
- Link to user and car
- index - Homepage with recommendations and most popular cars
- cars - List of all cars grouped by category
- car - Single vehicle details
- rent - Reservation form (requires login)
The application supports two languages:
- 🇵🇱 Polish (default)
- 🇬🇧 English
- Change
SECRET_KEYinsettings.py - Set
DEBUG = False - Configure
ALLOWED_HOSTS - Use a more secure database (PostgreSQL/MySQL)
- Configure proper permissions for media files
The project automatically scales uploaded car photos to 800px width while maintaining a 330.75:186.05 aspect ratio.
Project created for educational purposes.

