Skip to content

W1CKMAN/OOP-Project

Folders and files

NameName
Last commit message
Last commit date

Latest commit

Β 

History

48 Commits
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 

Repository files navigation

Java 21 MySQL Maven License

πŸš— CarCare Management System

A comprehensive vehicle service management solution for automotive repair shops

Features β€’ Screenshots β€’ Tech Stack β€’ Installation β€’ Usage β€’ Architecture


πŸ“‹ Overview

CarCare is a modern, full-featured desktop application designed to streamline operations for vehicle service centers. Built with Java Swing and enhanced with contemporary UI components, it provides an intuitive interface for managing customers, orders, jobs, employees, inventory, and suppliers.

Whether you're running a small garage or a large automotive service center, CarCare helps you:

  • πŸ“Š Track service orders from intake to completion
  • πŸ‘₯ Manage customer relationships and vehicle history
  • πŸ‘· Assign and monitor jobs for technicians
  • πŸ“¦ Keep inventory levels optimized
  • πŸ“§ Send automated email notifications
  • πŸ“ˆ Generate insightful reports

✨ Features

🎯 Core Functionality

Module Description
Dashboard Real-time statistics, quick actions, and system overview
Order Management Create, track, and manage service orders with status workflow
Customer Management Customer profiles, contact info, and vehicle service history
Employee Management Staff records, job assignments, and workload tracking
Job Management Task assignment, progress tracking, and completion notifications
Inventory Management Stock levels, low-stock alerts, and supplier integration
Supplier Management Vendor information and contact management
Reports Visual charts, PDF/Excel exports, and analytics

🎨 Modern UI/UX

  • FlatLaf - Modern, flat look and feel
  • Responsive layouts with MigLayout
  • Toast notifications for user feedback
  • Search & filtering on all data tables
  • Statistics cards with real-time data
  • Dark/Light theme support

πŸ” Security

  • Role-based access control (Admin, Manager, Employee, Receptionist)
  • BCrypt password hashing
  • Secure session management

πŸ“§ Notifications

  • Automated email notifications
    • Order confirmations
    • Status updates
    • Job assignments
    • Vehicle ready for pickup
  • HTML email templates
  • Async email sending

πŸ“Š Reporting

  • Interactive charts with JFreeChart
  • PDF export with iText
  • Excel export with Apache POI
  • Daily/Monthly summaries

πŸ–ΌοΈ Screenshots

Coming soon - Screenshots of the application interface


πŸ› οΈ Tech Stack

Backend

Technology Purpose
Java 21 Core programming language
JDBC Database connectivity
HikariCP High-performance connection pooling
BCrypt Password encryption
Jakarta Mail Email functionality
SLF4J + Logback Logging framework

Frontend

Technology Purpose
Java Swing GUI framework
FlatLaf 3.4 Modern look and feel
MigLayout Flexible layout manager
JFreeChart Charts and graphs

Database

Technology Purpose
MySQL 8.0 Relational database

Build & Tools

Technology Purpose
Maven Build automation
iText PDF PDF generation
Apache POI Excel export

πŸ“¦ Installation

Prerequisites

Setup Steps

  1. Clone the repository

    git clone https://github.com/W1CKMAN/OOP-Project.git
    cd OOP-Project
  2. Create the database

    mysql -u root -p < src/main/resources/database_schema.sql
  3. Configure the application

    Edit src/main/resources/config.properties:

    # Database Configuration
    db.url=jdbc:mysql://localhost:3306/oop-chaos
    db.username=root
    db.password=your_password
    
    # Email Configuration (Gmail example)
    mail.smtp.host=smtp.gmail.com
    mail.smtp.port=587
    mail.from.email=your-email@gmail.com
    mail.from.password=your-app-password
  4. Build the project

    mvn clean install
  5. Run the application

    mvn exec:java -Dexec.mainClass="Main.Main"

πŸš€ Usage

Default Login

After initial setup, use these credentials:

  • Username: admin
  • Password: admin123

⚠️ Important: Change the default password after first login!

Quick Start Guide

  1. Add Employees - Set up your technicians and staff
  2. Add Suppliers - Register your parts suppliers
  3. Add Inventory - Stock your inventory items
  4. Register Customers - Add customer information
  5. Create Orders - Start accepting service orders
  6. Assign Jobs - Delegate work to employees
  7. Track Progress - Monitor job status and completion

πŸ—οΈ Architecture

src/main/java/
β”œβ”€β”€ Config/                 # Configuration management
β”‚   └── ConfigManager.java
β”œβ”€β”€ Controllers/            # MVC Controllers
β”‚   β”œβ”€β”€ CarCareDashboardController.java
β”‚   β”œβ”€β”€ EmployeeController.java
β”‚   └── ...
β”œβ”€β”€ DAO/                    # Data Access Objects
β”‚   β”œβ”€β”€ GenericDAO.java
β”‚   β”œβ”€β”€ CustomerDAO.java
β”‚   β”œβ”€β”€ Impl/
β”‚   β”‚   β”œβ”€β”€ CustomerDAOImpl.java
β”‚   β”‚   └── ...
β”‚   └── ...
β”œβ”€β”€ DatabaseConnection/     # Database utilities
β”‚   β”œβ”€β”€ ConnectionPool.java
β”‚   └── ...
β”œβ”€β”€ Models/                 # Entity classes
β”‚   β”œβ”€β”€ Customer.java
β”‚   β”œβ”€β”€ Employee.java
β”‚   β”œβ”€β”€ Order.java
β”‚   └── ...
β”œβ”€β”€ Services/               # Business logic
β”‚   β”œβ”€β”€ AuthService.java
β”‚   β”œβ”€β”€ CustomerService.java
β”‚   └── EmailService.java
β”œβ”€β”€ Utils/                  # Utility classes
β”‚   β”œβ”€β”€ ValidationUtil.java
β”‚   β”œβ”€β”€ ToastNotification.java
β”‚   └── ...
β”œβ”€β”€ Views/                  # Swing UI components
β”‚   β”œβ”€β”€ CarCareDashboard.java
β”‚   β”œβ”€β”€ CustomerView.java
β”‚   └── ...
└── Main/
    └── Main.java           # Application entry point

Design Patterns Used

  • MVC (Model-View-Controller)
  • DAO (Data Access Object)
  • Singleton (ConfigManager, ConnectionPool)
  • Service Layer (Business logic separation)
  • Repository Pattern (Data abstraction)

πŸ“ Project Structure

OOP-Project/
β”œβ”€β”€ πŸ“ src/
β”‚   └── πŸ“ main/
β”‚       β”œβ”€β”€ πŸ“ java/           # Source code
β”‚       └── πŸ“ resources/      # Configuration files
β”‚           β”œβ”€β”€ config.properties
β”‚           └── database_schema.sql
β”œβ”€β”€ πŸ“ target/                 # Build output
β”œβ”€β”€ πŸ“„ pom.xml                 # Maven configuration
└── πŸ“„ README.md

🀝 Contributing

Contributions are welcome! Here's how you can help:

  1. Fork the repository
  2. Create a feature branch (git checkout -b feature/AmazingFeature)
  3. Commit your changes (git commit -m 'Add AmazingFeature')
  4. Push to the branch (git push origin feature/AmazingFeature)
  5. Open a Pull Request

Development Guidelines

  • Follow Java naming conventions
  • Write meaningful commit messages
  • Add comments for complex logic
  • Update documentation as needed

πŸ“ License

This project is licensed under the MIT License - see the LICENSE file for details.


πŸ‘¨β€πŸ’» Author

Helitha Guruge (@iamhelitha)

🀝 Contributors

Thanks to all the amazing people who contributed to this project:


Helitha Guruge

πŸ’» Lead Developer

SA23098350

πŸ’»

Ravidesilva89

πŸ’»

Nipun Fernando

πŸ’»

W1CKMAN

πŸ’»

Nihidunimthaka

πŸ’»

dulan8

πŸ’»

senuja2003

πŸ’»

πŸ™ Acknowledgments


Made with ❀️ for the automotive service industry

⭐ Star this repo if you find it helpful!

About

No description, website, or topics provided.

Resources

License

Contributing

Security policy

Stars

Watchers

Forks

Packages

No packages published

Contributors 9

Languages