Skip to content

A Java and JavaFX-based system for booking and managing car rentals using MySQL as a backend database

Notifications You must be signed in to change notification settings

shyke0611/Car_Rental_Project

Repository files navigation

Email LinkedIn Website


Car Rental Booking and Management System

Personal Project on the booking and management of vehicles using Java and MySql database.



Table of Contents
  1. About The Project
  2. Getting Started
  3. Usage
  4. Roadmap
  5. Contributing
  6. License
  7. Contact
  8. Acknowledgments

About The Project

The Car Rental Booking and Management System is a comprehensive application designed to streamline the management of car rentals, bookings, clients, and insurance options. This system is built using JavaFX and CSS for the user interface, Scene Builder for the frontend, and MySQL for the database backend.

Project Demo

Client_Side_Booking.mp4
Admin_Side_Management.mp4

Key Features:

  • User Interface (UI) Applications: UI/UX with JavaFX with CSS for styling and FXML for layout.
  • MYSQL Database using JDBC API: Store and retrieve data reliably with support for transactions.
  • Signup/Login mechansim: Validates users with their credentials using BCrypt for PII hashing.
  • Thread Safety: Synchronized methods, ExecutorService, Transaction management, Scheduled tasks.
  • Client-Server Communication: JAX-RS using HTTP and REST API
  • OOP principles, MVC, DAO, Strategy.
  • Built With

    Getting Started

    To get a local copy up and running, follow these simple steps.

    Prerequisites

    You will need the following software installed:

    Installation

    1. Clone the repo using Terminal/Command Prompt:

      git clone https://github.com/shyke0611/Car_Rental_Project.git
    2. Navigate to the project directory:

      cd Car_Rental_Project
    3. Install Maven dependencies:

      mvn clean install
    4. Run the application:

      mvn clean javafx:run

    Usage

    Entity-Relation Diagram of How Project was Planned: ERD

    Quick Demo of Project Using Custom Runtime

    Clone the project repository, move to the project directory, and then run the code below:

    For Mac Users:

      ./custom-runtime-macos/bin/java -jar target/car_rental_book_and_manage-1.0.jar

    For Windows Users:

       custom-runtime-windows/bin/java -jar target/car_rental_book_and_manage-1.0.jar

    Note: When using this application, you can use fake phone numbers, license number, etc

    Roadmap

    • Implement features for the rental management section
    • Implement features for the rental booking section
    • Apply user experience
    • Integrate additional payment methods
    • Expand to client-web server

    Reflection

    Context and Motivation

    This Car Rental Booking and Management System was a month long personal project aimed at refining my Java skills. I undertook this project to deepen my understanding of software development using java and user experience (UX) design principles. It provided an excellent opportunity to expand my knowledge in both technical and UX aspects.

    Project Goals

    The goal was to build a comprehensive system for managing car rentals, bookings, clients, and insurance options. I aimed to create a robust application using JavaFX for the user interface and MySQL for the database backend, ensuring a seamless and user-friendly experience.

    Challenges and Learning Experience

    A major challenge was ensuring thread safety and preventing race conditions, requiring extensive research into synchronization mechanisms for managing concurrent operations. Addressing these issues enhanced my understanding of Java concurrency and improved my problem-solving skills.

    Acknowledgments

    About

    A Java and JavaFX-based system for booking and managing car rentals using MySQL as a backend database

    Topics

    Resources

    Stars

    Watchers

    Forks

    Packages

    No packages published