Skip to content

myky14/coffee-management-system-winforms

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

3 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Coffee Management System Banner

COFFEE MANAGEMENT SYSTEM

A Windows Forms desktop application for managing coffee shop operations, including menu items, customers, employees, orders, payments, invoices, and business reports.

C# WinForms .NET Framework 4.8 SQLite

Repository Size Last Commit Project Status Platform


Project Title

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.


Demo Link

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/

Table of Contents


Business Understanding

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.

Project Objectives

  • 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.

Key Challenges

  • 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.

Data Understanding

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.

Main Database Tables

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.

Database Relationship Overview

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

Future Data Enhancements

  • 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.

Screenshots of Results

Add real screenshots to the docs/screenshots/ folder before publishing the repository.

Application Preview

Login Screen Admin Dashboard
Login Screen Admin Dashboard
Order Management Payment Screen
Order Management Payment Screen
Drink Management Report Screen
Drink Management Report Screen

Sample Outputs

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.

Technologies

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

Setup

Prerequisites

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

Installation

  1. Clone this repository:
git clone https://github.com/myky14/coffee-management-system-winforms.git
  1. Open the project folder:
cd coffee-management-system-winforms
  1. Open the solution file in Visual Studio:
CoffeeManagementSystem.sln
  1. Restore NuGet packages.

In Visual Studio:

Tools > NuGet Package Manager > Manage NuGet Packages for Solution

Or use Package Manager Console:

Update-Package -reinstall
  1. Make sure the SQLite database file exists in the project directory:
QuanLyCaPheDatabase.db
  1. Build and run the project:
Build > Build Solution
Debug > Start Debugging

Demo Accounts

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.


Approach

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.

1. Requirement Understanding

The team identified core coffee shop management needs, including login, role-based access, menu management, customer management, employee management, order processing, payment, and reporting.

2. Database Design

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.

3. Application Architecture

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

4. Feature Development

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

5. Testing and Refinement

The team tested the main workflows manually, including login, creating orders, processing payments, viewing records, and exporting sample reports.


Project Structure

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

Project Status

Status: Completed
Version: 1.0
Course Result: 9/10
Completed: June 2025

This project is currently maintained as a portfolio project.


Credits

This project was developed by a 3-member student team for the Desktop Application Development course.

Team Members

  • Nguyen Du My Ky
  • Tran Hong Mai
  • Tran Van Ngan

My Contributions

  • 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.


License

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.

About

Coffee shop management desktop application built with C#, WinForms, and SQLite. Features role-based access, order processing, payment management, customer records, and business reporting.

Topics

Resources

Stars

1 star

Watchers

0 watching

Forks

Contributors

Languages