CHƯƠNG 1. TÌM HIỂU ỨNG DỤNG 1.1 Tổng quan về đề tài: Việc kinh doanh và quản lý quán cà phê của mình như thế nào cũng là một câu hỏi lớn cần giải quyết. Những câu hỏi thường được đặt ra như: Quản lý về cái gì? Quản lý như thế nào để phù hợp và tiện lợi? Tiết kiệm thời gian, công sức nhưng mang lại một kết quả đáng mong đợi. Phần mềm quản lý quán cà phê ra đời để trả lời các câu hỏi và đáp ứng nhu cầu cho người dùng, tiết kiệm thời gian cho việc quản lý cửa hàng của mình.
Phát triển ứng dụng quản lý quán cà phê hộ gia đình hỗ trợ cho việc quản lý cửa hàng thuận tiện hơn. Thông qua ứng dụng có thể quản lý các công việc, sản phẩm chính xác hơn, giúp cho nhân viên có thể dễ dàng hơn trong việc phục vụ khách hàng. Giúp cho việc tính toán, xử lý hóa đơn chính xác hơn, nâng cao dịch vụ tại cửa hàng. Đồng thời chủ sở hữu có thể dễ dàng hơn trong việc giám sát, thống kê, xử lý sự cố.
Bên cạnh đó việc tích hợp ví điện tử, ngân hàng giúp cho việc thanh toán dễ dàng hơn trong thời đại công nghệ số.2 Mục đích của hệ thống 1. Nhu cầu thực tế Phần mềm Quản lý Cửa hàng Cà phê được phát triển nhằm áp dụng công nghệ vào việc quản lý quán cà phê. Thông qua hệ thống phần mềm này, người dùng có thể dễ dàng thực hiện các thao tác như quản lý đặt món, theo dõi tình trạng bàn, quản lý nguyên liệu, báo cáo doanh thu, và thống kê lợi nhuận của quán cà phê. Cơ hội phát triển Việc quản lý theo cách truyền thống thường không hiệu quả, đòi hỏi một hệ thống giúp quản lý tối ưu cả cho chủ quán và nhân viên.
Từ quản lý nhân viên, hồ sơ khách hàng, đặt món, báo cáo tài chính, v., việc sử dụng một hệ thống đồng bộ và minh bạch không chỉ tiết kiệm thời gian và công sức mà còn tăng độ chính xác. Trong tương lai, phần mềm sẽ đáp ứng nhu cầu của nhiều quán cà phê, khi xu hướng sử dụng các ứng dụng quản lý kinh doanh trực tuyến đang ngày càng tăng.3 Các chức năng của ứng dụng: Qua tham khảo các trang web, đồ án và một số nhu cầu sử dụng ở các trang thông tin thì ngoài các chức năng đăng nhập, phân quyền và quản lý cơ bản, ứng dụng còn có các chức năng: 1. Quản lý nhân viên: - Quản lý danh sách nhân viên. - Quản lý thông tin nhân viên.
11 - Quản lý thời gian làm việc của nhân viên (Đối với admin: có quyền cập nhật thời gian làm việc cho nhân viên; đối với nhân viên: chỉ có thể xem, không có quyền chỉnh sửa). - Tính lương cho nhân viên: tính theo giờ làm (dựa vào ca làm việc được quản lý). Quản lý kho: - Quản lý nguyên vật liệu cung cấp thức ăn, nước uống cho quán cà phê. - Quản lý tồn kho, quy ước số lượng hàng tồn kho, nếu tồn kho < 10 sản phẩm sẽ thông báo lên hệ thống cho nhân viên, để quản lý cập nhật thêm nguyên vật liệu.
Bán hàng: - Quản lý menu: Thêm các món mới, điều chỉnh giá cả cho menu. - Gọi món: đặt món cho khách, dễ dàng chỉnh sửa, thay đổi. - Xuất hóa đơn: hỗ trợ cho việc gọi số lượng, đúng khách, in hóa đơn. - Quản lý bàn: hỗ trợ khách đặt bàn trước thông qua quản lý số điện thoại và tên, quản lý trạng thái của bàn (trống, có người, đã đặt).
Quản lý doanh thu, báo cáo: - Quản lý thu chi: tính toán chi phí lợi nhuận, tiền mua nguyên liệu và tiền bán cà phê. - Thống kê, báo cáo doanh thu tổng hợp và từng mặt hàng/nhân viên: tổng hợp các món được bán trong ngày/tháng, chia doanh thu, hoa hồng. Quản lý khách hàng: Lưu thông tin khách hàng (số điện thoại + tên + ngày đăng ký), nếu khách hàng đạt yêu cầu chi tiêu => giảm giá hóa đơn theo hạng của khách hàng tại quán cà phê. NỀN TẢNG LÝ THUYẾT VÀ CÔNG NGHỆ 2.1 Công nghệ sử dụng 2.
Logo PostgreSQL 12 PostgreSQL là một hệ quản trị cơ sở dữ liệu quan hệ mã nguồn mở mạnh mẽ và phổ biến, nổi bật với khả năng hỗ trợ nhiều tính năng nâng cao như giao dịch ACID (Atomicity, Consistency, Isolation, Durability), tuân thủ các tiêu chuẩn SQL, và khả năng mở rộng linh hoạt. Một điểm nổi bật của PostgreSQL là tính năng mở rộng với các hàm tự định nghĩa, hỗ trợ lưu trữ các đối tượng dữ liệu không cấu trúc, và khả năng tích hợp tốt với các ngôn ngữ lập trình phổ biến như Python, Java, và Node. Ngoài ra, PostgreSQL hỗ trợ các tính năng phức tạp như sao lưu, phục hồi điểm, phân mảnh (sharding), và sao chép dữ liệu. PostgreSQL hỗ trợ nhiều nền tảng từ các hệ điều hành Unix-like như Linux, macOS, BSD cho đến Windows, PostgreSQL dễ dàng triển khai trong cả môi trường on-premise và cloud như AWS, GCP, và Azure.
Ngoài ra, PostgreSQL còn hoạt động mượt mà trên Docker và Kubernetes, phù hợp với các hệ thống container hiện đại. PostgreSQL là phần mềm quản trị cơ sở dữ liệu miễn phí và mã nguồn mở, cho phép người dùng tự do sử dụng, chỉnh sửa, và phân phối lại mà không tốn chi phí. Sự đóng góp từ cộng đồng giúp PostgreSQL luôn được cập nhật và cải tiến liên tục. Framework đa nền tảng: Electron.
Ngôn ngữ lập trình: + Backend: React. Logo Figma Figma là công cụ thiết kế đồ họa và giao diện người dùng (UI/UX) dựa trên đám mây (cloud-based). Nó cung cấp một nền tảng cho các nhà thiết kế để tạo ra các bản vẽ, mockup, prototype và các sản phẩm thiết kế tương tác khác. Công cụ 13 này rất phổ biến trong cộng đồng thiết kế do tính linh hoạt, khả năng hợp tác và tính tiện ích trong việc tạo ra các sản phẩm thiết kế đa dạng từ ứng dụng di động, website, đến giao diện người dùng.
Figma hỗ trợ nhiều tính năng như thiết kế vector, tạo prototype tương tác, chia sẻ và phản hồi trực tuyến, và có khả năng làm việc trên nhiều nền tảng khác nhau như Windows, macOS hoặc trực tiếp từ trình duyệt web. Github GitHub là một nền tảng quản lý mã nguồn và hợp tác phát triển phần mềm dựa trên Git, cho phép người dùng lưu trữ, theo dõi, và quản lý các dự án mã nguồn mở hoặc riêng tư. Người dùng có thể dễ dàng chia sẻ mã, hợp tác với các nhà phát triển khác, và đóng góp vào các dự án chung thông qua pull request. Nhờ đó các thành viên có thể dễ dàng thao tác và hỗ trợ một cách nhịp nhàng hơn.
Render Render là một nền tảng dịch vụ đám mây (Cloud Platform-as-a-Service), giúp triển khai ứng dụng, API, hoặc website một cách dễ dàng. Render giúp quản lý cơ sở hạ tầng, cung cấp hosting và các dịch vụ như cơ sở dữ liệu, worker, và bộ nhớ tĩnh mà không cần tự tay cấu hình server. Render giúp cho việc triển khai và sử dụng dữ liệu từ BackEnd một cách dễ dàng hơn, việc tự động hóa quá trình triển khai làm giảm bớt thời gian chạy cơ sở hạ tầng. Swagger Swagger là một bộ công cụ mã nguồn mở, được thiết kế để hỗ trợ các nhà phát triển trong việc xây dựng, thiết kế, tài liệu hóa, và kiểm thử API.
Nó giúp tiêu chuẩn hóa cách mô tả và giao tiếp giữa các hệ thống thông qua giao diện lập trình ứng dụng (API). Điểm nổi bật của Swagger là khả năng tự động hóa quá trình tạo tài liệu API, mang lại sự tiện lợi và minh bạch cho cả người phát triển lẫn người sử dụng API. Swagger được sử dụng rộng rãi trong phát triển REST API. Nó giúp các nhà phát triển hiểu rõ cấu trúc và cách hoạt động của API thông qua tài liệu hóa chi tiết.
Các doanh nghiệp sử dụng Swagger để tạo API chuẩn mực, dễ tích hợp và dễ bảo trì, đồng thời giảm thiểu lỗi trong quá trình triển khai. Ant Design Ant Design (AntD) là một thư viện thiết kế giao diện người dùng (UI) mạnh mẽ, phổ biến và giàu tính năng, được phát triển bởi Ant Group. Thư viện này tập trung vào việc cung cấp các thành phần giao diện chất lượng cao để xây dựng ứng dụng web hiệu quả. 14 Ant Design (AntD) nổi bật với thiết kế nhất quán dựa trên Ant Design System, giúp tạo ra giao diện trực quan, chuyên nghiệp, đặc biệt phù hợp cho các ứng dụng quản trị.
Thư viện cung cấp hơn 60 thành phần UI như Button, Form, Table, Modal, Menu, Tooltip, và Tree, hỗ trợ quốc tế hóa (i18n) để dễ dàng xây dựng ứng dụng đa ngôn ngữ. Tùy chỉnh giao diện linh hoạt thông qua LESS variables hoặc CSS-in-JS, đồng thời tích hợp tốt với TypeScript để đảm bảo tính mạnh mẽ khi làm việc với kiểu dữ liệu. YÊU CẦU CỦA NGƯỜI DÙNG 3.1 Use case Hình 3.1 Sơ đồ Use case tổng quát 15 Hình 3.2 Sơ đồ Use case tổng quát 16 3. Danh sách Actors.1 Danh sách actors STT Tên Actor Ý nghĩa 1 Manager Người dùng hệ thống, quản lý chung hệ thống 2 Staff Người dùng hệ thống 3 Customer Tác nhân ngoài ảnh hưởng đến hệ thống 3.
Danh sách Usecase Bảng 3.2 Danh sách Use case Use Case chính Phân rã Use Case Ý nghĩa/Ghi chú Quản lý tài khoản Đăng nhập Đăng nhập vào hệ thống Đăng xuất Đăng xuất khỏi hệ thống Quản lý khách hàng Thêm khách hàng Thêm khách hàng mới vào hệ thống. Sửa thông tin khách hàng Sửa đổi thông tin khách hàng Xóa khách hàng Xóa khách hàng khỏi hệ thống Quản lý sản phẩm Thêm sản phẩm Thêm sản phẩm mới vào menu Sửa thông tin sản phẩm Sửa thông tin sản phẩm trong hệ thống Xóa sản phẩm Xóa sản phẩm khỏi menu Quản lý nguyên liệu Thêm nguyên liệu Thêm nguyên liệu mới vào hệ thống Sửa thông tin nguyên liệu Sửa thông tin nguyên liệu trong hệ thống Xóa nguyên liệu Xóa nguyên liệu khỏi hệ thống Quản lý nhân viên Thêm nhân viên Thêm nhân viên mới vào hệ thống Sửa thông tin nhân viên Sửa thông tin nhân viên Xóa nhân viên Xóa nhân viên khỏi hệ thống Tính lương nhân viên Tính lương dựa trên số giờ làm 17 việc Quản lý đơn hàng Nhập đơn hàng Nhập thông tin đơn hàng Xác nhận thanh toán Xác nhận thanh toán cho đơn hàng Quản lý đơn hàng Quản lý trạng thái và thông tin đơn hàng Quản lý bàn Thêm đặt bàn Thêm thông tin đặt bàn mới Xoá đặt bàn Xóa đặt bàn và cập nhật trạng thái 3. Đặc tả usecase 3. Đặc tả Usecase Quản lý tài khoản a) Đặc tả Use Case Đăng nhập Bảng 3.3 Đặc tả Use Case Đăng nhập Hình 3.