Final Grade: 20/20
This repository contains the implementation of a web application for a driving school, developed as a Bachelor's degree project using Python, Django, and MySQL. The project includes a user-friendly interface and administrative functionalities to efficiently manage driving school operations.
- User-friendly Interface: Intuitive UI for both admins and students.
- Database Management: Comprehensive database implementation using MySQL.
- Functional Admin Panel: Tools to manage staff, students, and classes.
- Secure Authentication: Login system with different roles (e.g., Manager, Trainer, Student).
- Scalable Architecture: Built with Django's modular framework for easy future enhancements.
Technologies used in this project:
- Python for backend logic.
- Django for building the web framework.
- MySQL for database management.
- Figma for UI/UX design.
The EER diagram illustrates the database structure and the relationships between different entities such as Students, Trainers, and Classes.
Here are the Figma design prototypes used to create the interface:
The following screenshots demonstrate the application in action:
- Python: Version 3.8 or higher.
- MySQL: Ensure MySQL server is installed and running.
- Virtual Environment: Use
virtualenv
orvenv
.
-
Clone the repository:
git clone https://github.com/morteza80mr/driving-school-web-app.git cd driving-school-web-app
-
Create and activate a virtual environment:
- On Linux/Mac:
python -m venv myenv source myenv/bin/activate
- On Windows:
python -m venv myenv myenv\Scripts\activate
- On Linux/Mac:
-
Install dependencies from the
requirements.txt
file:pip install -r requirements.txt
-
Set up the database:
- Create a MySQL database named
driving_school_project
. - Update the
settings.py
file in the Django project directory with your MySQL credentials:DATABASES = { 'default': { 'ENGINE': 'django.db.backends.mysql', 'NAME': 'driving_school_project', 'USER': '<your-database-username>', 'PASSWORD': '<your-database-password>', 'HOST': 'localhost', 'PORT': '3306', } }
- Create a MySQL database named
-
Apply migrations to create the necessary database tables:
python manage.py makemigrations python manage.py migrate
-
Create a superuser account to access the Django admin panel:
python manage.py createsuperuser
-
Run the development server:
python manage.py runserver
-
Open your browser and navigate to:
- Main application:
http://127.0.0.1:8000
- Admin panel:
http://127.0.0.1:8000/admin
Use the superuser credentials you created earlier to log in.
- Main application:
This project is licensed under the Apache License 2.0.