Python Mini-Project: Car Rental System
This project is a car rental system developed in Python using the Tkinter library for the graphical user interface. The system allows users to browse a catalog of luxury and high-end cars, view detailed specifications, and simulate a car purchase through a payment portal. The application uses a MySQL database to manage car details, user registrations, and transaction records.
Technical Details
GUI Framework: The application's front end is built using tkinter and tkmacosx, providing a native-looking graphical interface.
Database: mysql.connector is used to establish a connection to a local MySQL database. The database schema includes tables for cars_details, register, and cars_sold to store vehicle information, user credentials, and transaction history.
File Organization: The project is modularized into several Python files, each handling a specific functionality:
login.py & register.py: Manages user authentication, including login and registration with input validation.
Dashboard.py: Displays a gallery of available cars in a scrollable, widget-based layout. It features a dynamic image slideshow and fetches car data from the database.
car_details.py: Presents a detailed view of a selected car, including images and comprehensive specifications (e.g., engine type, power, and seating capacity).
Payment.py: A simulated payment interface that calculates the total cost of a car purchase, including various taxes and fees, and processes the transaction by recording it in the database.
navigation_module.py & custom_widget.py: These files contain reusable classes for the navigation bar and customizable car display widgets, promoting a cleaner codebase.
Key Features:
User Authentication: Secure user registration and login functionality.
Dynamic UI: A dynamic dashboard that uses a slideshow and custom widgets to display car information fetched from the database.
Detailed Views: Users can view detailed specifications for each car, with an interactive photo gallery that updates the main image when a thumbnail is clicked.
Simulated Transactions: The payment module calculates costs like GST, import duty, and road tax, providing a comprehensive final price. Transactions are recorded in the cars_sold table.
Modular Code: The project's structure makes it easy to maintain and extend, with separate files for different components.