A desktop car rental management application built with Java Swing and SQLite. Supports two separate user roles — Admin and Customer — each with their own panel and functionality.
- Register and log in with email/password
- Browse available vehicles (location, make, model, year, fuel, gear, cost)
- Select rental and return dates via date pickers
- Automatic total cost calculation based on rental duration
- Reserve a vehicle with one click
- Dedicated admin login screen
- Add new vehicles to the fleet (location, make, model, color, year, fuel, gear, plaque, cost)
- Delete vehicles from the fleet
- View all active rentals (plaque, customer name, days, location, total cost)
- Export vehicle and rental data to PDF reports (iTextPDF)
| Screen | Description |
|---|---|
oturum |
Welcome screen — Register, Customer Login, Admin Login |
kayit |
Customer registration form |
giris |
Customer login |
musteriFrame |
Customer dashboard — browse & reserve cars |
admingiris |
Admin login |
adminFrame |
Admin dashboard — manage fleet & view rentals |
profil |
User profile view |
| Layer | Technology |
|---|---|
| UI | Java Swing |
| Database | SQLite (via JDBC) |
| PDF Export | iTextPDF |
| Build Tool | Apache Ant (NetBeans project) |
- JDK 8 or higher
- NetBeans IDE (recommended) or any Java IDE
- SQLite JDBC driver (
sqlite-jdbc-*.jar) - iTextPDF library (
itextpdf-*.jar)
- Clone the repository:
git clone https://github.com/ardilsungu/Car-Rental-System
cd Car-Rental-System-
Open the project in NetBeans (File → Open Project → select
Car_Rental_System/) -
Update the database path in
DatabaseHelper.javaandadminFrame.java:
// Change this to your local path or use a relative path
private static final String DB_URL = "jdbc:sqlite:car_rental.db";-
Add the required JAR files to the project libraries:
sqlite-jdbc.jaritextpdf.jar
-
Run
JavaApplication3.javaas the main class.
Car_Rental_System/
├── src/
│ ├── javaapplication3/
│ │ ├── JavaApplication3.java # Entry point
│ │ ├── MainFrame.java
│ │ └── PDFReportGenerator.java
│ └── panels/
│ ├── oturum.java # Welcome / role selection screen
│ ├── giris.java # Customer login
│ ├── kayit.java # Customer registration
│ ├── musteriFrame.java # Customer dashboard
│ ├── admingiris.java # Admin login
│ ├── adminFrame.java # Admin dashboard + PDF export
│ ├── profil.java # User profile
│ └── DatabaseHelper.java # SQLite connection helper
└── nbproject/ # NetBeans project config
- Database path is hardcoded — update
DB_URLinDatabaseHelper.javabefore running - No password hashing — passwords are stored as plain text (not recommended for production)
- Available cities are fixed: İstanbul, Ankara, İzmir
Java · Java Swing · SQLite · JDBC · iTextPDF · Apache Ant