POS System

POS System

A modern point-of-sale and kiosk system designed for Panda Express-style restaurants, featuring AI-powered ordering assistance and real-time kitchen management.

Built with React, Next.js, and PostgreSQL to streamline the ordering experience for customers and kitchen operations for staff.

System Features

AI Chat Assistant

Multilingual ordering assistant powered by OpenAI API helps customers navigate the menu and place orders in their preferred language.

Build Your Own Menu

Intuitive customization system allows customers to select meal sizes, choose entrees, and pick sides for a personalized dining experience.

Real-Time Kitchen View

Dedicated employee interface displays incoming orders in real-time, tracking inventory usage as items are prepared.

PostgreSQL Database

Robust database architecture manages menu items, orders, inventory levels, and employee data with reliability and efficiency.

Modern Web Stack

Built with React, Next.js, and Node.js for a responsive, fast, and maintainable full-stack application.

Complete Kiosk Experience

Designed specifically for Panda Express-style ordering, streamlining the customer journey from selection to checkout.

From Java to Modern Web

The POS System began as a JavaFX desktop application and was completely reimplemented as a modern web application using React, Next.js, and Node.js. This transformation made the system accessible from any device while significantly improving the user experience and maintainability.

The system was developed as the final project for CSCE 331 Foundations of Software Engineering, demonstrating full-stack development capabilities, database design, API integration, and modern software engineering practices.

Build Your Own Menu System

The customizable meal builder allows customers to select their meal size, choose from multiple entree options, and pick their preferred sides. This intuitive interface guides users through the selection process, ensuring they create the perfect meal while clearly displaying pricing and portion information.

Build Your Own Menu Interface

AI-Powered Ordering Assistant

One of the system's standout features is the AI chat assistant, which I designed and implemented using the OpenAI API. The assistant helps customers navigate the menu, answer questions about ingredients and options, and complete their orders—all in multiple languages. This feature makes the kiosk accessible to a broader audience and reduces the learning curve for first-time users, creating a more inclusive dining experience.

AI Ordering Assistant

Real-Time Kitchen Management

The kitchen view provides employees with a live dashboard of incoming orders, displaying all active orders and their status. As kitchen staff prepare items, the system automatically tracks inventory usage, ensuring accurate stock levels and preventing overselling. This real-time coordination between the front-of-house kiosk and back-of-house operations streamlines the entire restaurant workflow.

Kitchen Management View

My Contributions

As a key developer on this project, I focused on creating intuitive customer-facing features and robust backend systems:

  • Designed and implemented the AI chat assistant using OpenAI API with multilingual support
  • Built the front-end interface using React and Next.js for responsive, modern UI
  • Created the "Build Your Own" meal customization system with size, entree, and side selection
  • Developed the real-time kitchen view for order management and inventory tracking
  • Integrated PostgreSQL database for managing menu items, orders, inventory, and employee data
  • Implemented the complete customer ordering flow from menu browsing to checkout

Technical Architecture

The system leverages a PostgreSQL database to maintain data integrity across menu items, orders, inventory levels, and employee records. The Node.js backend provides RESTful APIs that connect the React frontend to the database, while the Next.js framework enables server-side rendering for optimal performance.

The kitchen view updates in real-time as orders come in, automatically adjusting inventory counts as items are prepared. This ensures accurate stock tracking and helps prevent overselling items that are running low.