CoffeeMachine

A fully-featured Python desktop vending machine simulator. Order espresso, latte, or cappuccino with realistic resource management, voice feedback, employee controls, and built-in diagnostics.

v0.2.0-alpha

Why CoffeeMachine?

A complete learning experience in desktop application development

🎮

Interactive GUI

Sleek dark-themed interface built with Tkinter and ttkbootstrap. Real beverage selection and payment processing.

💰

Smart Payment

Realistic coin/bill payment system with floating-point safe calculations and automatic change return.

📊

Resource Management

Track water, milk, and coffee levels dynamically. Machine behavior changes based on available resources.

🔧

Auto Diagnostics

Built-in troubleshooter checks dependencies, file structure, and assets. Auto-fix capability for missing libraries.

🏗️

Clean Architecture

Separation of concerns with dedicated backend logic, GUI components, and dependency management.

📚

Learning Resource

Perfect for understanding OOP, GUI development, state management, and real-world application design.

🎤

Voice Feedback

Built-in text-to-speech using gTTS and pygame. Machine "speaks" prompts, status updates, and order confirmations.

🔐

Employee Mode

Passcode-protected admin controls. Employees can refill supplies, change access codes, and manage machine state.

🛠️

Dependency Installer

Automated setup wizard. Installs all required Python packages and launches the app with a single click.

Available Beverages

Choose from our signature drinks

🟤
Espresso
$1.50
Concentrated shot of pure coffee. Classic and bold.
🟩
Latte
$2.50
Smooth espresso with creamy milk. Customer favorite.
🟪
Cappuccino
$3.00
Rich espresso with thick foam. The premium choice.

Built With

Modern Python technologies for desktop development

🐍
Python 3.8+

Core language

🪟
Tkinter

GUI framework

🎨
ttkbootstrap

Modern themes

🖼️
Pillow

Image handling

🎤
gTTS

Text-to-speech

🔊
Pygame

Audio playback

Ready to Brew?

Clone the repository and start exploring desktop application development in minutes.