Welcome to the Restaurant Purchase System with GUI! This project provides a streamlined and feature-rich platform for managing restaurant orders and purchases, all through an intuitive graphical user interface (GUI) built using Java and JFrame.
The Restaurant Purchase System with GUI is designed to efficiently manage a restaurant’s operations, allowing users to:
- Place and manage orders.
- Track purchases and calculate total costs.
- Manage a dynamic inventory system integrated into the application.
This application combines robust functionality with an easy-to-use GUI to enhance the experience for both restaurant staff and customers.
- Dynamic Menu Options: Users can browse and manage categories such as Burgers, Snacks, Wraps, Drinks, and Desserts.
- Order Management: Process orders with real-time calculations, including discounts.
- Inventory Updates: Inventory levels automatically adjust based on processed orders.
- User Login and Registration: Secure login and registration system to ensure user data is protected.
- Discount Implementation: Flexible discount logic applied dynamically during order processing.
- Modular and Expandable Design: Built with extensibility in mind, allowing easy addition of new features.
- Error Handling: Validations and robust error handling for a seamless experience.
- Programming Language: Java (JDK 17+ recommended)
- GUI Framework: JFrame
- Design Patterns: Object-oriented programming principles, interfaces, and modular design.
- Development Tools: Eclipse
- Version Control: Git
Follow the steps below to set up and run the project on your local machine.
- Java Development Kit (JDK 17 or higher).
- An IDE like IntelliJ IDEA, Eclipse, or NetBeans.
- Git for version control.
- Clone the repository:
git clone https://github.com/your-username/Restaurant-Purchase-System-With-GUI.git
- Open the project in your preferred IDE.
- Build the project to resolve dependencies.
- Run the
OrderMain.javafile to start the application.
- Launch the Application: Start the app by running the
OrderMain.javafile. - Login/Registration: Begin by logging in or registering as a user.
- Browse Categories: Navigate through various menu categories, including Burgers, Drinks, Desserts, and more.
- Place Orders: Select items, enter quantities, and confirm purchases.
- Track Totals and Discounts: View the order summary, including total costs and applied discounts.
- Complete Purchase: Finalize the order and review inventory adjustments.
The project follows a modular structure for easier maintenance and scalability:
├── src
│ ├── Classes
│ │ ├── Burger.java
│ │ ├── ColdDrink.java
│ │ ├── Customer.java
│ │ ├── Dessert.java
│ │ ├── Drink.java
│ │ ├── Food.java
│ │ ├── HotDrink.java
│ │ ├── Meal.java
│ │ ├── Order.java
│ │ ├── Sauce.java
│ │ ├── Snack.java
│ │ ├── TotalDiscount.java
│ │ ├── Wrap.java
│ ├── Frames
│ │ ├── AppController.java
│ │ ├── BurgerFrame.java
│ │ ├── ColdDrinkFrame.java
│ │ ├── CompleteFrame.java
│ │ ├── DessertFrame.java
│ │ ├── DrinkFrame.java
│ │ ├── FoodFrame.java
│ │ ├── HotDrinkFrame.java
│ │ ├── LoginFrame.java
│ │ ├── MainFrame.java
│ │ ├── OrderFrame.java
│ │ ├── PurchaseFrame.java
│ │ ├── RegistrationFrame.java
│ │ ├── SauceFrame.java
│ │ ├── SnackFrame.java
│ │ ├── WrapFrame.java
│ ├── Interfaces
│ │ ├── Discount.java
│ ├── Main
│ ├── OrderMain.java
│ ├── OrderSys.java
OrderMain.java: The main entry point of the application.Customer.java: Handles customer-related functionalities.Order.java: Manages the order-processing logic.Discount.java: Interface for applying various discounts.- GUI Files: Frames for each functionality, such as
BurgerFrame.java,LoginFrame.java, andCompleteFrame.java.
This project helped me enhance my skills in:
- Developing modular and object-oriented Java applications.
- Designing intuitive GUIs using JFrame.
- Managing and organizing a large-scale project with multiple components.
- Implementing real-time data validation and error handling mechanisms.
Contributions are welcome!
- Fork the repository.
- Create a feature branch:
feature-branch-name. - Commit your changes and push to the branch.
- Open a pull request.
For questions, suggestions, or collaboration opportunities, feel free to reach out:
- Name: Ahmet Mert Çaralan
- Email: mert.caralan@outlook.com
- LinkedIn: linkedin.com/in/mertcaralan
- GitHub: github.com/mertcaralan
Thank you for exploring the Restaurant Purchase System with GUI! I look forward to your feedback and collaboration. 😊