Skip to content

Latest commit

 

History

History
194 lines (162 loc) · 8.24 KB

README.md

File metadata and controls

194 lines (162 loc) · 8.24 KB

PizzeriaManager

Overview

PizzeriaManager is a comprehensive system designed for managing pizzerias, aiming to support pizzeria owners and employees in efficiently managing various aspects of restaurant operations. The system offers functionalities for menu management, ingredient management, employee and customer management, and order tracking.

Table of Contents

  1. Project Scope and Objectives
  2. System Responsibilities
  3. System Users
  4. User Requirements
  5. Functional Requirements
  6. Non-Functional Requirements
  7. System Features
  8. System Structure - Diagrams
  9. Glossary
  10. Installation
  11. License

Project Scope and Objectives

The system is intended for the gastronomy industry, specifically for managing pizzerias. It supports owners and employees in effectively managing various aspects of the restaurant, including:

  • Menu and Dish Management: Create, modify, and manage the pizzeria's menu, including adding new dishes such as pizza, gnocchi, and spaghetti.
  • Ingredient Management: Manage ingredients used in dishes, track their availability, and plan purchases.
  • Employee and Customer Management: Manage employee data, including their employment, shifts, and roles. Store customer data for personalized services and loyalty programs.

System Responsibilities

The system provides comprehensive support for managing pizzeria operations, focusing on:

  • Menu Management: Create, edit, and delete menu items, assign ingredients to dishes.
  • Employee Data Management: Manage employee data, including employment, shifts, and roles.
  • Customer Data Management: Collect and store customer information.
  • Order Management: Track and manage orders, from placement to fulfillment.

System Users

The system is designed for various user groups involved in pizzeria operations:

  • Pizzeria Owners: Manage all aspects of the restaurant, including menu, ingredients, and employees.
  • Pizzeria Employees: Perform duties such as taking and fulfilling orders, preparing dishes, and managing work schedules.

User Requirements

The system should store information about:

  • Persons:
    • Owner
    • Customer
    • Employee (Waiter, Chef)
  • Dishes: Pizza, Gnocchi, Spaghetti
  • Ingredients: Used in dishes
  • Menu: Comprehensive details necessary for restaurant operations

Functional Requirements

  • Add, edit, and delete dishes
  • Browse the menu
  • Manage ingredients
  • Place and accept orders
  • Track order status
  • Manage employees and customers
  • Backup data
  • Ensure data security

Non-Functional Requirements

  • Security: Data access is restricted based on user roles.
  • Reliability: Data recovery mechanisms in case of system failure.
  • Scalability: Easily add new types of dishes, ingredients, and persons.
  • Usability: Intuitive user interface with search and filter functions.

System Features

The PizzeriaManager system offers a wide range of features to facilitate the efficient management of a pizzeria. These include:

  1. Menu Management:

    • Add, edit, and delete dishes.
    • Browse and search the menu.
    • Assign ingredients to dishes.
  2. Ingredient Management:

    • Track ingredient availability.
    • Plan and manage ingredient purchases.
  3. Order Management:

    • Place and track orders.
    • Update order status.
    • Manage order fulfillment.
  4. Employee Management:

    • Manage employee information and roles.
    • Schedule employee shifts.
  5. Customer Management:

    • Store and manage customer data.
    • Personalize customer service and loyalty programs.
  6. Data Management:

    • Backup and restore data.
    • Ensure data security and integrity.

System Structure - Diagrams

Context Diagram

Context Diagram

Use Case Diagram

Use Case Diagram

Analytical Class Diagram

Analytical Class Diagram

Design Class Diagram

Design Class Diagram

Dynamic Use Case Analysis

Use Case: Add a new dish to the menu
Actors: Owner
Goal: Owner wants to add a new dish to the pizzeria's menu
Preconditions: Owner is logged into the system
Postconditions: New dish is added to the menu and available for customers
Main Steps: Owner selects "Add new dish" option
System displays form for new dish details
Owner enters details
System validates input
Owner confirms
System creates new dish object
System assigns ingredients to the dish
System adds dish to the menu
System displays success message
Alternate Steps: Missing required data: System displays error message

State Diagram

State Diagram

Activity Diagram

Activity Diagram

Sequence Diagram

Sequence Diagram

User Interface Prototype

Main Menu

Main Menu

Adding a new person

Adding a new person

Monitoring orders

Monitoring orders

Adding a new order

Adding a new order

Adding a new dish

Adding a new dish

Glossary

  • Gastronomy Industry: Sector focused on food and beverage preparation and service.
  • Pizzeria: Restaurant specializing in pizza.
  • Menu: List of available dishes and beverages.
  • Dish: Single menu item, e.g., pizza, gnocchi, spaghetti.
  • Ingredient: Item used to prepare dishes, e.g., sausage, cheese, tomato sauce.
  • Employee: Individual employed in the pizzeria, such as a waiter or chef.
  • Customer: Person using pizzeria services.
  • Owner: Person managing and owning the pizzeria.
  • Unique Identifier: Each person and component must have a unique ID.
  • Data Integrity: Each dish must have at least one ingredient; orders must be linked to a customer and waiter.
  • System Performance: The system should handle up to 1000 orders per day without performance degradation.

Installation

To install and run the PizzeriaManager system, follow these steps:

  1. Clone the repository:
git clone https://github.com/PejperO/PizzeriaManager.git
  1. Navigate to the project directory:
cd PizzeriaManager
  1. Build the project using Maven:
./mvnw clean install
  1. Run the application:
./mvnw spring-boot:run

Make sure you have Java Development Kit (JDK) and Apache Maven installed on your machine. If not, you can download and install them from the following links:

License

This project is licensed under the GPL-3.0 License. See the LICENSE file for more details.