Skip to content

RossCabrera/Cafeteria-Menu

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

25 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

☕ Cafeteria Menu Management App

Python PySide6 MySQL

A Python desktop app for managing cafeteria menu items with CRUD operations and PDF generation.
Ideal for developers and learners exploring database integration, GUI design, and PDF handling.

alt text

✨ Features

🛠 CRUD Functionality for Cafeteria Menu

  • Add, update, delete, and view menu items seamlessly.
  • Store detailed information for each menu item, including:
    • 📸 Image
    • 💲 Price
    • 🏷 Name and ID
    • 📝 Description
    • 📂 Category

🔍 Search & Navigate Records

  • 🔍 Search: Quickly find items with a real-time search field.
  • 🔄 Navigate: Move through items effortlessly using "Next" and "Previous" buttons.
  • 🧹 Clear Fields: Reset form fields easily for new data entry.

🖨 Generate PDF Reports

  • 📝 Print Single Items: Generate detailed PDFs for menu items.
  • 👁️ Preview & Print: View, zoom, save, and print item details directly from the app.

🧰 Technologies Used

  • 🎨 PySide6: For building the user interface.
  • 🗄️ MySQL: To manage menu item data efficiently.
  • 🖨️ ReportLab and PyMuPDF: For generating and previewing PDF reports.

📋 Getting Started

Follow these steps to set up the project on your local machine:

🔧 Prerequisites

  • Python 3.12.3 installed on your system.
  • MySQL server installed and configured.
  • A virtual environment (optional but recommended).

📦 Installation

  1. Clone this repository:

    git clone https://github.com/RossCabrera/Cafeteria-Menu.git
    cd CRUD-Menu
  2. Set up a virtual environment (recommended):

    python3 -m venv venv
  3. Activate the virtual environment:

    • On macOS/Linux:

      source venv/bin/activate
    • On Windows:

      venv\Scripts\activate
  4. Install dependencies:

    pip install -r requirements.txt
  5. Set up the Database:

    • Import the schema from db/schema.sql into your MySQL server.
    • Update the database connection details in db/config.json.
  6. Run the Application:

    python main.py

🗂 Project Folder Structure

CRUD-Menu/
│
├── src/                     # Core application files
│   ├── main.py              # Main entry point
│   ├── database.py          # Database functions
│   ├── ui_main.py           # UI setup and logic
│   ├── pdf_generator.py     # PDF creation logic
│   ├── ui_preview.py        # PDF preview functionality
│
├── assets/                  # UI assets (images/icons)
│   └── images/              # Screenshots and logos
│   └── icons/               # App icons
│
├── db/                      # Database files
│   ├── schema.sql           # SQL schema for setup
│   └── config.json          # Database configuration
│
├── LICENSE                  # License for the project
├── README.md                # Project documentation
├── requirements.txt         # Python dependencies           

📷 Screenshots

Visualization of the main menu screen and the PDF preview screen:

alt text

🤝 Contributing

Contributions are welcome! If you'd like to contribute:

  1. Fork the repository.
  2. Create a new branch (git checkout -b feature-branch-name).
  3. Commit your changes (git commit -m "Brief description of changes").
  4. Push to the branch (git push origin feature-branch-name).
  5. Open a pull request.

Feel free to report issues or suggest features via the Issues tab.

📜 License

This project is licensed under the MIT License. See the LICENSE file for details.

About

Python desktop application for managing a cafeteria menu with CRUD functionality, image handling, PDF generation, and print preview. Built with PySide6 and MySQL.

Topics

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors

Languages