All projectsRestaurant Management System - Inventory Module

Restaurant Management System - Inventory Module

Developing a mission-critical inventory sub-system for a restaurant management platform using a modern Jakarta EE 10 stack.

Jakarta EEJPA/HibernateMySQLJava 22Maven

Overview

As part of a university group project of Development Enterprises Applications module, I was responsible for designing and developing the Inventory Management Module for a comprehensive Restaurant Management System (RMS). The goal was to move away from manual tracking and provide restaurant managers with a data-driven way to monitor stock levels, record daily usage, and minimize food waste.

This module acts as the "backbone" of the restaurant's operations, ensuring that the kitchen never runs out of essential ingredients while providing financial transparency regarding ingredient costs and usage history.

UI Design & Experience

The user interface was designed with a focus on utility and speed, ensuring staff can record data quickly during a busy shift.

  • Dashboard-Centric Design: Utilizes a grid-based layout for high-level metrics like low-stock counts and recent usage logs.
  • Visual Feedback: Implemented a responsive table system with hover effects and clear action groups (Edit/Delete/Adjust) to improve data management efficiency.
  • Clean Professionalism: The UI uses a "Bootstrap-inspired" custom CSS framework featuring a fixed navigation system and a neutral, professional color palette (#007bff primary) to maintain focus on the data.

Tech Stack

LayerTechnology
LanguageJava 22
FrameworkJakarta EE 10 (Web Profile)
ControllerJakarta Servlet 6.1
ORM / DatabaseHibernate 6.4 (JPA) + MySQL 8.0
SecurityjBCrypt (Password Hashing)
Build ToolMaven

Architecture & File Structure

The project follows the MVC (Model-View-Controller) pattern, leveraging DAOs (Data Access Objects) and Services to ensure a clean separation of concerns.

Project Structure

RMS/
├── src/main/java/com/restaurant/rms/
│   ├── controller/      ← InventoryServlet (Routing & Logic)
│   ├── dao/             ← InventoryDAO (JPA/EntityManager Operations)
│   ├── model/           ← Entity definitions (InventoryItem, WasteLog)
│   ├── service/         ← Business logic layer
│   └── util/            ← DB connection & Auth utilities
├── src/main/webapp/
│   ├── css/             ← Modular style sheets
│   └── views/           ← JSP templates (Inventory List, Usage Forms)
└── pom.xml              ← Project dependencies (Jakarta, Hibernate)