Skip to content

oliverbravery/FoodOrderingSystem

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

3 Commits
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Food Ordering System

Overview

This project is a comprehensive Food Ordering System designed to modernize and streamline the ordering process for a bustling children's soft play and bowling center. The system replaces a dated, paper-based method with a digital solution, featuring a customer-facing ordering application, a staff-operated till system, and a powerful admin dashboard for menu management and data analysis.

The Problem

The existing system at the facility was inefficient and prone to errors, leading to several key challenges:

  • Long Queue Times: With only one till for ordering, customers often faced long waits, sometimes leading to lost sales as frustrated patrons would leave.

  • Manual Data Analysis: All sales data was recorded on paper receipts. The manager had to spend hours manually tallying these receipts to analyze sales trends.

  • Static Menus: Physical menus were difficult and costly to update, leading to customer confusion when items were unavailable or prices changed.

  • Inefficient Communication: Special dietary requirements had to be communicated to the kitchen verbally, as there was no way to add notes to a printed order. This was time-consuming and increased the risk of errors.

  • Limited Till Functionality: The physical tills had a fixed number of buttons, making it impossible to add new menu items without a costly and time-consuming reprogramming process.

The Solution

To address these issues, I developed a new digital Food Ordering System with a three-tiered access structure: Customer, Staff, and Admin.

The new system allows customers to place their own orders from dedicated stations, significantly reducing queue times at the main till. All orders and sales data are stored digitally in a database, which can be easily queried through the admin dashboard. This provides valuable insights into sales data and popular items, saving the management team hours of manual work.

The menu is now fully digital and can be updated in real-time by an administrator. This ensures that customers always see the most current offerings and prices. The system also includes a feature for adding notes to orders, ensuring that special dietary needs are clearly communicated to the kitchen.

Key Features

  • Customer Self-Service: Customers can browse the menu and create their own orders, which generates a unique ID for payment at the till.

  • Staff Order Management: Staff can create and verify orders, process payments, and add notes for dietary requirements.

  • Admin Dashboard: A secure, password-protected area for administrators to:

  • Edit menu items, categories, and prices.

  • View all past and present orders.

  • Query the database for sales data and generate reports.

  • Update staff and admin passwords.

  • Dynamic Menu Display: The menu is fetched from the database and displayed in a clean, user-friendly interface.

  • Automated Kitchen Ticket Printing: Once an order is paid for, a ticket is automatically printed in the kitchen.

  • Secure and Robust: The system is built with data integrity and security in mind, featuring input validation and password encryption.

Technologies Used

  • Backend: C#, ASP.NET Core API

  • Frontend: Windows Forms

  • Database: SQL

  • Encryption: Vernam Cipher with a SHA256-hashed key

How It Works

The system is comprised of a Windows Forms application that communicates with a backend API. This API acts as a middleman, handling all interactions with the SQL database.

Customer Interaction: A customer uses the application to select items from the menu and place an order. This creates a new order record in the database with a "pending" status and a unique order ID.

Staff Verification: The customer takes their order ID to a cashier. The staff member uses the ID to retrieve the order, takes payment, and marks the order as "paid."

Kitchen Communication: Once an order is marked as paid, the system sends an API call to print a formatted food ticket to the kitchen's printer.

Admin Management: An admin can log in to a separate, secure section of the application to manage the menu, view sales reports, and update system settings. All changes are reflected in real-time.

Project Documentation & Methodology

This project is supported by extensive documentation that details every phase of the development lifecycle, following a structured methodology.

  • Analysis: The project began with in-depth analysis, including interviews with management and staff to gather requirements and identify pain points. The existing system was modeled to fully understand its limitations, which directly informed the objectives of the new system.

  • Design: A detailed design phase followed, where I created a complete blueprint for the application. This included:

  • High-Level Architecture: Structure charts to define the modular components of the program (Customer, Staff, and Admin modes).

  • Detailed Workflow: Comprehensive flow diagrams for every user journey and system process, including the API workflow.

  • Database Schema: A full database design with an E-R diagram, table structures, relationships, and sophisticated SQL query samples.

  • Algorithm Design: Pseudo-code and explanations for key algorithms, such as Merge Sort for efficient data handling and custom routines for dynamically displaying and updating UI elements.

  • UI/UX Design: Annotated screen mockups for every page, ensuring a user-friendly and intuitive interface.

  • Testing & Evaluation: The system underwent rigorous testing, with a detailed test plan covering over 35 specific test cases. Each case documented the input, expected result, and actual result to ensure all objectives were met. The project concludes with a critical evaluation against the initial objectives and incorporates direct end-user feedback for future improvements.

This thorough documentation process ensured a well-planned, robust, and user-centric final product.

This project demonstrates a full-stack approach to solving a real-world business problem, from initial analysis and design to implementation and testing.

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages