Academic project / 10
Coffee Shop Management System (Desktop)
A Windows Forms application with layered architecture and role-based access control
At a glance
Project overview
Case study content
The problem: when a coffee shop needs to digitize multiple operations at once
As required by the course, the team built a coffee shop management system on the Windows Forms platform to simulate the operations of a real store. A coffee shop needs to manage multiple operations at once — menu, staff, customers, orders, and revenue — and doing this manually is error-prone, hard to track, and time-consuming.
Rather than just building basic CRUD functions, the team aimed to design a complete business workflow: login, role-based access, data management, ordering, payment, statistics, and reporting. The project was built on a Layered Architecture to separate the UI, business logic, and data access, making the system easier to maintain and extend.
Role: led business analysis, system design, and user experience
While not the team’s primary backend contributor, took on most of the work related to business analysis, system design, and user experience:
- Proposed and built several of the system’s core business processes
- Brainstormed functional requirements, actors, and business flows
- Took part in requirements analysis and business process design
- Designed the Windows Forms interface, including color scheme, theme, layout, wireframes, navigation, and the overall user experience flow
- Personally built the Use Case, Activity, Package, and Deployment diagrams for the assigned modules
- Implemented the login, authentication, and logout functionality
- Wrote documentation and finalized the technical report
- Worked with teammates to integrate the UI with the system’s layered architecture
The process: understanding that software starts with analysis, not code
The workflow followed proper Software Engineering practice — analysis and design first, coding second:
- Analyze requirements and define the system scope
- Brainstorm the application’s required business operations
- Identify actors and define role-based access control
- Design the business flow for each operation
- Build the Use Case and Activity diagrams
- Design the system architecture and additional UML diagrams (Package, Deployment)
- Design the WinForms interface
- Develop the functional modules using C#, .NET Framework, SQLite, and ADO.NET
- Test and finalize the system
- Prepare documentation, report, and presentation
Results
- Completed a coffee shop management system with login, role-based access, beverage/customer/staff management, ordering, payment, reporting, and PDF export
- Successfully applied a Layered Architecture to organize the codebase into Presentation, Business Logic, Data Access, and Model layers
- Designed a consistent interface with a simple, intuitive user experience
- Completed full analysis and design documentation using UML
- The project scored 9.0/10 and is publicly available on GitHub as part of the portfolio
What I’m proudest of
This was the first large-scale desktop project worked on. While not handling the complex backend, there was a chance to be involved in almost the entire process before any code was written — requirements analysis, business process design, UI design, and system modeling. This was the first time truly understanding that software isn’t just lines of code — it starts with correctly framing the problem, designing the right process, and organizing the system around a clear architecture. This experience shaped a Software Engineering mindset and laid the foundation for larger projects later on.
The biggest takeaway
The project taught how to analyze requirements before coding, how to model business operations using Use Case and Activity diagrams, and a design mindset rooted in user experience rather than just arranging UI controls. It also clarified how to organize an application using a Layered Architecture and the role of each layer (Presentation, Business Logic, Data Access, Model), as well as how teammates coordinate across analysis, design, and development to deliver a complete software system.
Limitations
Wasn’t the primary owner of the backend, database, or the detailed implementation of the DAL and BLL layers. The system only supports the desktop environment and doesn’t yet have web or mobile support. Some security mechanisms remain fairly basic, with plenty of room for improvement in future versions.
If I did it again
- Take a more active role in the Business Logic and Data Access layers
- Design the architecture around Clean Architecture or Domain-Driven Design for better extensibility
- Add unit tests for the business logic layers
- Apply security practices such as password hashing and secure session management
- Optimize the interface around modern UI/UX principles and build a Web or Mobile version to extend usability
Start a conversation
Have a question worth exploring?
I’m open to data roles, thoughtful collaborations, and conversations about the work behind this case study.
Get in touch