Skip to content
ChandlerNgo edited this page Dec 9, 2024 · 6 revisions

Panda Express POS and Inventory System Project

Overview

The Panda Express POS (Point-of-Sale) and Inventory System is a comprehensive solution designed to meet the operational needs of a restaurant. This project integrates a user-friendly interface, robust backend, and a scalable database to handle the restaurant's sales, inventory, and management requirements. Developed using Agile methodology, the system focuses on providing a reliable, accessible, and feature-rich platform for various user roles, including managers, cashiers, and customers.


Key Features

User Interfaces

  • Manager View: Manage staff, view reports, and oversee inventory.
  • Cashier View: Process orders and manage customer interactions.
  • Menu View: Static screen with all possible food items.
  • Customer View: Place orders and provide feedback.

Functionalities

  1. Point-of-Sale Operations
    • Fast and efficient transaction processing.
    • Integration with external APIs for payments.
  2. Inventory Management
    • Track stock levels.
    • Automated alerts for low inventory.
  3. Reporting
    • Generate sales and performance reports.
    • Data visualization for analytics.
  4. External APIs
    • Authentication, translation, and weather forecasting.
  5. Accessibility
    • Support for users with disabilities.
    • Compliance with accessibility standards.
  6. Custom Features
    • Enhanced UI/UX design with a Panda Express-themed color scheme.

Technical Stack

Frontend

  • React
    • Component-based architecture for scalability and reusability.
    • Custom components such as Navigate and Google Login.

Backend

  • Node.js with Express
    • RESTful API development.
    • Middleware for handling authentication and data validation.

Backend Sections

  • API Design: Defines routes for POS transactions, inventory updates, and user authentication.
  • Middleware: Implements request validation, error handling, and session management.
  • Database Integration: Connects to PostgreSQL using pg module, handling CRUD operations for tables such as orders, menu_items, and users.

Database

  • PostgreSQL
    • Hosted on AWS.
    • Structured schema for efficient data management.

Menu Management

  • Database Design: Includes tables for menu items, categories, and pricing.
  • Features:
    • Add, update, or delete menu items.
    • Search for items by name or category.
    • Track popular items and sales trends.

Customer Page

  • Features:
    • Browse menu items with detailed descriptions and images.
    • Place orders and customize items.
    • Provide feedback and rate services.
  • Accessibility:
    • Optimized for mobile and desktop.
    • Supports screen readers and keyboard navigation.

Cashier Page

  • Features:
    • Process orders quickly with barcode scanning.
    • Apply discounts and manage payment methods.
    • Access transaction history and generate receipts.
  • Integration:
    • Syncs with the inventory system to update stock levels in real time.

Manager Page

  • Features:
    • Manage staff accounts and permissions.
    • View and export sales reports.
    • Monitor inventory levels and generate restocking orders.
  • Advanced Tools:
    • Predictive analytics for sales forecasting.
    • Role-based access control for sensitive operations.

Development Process

Agile Methodology

  • Sprints for iterative development and delivery.
  • Daily stand-ups and bi-weekly retrospectives.

Sprint Highlights

  • Sprint 1: Initial setup, basic UI, and database schema design.
  • Sprint 2: Core functionality for POS and inventory systems.
  • Sprint 3: API integrations and advanced reporting features.

Tools

  • Version Control: Git (commits synced to two repositories).
  • Task Management: Google Sheets for tracking progress.

Challenges and Solutions

  1. Handling Large Datasets
    • Optimized queries for performance.
    • Indexed database tables.
  2. Third-Party API Integration
    • Built mock endpoints for testing.
    • Allocated additional time in sprints for debugging.
  3. Flooding During Development
    • Remote collaboration tools ensured uninterrupted progress.

Deployment

  • Frontend: Hosted on Vercel.
  • Backend: Hosted on Vercel.
  • Database: PostgreSQL on AWS.

Project Repository

  1. Primary Repository: Repository 1
  2. Secondary Repository: Repository 2