A graphical user interface (GUI) application designed to manage basic restaurant operations such as creating products, placing orders, and generating reports. This project is built with Java and Swing, incorporating JSON serialization/deserialization using the GSON library to keep stored in the system the products and orders created.
- Product Management:
- Add new products with validation to avoid duplicates.
- Input validation ensures correct data types and prevents empty fields.
- Order Management:
- Create and manage orders with existing products.
- Validation ensures orders cannot be created without products.
- General Report:
- Generate and view a report summarizing all placed orders.
- Fees:
- A 10% service fee is applied to the total amount of the order.
- A 13% tax is added to the final total.
- Discount Coupons:
DSC5: 5% discount on the total purchase.DSC10: 10% discount on the total purchase.DSC15: 15% discount on the total purchase.
- Prevents inserting text in numeric fields.
- Ensures that a report cannot be generated without an active order.
- Displays errors for missing fields or invalid inputs.
- Uses JSON format for serialization and deserialization with the GSON library.
- Saves data (products and orders) in a
.txtfile located within the project directory.
- Java 8 or higher.
- GSON library for JSON operations.
- GUI: Created using Swing, with the integration of graphical components in Netbeans.
- File Structure: All generated files are stored in the root of the project.
- Clone the repo
- Open the project in an IDE that supports Java (e.g., NetBeans).
- Ensure the GSON library is included in the project dependencies.
- Run the project using the IDE's execution options.
Note: The project is executed directly from the source code and does not include a packaged
.jarfile at this stage.
A video demonstrating the program's functionality is available. It includes:
addingProducts.mp4
addingOrder.Report.mp4
- Refactor the codebase to adopt better programming practices.
- Enhance the user interface for a more modern and intuitive experience.
- Add more features such as:
- Product filtering and searching.
- Exporting data in different formats (e.g., CSV, Excel).
Kendall Vargas
This project is created for practice purposes and is not intended for commercial use. No specific license is applied.