Skip to main content

A beautiful pizza ordering application built with KivyMD

Project description

๐Ÿ• Pizza Ordering App

A beautiful and intuitive pizza ordering application built with KivyMD. This app features a modern interface for browsing pizza menus, managing orders, and handling user authentication with admin capabilities.

Python KivyMD License

โœจ Features

  • ๐ŸŽจ Material Design Interface - Beautiful, modern UI
  • ๐Ÿ‘ค User Authentication - Secure login/registration system with encrypted password storage
  • ๐Ÿ• Interactive Pizza Menu - Browse through various pizza options with detailed descriptions and prices
  • ๐Ÿ›’ Smart Shopping Cart - Add items to cart, modify quantities, change sizes, and manage orders
  • ๐Ÿ“ฑ Responsive Design - Optimized for mobile and desktop viewing with touch-friendly controls
  • ๐Ÿ‘‘ Admin Panel - Admin users can manage orders, update status, and add new menu items
  • ๐ŸŽซ Order Tracking - Get unique ticket numbers and track order status (Awaiting/Done)
  • ๐Ÿ’พ Local Database - SQLite-based storage for users, menu items, and orders
  • ๐Ÿ”’ Secure Passwords - SHA256 encryption for user password protection

๐Ÿš€ Installation

Install the pizza ordering app using pip:

pip install pizza-ordering-app

๐ŸŽฎ Usage

After installation, start the app by running:

pizza-app

๐Ÿ”ง If Command Not Found

If you get command not found: pizza-app, try this:

# macOS/Linux - find your Python user bin directory
python -c "import site; print(site.USER_BASE + '/bin')"
# Then run: [that_path]/pizza-app

The app will automatically:

  1. Create a .pizza_app directory in your home folder for storing data
  2. Copy all necessary assets (images, database files) to this directory
  3. Initialize the database with sample menu items
  4. Launch the beautiful KivyMD application

๐Ÿ” Getting Started

For Customers:

  1. Register a new account or login with existing credentials
  2. Browse the pizza menu with detailed descriptions and prices
  3. Add items to your cart and customize sizes/quantities
  4. Checkout securely and receive a unique ticket number
  5. Track your order status

For Administrators:

  1. Login with admin credentials (default: admin/secure_password)
  2. Access the admin panel via tapping the location button (hidden for security reasons)
  3. View and manage all customer orders
  4. Update order status from "Awaiting" to "Done"
  5. Add new menu items, via scrolling all the way down in the menu ,with custom descriptions and prices

๐Ÿ“‹ System Requirements

  • Python: 3.7 or higher
  • Operating System: Windows, macOS, or Linux
  • Dependencies: Automatically installed with the package
    • KivyMD 1.2.0+
    • Kivy 2.2.0+
    • Passlib 1.7.4+

๐Ÿ—๏ธ Development

If you want to modify or contribute to the app:

  1. Clone the repository:

    git clone https://github.com/al1kss/pizza-app.git
    cd pizza-app
    
  2. Install in development mode:

    pip install -e .
    
  3. Make your changes and test:

    pizza-app
    

๐Ÿ—‚๏ธ Project Structure

pizza_app/
โ”œโ”€โ”€ main.py              # Main application logic and screens
โ”œโ”€โ”€ cli.py               # Command line entry point
โ”œโ”€โ”€ pizza.kv             # KivyMD layout and styling
โ”œโ”€โ”€ secure_password.py   # Password encryption utilities
โ”œโ”€โ”€ my_lib.py           # Database management class
โ””โ”€โ”€ assets/
    โ”œโ”€โ”€ images/         # App images and icons
    โ””โ”€โ”€ databases/      # Database schema files

๐ŸŽฏ Key Features Breakdown

๐Ÿ›’ Shopping Experience

  • Dynamic Menu Loading: Menu items loaded from database with real-time updates
  • Cart Management: Add, remove, modify quantities and sizes
  • Size Options: Multiple pizza sizes (Small, Medium, Large)
  • Price Calculation: Real-time total calculation with tax

๐Ÿ‘จโ€๐Ÿ’ผ Admin Features

  • Order Management: View all orders sorted by newest first
  • Status Updates: Change order status with dropdown menus
  • Menu Management: Add new pizza items with custom pricing
  • User Management: Handle user authentication and permissions

๐Ÿ”ง Technical Features

  • SQLite Integration: Lightweight database for local storage
  • Password Security: Industry-standard PBKDF2 SHA256 encryption
  • Path Handling: Smart file path resolution for cross-platform compatibility
  • Asset Management: Automatic copying and organization of app resources

๐Ÿ› ๏ธ Troubleshooting

App won't start?

pip install --upgrade kivymd kivy passlib
pizza-app

Database issues?

The app automatically creates fresh databases on first run. If you encounter issues, delete the ~/.pizza_app folder and restart.

Missing dependencies?

pip install --upgrade pizza-ordering-app

๐Ÿ“„ License

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

๐Ÿ‘จโ€๐Ÿ’ป Author

Alikhan Abdykaimov

๐Ÿค Contributing

Contributions are welcome! Please feel free to submit a Pull Request. For major changes, please open an issue first to discuss what you would like to change.

๐Ÿ› Issues & Support

If you encounter any issues or have questions:

  1. Check the GitHub Issues page
  2. Create a new issue with detailed description
  3. Include your Python version and operating system

๐Ÿ™ Acknowledgments

  • Built with KivyMD - Material Design components for Kivy
  • Uses Kivy framework for cross-platform GUI development
  • Password security powered by Passlib

Made with โค๏ธ and ๐Ÿ• by Alikhan Abdykaimov application built with KivyMD. This app features a modern interface for browsing pizza menus, managing orders, and handling user authentication.

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

pizza_ordering_app-1.0.5.tar.gz (14.0 MB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

pizza_ordering_app-1.0.5-py3-none-any.whl (14.0 MB view details)

Uploaded Python 3

File details

Details for the file pizza_ordering_app-1.0.5.tar.gz.

File metadata

  • Download URL: pizza_ordering_app-1.0.5.tar.gz
  • Upload date:
  • Size: 14.0 MB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.1.0 CPython/3.9.6

File hashes

Hashes for pizza_ordering_app-1.0.5.tar.gz
Algorithm Hash digest
SHA256 cee3de1a4803603b5f479bc4ad308f203567c87eb4d211b6bc9484ad877c5260
MD5 03282791308eb0b6a65f1bd560544a7d
BLAKE2b-256 81d5ae21b4869afd08af9cbeeb0b1861a5a33aaeb05acfe270588ab749d112b8

See more details on using hashes here.

File details

Details for the file pizza_ordering_app-1.0.5-py3-none-any.whl.

File metadata

File hashes

Hashes for pizza_ordering_app-1.0.5-py3-none-any.whl
Algorithm Hash digest
SHA256 87766d239cdd6b04b701a9ec6337295a817f8d69d4e993efe05e373c22a1aaae
MD5 df0387d30f50fde58a04d6d360fc4e33
BLAKE2b-256 ab9d782cfdf628a610cfe299bf82b95df340bcfa4bd613f24061089c257b71a9

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page