← Back to projects

Academic project / 10

Coffee Shop Management System (Desktop)

A Windows Forms application with layered architecture and role-based access control

Academic project4 min read

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:

  1. Analyze requirements and define the system scope
  2. Brainstorm the application’s required business operations
  3. Identify actors and define role-based access control
  4. Design the business flow for each operation
  5. Build the Use Case and Activity diagrams
  6. Design the system architecture and additional UML diagrams (Package, Deployment)
  7. Design the WinForms interface
  8. Develop the functional modules using C#, .NET Framework, SQLite, and ADO.NET
  9. Test and finalize the system
  10. 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