{"id":31908245,"url":"https://github.com/elyeandre/sushi-ordering-system","last_synced_at":"2025-10-13T15:25:52.723Z","repository":{"id":316531647,"uuid":"1063763891","full_name":"elyeandre/sushi-ordering-system","owner":"elyeandre","description":null,"archived":false,"fork":false,"pushed_at":"2025-09-25T05:50:14.000Z","size":978,"stargazers_count":0,"open_issues_count":0,"forks_count":0,"subscribers_count":0,"default_branch":"master","last_synced_at":"2025-09-25T07:09:41.573Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":null,"language":"Java","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/elyeandre.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":null,"code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null,"notice":null,"maintainers":null,"copyright":null,"agents":null,"dco":null,"cla":null}},"created_at":"2025-09-25T04:59:20.000Z","updated_at":"2025-09-25T05:50:17.000Z","dependencies_parsed_at":"2025-09-25T07:09:47.342Z","dependency_job_id":"25216d11-0db9-4094-8137-d1780794a852","html_url":"https://github.com/elyeandre/sushi-ordering-system","commit_stats":null,"previous_names":["elyeandre/sushi-ordering-system"],"tags_count":null,"template":false,"template_full_name":null,"purl":"pkg:github/elyeandre/sushi-ordering-system","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/elyeandre%2Fsushi-ordering-system","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/elyeandre%2Fsushi-ordering-system/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/elyeandre%2Fsushi-ordering-system/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/elyeandre%2Fsushi-ordering-system/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/elyeandre","download_url":"https://codeload.github.com/elyeandre/sushi-ordering-system/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/elyeandre%2Fsushi-ordering-system/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":279015918,"owners_count":26085778,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","status":"online","status_checked_at":"2025-10-13T02:00:06.723Z","response_time":61,"last_error":null,"robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":true,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":[],"created_at":"2025-10-13T15:25:50.304Z","updated_at":"2025-10-13T15:25:52.715Z","avatar_url":"https://github.com/elyeandre.png","language":"Java","funding_links":[],"categories":[],"sub_categories":[],"readme":"# 🍣 Sushi Ordering System\n\n[![Made With Java][made-with-java]][forthebadge-url]\n[![Built With Love][built-with-love]][forthebadge-url]\n\n[![Contributors][contributors-shield]][contributors-url]\n[![Forks][forks-shield]][forks-url]\n[![Stargazers][stars-shield]][stars-url]\n[![Issues][issues-shield]][issues-issues-url]\n\nA comprehensive **desktop restaurant ordering system** built with Java Swing that provides a complete sushi ordering experience. This academic project demonstrates enterprise-level software development practices for restaurant order management, customer authentication, cart functionality, and order processing with integrated SMS notification system.\n\n## 📋 Table of Contents\n- [🎯 Project Overview](#-project-overview)\n- [✨ Key Features](#-key-features)\n- [🛠️ Tech Stack](#️-tech-stack)\n- [🏗️ Architecture](#️-architecture)\n- [📁 Project Structure](#-project-structure)\n- [🚀 Quick Start](#-quick-start)\n- [⚙️ Configuration](#️-configuration)\n- [📱 Usage Guide](#-usage-guide)\n- [🔐 Security Notes](#-security-notes)\n- [🚀 Deployment](#-deployment)\n- [🤝 Contributing](#-contributing)\n- [📄 License](#-license)\n- [📷 Screenshots](#-screenshots)\n\n## 🎯 Project Overview\n\n**Sushi Ordering System** is a sophisticated desktop application that recreates the restaurant ordering experience in a rich graphical user interface. Built as an academic project using Java Swing and MySQL, it demonstrates modern software development principles while providing a fully functional ordering platform for sushi restaurants.\n\n### 🎯 Target Users\n- **🍣 Restaurant Customers**: Browse menu, place orders, manage cart, receive SMS confirmations\n- **👥 Restaurant Staff**: Process orders, manage customer data, track sales\n\n### 🌟 Problem Statement\nDeliver an academic demonstration of a complete restaurant ordering flow (browse menu → add to cart → checkout → order confirmation → SMS notification) using Java Swing + MySQL with integrated customer management system.\n\n## ✨ Key Features\n\n### 🍱 **Sushi Menu Management**\n- **Menu Display**: Interactive sushi selection with high-quality images\n- **Item Categories**: Aburi, Ama Ebi, Kani, Tamago, Saki, and Maki varieties\n- **Pricing System**: Individual item pricing (₱39.00 - ₱59.00)\n- **Quantity Selection**: Spinner controls for quantity selection (1-100 items)\n- **Visual Feedback**: Hover effects and selection indicators\n\n### 🧾 **Order \u0026 Receipt System**\n- **Add/Remove Items**: Manage selected sushi items and quantities\n- **Real-time Updates**: Dynamic order total calculation\n- **Receipt Generation**: Professional receipt printing with itemized billing\n- **Customer Details**: Complete customer information on receipts\n- **Order Validation**: Empty cart alerts and quantity limits\n- **Clear Orders**: Option to clear all items at once\n\n### 🔐 **Customer Authentication \u0026 Management**\n- **Registration System**: Username, password, full name, mobile number, address\n- **Login Authentication**: Secure credential verification against database\n- **Customer Profiles**: Store and manage customer information\n- **Input Validation**: Phone number format validation and duplicate checking\n- **Password Security**: Encrypted password storage with validation\n\n### 📱 **SMS Notification System**\n- **Order Confirmation**: SMS alerts for successful orders\n- **OTP Verification**: Two-factor authentication via SMS\n- **Customer Notifications**: Order status updates and confirmations\n- **Mobile Integration**: Direct SMS sending capabilities\n\n### 📊 **Order Processing \u0026 Management**\n- **Order Creation**: Complete order workflow from cart to confirmation\n- **Order Tracking**: Unique order ID generation and tracking\n- **Sales Recording**: Detailed sales data storage in database\n- **Date/Time Stamps**: Automatic order timestamp recording\n- **Order History**: Customer order history and tracking\n\n### 🎨 **Advanced UI/UX Features**\n- **Rounded Panels**: Custom rounded panel components for modern look\n- **Loading Screens**: Professional loading animations and splash screens\n- **Interactive Elements**: Hover effects, button states, and visual feedback\n- **Error Handling**: User-friendly error dialogs and validation messages\n- **Responsive Design**: Adaptive layout for different screen sizes\n\n## 🛠️ Tech Stack\n\n### **Core Technologies**\n- **Language**: Java 8+\n- **GUI Framework**: Java Swing with NetBeans GUI Builder\n- **Database**: MySQL/MariaDB with JDBC connectivity\n- **Build Tool**: Apache Maven 3.x\n- **IDE**: NetBeans IDE (recommended)\n\n### **Java Libraries \u0026 Dependencies**\n- **MySQL Connector**: `mysql-connector-java:8.0.29`\n- **HTTP Components**: `httpclient:4.5.13`, `httpcore:4.4.13`\n- **AbsoluteLayout**: NetBeans layout manager for precise component positioning\n- **Java AWT/Swing**: Core GUI components and event handling\n- **JDBC**: Database connectivity and SQL operations\n\n### **Development Tools**\n- **NetBeans GUI Builder**: Visual form designer for Swing interfaces\n- **Maven**: Dependency management and project building\n- **phpMyAdmin**: Database management via XAMPP\n- **Git**: Version control and collaboration\n- **ProGuard**: Code obfuscation for production builds\n\n### **Architecture Patterns**\n- **MVC Pattern**: Separation of Model (data), View (UI), Controller (logic)\n- **Observer Pattern**: Event-driven UI updates and notifications\n- **Singleton Pattern**: Database connection management\n- **Factory Pattern**: Component creation and initialization\n\n## 🏗️ Architecture\n\n### **System Architecture**\n```\n┌─────────────────┐    ┌─────────────────┐    ┌─────────────────┐\n│  Presentation   │    │   Business      │    │   Data Layer    │\n│     Layer       │    │     Logic       │    │                 │\n│                 │    │                 │    │                 │\n│ ┌─────────────┐ │    │ ┌─────────────┐ │    │ ┌─────────────┐ │\n│ │    Swing    │ │    │ │   Models    │ │    │ │   MySQL     │ │\n│ │     UI      │◄├────┤►│   Classes   │◄├────┤►│  Database   │ │\n│ └─────────────┘ │    │ └─────────────┘ │    │ └─────────────┘ │\n│ ┌─────────────┐ │    │ ┌─────────────┐ │    │ ┌─────────────┐ │\n│ │   Event     │ │    │ │   Service   │ │    │ │    JDBC     │ │\n│ │  Handlers   │ │    │ │   Classes   │ │    │ │ Connection  │ │\n│ └─────────────┘ │    │ └─────────────┘ │    │ └─────────────┘ │\n└─────────────────┘    └─────────────────┘    └─────────────────┘\n```\n\n### **Database Schema**\n```sql\n-- Core Tables\ncustomers (customer_id, user_name, user_pass, full_name, mobile_no, user_addr)\nsales (order_id, order_created, item_name, item_quantity, unit_price, total_amount)\n\n-- Relationships\n- Customers can place multiple orders\n- Sales records linked to customer orders via order_id\n- Order tracking with date/time stamps\n- Foreign key constraints for data integrity\n```\n\n### **Class Hierarchy**\n```\nSushi Ordering System\n├── Init.java (Application Entry Point)\n├── SplashScreen.java (Loading Screen)\n├── LoginForm.java (Authentication UI)\n├── MainMenu.java (Main Application Window)\n├── Models/\n│   ├── Customer.java (Customer data model)\n│   ├── Order.java (Order data model)\n│   └── DecimalFormatter.java (Price formatting)\n├── Services/\n│   ├── SushiDBConnection.java (Database connectivity)\n│   ├── SendSMS.java (SMS notification service)\n│   └── OTP.java (Two-factor authentication)\n├── UI Components/\n│   ├── RoundedPanel.java (Custom rounded panels)\n│   ├── TextPrompt.java (Input field placeholders)\n│   └── Various Dialog Components\n└── Utilities/\n    ├── OrderTableModel.java (Table data management)\n    └── Loading Screens (Loading, Loading2, Loading3)\n```\n\n## 📁 Project Structure\n\n```\nsushi-ordering-system/\n├── 📄 pom.xml                           # Maven project configuration\n├── 📄 README.md                         # Project documentation\n├── 📄 nbactions.xml                     # NetBeans IDE actions\n├── 📄 nb-configuration.xml              # NetBeans configuration\n├── 📁 database/\n│   └── 📄 sushi_restaurant.sql          # Database schema and sample data\n├── 📁 src/restaurantorderingandpayment/\n│   ├── 📄 Init.java                     # Application entry point\n│   ├── 📄 SplashScreen.java            # Loading screen with progress bar\n│   ├── 📄 LoginForm.java               # User authentication interface\n│   ├── 📄 MainMenu.java                # Main ordering interface\n│   ├── 📄 SushiDBConnection.java       # Database connectivity\n│   ├── 📄 Customer.java                # Customer data model\n│   ├── 📄 Order.java                   # Order data model\n│   ├── 📄 OrderTableModel.java         # Table data management\n│   ├── 📄 SendSMS.java                 # SMS notification service\n│   ├── 📄 SMS2.java                    # Alternative SMS implementation\n│   ├── 📄 OTP.java                     # OTP generation and validation\n│   ├── 📄 OTPDialog.java               # OTP input dialog\n│   ├── 📄 RoundedPanel.java            # Custom UI component\n│   ├── 📄 TextPrompt.java              # Input field enhancements\n│   ├── 📄 Loading.java                 # Loading dialog (Order processing)\n│   ├── 📄 Loading2.java                # Loading dialog (SMS sending)\n│   ├── 📄 Loading3.java                # Loading dialog (Confirmation)\n│   ├── 📄 Success.java                 # Order success dialog\n│   ├── 📄 Thankyou.java                # Thank you message dialog\n│   ├── 📄 CartIsEmptyAlert.java        # Empty cart warning\n│   ├── 📄 MaximumAlert.java            # Quantity limit warning\n│   ├── 📄 QuantityAlert.java           # Invalid quantity warning\n│   ├── 📄 ConfirmDialog.java           # Order confirmation dialog\n│   ├── 📄 InformationDialog.java       # Information display dialog\n│   ├── 📄 InvalidAccount.java          # Invalid login alert\n│   ├── 📄 DatabaseError.java           # Database error dialog\n│   └── 📁 images/                      # UI assets and sushi images\n│       ├── sushi1.png - sushi6.png     # Sushi item images\n│       ├── brandIcon.png               # Application branding\n│       ├── loading.gif                 # Loading animations\n│       ├── splash.gif                  # Splash screen animation\n│       └── Various UI icons\n└── 📁 target/                          # Maven build output\n    ├── 📁 classes/                     # Compiled Java classes\n    └── 📁 libs/                        # Dependencies\n```\n\n### **Key Components Explained**\n\n- **`Init.java`**: Application bootstrap with animated splash screen\n- **`LoginForm.java`**: Complete authentication system with registration and validation\n- **`MainMenu.java`**: Primary ordering interface with menu display and cart management\n- **`SushiDBConnection.java`**: Database connection utility with MySQL integration\n- **Model Classes**: Data structures for Customer, Order, and system entities\n- **SMS Integration**: Complete SMS notification system with OTP verification\n- **Custom UI Components**: Enhanced Swing components with modern styling\n\n## 🚀 Quick Start\n\n### **Prerequisites**\n- Java Development Kit (JDK) 8 or higher\n- XAMPP with MySQL/MariaDB\n- Apache Maven 3.6+\n- NetBeans IDE (recommended) or any Java IDE\n\n### **Installation**\n\n1. **Clone the Repository**\n   ```bash\n   git clone https://github.com/elyeandre/sushi-ordering-system.git\n   cd sushi-ordering-system\n   ```\n\n2. **Database Setup with XAMPP phpMyAdmin**\n   \n   **Start XAMPP Services:**\n   - Open XAMMP Control Panel\n   - Start Apache and MySQL services\n   - Click \"Admin\" next to MySQL to open phpMyAdmin\n\n   **Import Database:**\n   - In phpMyAdmin, click \"New\" to create a database\n   - Name it `sushi_restaurant`\n   - Select the database, then click \"Import\"\n   - Choose file: `database/sushi_restaurant.sql`\n   - Click \"Go\" to import the schema and sample data\n\n   **Verify Installation:**\n   ```sql\n   -- Check if tables were created successfully\n   SHOW TABLES;\n   \n   -- Verify sample data\n   SELECT * FROM customers;\n   SELECT * FROM sales;\n   ```\n\n3. **Configure Database Connection**\n   ```java\n   // Update SushiDBConnection.java with your XAMPP MySQL settings\n   private static final String DB_URL = \"jdbc:mysql://localhost:3306/sushi_restaurant\";\n   private static final String USER = \"root\";          // Default XAMPP username\n   private static final String PASS = \"\";              // Default XAMPP password (empty)\n   ```\n\n4. **Build the Project**\n   ```bash\n   mvn clean compile\n   ```\n\n5. **Run the Application**\n   ```bash\n   mvn exec:java -Dexec.mainClass=\"restaurantorderingandpayment.Init\"\n   ```\n\n### **Using NetBeans IDE**\n\n1. **Open Project**\n   - File → Open Project\n   - Navigate to the sushi-ordering-system directory\n   - Select the project folder\n\n2. **Configure Database**\n   - Ensure XAMPP MySQL is running\n   - Update database credentials in `SushiDBConnection.java`\n\n3. **Run Application**\n   - Right-click on the project\n   - Select \"Run\" or press F6\n   - The application will start with the animated splash screen\n\n## ⚙️ Configuration\n\n### **Database Configuration**\nThe application uses MySQL via XAMPP for data persistence. Update the database connection settings in `SushiDBConnection.java`:\n\n```java\npublic class SushiDBConnection {\n    private static final String DATABASE_DRIVER = \"com.mysql.cj.jdbc.Driver\";\n    private static final String DB_URL = \"jdbc:mysql://localhost:3306/sushi_restaurant\";\n    private static final String USER = \"root\";\n    private static final String PASS = \"\";  // Default XAMPP password is empty\n    \n    public static Connection connectDB() {\n        // Connection logic with error handling\n    }\n}\n```\n\n### **SMS Configuration**\nConfigure SMS settings for order notifications in `SendSMS.java`:\n\n```java\n// Update with your SMS service provider settings\nprivate static final String SMS_API_URL = \"your_sms_api_endpoint\";\nprivate static final String API_KEY = \"your_api_key\";\n```\n\n### **Menu Item Configuration**\nSushi items and prices are configured in `MainMenu.java`:\n\n```java\n// Current menu items with prices\nAma Ebi: ₱59.00\nKani: ₱39.00\nTamago: ₱39.00\nAburi: ₱49.00\nSaki: ₱59.00\nMaki: ₱39.00\n```\n\n## 📱 Usage Guide\n\n### **Customer Registration \u0026 Authentication**\n\n1. **Creating an Account**\n   - Launch the application and wait for splash screen\n   - Click \"Register\" on the login screen\n   - Fill in required information:\n     - Username (unique identifier)\n     - Password (with strength validation)\n     - Full Name (letters and spaces only)\n     - Mobile Number (numbers only, for SMS)\n     - Complete Address\n   - Click \"Register\" to create account\n\n2. **Logging In**\n   - Enter registered username and password\n   - Click \"Login\" button\n   - System validates credentials against database\n   - Successful login opens the main ordering interface\n\n### **Ordering Process**\n\n1. **Browse Menu**\n   - View available sushi items with images and prices\n   - Each item displays name, price, and quantity selector\n   - Use spinner controls to select quantity (1-100)\n   - Hover over items for visual feedback\n\n2. **Add Items to Cart**\n   - Select desired quantity using spinner\n   - Click the \"+\" button to add item to cart\n   - Visual confirmation with cart updates\n   - Real-time total calculation\n\n3. **Manage Cart**\n   - View ordered items in the cart table\n   - See item names, quantities, unit prices, and totals\n   - Remove items using the \"Remove\" button\n   - Clear entire cart with \"Clear All\" button\n   - Update quantities directly in the cart\n\n4. **Place Order**\n   - Click \"Order\" button when ready to checkout\n   - System validates cart is not empty\n   - Loading screen appears during processing\n   - Order details are saved to database\n\n5. **Order Confirmation**\n   - SMS confirmation sent to registered mobile number\n   - OTP verification for security\n   - Order success dialog with order details\n   - Thank you message and order completion\n\n### **Navigation Features**\n\n1. **User Interface**\n   - Modern rounded panel design\n   - Intuitive button layouts and hover effects\n   - Real-time date and time display\n   - Information tooltips and help indicators\n\n2. **Error Handling**\n   - Empty cart warnings\n   - Quantity limit alerts (maximum 100 per item)\n   - Database connection error dialogs\n   - Invalid input validation messages\n\n3. **Loading States**\n   - Splash screen with progress bar on startup\n   - Order processing loading dialog\n   - SMS sending progress indicator\n   - Confirmation loading sequence\n\n## 🔐 Security Notes\n\nThis is an academic prototype with basic security implementations.\n\n### Current Security Features\n- **Password Storage**: Basic password storage in database\n- **Input Validation**: Phone number and name format validation\n- **SQL Injection Protection**: Prepared statements for database queries\n- **Duplicate Prevention**: Username uniqueness validation\n- **Two-Factor Authentication**: SMS OTP verification system\n\n### Security Limitations\n- Password hashing not implemented (stores plain text)\n- No session management or timeout mechanisms\n- Basic input sanitization (needs enhancement)\n- No role-based access control\n- SMS OTP system needs production-grade implementation\n\n### Recommended Security Improvements (For Production)\n- **Implement password hashing** using bcrypt or similar\n- **Add session management** with secure tokens\n- **Enhance input validation** and sanitization\n- **Add HTTPS/SSL** for secure communication\n- **Implement rate limiting** for login attempts\n- **Add audit logging** for security events\n- **Secure SMS integration** with proper API authentication\n\n## 🚀 Deployment\n\n### **JAR Package Creation**\n```bash\n# Create executable JAR with dependencies\nmvn clean compile assembly:single\n\n# The JAR file will be created as:\n# target/RestaurantOrderingAndPayment-1.0.0-jar-with-dependencies.jar\n\n# Run the application\njava -jar target/RestaurantOrderingAndPayment-1.0.0-jar-with-dependencies.jar\n```\n\n### **Database Deployment with XAMPP**\n\n#### **XAMPP Setup for Production**\n1. **Install XAMPP**\n   - Download from Apache Friends website\n   - Install with MySQL and phpMyAdmin components\n   - Start Apache and MySQL services\n\n2. **Database Import via phpMyAdmin**\n   ```bash\n   # Access phpMyAdmin\n   http://localhost/phpMyAdmin\n   \n   # Create database\n   CREATE DATABASE sushi_restaurant CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;\n   \n   # Import schema and data\n   # Use Import feature to upload database/sushi_restaurant.sql\n   ```\n\n3. **Configure Connection**\n   ```java\n   // Production database settings for XAMPP\n   private static final String DB_URL = \"jdbc:mysql://localhost:3306/sushi_restaurant\";\n   private static final String USER = \"root\";\n   private static final String PASS = \"\"; // XAMPP default\n   ```\n\n### **Windows Installation Package**\n\n#### **Create Installation Directory**\n```\nSushiOrderingSystem-Installer/\n├── sushi-ordering-system.jar\n├── lib/\n│   ├── mysql-connector-java-8.0.29.jar\n│   └── httpclient-4.5.13.jar\n├── database/\n│   └── sushi_restaurant.sql\n├── images/\n│   └── (all UI images)\n├── README.txt\n├── INSTALL.bat\n└── RUN.bat\n```\n\n#### **Installation Script (Windows)**\n```batch\n@echo off\necho Installing Sushi Ordering System...\n\nREM Create application directory\nmkdir \"C:\\Program Files\\SushiOrderingSystem\"\n\nREM Copy application files\ncopy sushi-ordering-system.jar \"C:\\Program Files\\SushiOrderingSystem\\\"\nxcopy lib \"C:\\Program Files\\SushiOrderingSystem\\lib\\\" /E /I\nxcopy database \"C:\\Program Files\\SushiOrderingSystem\\database\\\" /E /I\n\nREM Create desktop shortcut\necho @echo off \u003e \"%USERPROFILE%\\Desktop\\Sushi Ordering System.bat\"\necho cd \"C:\\Program Files\\SushiOrderingSystem\" \u003e\u003e \"%USERPROFILE%\\Desktop\\Sushi Ordering System.bat\"\necho java -jar sushi-ordering-system.jar \u003e\u003e \"%USERPROFILE%\\Desktop\\Sushi Ordering System.bat\"\n\necho Installation complete!\necho Please import database/sushi_restaurant.sql into phpMyAdmin\npause\n```\n\n### **System Requirements**\n\n#### **Minimum Requirements**\n- **Operating System**: Windows 7+ / macOS 10.12+ / Linux\n- **Java Runtime**: JRE 8 or higher\n- **Memory**: 512 MB RAM minimum, 1 GB recommended\n- **Storage**: 100 MB free disk space\n- **Database**: MySQL 5.7+ or MariaDB 10.2+ (via XAMPP)\n\n#### **Recommended Requirements**\n- **Java Runtime**: JRE 11 (LTS version)\n- **Memory**: 2 GB RAM or higher\n- **Storage**: 500 MB free disk space\n- **Database**: MySQL 8.0+ with XAMPP latest version\n- **Display**: 1024x768 minimum resolution, 1366x768 recommended\n\n## 🤝 Contributing\n\nWe welcome contributions to improve the Sushi Ordering System! Here's how you can help:\n\n### **Getting Started**\n\n1. **Fork the Repository**\n   ```bash\n   git clone https://github.com/elyeandre/sushi-ordering-system.git\n   cd sushi-ordering-system\n   ```\n\n2. **Set Up Development Environment**\n   ```bash\n   # Install XAMPP and start MySQL\n   # Import database schema\n   # Configure NetBeans IDE\n   mvn clean install\n   ```\n\n3. **Create Feature Branch**\n   ```bash\n   git checkout -b feature/your-feature-name\n   # or\n   git checkout -b bugfix/issue-description\n   ```\n\n### **Development Guidelines**\n\n#### **Code Style**\n- Follow Java naming conventions\n- Use meaningful variable and method names\n- Add JavaDoc comments for public methods\n- Maintain consistent indentation (4 spaces)\n- Keep methods focused and reasonably sized\n\n#### **Database Changes**\n- Test all database modifications\n- Update schema documentation\n- Ensure data integrity with foreign keys\n- Test with sample data\n\n#### **UI Development**\n- Use NetBeans GUI Builder for consistency\n- Follow existing design patterns\n- Test on different screen resolutions\n- Maintain accessibility standards\n\n### **Contribution Types**\n\n#### **🐛 Bug Fixes**\n- Authentication and login issues\n- Cart calculation problems\n- Database connection errors\n- UI/UX inconsistencies\n\n#### **✨ New Features**\n- Additional menu items and categories\n- Enhanced SMS notification system\n- Customer order history\n- Admin dashboard for restaurant management\n- Receipt printing functionality\n\n#### **📚 Documentation**\n- Code documentation improvements\n- User manual creation\n- API documentation\n- Installation guides\n\n#### **🔧 System Optimization**\n- Performance improvements\n- Code refactoring and optimization\n- Memory usage optimization\n- Database query improvements\n\n## 📄 License\n\nThis project is licensed under the **MIT License** - see the [LICENSE](LICENSE) file for details.\n\n### **MIT License Summary**\n- ✅ Commercial use allowed\n- ✅ Modification allowed\n- ✅ Distribution allowed\n- ✅ Private use allowed\n- ❌ No liability\n- ❌ No warranty\n- ❗ License and copyright notice required\n\n## 📷 Screenshots\n\n\u003e **Note**: This is an academic prototype demonstrating restaurant ordering system concepts. Features like payment processing, advanced security, and real-time inventory management are simplified for educational purposes.\n\n### Application Splash Screen\n![Splash Screen](https://github.com/user-attachments/assets/10abbab6-3e8f-4be4-9a98-d6979208ec3c)\n\n*Loading screen with animated progress bar and sushi branding*\n\n### Registration Interface\n![Registration Interface](https://github.com/user-attachments/assets/fe79f7d4-3ad4-4230-ae0e-5aed0115337e)\n\n*Secure authentication system with user registration and validation*\n\n### Login Interface\n![Login Interface](https://github.com/user-attachments/assets/9bff3231-4d2a-437b-959f-6718607cee9c)\n\n*Secure authentication system with user login and validation*\n\n\n### Main Menu Interface\n![Main Menu](https://github.com/user-attachments/assets/12756946-238f-4fe2-8b8f-8d178516e3fc)\n\n*Interactive sushi menu with quantity selection and cart management*\n\n### Order Receipt Generator\n![Order Receipt](https://github.com/user-attachments/assets/0cac8aca-dc87-462d-b6cb-e7afd939c42f)\n\n*Professional receipt generation featuring itemized billing with quantities, unit prices, and totals. Includes complete customer information, restaurant branding, order date, payment method, and formatted layout for printing or digital delivery.* \n\n### SMS OTP Verification\n![SMS OTP](https://github.com/user-attachments/assets/e7d5b5d9-7ae7-4084-929d-1be42eed0664)\n\n*Two-factor authentication with OTP verification via SMS for secure orders*\n\n---\n\n**🍣 Built with ❤️ for Sushi Lovers and Restaurant Technology**\n\n*\"Bringing traditional Japanese cuisine into the digital age through innovative ordering technology\"*\n\n---\n\n**📊 Database Schema Available**: Import `database/sushi_restaurant.sql` into phpMyAdmin for complete setup\n\n**🔧 XAMPP Compatible**: Designed to work seamlessly with XAMPP MySQL environment\n\n**📱 SMS Integration**: Complete SMS notification system with OTP verification\n\n**🎨 Modern UI**: Custom rounded panels and interactive elements for enhanced user experience\n\n---\n\n[made-with-java]: https://img.shields.io/badge/Made%20with-Java-orange.svg?style=for-the-badge\n[built-with-love]: https://img.shields.io/badge/Built%20with-❤️-red.svg?style=for-the-badge\n[forthebadge-url]: http://forthebadge.com\n[contributors-shield]: https://img.shields.io/github/contributors/elyeandre/sushi-ordering-system.svg?style=for-the-badge\n[contributors-url]: https://github.com/elyeandre/sushi-ordering-system/graphs/contributors\n[forks-shield]: https://img.shields.io/github/forks/elyeandre/sushi-ordering-system.svg?style=for-the-badge\n[forks-url]: https://github.com/elyeandre/sushi-ordering-system/network/members\n[stars-shield]: https://img.shields.io/github/stars/elyeandre/sushi-ordering-system.svg?style=for-the-badge\n[stars-url]: https://github.com/elyeandre/sushi-ordering-system/stargazers\n[issues-shield]: https://img.shields.io/github/issues/elyeandre/sushi-ordering-system.svg?style=for-the-badge\n[issues-issues-url]: https://github.com/elyeandre/sushi-ordering-system/issues\n\n*Last updated: September 25, 2025*","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Felyeandre%2Fsushi-ordering-system","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Felyeandre%2Fsushi-ordering-system","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Felyeandre%2Fsushi-ordering-system/lists"}