Ecosyste.ms: Awesome

An open API service indexing awesome lists of open source software.

Awesome Lists | Featured Topics | Projects

https://github.com/kivanc57/restaurant_management

This Python application simulates a restaurant management system. It handles table booking, menu display, order processing, and payment management. The Restaurant class integrates these features, allowing interaction through a command-line interface.
https://github.com/kivanc57/restaurant_management

finance oop python restaurant-management

Last synced: about 1 month ago
JSON representation

This Python application simulates a restaurant management system. It handles table booking, menu display, order processing, and payment management. The Restaurant class integrates these features, allowing interaction through a command-line interface.

Awesome Lists containing this project

README

        

# Restaurant Management System

## Overview
**Restaurant Management System** is a Python-based application designed to simulate the management of a restaurant. It features functionalities for displaying a menu, taking orders, booking tables, and processing payments. The system also handles basic restaurant operations like updating menu items and checking customer budgets.

## Features

๐Ÿš€ **Menu Management** ๐Ÿš€
* Display and update the restaurant menu.

โœจ **Table Reservation** โœจ
* Book tables and manage table availability.

๐Ÿง **Order Handling** ๐Ÿง
* Take customer orders and manage customer-specific requests.

๐Ÿ’ธ **Payment Processing** ๐Ÿ’ธ
* Handle transactions and manage customer budgets.

## Installation
1. **Clone the repository**:
```bash
git clone https://github.com/yourusername/restaurant_management_system.git
```

2. **Navigate to the project directory**:
```bash
cd restaurant_management_system
```

3. **Install any required dependencies (if applicable)**.
```bash
pip install -r requirements.txt
```

## Usage
1. Ensure you have Python 3.x installed.

2. Run the application by executing:
```bash
python main.py
```

3. Follow the on-screen prompts to book a table, view the menu, place orders, and process payments.

## Project Structure
```markdown
๐Ÿ“ project-root
โ”‚
โ”œโ”€โ”€ ๐Ÿ“ src
โ”‚ โ”œโ”€โ”€ ๐Ÿ“„ __init__.py
โ”‚ โ”œโ”€โ”€ ๐Ÿ“„ constants.py
โ”‚ โ””โ”€โ”€ ๐Ÿ“„ restaurant.py
โ”‚
โ”œโ”€โ”€ ๐Ÿ“„ .gitignore
โ”œโ”€โ”€ ๐Ÿ“„ .gitattributes
โ””โ”€โ”€ ๐Ÿ“„ main.py
```

* **src/**: Contains source code files.
* ***\__init__.py***: Initializes the source package and sets up logging.
* ***constants.py***: Defines constants used throughout the application.
* ***restaurant.py***: Contains the `Restaurant` class with methods for managing restaurant operations.

* **.gitignore**: Specifies files and directories to be ignored by Git (e.g., virtual environments, build artifacts).
* **.gitattributes**: Ensures consistent line endings across different operating systems in the repository.
* **main.py**: The entry point of the application. It initializes the restaurant system, handles table booking, menu display, order taking, and payment processing. It provides a complete flow from starting the application to completing a transaction.

## Code Example
๐Ÿ›Ž๏ธ **Menu Management** ๐Ÿ›Ž๏ธ -> The `print_menu` method in `Restaurant` displays the current menu

๐Ÿฝ๏ธ **Table Reservation** ๐Ÿฝ๏ธ -> The `book_table` method allows for reserving a table

๐Ÿงพ **Order Handling** ๐Ÿงพ -> The `get_order` and `print_order_details` methods handle and display customer orders.

๐Ÿ’ณ **Payment Processing** ๐Ÿ’ณ -> The `get_payment` method processes the customer's payment.

## Code Example
### Main Program
```python
from src.constants import MENU_ITEMS, TABLES, CUSTOMER_ORDERS, CUSTOMER_BUDGET
from src.restaurant import Restaurant

def main():
menu_items = MENU_ITEMS
tables = TABLES
customer_orders = CUSTOMER_ORDERS
customer_budget = CUSTOMER_BUDGET

print("Welcome to my restaurant, Sir\n")

# Initialize the Restaurant object
my_restaurant = Restaurant(menu_items, tables, customer_orders, customer_budget)

# Display available tables and book a table
print("Checking table availability...")
my_restaurant.book_table()

# Display the current menu
print("Displaying the menu...")
my_restaurant.print_menu()

# Get orders from the user
print("Taking customer orders...")
my_restaurant.get_order()

# Display details of the order
print("Displaying order details...")
my_restaurant.print_order_details()

# Process payment
print("Processing payment...")
my_restaurant.get_payment()

# Final message
print("Thank you for visiting our restaurant. Have a great day!")

if __name__ == '__main__':
main()

```

## License

This project is licensed under the GNU General Public License v3.0 (GPL-3.0) - see the [LICENSE](https://github.com/kivanc57/restaurant_management/blob/main/README.md) file for details.

## Contact
Let me know if there are any specific details youโ€™d like to adjust or additional sections you want to include!
* **Email**: [email protected]
* **Version**: 1.0.0
* **Date**: 22-06-2024