Java Projects
-
Project Description: Room Reservation System (JavaFX/Maven/SQLite3)
This project is a desktop application I developed using JavaFX in NetBeans IDE, leveraging the Maven build tool for dependency management and SQLite3 for data storage. Designed for managing room reservations, the application provides an interface for handling rooms and reservations, adhering to the Model-View-Controller (MVC) architectural pattern.
Key elements and demonstrated features include:- GUI Development with JavaFX: The graphical user interface is built using JavaFX, with UI structure defined in FXML files (`MainView.fxml`, `ReservationForm.fxml`, `RoomManagement.fxml`). Custom styling is applied using CSS (`com/kf_group/reservationapp.css`).
- MVC Architecture: The application follows the MVC pattern, separating concerns into Model, View, and Controller packages for better organization and maintainability.
- Model Layer (`com.kf_group.reservationapp.model`): Contains entity classes like `Reservation.java`, `Room.java`, and `User.java` representing the application's core data structures.
- View Layer (`src/main/resources/com/kf_group/reservationapp`): Contains the FXML files that define the visual presentation of the user interface elements.
- Controller Layer (`com.kf_group.reservationapp.controller`): Acts as the intermediary, handling user interactions from the View, interacting with the Service layer (which uses the Model), and updating the View based on the results.
- Service Layer (`com.kf_group.reservationapp.service`): Provides business logic and interacts with the database, including a `DatabaseConnection.java` class for managing database connections.
- Exception Handling (`com.kf_group.reservationapp.exception`): Includes custom exceptions like `ReservationConflictException.java` to handle specific application errors gracefully.
- Utility Classes (`com.kf_group.reservationapp.util`): Contains helper classes such as `AlertUtils.java` for displaying messages and `DateUtils.java` for date/time formatting and validation.
- Dependency Management (Maven): Uses Maven for managing external libraries, indicated by the `pom.xml` file and shown dependencies like `sqlite-jdbc` and various JavaFX modules.
- Room Management (`Gestion des Salles`): Allows adding, modifying, and viewing room details (ID, Name, Capacity, Description). Demonstrated adding a new room ("Palais des congrès") with capacity 500 and description "Mariage, Conference".
- Reservation Management (`Nouvelle Réservation`, table view): Allows creating new reservations by selecting a room and user, specifying start/end dates and times, and adding a motif. Shows existing reservations in a table, including details like ID, Room, User, Start Date/Time, End Date/Time, and Motif. Demonstrated creating a new reservation for the "Palais des congrès".
- Data Persistence (SQLite3): All room and reservation data is stored persistently in a local SQLite3 database, managed by the Service layer.
This project demonstrates my skills in JavaFX desktop application development, implementing the MVC architectural pattern, using Maven for dependency management, integrating with an SQLite3 database, and developing core features for managing room reservations, including data manipulation, display, and basic error handling.
-
Project Description: Canoe Racing Game Developed in Java
This project, completed as part of a semester project for the Master’s program in Mechatronics, focuses on the design and development of a canoe racing game using the Java programming language. The game immerses players in a virtual Olympic-style canoe race, featuring obstacles, competitors, and scoring systems.
Key contributions include:- Game Design: Development of an interactive and visually appealing interface with custom animations and graphics.
- Player Mechanics: Implementation of player controls for navigation, speed adjustment, and obstacle avoidance.
- Obstacle System: Dynamic placement and movement of obstacles to enhance gameplay difficulty.
- Scoring and Feedback: Real-time scoring system with visual feedback to track player performance.
- Multiplayer Capabilities: Optional implementation of a multiplayer mode for competitive gameplay.
As Scrum Master for this project, I was responsible for organizing the team, facilitating agile development practices, and ensuring project milestones were achieved on time. The game was programmed using NetBeans, an integrated development environment (IDE) for Java, which streamlined the coding process and ensured efficient debugging and testing.
This project demonstrates not only the technical integration of programming, user interface design, and game mechanics but also my leadership and organizational skills as Scrum Master, ensuring the successful completion of an engaging and interactive gaming experience.
-
Project Description: Sales Management Application (JavaFX/Maven/SQLite3)
This project is a desktop application I developed using JavaFX in NetBeans IDE, leveraging the Maven build tool for dependency management and SQLite3 for data storage. Designed for managing sales within a business, the application provides an interface for handling products, processing sales commands, viewing sales history, and managing user sessions, adhering to the Model-View-Controller (MVC) architectural pattern.
Key elements and demonstrated features include:- GUI Development with JavaFX: The graphical user interface is built using JavaFX, with layouts defined in FXML files (`commands.fxml`, `dashboard.fxml`, `historique.fxml`, `login.fxml`, `produits.fxml`). Custom styling is applied using CSS (`style.css`). Developed within NetBeans IDE.
-
MVC Architecture: The application follows the MVC pattern, with distinct packages for:
- `com.kf_group.ventemanager.models`: Contains entity classes and DTOs representing data like `Commande.java`, `LigneCommande.java`, `Produit.java`, `Utilisateur.java`, `CommandeInfoDTO.java`, `ProduitInfoDTO.java`.
- `com.kf_group.ventemanager.view`: Contains the FXML files defining the user interface layouts.
- `com.kf_group.ventemanager.controllers`: Contains JavaFX controller classes (`DashboardController`, `HistoriqueController`, `LoginController`, `ProduitController`) that handle user input and interact with the Service layer.
- `com.kf_group.ventemanager.service`: Provides business logic and interacts with the database, including `DatabaseConnection.java` for managing connectivity and `SessionManager.java` for user session handling.
- `com.kf_group.ventemanager.database`: Dedicated package for database-related operations, connecting to the SQLite3 database.
- `com.kf_group.ventemanager.utils`: Contains utility classes like `AlertUtils.java` for showing messages and helper functions.
- User Authentication: Features a login screen (`login.fxml`) for user authentication.
- Dashboard (`VenteManager - Dashboard`): The main application window providing navigation to different sections: `Gestion Produits`, `Passer Commande`, `Historique Ventes`, and `Déconnexion`.
- Product Management (`Gestion des Produits`): Displays a table of existing products (ID, Nom du Produit, Prix (€), Quantité Stock). Allows users to add new products (Name, Price, initial Stock) and modify or delete existing ones. Demonstrated adding "Banane" (1.50€, 20 stock) and modifying "gateau creme" stock from 13 to 20.
- Sales Command (`Passer Commande`): Displays available products from stock. Allows selecting a product, entering quantity, and adding it to a current cart (`Panier Actuel`). The cart displays selected products with quantity, unit price, and total per item, calculating the overall total command amount. Validating the command processes the sale and updates product stock. Demonstrated adding "Banane" and "pain" to the cart and validating the command.
- Sales History (`Historique Ventes`): Displays a history of completed sales (ID Commande, Date et Heure, Utilisateur, Total (€)). Shows records of past transactions. Demonstrated viewing the history, including the recently completed command.
- Database Integration (SQLite3): Data for products, commands, command lines, and users is stored persistently in a local SQLite3 database, managed through the database and service layers.
- Dependency Management (Maven): External libraries, including JavaFX modules and `sqlite-jdbc`, are managed using Maven.
- User Session Management: The `SessionManager` class is used to manage the current user session (implicitly linked to the login/logout functionality).
This project demonstrates my skills in JavaFX desktop application development, implementing the MVC architectural pattern, using Maven for dependency management, integrating with an SQLite3 database, and developing core features for a sales management system, including product/stock management, transaction processing, sales history tracking, and user authentication/sessions.
-
Project Description: Hotel Management Application (Java SE/Swing/JDBC/MySQL)
This project is a desktop application I developed using Java SE in NetBeans IDE. It utilizes the Swing library for the graphical user interface, JDBC for database connectivity, and MySQL for data storage. The application is designed to simplify the management of clients, rooms, and reservations within a hotel establishment.
Key elements and demonstrated features include:- GUI Development with Swing: The graphical user interface is built using the Swing library, providing interactive components like windows, buttons, tables, and text fields for managing hotel data.
- Database Persistence (MySQL/JDBC): Data for clients, rooms, and reservations is stored persistently in a MySQL database, accessed through JDBC (Java Database Connectivity) using the `mysql-connector-java` JAR file. The database structure was initially set up using phpMyAdmin.
- Client Management: Allows registering new clients (Client ID, Name, Phone, Address). Demonstrated adding a new client "Fofou kankeu" from "France" and another client "Kuete Kankeu" from "Cameroun".
- Room Management (`CHAMBRES`): Displays a list of rooms with details like Number, Type (Simple, Double, Suite, Familiale), Price per night, and Status (Disponible/Available, Occupée/Occupied, En Nettoyage/Cleaning, Maintenance). Allows adding new rooms and modifying or deleting existing ones. Demonstrated adding a new room (Suite, 90.0€, Disponible), adding another (Double, 25.0€, Disponible), and deleting a room. Includes a search function by room number.
- Reservation Management (`RÉSERVATIONS`): Allows creating new reservations by selecting a client and an available room, and specifying the start and end dates. Displays existing reservations with details like Reservation ID, Client ID, Client Name, Room Number, Start Date, End Date, and Status (Confirmée/Confirmed). Demonstrated creating a reservation for client "Fofou kankeu" in Suite room 1.
- Simple and Effective Interface: The application provides a straightforward interface for managing the core hotel operations related to clients, rooms, and reservations.
- Java SE Development: The application is developed using standard Java SE features and libraries.
This project demonstrates my skills in Java SE desktop application development using Swing, database integration with MySQL via JDBC, and implementing basic CRUD and management features for a hotel reservation system, focusing on simplicity and functionality.
-
Project Description: Human Resources Management Application (JavaFX/Maven/MySQL)
This project is a desktop application I developed using JavaFX in NetBeans IDE, leveraging the Maven build tool for dependency management and MySQL for data storage. Designed for managing human resources within a company, the application provides an interface for handling employees, managing leave requests, tracking absences, and conducting annual evaluations, adhering to the Model-View-Controller (MVC) architectural pattern.
Key elements and demonstrated features include:- GUI Development with JavaFX: The graphical user interface is built using JavaFX, with layouts defined in FXML files (`gestionrh.fxml`, `AbsenceEditDialog.fxml`, `AbsenceView.fxml`, `CongeEditDialog.fxml`, `CongeView.fxml`, `EmployeeEditDialog.fxml`, `EmployeeView.fxml`, `EvaluationEditDialog.fxml`, `EvaluationView.fxml`, `LoginView.fxml`, `Mainwindow.fxml`). Custom styling is applied using CSS (`styles.css`). Developed within NetBeans IDE.
- MVC Architecture: The application follows the MVC pattern, with distinct packages for Model, View, and Controller, facilitating separation of concerns and maintainability.
- Model Layer (`com.kf_group.gestionrh.model`): Contains entity classes representing HR data like `Absence.java`, `DemandeConge.java`, `Employee.java`, `EvaluationAnnuelle.java`, `Utilisateur.java`.
- View Layer (`src/main/resources/com/kf_group/gestionrh`): Contains the FXML files defining the user interface layouts and CSS file for styling.
- Controller Layer (`com.kf_group.gestionrh.controller`): Acts as the intermediary, handling user interactions, interacting with the DAO and Service layers, and updating the View. Includes controllers for various HR functionalities.
- DAO Layer (`com.kf_group.gestionrh.dao`): Provides Data Access Objects for interacting with the MySQL database, handling SQL queries for CRUD operations on HR data.
- Service Layer (`com.kf_group.gestionrh.service`): Provides business logic and interacts with the DAO layer.
- Utility Classes (`com.kf_group.gestionrh.util`): Contains utility classes like `DateAndTimePicker.java` for date/time selection, `DateUtils.java` for date formatting, `SessionManager.java` for user session management, and `ValidationUtils.java` for data validation.
- Exception Handling (`com.kf_group.gestionrh.exception`): Includes custom exceptions like `RecordNotFoundException.java` and `ValidationException.java` to handle specific application errors.
- Database Persistence (MySQL/JDBC): Data is stored in a MySQL database, accessed via JDBC using the `mysql-connector-java` JAR.
- Login and Main Menu: Features a login screen (`LoginView.fxml`) for user authentication. The main window (`Mainwindow.fxml`) provides navigation to different HR modules: Employés, Congés, Absences, and Évaluations.
- Employee Management (`Gestion des Employés`): Displays a table of employees (Matricule, Nom, Prénom, Email, Poste, Département, Statut). Allows adding new employees (with details like Matricule, Name, Surname, Date of Birth, Address, Email, Phone, Position, Department, Date of Hire, Contract Type, End of Contract Date, Manager, Paid Leave Balance, Account Status). Demonstrated adding a new employee "Magne Kankeu Lynda". Includes search and update functionality.
- Leave Management (`Gestion des Congés`): Displays leave requests with status options (À Approuver (Soumise), Approuvées, Rejetées). Allows making a new leave request (Employee, Type of Leave, Start Date, End Date, Number of Days, Optional Motif). Demonstrated making a leave request for employee "Lynda Magne Kankeu" for 5 days (Paid, starting 19/05/2025). Also shows functionality to Approve, Reject, or Delete requests.
- Absence Management (`Gestion des Absences`): Displays recorded absences with details like ID, Employee Name/Surname, Type of Absence, Start Date/Time, End Date/Time, Motif, Justified, and Registration Date. Allows recording new absences. Demonstrated recording an absence for employee "Lynda Magne Kankeu" (Maladie, on 19/05/2025 from 10:00 to 13:00) with justification. Also shows functionality to Modify or Delete absences.
- Annual Evaluations (`Gestion des Évaluations Annuelles`): Displays annual evaluations for employees with details like ID, Employee First/Last Name, Evaluation Year, Evaluator First/Last Name, Evaluation Date, Global Score, Status (PLANIFIEE, REALISEE, SIGNEE), and Note. Allows planning new evaluations (selecting Employee, Evaluation Year, Evaluator, Evaluation Date, Global Score, Status, Previous Year Objectives, Realization Objectives/Comments, Strengths, Areas for Improvement, Next Year Objectives, General Employee/Evaluator Comments). Demonstrated planning an evaluation for "Lynda Magne Kankeu", evaluated by "Alain Fofou Kankeu", for 2025, planned status, global score 15, with comments on previous year's objectives and areas for improvement. Also shows functionality to Consult/Modify or Delete evaluations.
This project demonstrates my skills in JavaFX desktop application development, implementing the MVC architectural pattern, using Maven for dependency management, integrating with a MySQL database via JDBC, and developing core HR management features including employee records, leave/absence tracking, and performance evaluations with detailed recording and review capabilities.
-
Project Description: Path Planning Simulation with A* Algorithm in
Java
This semester project, developed as part of the Mechanical Engineering program at SUPMICROTECH ENSMM, focuses on mobile robot path planning using the A* search algorithm. The Java-based desktop application enables interactive simulation of pathfinding on various grid sizes.
Key contributions include:- User Interface: Custom Java Swing GUI for selecting map matrices (8x7, 11x10, 13x12) and visualizing the robot environment.
- A* Algorithm Implementation: Efficient search logic for determining the shortest path between start and goal positions while avoiding obstacles.
- Interactive Visualization: Real-time rendering of search states (open, closed, final path) with color-coded grid cells (green, red, blue, black).
- Matrix Management: Flexible loading of different map sizes, dynamically updating the grid view and data model.
- Educational Value: Helps students understand graph-based navigation, search strategies, and robot motion planning.
This application was developed in NetBeans IDE using Java SE, with a focus on object-oriented design, modular code structure, and clear visualization. The simulation provides a strong foundation for more advanced robotics or AI navigation projects.
It highlights both algorithmic problem-solving and user interface design within a real-world robotics context.