A Windows Forms desktop application for managing coffee shop operations, including menu items, customers, employees, orders, payments, invoices, and business reports.
Coffee Management System is a desktop application developed with C# Windows Forms to support core coffee shop management workflows.
The main goal of this project is to provide a simple and structured system for managing daily operations such as drink management, customer information, employee accounts, order processing, payment handling, invoice generation, and sales reporting.
This project was originally developed as a 3-member academic project for the Desktop Application Development course and has been reorganized as a portfolio-ready GitHub repository.
This is a Windows desktop application, so there is no live web deployment.
| Type | Link |
|---|---|
| User Guide | docs/user-guide.md |
| Sample Reports | docs/sample-reports/ |
- Business Understanding
- Data Understanding
- Screenshots of Results
- Technologies
- Setup
- Approach
- Project Structure
- Status
- Credits
Small coffee shops usually need to manage multiple daily activities at the same time: updating drink menus, creating customer orders, tracking payments, managing employees, and reviewing revenue reports.
This project was built to simulate a basic internal management system for a coffee shop. Instead of handling business data manually through notebooks or spreadsheets, the application centralizes the main workflows into one desktop system.
- Build a desktop application with a user-friendly interface for coffee shop staff.
- Manage drinks, drink categories, prices, customers, employees, and user accounts.
- Support order creation, payment processing, and invoice generation.
- Provide basic reports for revenue, products, and customers.
- Apply a layered architecture to separate user interface, business logic, data access, and data models.
- Designing a database structure that supports orders, order details, payment records, and price history.
- Separating responsibilities between the UI layer, business logic layer, and data access layer.
- Building role-based access for different user types such as Admin and Staff.
- Creating a clean WinForms interface that is easy to use for non-technical users.
- Generating reports and invoices from transaction data.
This project uses a SQLite database to store and manage the application data. The database represents the main business entities of a coffee shop, including products, customers, employees, orders, order details, payments, and user accounts.
| Table | Purpose |
|---|---|
Loaidouong |
Stores drink categories such as coffee, tea, or other beverages. |
Douong |
Stores drink information, including name, category, description, and image. |
Giadouong |
Stores drink prices and effective dates. |
Nhanvien |
Stores employee information. |
Taikhoan |
Stores login accounts, passwords, roles, and linked employees. |
Khachhang |
Stores customer information and loyalty points. |
Donhang |
Stores order headers, including customer, employee, order time, status, and total amount. |
Chitietdonhang |
Stores order line items, including drink, quantity, unit price, and subtotal. |
Thanhtoan |
Stores payment information, including payment method, amount, cashier, and note. |
Loaidouong 1---N Douong
Douong 1---N Giadouong
Douong 1---N Chitietdonhang
Donhang 1---N Chitietdonhang
Donhang 1---1 Thanhtoan
Nhanvien 1---N Donhang
Nhanvien 1---N Taikhoan
Khachhang 1---N Donhang
- Add password hashing instead of storing plain-text demo passwords.
- Add audit logs for important actions such as login, payment, and order updates.
- Add inventory tracking for ingredients and stock movement.
- Add dashboard analytics for best-selling drinks, peak hours, and monthly revenue trends.
Add real screenshots to the
docs/screenshots/folder before publishing the repository.
| Login Screen | Admin Dashboard |
|---|---|
![]() |
![]() |
| Order Management | Payment Screen |
|---|---|
![]() |
![]() |
| Drink Management | Report Screen |
|---|---|
![]() |
![]() |
| Output | Description |
|---|---|
| Invoice PDF | Generated invoice for a completed order. |
| Revenue Report | Report showing sales/revenue information. |
| Product Report | Report showing product-related information. |
| Customer Report | Report showing customer-related information. |
| Category | Technology |
|---|---|
| Programming Language | C# |
| Desktop Framework | Windows Forms |
| Runtime | .NET Framework 4.8 |
| Database | SQLite |
| Data Access | ADO.NET, Entity Framework 6 |
| UI Library | Guna UI2 WinForms |
| IDE | Visual Studio 2022 |
| Reporting | PDF report generation / sample report outputs |
| Version Control | Git, GitHub |
Before running this project, make sure you have the following installed:
- Windows operating system
- Visual Studio 2022
- .NET Framework 4.8 Developer Pack
- NuGet Package Manager
- Clone this repository:
git clone https://github.com/myky14/coffee-management-system-winforms.git- Open the project folder:
cd coffee-management-system-winforms- Open the solution file in Visual Studio:
CoffeeManagementSystem.sln
- Restore NuGet packages.
In Visual Studio:
Tools > NuGet Package Manager > Manage NuGet Packages for Solution
Or use Package Manager Console:
Update-Package -reinstall- Make sure the SQLite database file exists in the project directory:
QuanLyCaPheDatabase.db
- Build and run the project:
Build > Build Solution
Debug > Start Debugging
| Role | Username | Password |
|---|---|---|
| Admin | admin |
admin123 |
| Staff | nhanvien1 |
nv123 |
Note: These accounts are for demo purposes only. Passwords in the sample database are stored as plain text and should be hashed in a production environment.
Although this is a software development project rather than a pure data analytics project, the work followed a structured development process similar to a project lifecycle.
The team identified core coffee shop management needs, including login, role-based access, menu management, customer management, employee management, order processing, payment, and reporting.
The team designed a relational database using SQLite. The database includes separate tables for drinks, drink categories, prices, customers, employees, accounts, orders, order details, and payments.
The project was organized using a layered architecture:
Presentation Layer -> WinForms screens and user interactions
Business Logic Layer -> Validation and business rules
Data Access Layer -> Database queries and CRUD operations
Model Layer -> Entity classes representing database tables
Database Layer -> SQLite database
Core features were implemented module by module:
- Login and logout
- Role-based interface navigation
- Drink and drink category management
- Customer management
- Employee and account management
- Order creation
- Payment processing
- Invoice and report generation
The team tested the main workflows manually, including login, creating orders, processing payments, viewing records, and exporting sample reports.
Recommended repository organization:
coffee-management-system-winforms/
│
├── src/
│ └── CoffeeManagementSystem/
│ ├── CoffeeManagementSystem.sln
│ └── CoffeeManagementSystem/
│ ├── bll/
│ ├── dal/
│ ├── model/
│ ├── utilities/
│ ├── Resources/
│ └── Program.cs
│
├── database/
│ ├── QuanLyCaPheDatabase.db
│ └── QuanLyCaPheDatabase.db.sql
│
├── docs/
│ ├── banner.png
│ ├── user-guide.md
│ ├── final-report.pdf
│ ├── screenshots/
│ └── sample-reports/
│
├── README.md
└── .gitignore
Status: Completed
Version: 1.0
Course Result: 9/10
Completed: June 2025
This project is currently maintained as a portfolio project.
This project was developed by a 3-member student team for the Desktop Application Development course.
- Nguyen Du My Ky
- Tran Hong Mai
- Tran Van Ngan
- Participated in requirement analysis and system design.
- Built and documented selected application workflows.
- Supported UI design and feature implementation in C# WinForms.
- Worked with SQLite database structure and application logic.
- Prepared project documentation, diagrams, and presentation materials.
Replace this section with the exact contribution split before publishing, especially if the repository is used in a CV or LinkedIn profile.
This project is currently provided for educational and portfolio purposes.
Made with ☕, C#, and Windows Forms
This project received a final score of 9/10 in the Desktop Application Development course.






