← Về danh sách dự án

Dự án học thuật / 10

Hệ thống Quản lý Quán Cà phê (Desktop)

Ứng dụng Windows Forms với kiến trúc phân lớp và phân quyền người dùng

Dự án học thuật5 phút đọc

Tóm tắt nhanh

Tổng quan dự án

Nội dung nghiên cứu

Vấn đề: khi một quán cà phê cần số hóa nhiều nghiệp vụ cùng lúc

Theo yêu cầu của học phần, nhóm phát triển một hệ thống quản lý quán cà phê trên nền tảng Windows Forms nhằm mô phỏng các nghiệp vụ vận hành của một cửa hàng thực tế. Một quán cà phê cần quản lý đồng thời nhiều nghiệp vụ như thực đơn, nhân viên, khách hàng, đơn hàng và doanh thu — nếu thực hiện thủ công sẽ dễ phát sinh sai sót, khó theo dõi và mất nhiều thời gian.

Thay vì chỉ xây dựng các chức năng CRUD cơ bản, nhóm hướng đến việc thiết kế một quy trình nghiệp vụ hoàn chỉnh từ đăng nhập, phân quyền người dùng, quản lý dữ liệu, đặt món, thanh toán đến thống kê và báo cáo. Dự án được phát triển theo mô hình kiến trúc phân lớp (Layered Architecture) nhằm tách biệt giao diện, nghiệp vụ và truy cập dữ liệu, giúp hệ thống dễ bảo trì và mở rộng.

Vai trò: phụ trách phân tích nghiệp vụ, thiết kế hệ thống và trải nghiệm người dùng

Mặc dù không phải là thành viên đóng góp nhiều nhất về phần lập trình backend, đảm nhận phần lớn công việc liên quan đến phân tích nghiệp vụ, thiết kế hệ thống và trải nghiệm người dùng:

  • Đề xuất và xây dựng nhiều nghiệp vụ cốt lõi của hệ thống
  • Brainstorm yêu cầu chức năng, actor và business flow
  • Tham gia phân tích yêu cầu và thiết kế quy trình nghiệp vụ
  • Thiết kế giao diện Windows Forms, bao gồm màu sắc, theme, bố cục, wireframe, navigation và luồng trải nghiệm người dùng
  • Trực tiếp xây dựng các sơ đồ Use Case, Activity Diagram, Package Diagram và Deployment Diagram theo các module được phân công
  • Thực hiện chức năng đăng nhập, xác thực người dùng và đăng xuất
  • Biên soạn tài liệu và hoàn thiện báo cáo kỹ thuật
  • Phối hợp với các thành viên để tích hợp giao diện với kiến trúc phân lớp của hệ thống

Quá trình: hiểu rằng phần mềm bắt đầu từ phân tích, không phải từ code

Quy trình thực hiện đi theo đúng tinh thần Software Engineering — phân tích và thiết kế trước, lập trình sau:

  1. Phân tích yêu cầu và xác định phạm vi hệ thống
  2. Brainstorm các nghiệp vụ cần có của ứng dụng
  3. Xác định actor và phân quyền chức năng (Role-Based Access Control)
  4. Thiết kế Business Flow cho từng nghiệp vụ
  5. Xây dựng Use Case và Activity Diagram
  6. Thiết kế kiến trúc hệ thống và các sơ đồ UML (Package Diagram, Deployment Diagram)
  7. Thiết kế giao diện WinForms
  8. Phát triển các module chức năng, sử dụng C#, .NET Framework, SQLite và ADO.NET
  9. Kiểm thử và hoàn thiện hệ thống
  10. Chuẩn bị tài liệu, báo cáo và thuyết trình

Kết quả đạt được

  • Hoàn thành hệ thống quản lý quán cà phê với các chức năng: đăng nhập, phân quyền, quản lý đồ uống, khách hàng, nhân viên, đặt món, thanh toán, báo cáo và xuất PDF
  • Áp dụng thành công mô hình Layered Architecture để tổ chức mã nguồn theo các tầng Presentation, Business Logic, Data Access và Model
  • Thiết kế giao diện đồng nhất với trải nghiệm sử dụng đơn giản và trực quan
  • Hoàn thành đầy đủ tài liệu phân tích và thiết kế hệ thống bằng UML
  • Dự án đạt 9.0/10 và được công khai trên GitHub dưới dạng portfolio

Điều tự hào nhất

Đây là dự án desktop quy mô lớn đầu tiên tham gia phát triển. Mặc dù không đảm nhận phần backend phức tạp, có cơ hội tham gia gần như toàn bộ quy trình trước khi viết code, từ phân tích yêu cầu, xây dựng nghiệp vụ, thiết kế giao diện đến mô hình hóa hệ thống. Lần đầu tiên hiểu rằng một phần mềm không chỉ được tạo nên bởi các dòng code, mà còn bắt đầu từ việc xác định đúng bài toán, thiết kế quy trình phù hợp và tổ chức hệ thống theo một kiến trúc rõ ràng. Chính trải nghiệm này giúp hình thành tư duy Software Engineering và tạo nền tảng cho những dự án lớn hơn sau này.

Bài học lớn nhất

Project dạy được cách phân tích yêu cầu trước khi bắt đầu lập trình, cách mô hình hóa nghiệp vụ bằng Use Case và Activity Diagram, và tư duy thiết kế giao diện dựa trên trải nghiệm người dùng thay vì chỉ bố trí các control. Hiểu rõ hơn cách tổ chức một ứng dụng theo Layered Architecture và vai trò của từng tầng (Presentation, Business Logic, Data Access, Model), cùng cách các thành viên phối hợp giữa phân tích, thiết kế và lập trình để hoàn thành một hệ thống phần mềm hoàn chỉnh.

Hạn chế

Không phải là người phụ trách chính phần backend, cơ sở dữ liệu và triển khai chi tiết các tầng DAL, BLL. Hệ thống mới phục vụ môi trường desktop và chưa hỗ trợ nền tảng web hoặc thiết bị di động. Một số cơ chế bảo mật vẫn ở mức cơ bản và còn nhiều hướng để cải thiện trong các phiên bản sau.

Nếu làm lại

  • Chủ động tham gia nhiều hơn vào phần Business Logic và Data Access Layer
  • Thiết kế kiến trúc theo hướng Clean Architecture hoặc Domain-Driven Design để tăng khả năng mở rộng
  • Bổ sung Unit Test cho các tầng nghiệp vụ
  • Áp dụng các kỹ thuật bảo mật như password hashing và quản lý phiên đăng nhập an toàn
  • Tối ưu giao diện theo các nguyên tắc UI/UX hiện đại và xây dựng phiên bản Web hoặc Mobile để mở rộng khả năng sử dụng

Bắt đầu trò chuyện

Bạn có một câu hỏi đáng để cùng khám phá?

Tôi sẵn sàng trao đổi về các vị trí dữ liệu, cơ hội hợp tác chỉn chu và câu chuyện phía sau nghiên cứu này.

Liên hệ