Theo524 / Simple-User-based-Restaurant-order-system

Simple restaurant ordering system

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

Aims of the Program:

The program aims to create an interactive restaurant menu system where users can log in, view the menu, place orders, and administrators can view user details. The system keeps track of user balances, ensures secure login, and manages orders.

Design:

Class Diagram:

The Class Diagram illustrates the relationships between classes in the program.

  • User Class:
    • Attributes: username, password, balance
  • Order Class:
    • Attributes: items (list of ordered items)
    • Methods: add_item, calculate_total_cost
  • RestaurantMenuApp Class:
    • Manages the entire application, including user authentication, order handling, and GUI creation.
    • Uses the User and Order classes for managing user data and orders.

Testing:

Test Cases:

Test Case Description Expected Result
Login with correct credentials Successful login and transition to the menu page
Login with incorrect credentials Display an error message
Place an order within available balance Successful order placement and balance deduction
Place an order exceeding available balance Error message and no balance deduction
View user details as an admin Display a window with a table of user details

Results:

Test Case Description Test Result
Login with correct credentials Passed
Login with incorrect credentials Passed
Place an order within available balance Passed
Place an order exceeding available balance Passed
View user details as an admin Passed

Critique:

What Worked:

  • The program successfully implements user authentication, order placement, and administrative features.
  • GUI design is visually appealing and user-friendly.
  • Error handling provides informative messages for better user experience.
  • The use of classes promotes modularity and maintainability.

What Didn't:

  • The code could benefit from more comments to explain complex sections, especially for newcomers to understand the logic.
  • The GUI layout could be further improved for responsiveness on different screen sizes.

What Could Have Been Improved:

  • Incorporating more advanced GUI features such as tooltips, hover effects, and animations could enhance the overall user experience.
  • Adding more extensive unit tests to cover edge cases and improve code reliability.

In conclusion, the program effectively achieves its primary objectives of creating a restaurant menu system. It demonstrates a good use of object-oriented programming and GUI design. However, there is room for improvement in terms of code documentation and GUI enhancements. Future developments could focus on refining the user interface and expanding functionalities to provide an improved restaurant management system.

About

Simple restaurant ordering system

License:GNU General Public License v3.0


Languages

Language:Python 100.0%