Skip to content

Steven-LG09/Tame

Folders and files

NameName
Last commit message
Last commit date

Latest commit

Β 

History

2 Commits
Β 
Β 
Β 
Β 

Repository files navigation

πŸ› οΈ Mechanical Workshop Management System (Console-Based Java App)

This is a modular, object-oriented Java console application designed to manage a mechanical workshop. It allows clients and mechanics to interact with the system by registering, booking appointments, viewing service history, and managing vehicles and services.


🎯 Objectives

  • Implement a complete system to manage clients, services, vehicles, and appointments.
  • Apply the 4 pillars of Object-Oriented Programming:
    • Abstraction
    • Encapsulation
    • Inheritance
    • Polymorphism
  • Provide a flexible architecture for future expansion.
  • Develop a clean, console-based user interface.

βš™οΈ Features

πŸ” Authentication & Roles

  • Differentiated access for Clients and Mechanics
  • Simple username/password login system (non-persistent)

πŸ› οΈ Services

  • View available mechanical or electrical services
  • Filter by category, cost, or duration
  • Custom cost calculation depending on service type

πŸ“† Appointments

  • Book appointments by selecting:
    • A service
    • A vehicle
    • A date and time
  • Clients can modify or cancel their appointments
  • Mechanics can confirm and track appointments

πŸš— Vehicles & History

  • Register and store vehicle technical data
  • Track service history per vehicle

πŸ›οΈ System Architecture

Main Components

  • User (Abstract): Base class for both Client and Mechanic
  • Vehicle: Holds vehicle technical data
  • Service: Abstract class with specialized types (MechanicalService, ElectricalService)
  • Appointment: Links client, vehicle, and service with a date/time
  • Workshop: Manages overall capacity and data
  • Manager Classes: Handle CRUD and business logic (e.g., ServiceManager, AppointmentManager)

πŸ’‘ OOP Principles Applied

  • Abstraction: Entities like Service and Appointment expose only essential attributes and behaviors.
  • Encapsulation: Sensitive data (e.g., service history, states) is protected and accessible only via getters/setters.
  • Inheritance:
    • User β†’ Client / Mechanic
    • Service β†’ MechanicalService / ElectricalService
  • Polymorphism:
    • Method overriding (e.g., calculateCost() for each service type)
    • Common behaviors implemented differently depending on the context

πŸ–₯️ "Success is not final, failure is not fatal: it is the courage to continue that counts." β€” Winston Churchill

About

This is a Mechanical Workshop Management System

Resources

Stars

Watchers

Forks

Languages