KỸ THUẬT LẬP TRÌNH HƯỚNG ĐỐI TƯỢNG LỜI MỞ ĐẦULỜI MỞ ĐẦU Trong bối cảnh thị trường dịch vụ ngày càng cạnh tranh gay gắt, các cửa hàng bánh ngọt đangđối mặt với nhiều thách thức lớn trong
Trang 1BỘ THÔNG TIN VÀ TRUYỀN THÔNG HỌC VIỆN CÔNG NGHỆ BƯU CHÍNH VIỄN THÔNG
-BÁO CÁO GIAI ĐOẠN 2.1
Đề tài:
“ HỆ THỐNG QUẢN LÝ CỬA HÀNG BÁNH NGỌT”Người hướng dẫn : Huỳnh Trung Trụ
Sinh viên thực hiện:
Lớp : D20CQCNPM01-N Khoá : 2020 - 2025
Ngành : CÔNG NGHỆ PHẦN MỀM
Hệ : ĐẠI HỌC CHÍNH QUY
TP.HCM, tháng 8/2024
TRẦN VIỆT ANH N20DCCN087LƯƠNG THANH QUÝ N20DCCN058NGUYỄN QUANG NGHĨA N20DCCN045
Trang 2BỘ THÔNG TIN VÀ TRUYỀN THÔNG HỌC VIỆN CÔNG NGHỆ BƯU CHÍNH VIỄN THÔNG
-BÁO CÁO GIAI ĐOẠN 2.1
Đề tài: “ HỆ THỐNG QUẢN LÝ CỬA HÀNG BÁNH NGỌT”
Người hướng dẫn : Huỳnh Trung Trụ Sinh viên thực hiện:
Lớp : D20CQCNPM01-N Khoá : 2020 - 2025
Trang 3LỜI CẢM ƠN
Chúng em xin gửi lời cảm ơn chân thành và sâu sắc nhất đến Thầy Huỳnh Trung Trụ thuộc
Khoa Công nghệ Thông tin, Trường Học viện Công Nghệ Bưu Chính Viễn Thông cơ sở TP
HCM Thầy đã tận tình hướng dẫn, chỉ bảo và dành nhiều thời gian quý báu để hỗ trợ nhóm trong
suốt quá trình nghiên cứu và thực hiện đề tài “Hệ thống quản lý cửa hàng bánh ngọt” Những chỉ
dẫn của Thầy đã giúp chúng em hoàn thành luận văn một cách tốt đẹp
Chúng em xin gửi lời cảm ơn đến Khoa Công nghệ Thông tin, Trường Học viện Công Nghệ
Bưu Chính Viễn Thông cơ sở TP HCM, lãnh đạo và các anh chị đang công tác tại trường đã tạo
điều kiện thuận lợi để nhóm có thể hoàn thành đề tài này
Cuối cùng, nhóm chúng em xin bày tỏ lòng biết ơn sâu sắc đến gia đình và bạn bè, những
người luôn ủng hộ, động viên và chia sẻ cùng chúng em trong suốt quá trình học tập và hoàn
thành đề tài này
Thành phố Hồ Chí Minh, Tháng 12 năm 2024
Sinh viên thực hiện Trần Việt Anh Nguyễn Thanh Quý Nguyễn Quang Nghĩa
Trang 4MỤC LỤC
ii
Trang 6KỸ THUẬT LẬP TRÌNH HƯỚNG ĐỐI TƯỢNG LỜI MỞ ĐẦU
LỜI MỞ ĐẦU
Trong bối cảnh thị trường dịch vụ ngày càng cạnh tranh gay gắt, các cửa hàng bánh ngọt đangđối mặt với nhiều thách thức lớn trong việc duy trì hiệu quả hoạt động và thu hút khách hàng.Những khó khăn phổ biến như thiếu hụt nguyên liệu, thất thoát trong quá trình chế biến, kiểmsoát không hiệu quả hạn sử dụng sản phẩm, thời gian phục vụ chậm trễ, và quản lý nhân sự chưatối ưu đang ảnh hưởng nghiêm trọng đến doanh thu cũng như chất lượng dịch vụ Đồng thời, việcthiếu các quy trình kiểm kê và dự trữ nguyên liệu hợp lý khiến cửa hàng gặp khó khăn trong việcchuẩn bị nguyên liệu kịp thời, từ đó ảnh hưởng đến chất lượng sản phẩm
Trước thực trạng này, việc ứng dụng công nghệ thông tin vào quản lý và vận hành cửa hàngbánh ngọt đã trở thành một giải pháp không thể thiếu Một hệ thống quản lý hiệu quả không chỉgiúp giảm thiểu sai sót trong hoạt động thường ngày mà còn cải thiện đáng kể trải nghiệm củakhách hàng, từ đó thúc đẩy doanh thu và lợi nhuận Những công cụ như hệ thống quản lý kho tựđộng, kiểm kê nguyên liệu, và đặt hàng trực tuyến sẽ hỗ trợ cửa hàng duy trì nguồn cung ổn định,giảm thiểu lãng phí và tối ưu hóa quá trình phục vụ
Đề tài “Hệ thống quản lý cửa hàng bánh ngọt” được lựa chọn nhằm nghiên cứu và phát triểngiải pháp công nghệ cho việc tối ưu hóa quy trình quản lý tại cửa hàng Mục tiêu của đề tài làđóng góp vào việc nâng cao hiệu quả hoạt động và chất lượng dịch vụ cho cửa hàng bánh ngọt,đồng thời cung cấp một giải pháp tham khảo cho các hoạt động kinh doanh tương tự
Phạm vi nghiên cứu của đề tài tập trung vào cửa hàng “Phương Chi,” với việc thu thập dữ liệuthực tế từ quá trình kinh doanh của cửa hàng, kết hợp tham khảo các hệ thống quản lý tương tự
Hệ thống sẽ được phát triển dựa trên phương pháp hướng đối tượng, sử dụng MySQL Server làm
hệ quản trị cơ sở dữ liệu và ngôn ngữ lập trình Java Chương trình sẽ hỗ trợ tối ưu hóa việc quản
lý các danh mục sản phẩm, giúp cửa hàng tiết kiệm thời gian, nguồn lực và tăng cường hiệu quảkinh doanh, từ đó phục vụ tốt hơn nhu cầu của khách hàng
Trang 7KỸ THUẬT LẬP TRÌNH HƯỚNG ĐỐI TƯỢNG GIỚI THIỆU
CHƯƠNG 1: GIỚI THIỆU
1.1 Tìm hiểu xây dựng “Hệ thống quản lý cửa hàng bánh ngọt”
1.2 Nền tảng công nghệ
Web app: html, css, jquery, javascript, ajax, bootstrap,…
Android app: android studio, thư viện Volley
RESTful Web Service: framework Spring Boot
1.3 Công cụ lập trình và công nghệ được sử dụng
Công cụ và công nghệ sử dụng
Ngôn ngữ lập trình: Java
Hệ quản trị cơ sở dữ liệu: MySQL
Môi trường phát triển: IntelliJ IDEA
Giao diện Front-end: HTML, CSS, Bootstrap, JavaScript, jQuery
Công nghệ xử lý Back-end: Java, xây dựng Web Service RESTful
Framework: Spring Boot
Phát triển ứng dụng di động: Android Studio với Java
ưu cho các thiết bị
Ứng dụng di động Android sử dụng Android Studio với Java, đảm bảo khả năng tương táctốt và trải nghiệm người dùng mượt mà trên các thiết bị Android
1.4 Giới thiệu ngôn ngữ lập trình Java:
Hình 1 Giới thiệu ngôn ngữ lập trình Java
Java là một trong những ngôn ngữ lập trình hướng đối tượng Nó được sử dụng trong pháttriển phần mềm, trang web, game hay ứng dụng trên các thiết bị di động
Java được khởi đầu bởi James Gosling và bạn đồng nghiệp ở Sun MicroSystem năm 1991.Ban đầu Java được tạo ra nhằm mục đích viết phần mềm cho các sản phẩm gia dụng, và có tên làOak Java được phát hành năm 1994, đến năm 2010 được Oracle mua lại từ Sun MicroSystem.Java được tạo ra với tiêu chí “Viết (code) một lần, thực thi khắp nơi” (Write Once, RunAnywhere – WORA) Chương trình phần mềm viết bằng Java có thể chạy trên mọi nền tảng
Trang 8KỸ THUẬT LẬP TRÌNH HƯỚNG ĐỐI TƯỢNG GIỚI THIỆU
(platform) khác nhau thông qua một môi trường thực thi với điều kiện có môi trường thực thithích hợp hỗ trợ nền tảng đó
1.5 Giới thiệu hệ quản trị cơ sở dữ liệu MySQL
Hình 2 Hệ quản trị cơ sở dữ liệu MySQL
MySQL là hệ quản trị cơ sở dữ liệu tự do nguồn mở phổ biến nhất thế giới và được các nhàphát triển rất ưa chuộng trong quá trình phát triển ứng dụng Vì MySQL là cơ sở dữ liệu tốc độcao, ổn định và dễ sử dụng, có tính khả chuyển, hoạt động trên nhiều hệ điều hành cung cấp một
hệ thống lớn các hàm tiện ích rất mạnh Với tốc độ và tính bảo mật cao, MySQL rất thích hợpcho các ứng dụng có truy cập CSDL trên internet Người dùng có thể tải về MySQL miễn phí từtrang chủ MySQL có nhiều phiên bản cho các hệ điều hành khác nhau: phiên bản Win32 cho các
hệ điều hành dòng Windows, Linux, Mac OS X, Unix, FreeBSD, NetBSD, Novell NetWare, SGIIrix, Solaris, SunOS,
MySQL là một trong những ví dụ rất cơ bản về Hệ Quản trị Cơ sở dữ liệu quan hệ sử dụngNgôn ngữ truy vấn có cấu trúc (SQL).
MySQL được sử dụng cho việc bổ trợ NodeJs, PHP, Perl, và nhiều ngôn ngữ khác, làm nơilưu trữ những thông tin trên các trang web viết bằng NodeJs, PHP hay Perl,
1.6 Các thư viện – Framework hỗ trợ
1.6.1 Springboot
Hình 3 FrameWork SpringBoot
Trang 9KỸ THUẬT LẬP TRÌNH HƯỚNG ĐỐI TƯỢNG GIỚI THIỆU
Spring Boot là một trong những thành viên của hệ sinh thái Spring framework Nó giúp chochúng ta đơn giản hóa công đoạn khởi tạo một dự án với Spring, thay vào đó các bạn chỉ tậptrung vào việc phát triển business cho ứng dụng mà thôi Dưới đây là một số ưu điểm của SpringBoot:
- Tạo ứng dụng Spring độc lập, đóng gói dưới dạng một file JAR (standalone application).
- Tối ưu công đoạn cấu hình cho ứng dụng Spring, không yêu cầu XML config…
- Nhúng trực tiếp các ứng dụng server (Tomcat, Jetty…) do đó không cần phải triển khaifile WAR
- Cung cấp nhiều plugin
- Các starter dependency giúp việc cấu hình Maven đơn giản hơn
1.6.2 RESTful Web Service
RESTful API là một tiêu chuẩn dùng trong việc thiết kế API cho các ứng dụng web (thiết kếWeb services) để tiện cho việc quản lý các resource Nó chú trọng vào tài nguyên hệ thống (tệpvăn bản, ảnh, âm thanh, video, hoặc dữ liệu động…), bao gồm các trạng thái tài nguyên đượcđịnh dạng và được truyền tải qua HTTP
Hình 4 RESTful
Diễn giải các thành phần: API (Application Programming Interface) là một tập các quy tắc và
cơ chế mà theo đó, một ứng dụng hay một thành phần sẽ tương tác với một ứng dụng hay thànhphần khác API có thể trả về dữ liệu mà bạn cần cho ứng dụng của mình ở những kiểu dữ liệuphổ biến như JSON hay XML REST (Representational State Transfer) là một dạng chuyển đổicấu trúc dữ liệu, một kiểu kiến trúc để viết API Nó sử dụng phương thức HTTP đơn giản để tạocho giao tiếp giữa các máy Vì vậy, thay vì sử dụng một URL cho việc xử lý
một số thông tin người dùng, REST gửi một yêu cầu HTTP như GET, POST, DELETE, vvđến một URL để xử lý dữ liệu RESTful API là một tiêu chuẩn dùng trong việc thiết kế các APIcho các ứng dụng web để quản lý các resource RESTful là một trong những kiểu thiết kế APIđược sử dụng phổ biến ngày nay để cho các ứng dụng (web, mobile…) khác nhau giao tiếp vớinhau Chức năng quan trọng nhất của REST là quy định cách sử dụng các HTTP method (nhưGET, POST, PUT, DELETE…) và cách định dạng các URL cho ứng dụng web để quản cácresource RESTful không quy định logic code ứng dụng và không giới hạn bởi ngôn ngữ lập trình
Trang 10KỸ THUẬT LẬP TRÌNH HƯỚNG ĐỐI TƯỢNG GIỚI THIỆU
ứng dụng, bất kỳ ngôn ngữ hoặc framework nào cũng có thể sử dụng để thiết kế một RESTfulAPI JavaScript là một ngôn ngữ lập trình của HTML và WEB Nó là nhẹ và được sử dụng phổbiến nhất như là một phần của các trang web, mà sự thi hành của chúng cho phép Client-Sidescript tương tác với người sử dụng và tạo các trang web động Nó là một ngôn ngữ chương trìnhthông dịch với các khả năng hướng đối tượng
1.6.3 HTML và CSS
HTML và CSS là hai ngôn ngữ được sử dụng để xây dựng trang web HTML xác định cấutrúc và nội dung của trang web, đồng thời, tạo ra cơ sở cho việc thêm giao diện và tương tác CSSđược sử dụng để tùy chỉnh giao diện, làm cho trang web trở nên hấp dẫn hơn HTML có nhiệm
vụ xây dựng nội dung, cấu trúc cơ bản trong các trang web, còn CSS được sử dụng nhằm kiểmsoát hiệu quả trình bày, định dạng và bố cục nội dung
Hình 5 Giới thiệu HTML
HTML thực chất là từ viết tắt của "HyperText Markup Language", nghĩa là ngôn ngữ đánhdấu siêu văn bản Trong đó, Hypertext (siêu văn bản) là một đoạn text bất kỳ nhưng có chứa linkđến một nguồn thông tin khác (như một đoạn văn bản, một địa chỉ website, hình ảnh, âmthanh…)
Ngôn ngữ đánh dấu này sẽ là cầu nối của sự giao tiếp giữa người dùng và trình duyệt, giúptrình duyệt hiểu được cách thức hiển thị trang web Khi trình duyệt đọc thấy 1 ký tự A, nó chỉđơn thuần hiển thị A chứ không thể biết bạn muốn tô đậm, in nghiêng hay thế nào cả Chính lúcnày đây, bạn sẽ cần đến HTML
Trang 11KỸ THUẬT LẬP TRÌNH HƯỚNG ĐỐI TƯỢNG GIỚI THIỆU
Hình 6 Giới thiệu CSS
CSS là từ viết tắt của Cascade Style Sheet, giúp trình duyệt hiểu được các thiết lập định dạng
và bố cục cho trang web CSS cho phép bạn điều khiển thiết kế của nhiều thành phần HTML chỉvới duy nhất 1 vùng chọn Điều này giúp giảm tiết kiệm thời gian thiết kế và chỉnh sửa, khi bạn
có thể tách biệt được cấu trúc HTML và định dạng CSS
CSS cho phép bạn đưa các thông tin định nghĩa thẻ thông qua nhiều con đường khác nhau.Style có thể được quy định ở trong một thẻ HTML, trong một trang web hoặc trong một file CSSbên ngoài
1.6.4 AJAX
Trang 12KỸ THUẬT LẬP TRÌNH HƯỚNG ĐỐI TƯỢNG GIỚI THIỆU
Hình 7 GIới thiệu AJAX
AJAX (tiếng Anh: "Asynchronous JavaScript and XML" - nghĩa là "JavaScript và XMLkhông đồng bộ") là một nhóm các công nghệ phát triển web được sử dụng để tạo các ứng dụngweb động hay các ứng dụng giàu tính Internet (rich Internet application) Từ Ajax được ông JesseJames Garrett đưa ra và dùng lần đầu tiên vào tháng 2 năm 2005 để chỉ kỹ thuật này, mặc dù các
hỗ trợ cho Ajax đã có trên các chương trình duyệt từ 10 năm trước Ajax là một kỹ thuật pháttriển web có tính tương tác cao bằng cách kết hợp các ngôn ngữ:
- HTML (hoặc XHTML) với CSS trong việc hiển thị thông tin
- Mô hình DOM (Document Object Model), được thực hiện thông qua JavaScript, nhằmhiển thị thông tin động và tương tác với những thông tin được hiển thị
- Đối tượng XMLHttpRequest để trao đổi dữ liệu một cách không đồng bộ với máy chủweb (Mặc dù, việc trao đổi này có thể được thực hiện với nhiều định dạng như HTML, văn bảnthường, JSON và thậm chí EBML, nhưng
- XML là ngôn ngữ thường được sử dụng) XML thường là định dạng cho dữ liệu truyền,mặc dù bất cứ định dạng nào cũng có thể dùng, bao gồm HTML định dạng trước, văn bản thuần(plain text), JSON và ngay cả EBML
Giống như DHTML, LAMP hay SPA, Ajax tự nó không phải là một công nghệ mà là mộtthuật ngữ mô tả việc sử dụng kết hợp một nhóm nhiều công nghệ với nhau Trong đó, HTML vàCSS được kết hợp với nhau để đánh dấu và định kiểu thông tin DOM và JavaScript kết hợp lại
để hiển thị thông tin động và cho phép người dùng tương tác với các thông tin này JavaScript
Trang 13KỸ THUẬT LẬP TRÌNH HƯỚNG ĐỐI TƯỢNG GIỚI THIỆU
cùng với đối tượng XMLHttpRequest hỗ trợ việc trao đổi dữ liệu bất đồng bộ giữa trình duyệt vàmáy chủ nhằm hạn chế việc tải lại nguyên trang Trong thực tế, các công nghệ dẫn xuất hoặc kếthợp dựa trên Ajax như AFLAX cũng đã xuất hiện
1.6.5 Android Studio
Android Studio là một phần mềm bao gồm các bộ công cụ khác nhau dùng để phát triển ứngdụng chạy trên thiết bị sử dụng hệ điều hành Android như các loại điện thoại smartphone, cáctablet Android Studio được đóng gói với một bộ code editor, debugger, các công cụperformance tool và một hệ thống build/deploy (trong đó có trình giả lập emulator để giả lập môitrường của thiết bị điện thoại hoặc tablet trên máy tính) cho phép các lập trình viên có thể nhanhchóng phát triển các ứng dụng từ đơn giản tới phức tạp
Hình 8 Giới thiệu Android Studio
Việc xây dựng một ứng dụng mobile (hoặc tablet) bao gồm rất nhiều các công đoạn khácnhau Đầu tiên chúng ta sẽ viết code ứng dụng sử dụng máy tính cá nhân hoặc laptop Sau đóchúng ta cần build ứng dụng để tạo file cài đặt Sau khi build xong thì chúng ta cần copy file càiđặt này vào thiết bị mobile (hoặc table) để tiến hành cài đặt ứng dụng và chạy kiểm thử (testing).Bạn thử tưởng tượng nếu với mỗi lần viết một dòng code bạn lại phải build ứng dụng, cài đặt trênđiện thoại hoặc tablet và sau đó chạy thử thì sẽ vô cùng tốn thời gian và công sức Android Studiođược phát triển để giải quyết các vấn đề này Với Android Studio tất cả các công đoạn trên đượcthực hiện trên cùng một máy tính và các quy trình được tinh gọn tới mức tối giản nhất
Trang 14KỸ THUẬT LẬP TRÌNH HƯỚNG ĐỐI TƯỢNG KHẢO SÁT HỆ THỐNG
CHƯƠNG 2: KHẢO SÁT HIỆN TRẠNG 2.1 Hiện trạng thực tế
Hiện nay, tiệm bánh ngọt đang gặp phải hàng loạt thách thức nghiêm trọng trong quá trình vậnhành, gây ra tác động tiêu cực đến chất lượng dịch vụ, trải nghiệm khách hàng, và doanh thu.Phân bổ khách hàng không đồng đều dẫn đến tình trạng quá tải tại một số thời điểm, trong khi lạithiếu khách vào các thời gian khác, làm khó khăn trong việc tối ưu hóa nguồn lực nhân viên vànguyên liệu Tình trạng này kéo theo việc quản lý sản phẩm và nguyên liệu thiếu hiệu quả, dẫnđến việc thiếu hụt hàng hoá thường xuyên, khiến tiệm mất cơ hội bán hàng và làm giảm sự hàilòng của khách hàng
Một vấn đề nổi bật khác là thời gian chờ đợi dài khi đặt món, không chỉ làm khách mất kiênnhẫn mà còn ảnh hưởng đến hiệu suất hoạt động của nhân viên Nhầm lẫn trong việc ghi nhậnđơn hàng và quá trình thanh toán chậm trễ cũng khiến trải nghiệm mua sắm trở nên bất tiện, giảmđáng kể khả năng giữ chân khách hàng Sự thiếu quy trình kiểm kê nguyên liệu và dự trữ đangdẫn đến tình trạng lãng phí tài nguyên, khiến tiệm mất đi cơ hội kinh doanh quý báu trong giờ caođiểm
Chất lượng sản phẩm không ổn định và menu chưa đủ đa dạng khiến khách hàng không tìmthấy nhiều lựa chọn hấp dẫn, ảnh hưởng nghiêm trọng đến sự uy tín của tiệm trong mắt ngườitiêu dùng Không chỉ vậy, không gian cửa hàng và bố trí bàn ghế thiếu hợp lý khiến khách hàngcảm thấy không thoải mái, đặc biệt vào những thời điểm đông đúc
Ngoài ra, quản lý tài chính chưa hiệu quả và thiếu sự nhạy bén trước xu hướng thị trường đangđẩy tiệm vào tình thế cạnh tranh không cân bằng Tiệm chưa thực sự linh hoạt trong mô hình kinhdoanh và gặp khó khăn trong việc quản lý nguồn cung ứng nguyên liệu ổn định, điều này gây ra
sự chênh lệch về chất lượng phục vụ và chi phí vận hành tăng cao
Một thách thức đáng kể khác là phân biệt và xử lý đơn hàng mua mang đi và ăn tại chỗ khôngđược tổ chức rõ ràng, khiến nhân viên lúng túng, dẫn đến việc giao hàng chậm và phục vụ khônghiệu quả Bố trí bàn ghế chưa hợp lý và quản lý thời gian phục vụ không chặt chẽ không chỉ làmhạn chế trải nghiệm của khách mà còn khiến tiệm mất đi cơ hội tối ưu hoá doanh thu
Những vấn đề trên không chỉ gây ảnh hưởng tiêu cực đến danh tiếng của tiệm, mà còn hạn chếtiềm năng phát triển doanh thu và khả năng duy trì khách hàng trung thành Nếu không có biệnpháp khắc phục kịp thời, những thách thức này sẽ tiếp tục ảnh hưởng đến sự sống còn và pháttriển của tiệm trong tương lai
2.2 Giải pháp nâng cao hiệu quả của quản lý cửa hàng bánh ngọt
Những vấn đề đặt ra trên đây cho thấy, cần có một giải pháp để nâng cao hiệu quả hoạt độngcủa tiệm để tăng doanh thu và đáp ứng yêu cầu khách hàng một cách tốt nhất
Một trong các giải pháp để nâng cao hiệu quả là tin học hóa các hoạt động quản lý và vậnhành trong điều kiện trang thiết bị cho phép Từ những vấn đề phát hiện, ta có thể có các giảipháp tương ứng sau đây:
Thiếu hụt sản phẩm Áp dụng hệ thống quản lý kho tự Đảm bảo nguồn cung liên tục, giảm
Trang 15KỸ THUẬT LẬP TRÌNH HƯỚNG ĐỐI TƯỢNG KHẢO SÁT HỆ THỐNG
và nguyên liệu động, cảnh báo khi hàng sắp hết thiểu tình trạng thiếu hàng, tối ưu
hóa việc nhập hàng và dự trữ, từ đógiảm thiểu việc bị động trong quátrình sản xuất và phục vụ
Chờ đợi lâu khi đặt
Nhầm lẫn trong
việc đặt món
Áp dụng hệ thống đặt hàng điện tửvới giao diện trực quan để giảmsai sót
Giảm sai sót trong quá trình nhận và
xử lý đơn hàng, nâng cao độ chínhxác và tăng cường sự hài lòng củakhách hàng
Thanh toán chậm Triển khai các phương thức thanh
toán khác nhau
Rút ngắn thời gian thanh toán, manglại trải nghiệm thanh toán tiện lợihơn cho khách hàng, giảm thiểu ùntắc trong quá trình thanh toán vàtăng sự hài lòng
Chất lượng, hương
vị bánh không đồng
đều
Công thức được lưu trên hệ thống Đảm bảo chất lượng và hương vị
bánh nhất quán, duy trì tiêu chuẩnchất lượng của sản phẩm, giúp cửahàng xây dựng uy tín và lòng tin từkhách hàng
Việc kiểm soát hạn
sử dụng sản phẩm
chưa hiệu quả
Triển khai quản lý hạn sử dụngđiện tử
Giảm thiểu lãng phí do hàng hết hạn,đảm bảo sản phẩm luôn tươi mới và
an toàn cho khách hàng, từ đó duytrì chất lượng và uy tín của cửa
Trang 16KỸ THUẬT LẬP TRÌNH HƯỚNG ĐỐI TƯỢNG KHẢO SÁT HỆ THỐNG
hàng
Bảng 2 1 Các vấn đề và giải pháp nâng cao
Hệ thống được đề xuất tập trung vào hai điểm chính: máy chủ trung tâm tại quầy và máy kiểm
kê tại kho Tại quầy trung tâm, máy chủ sẽ tổng hợp yêu cầu và quản lý đặt hàng Nhân viên tạiquầy sẽ nhập đơn hàng trực tiếp vào hệ thống này Khi có thông báo thanh toán, nhân viên phục
vụ có thể nhanh chóng nhận thông tin về món ăn và bàn tương ứng để phục vụ khách hàng Đốivới đơn đặt hàng từ bên ngoài, tất cả đều được xử lý qua hệ thống trung tâm, đảm bảo tốc độ vàchính xác Máy ở kho được sử dụng để kiểm kê và quản lý nguyên vật liệu Nhân viên được trang
bị thiết bị di động với chức năng giới hạn, chỉ dùng để xác nhận bàn nào khách đã rời đi, cập nhậttrạng thái bàn trống trong thời gian thực lên hệ thống trung tâm
Ngoài ra, hệ thống còn cung cấp khả năng tổng hợp dữ liệu hàng ngày, bao gồm doanh thu,danh mục sản phẩm đã phục vụ, và hiệu suất của từng nhân viên dựa trên số lượng bàn đã phục
vụ và xác nhận Những thông tin này là cơ sở quan trọng để dự báo nhu cầu sản phẩm, lập kếhoạch dự trữ nguyên liệu và vật tư, dự kiến nhu cầu nhân lực, và xây dựng chính sách khuyếnkhích nhân viên phù hợp
2.3 Mô hình nghiệp vụ của hệ thống
2.3.1 Sơ đồ cơ cấu tổ chức
Sơ đồ 2 1 Cơ cấu tổ chức
2.3.2 Chức năng từng bộ phận
- Quản lý: Người chịu trách nhiệm quản lý trực tiếp cửa hàng, tất cả các vấn đề liên quanđến hoạt động của quán đều phải được thông qua quản lý Quản lý có quyền quyết địnhcuối cùng về mọi hoạt động và thông tin trong quán
- Nhân viên làm bánh: Đảm nhận vai trò sản xuất các loại bánh trong quán, đảm bảo chấtlượng và số lượng bánh đáp ứng nhu cầu của khách hàng
- Nhân viên phục vụ: Đảm nhận việc phục vụ khách hàng tại quán, bao gồm mang bánh racho khách dùng tại chỗ, đứng quầy để phục vụ và giao bánh khi khách đặt hàng mang đi
Trang 17KỸ THUẬT LẬP TRÌNH HƯỚNG ĐỐI TƯỢNG KHẢO SÁT HỆ THỐNG
o Nhân viên phục vụ ghi lại và tiến hành bước thanh toán
o Khách hàng chọn phương thức và thanh toán
o Nhân viên xuất hoá đơn
o Nhân viên sẽ tiếp nhận lấy đúng số liệu theo hoá đơn và mang đến bàn được ghilại bên trên hoá đơn
2.3.3.2 Quản lý kho, nguyên liệu
o Nhân viên quản lý thực hiện kiểm kê các vật dụng trong quán, đồng thời c kiểm kê tựđộng hoặc cảnh báo khi nguyên liệu sắp hết để tránh tình trạng thiếu hụt nguyên liệu độtngột, giúp nâng cao hiệu quả vận hành Nếu nguyên liệu gần hết phải báo cho quản lý đểnhập thêm nguyên liệu
2.3.3.3 Quản lý các đợt khuyến mãi
o Cho phép thêm các đợt khuyến mãi trong khoảng thời gian nhất định, mỗi đợt khuyến mãichứa danh sách các sản phẩm tham gia khuyến mãi và phần trăm khuyến mãi của mỗi sảnphẩm
o Tạm ngưng hoặc hiệu chỉnh khuyến mãi khi cần thiết
2.3.3.4 Quản lý bàn
o Đánh dấu bàn đang được sử dụng khi khách hàng dùng
o Đánh dấu bàn đang trống khi khách hàng rời đi
o Đánh dấu bàn hỏng khi có sửa chữa
2.3.3.6 Báo cáo
o Thống kê doanh thu theo ngày, tháng, năm
o Báo cáo chi tiết doanh số của từng sản phẩm
o Thống kê theo sản phẩm
2.4 Yêu cầu chức năng
Phần mềm gồm các chức năng sau:
Chức năng Ý nghĩa
Chức năng gọi món Thực hiện các chức năng về gọi món: Gọi
thêm món, xóa món và thanh toán hóa đơnQuản lý kho nguyên liệu Quản lý thông tin nguyên liệu trong kho và lưu
vết sự xuất nhập nguyên liệu
Quản lý kho bánh Quản lý thông tin được hạn sử dụng của từng
lô bánh,Quản lý bàn – khu vực Quản lý thông tin bàn, tình trạng, các khu vực
trong quán
Trang 18KỸ THUẬT LẬP TRÌNH HƯỚNG ĐỐI TƯỢNG KHẢO SÁT HỆ THỐNG
Báo cáo Xuất các báo cáo cần thiết
Quản lý khuyến mãi Quản lý được thông tin của từng khuyến mãi
Bảng 2 2 Yêu cầu chức năng
2.5 Yêu cầu phi chức năng
- Hệ thống chạy đúng, tốt, ổn định
- Giao diện thân thiện, dễ sử dụng
- Đáp ứng hầu hết các yêu cầu của người dùng
2.6 Yêu cầu hệ thống
o Cung cấp phân quyền cho các loại người dùng có trách nhiệm: Quản lý, Phục vụ, Thợbánh
Trang 19KỸ THUẬT LẬP TRÌNH HƯỚNG ĐỐI TƯỢNG PHÂN TÍCH VÀ THIẾT KẾ HỆ THỐNG
CHƯƠNG 3: PHÂN TÍCH VÀ THIẾT KẾ HỆ THỐNG
3.1 Sơ đồ phân cấp chức năng
Sơ đồ 3 1 Phân rẫ chức năng
3.1.1 Sơ đồ phân cấp chức năng mức đỉnh
Hệ thống nghiệp vụ được xét gồm các chức năng chính: Phục vụ khách, Làm bánh, Quản lý kho, Quản lý sản phẩm, quản lý khu vực, quản lý nhân viên và tổnghợp báo cáo Mỗi chức năng này được phân rã thành một số chức năng nhỏ hơn mà thaotác thực hiện đủ đơn giản cho việc lập trình
3.1.2 Sơ đồ phân rã chức năng
3.1.2.1 Chức năng phục vụ
Mô tả chi tiết các chức năng:
Trang 20KỸ THUẬT LẬP TRÌNH HƯỚNG ĐỐI TƯỢNG PHÂN TÍCH VÀ THIẾT KẾ HỆ THỐNG
Sơ đồ 3 2 Phân rã chức năng phục vụ
Gọi món (order): Khi khách vào cửa hàng, khách có thể yêu cầu danh mục tại quầy
để nhận trực tiếp sản phẩm Nhân viên ghi nhận các sản phẩm do khách hàng yêucầu (Tên sản phẩm, số lượng,…) vào hệ thống
Thanh toán: Khách hàng thanh toán tại quầy sau khi nhận thông báo từ nhân viên(có thể chọn phương thức thanh toán)
In hóa đơn: sau khi thanh toán, tiến hành gửi lệnh in hóa đơn và hoàn trả hóa đơncho khách hàng kiểm tra và trả tiền thừa nếu có
3.1.2.2 Quản lý kho
Mô tả chi tiết các chức năng:
Sơ đồ 3 3 Phân rã chức năng quản lý kho
Quản lý tồn kho: Chủ quán sẽ thực hiện kiểm tra định kỳ các nguyên liệu đang còntồn trong kho, nếu nguyên liệu thấp hơn ngưỡng giới hạn cho trước (sắp hết
Trang 21KỸ THUẬT LẬP TRÌNH HƯỚNG ĐỐI TƯỢNG PHÂN TÍCH VÀ THIẾT KẾ HỆ THỐNG
nguyên liệu) thì ứng dụng thông báo để người dùng dễ kiểm soát tình trạng khonguyên liệu
Nhập nguyên liệu: nhập nguyên liệu kèm theo số lượng, giá thành hiện tại cho cácnguyên liệu được nhập trong đơn nhập hàng đó Đồng thời ghi nhận lại thời giannhập nguyên liệu, người nhập nguyên liệu
Quản lý danh mục nguyên liệu: Người dùng thực hiện các chức năng thêm xóa sửa danh mục nguyên liệu
- Quản lý nguyên liệu: Người dùng thực hiện các chức năng thêm – xóa – sửanguyên liệu
3.1.2.3 Quản lý sản phẩm
Mô tả chi tiết các chức năng:
Sơ đồ 3 4 Phân rã chức năng quản lý mặt hàng
Quản lý danh mục sản phẩm: Người dùng thực hiện các chức năng thêm xóa sửa danh mục sản phẩm
- Quản lý sản phẩm: Người dùng thực hiện các chức năng thêm - xóa - sửa danhsách sản phẩm
Quản lý công thức sản phẩm: Người dùng sẽ có thể nhập và chỉnh sửa công thứccho mỗi sản phẩm(gồm nguyên liệu gì và liều lượng bao nhiêu), từ đó có thể tínhtoán được số nguyên liệu cần xuất kho cho mỗi lần làm bánh
Quản lý hạn sử dụng sản phẩm: Khi làm xong một lô bánh, người dùng phải nhậpthêm hạn sử dụng của lô bánh đó Người dùng sẽ căn cứ vào hạn sử dụng của bánh
để đưa ra các quyết định như bán những bánh gần hết hạn trước, hủy bỏ nhữngbánh đã hết hạn
3.1.2.4 Quản lý bàn – khu vực
Mô tả chi tiết các chức năng:
Trang 22KỸ THUẬT LẬP TRÌNH HƯỚNG ĐỐI TƯỢNG PHÂN TÍCH VÀ THIẾT KẾ HỆ THỐNG
Sơ đồ 3 5 Phân rã chức năng bàn khu vực
Quản lý khu vực: Người quản lý thực hiện các chức năng thêm mới, xóa và cậpnhật danh sách khu vực
Quản lý bàn: Người quản lý thực hiện các chức năng thêm mới, xóa và cập nhậtdanh sách bàn của từng khu vực
3.1.2.5 Quản lý nhân viên
Mô tả chi tiết các chức năng:
Sơ đồ 3 6 Phân rã chức năng quản lý nhân viên
Quản lý danh sách nhân viên: Khi tuyển dụng nhân viên mới, người quản lý cótrách nhiệm tạo mới tài khoản nhân viên và cập nhật các thông tin của nhân viênđó
Xem thông tin nhân viên: Sau khi cập nhật thông tin nhân viên, người quản lý cótrách nhiệm thường xuyên kiểm tra thông tin nhân viên, để phát hiện thiếu sót vàhiệu chỉnh
Khóa nhân viên: Khi nhân viên thôi việc, người quản lý tiến hành khóa tài khoảnnhân viên để nhân viên hết quyền truy cập
3.1.2.6 Quản lý khuyến mãi
Mô tả chi tiết các chức năng:
Trang 23KỸ THUẬT LẬP TRÌNH HƯỚNG ĐỐI TƯỢNG PHÂN TÍCH VÀ THIẾT KẾ HỆ THỐNG
Sơ đồ 3 7 Phân rã chức năng khuyến mãi
Quản lý danh sách khuyến mãi: Khi có sự kiện khuyến mãi, quản lý sẽ thêm mớikhuyến mãi, các sản phẩm được khuyến mãi, phần trăm khuyến mãi của mỗi sảnphẩm và thời gian diễn ra khuyến mãi
Xem thông tin khuyến mãi: Xem các thông tin của một khuyến mãi(sản phẩmkhuyến mãi và phần trăm khuyến mãi của từng sản phẩm)
Hiệu chỉnh - tạm ngưng khuyến mãi: Quản lý có thể tạm ngưng một khuyến mãitrong thời gian diễn ra Khuyến mãi đang diễn ra sẽ không thể hiệu chỉnh Nếu hiệuchỉnh một khuyến mãi đang diễn ra, một khuyến mãi mới với nội dung sau khihiệu chỉnh sẽ được tạo và không làm ảnh hưởng đến khuyến mãi cũ
3.1.2.7 Thống kê
Mô tả chi tiết các chức năng:
Sơ đồ 3 8 Phân rã chức năng thống kê
Thống kê doanh thu: Thống kê doanh thu sản phẩm theo ngày, theo tháng, theonăm Chi tiết đến từng sản phẩm Hiển thị biểu đồ chi tiết,…
Thống kê sản phẩm bán chạy: Thống kê danh sách sản phẩm sắp xếp theo tiêu chíbán chạy trong khoảng thời gian được chỉ định
3.2 Mô hình luồn dữ liệu DFD
Trang 24KỸ THUẬT LẬP TRÌNH HƯỚNG ĐỐI TƯỢNG PHÂN TÍCH VÀ THIẾT KẾ HỆ THỐNG
3.2.1 Biểu đồ DFD mức ngữ cảnh
Sơ đồ 3 9 Luồn dữ liệu mức ngữ cảnh
3.2.2 Mô hình luồng dữ liệu DFD phân rã cấp 0
Sơ đồ 3 10 Luồn dữ liệu DFD phân rã mức 0
3.3 Mô hình usecase
3.3.1 Xác định Actor
Dựa vào yêu cầu của bài toán, ta có các actor: nhân viên phục vụ, nhân viên làm bánh vàngười quản lý
Trang 25KỸ THUẬT LẬP TRÌNH HƯỚNG ĐỐI TƯỢNG PHÂN TÍCH VÀ THIẾT KẾ HỆ THỐNG
3.3.2 Xác định các Use Case
Từ yêu cầu chức năng ứng với từng actor ta có thể xác định được các usecase như sau:
Phục vụ Đăng nhập, thao tác gọi món, tìm kiếm món, thêm món, xóa món, thanh toán,
in hóa đơn, quản lý bànQuản lý Đăng nhập, tạo tài khoản nhân viên, quản lý khu vực - bàn, quản lý kho, quản
lý nguyên liệu, quản lý danh mục sản phẩm, quản lý sản phẩm, quản lý côngthức làm bánh, thống kê doanh thu (ngày, tháng, năm)
Bảng 3 1 Xác định các tác nhân
3.3.3 Xây dựng Use Case tổng quát
v Biểu đồ usecase dành cho phục vụ
Sơ đồ 3 11 Biểu đồ usecase cho phục vụ
v Biểu đồ usecase dành cho quản lý
Trang 26KỸ THUẬT LẬP TRÌNH HƯỚNG ĐỐI TƯỢNG PHÂN TÍCH VÀ THIẾT KẾ HỆ THỐNG
Sơ đồ 3 12 Biểu đồ usecase cho quản lý
Trang 27KỸ THUẬT LẬP TRÌNH HƯỚNG ĐỐI TƯỢNG PHÂN TÍCH VÀ THIẾT KẾ HỆ THỐNG
- Người dùng chọn món cần gọi trong danh sách các sản phẩm
Số lượng sản phẩm sẽ tăng 1 khi nhấn + hoặc giảm 1 khi nhấn
Hiển thị sản phẩm trong danh sách gọi món
- Khi hoản thành gọi món, danh sách các món đã gọi sẽ được đưa vào hóađơn và chuyển đến chức năng thanh toán
- Người dùng đã đăng nhập vào hệ thống với quyền tương ứng
- Sau khi gọi món và xác nhận
Dòng sự kiện:
Dòng sự kiện chính:
- Sau khi hoàn thành gọi món, người dùng sẽ chọn “Thanh toán”
- Chọn phương thức thanh toán phù hợp
- Lấy danh sách sản phẩm đã chọn cùng số lượng tương ứng và hiển thị trênmàn hình
- Lưu lại thông tin hóa đơn khi thanh toán thành công
Dòng sự kiện khác:
- Chọn “Hủy” để hủy thanh toán
- Thông báo cho người dùng khi có lỗi xảy ra
c Đổi trạng thái bàn:
Mô tả: Chức năng đổi trạng thái của bàn khi có người rời đi hoặc chọn bàn Đặc tả:
Trang 28KỸ THUẬT LẬP TRÌNH HƯỚNG ĐỐI TƯỢNG PHÂN TÍCH VÀ THIẾT KẾ HỆ THỐNG
a Tạo phiếu xuất
Mô tả: Chức năng cho phép quản lý tạo một phiếu xuất nguyên liệu để chỉ định nhân
viên kho nhận nguyên liệu phục vụ cho quá trình sản xuất
Đặc tả:
Pre-condition:
- Người dùng đã đăng nhập với vai trò quản lý
- Hệ thống có danh sách các nguyên liệu tồn kho và nhân viên kho
Dòng sự kiện:
Dòng sự kiện chính:
- Hệ thống hiển thị danh sách các nguyên liệu tồn kho và tùy chọn tạo phiếu xuất
- Người dùng chọn nguyên liệu cần xuất
- Người dùng nhập số lượng nguyên liệu cần xuất
- Hệ thống yêu cầu người dùng chỉ định nhân viên kho sẽ nhận nguyên liệu
- Người dùng chọn nhân viên kho từ danh sách
- Người dùng xác nhận thông tin phiếu xuất
- Hệ thống tạo phiếu xuất, cập nhật số lượng nguyên liệu trong kho
- Hệ thống thông báo tạo phiếu xuất thành công và gửi thông tin phiếu xuất đếnnhân viên kho được chỉ định
b Huỷ phiếu xuất
Mô tả: Chức năng cho phép người dùng huỷ một phiếu xuất nguyên liệu nếu không cần
sử dụng nữa
Đặc tả:
Trang 29KỸ THUẬT LẬP TRÌNH HƯỚNG ĐỐI TƯỢNG PHÂN TÍCH VÀ THIẾT KẾ HỆ THỐNG
Pre-condition:
- Người dùng đã đăng nhập với vai trò nhân viên kho hoặc quản lý
- Có phiếu xuất nguyên liệu cần hủy
Dòng sự kiện:
Dòng sự kiện chính:
- Hệ thống hiển thị danh sách các phiếu xuất nguyên liệu
- Người dùng chọn phiếu xuất cần hủy
- Hệ thống hiển thị thông tin phiếu xuất và nút "Huỷ"
- Người dùng nhấn nút "Huỷ" -> Hệ thống sẽ hỏi xác nhận hành động
- Người dùng chọn "Xác nhận" để huỷ phiếu xuất
- Hệ thống ghi nhận trạng thái phiếu đã huỷ và cập nhật kho nếu cần
- Hệ thống thông báo hủy thành công
Dòng sự kiện khác:
- Nếu không có phiếu xuất để hủy, hệ thống sẽ thông báo "Không có phiếu xuất"
- Nếu xảy ra lỗi trong quá trình hủy, hệ thống sẽ thông báo lỗi đến người dùng
- Người dùng đã đăng nhập với quyền quản lý
- Đang ở chức năng quản lý bàn - khu vực
Dòng sự kiện:
Dòng sự kiện chính:
- Chọn thêm bàn
- Điền số chỗ ngồi của bàn, tên bàn, chọn khu vực của bàn
- Xác nhận để thêm bàn vào danh sách bàn
- Lưu lại thông tin của bàn nếu tất cả thông tin đều hợp lệ
Dòng sự kiện khác:
- Nếu hệ thống kiểm tra các thông tin nhập vào không hợp lệ hoặc thiếu thì sẽbáo lỗi cho người dùng để chỉnh sửa, thêm thông tin hoặc hủy lần thêm bànnày
b Sửa bàn
Mô tả: Chức năng cho phép người quản lý có thể thay đổi thông tin của bàn Đặc tả:
Pre-condition:
- Người dùng đã đăng nhập với quyền quản lý
- Đang ở chức năng quản lý bàn - khu vực
Dòng sự kiện:
Trang 30KỸ THUẬT LẬP TRÌNH HƯỚNG ĐỐI TƯỢNG PHÂN TÍCH VÀ THIẾT KẾ HỆ THỐNG
Dòng sự kiện chính:
- Hệ thống đang hiển thị danh sách các khu vực
- Chọn khu vực có bàn cần sửa -> Hệ thống hiển thị danh sách bàn ở khuvực đó
- Chọn bàn cần sửa thông tin
- Chọn nút “Sửa” -> Hệ thống hiển thị các thông tin của bàn
- Thay đổi các thông tin cần chỉnh sửa(tên bàn, số chỗ ngồi, khu vực)
- Chọn nút “Xác nhận” để lưu lại thông tin bàn sau khi chỉnh sửa
- Hệ thống lưu lại thông tin mới của bàn nếu thành công
Dòng sự kiện khác:
- Nếu các thông tin sau khi chỉnh sửa bị thiếu hoặc không hợp lệ, hệ thống
sẽ thông báo lỗi đến người dùng để có thể thay đổi cho phù hợp hoặchủy lần sửa thông tin bàn này
c Xoá bàn
Mô tả: Chức năng cho phép người quản lý xóa 1 bàn trong danh sách bàn
Đặc tả:
Pre-condition:
- Người dùng đã đăng nhập với quyền quản lý
- Đang ở chức năng quản lý bàn - khu vực
Dòng sự kiện:
Dòng sự kiện chính:
- Hệ thống đang hiển thị danh sách các khu vực
- Chọn khu vực có bàn cần xóa -> Hệ thống hiển thị danh sách bàn ở khuvực đó
- Người dùng đã đăng nhập với quyền quản lý
- Đang ở chức năng quản lý bàn - khu vực
Dòng sự kiện:
Dòng sự kiện chính:
Trang 31KỸ THUẬT LẬP TRÌNH HƯỚNG ĐỐI TƯỢNG PHÂN TÍCH VÀ THIẾT KẾ HỆ THỐNG
e Sửa khu vực
Mô tả: Chức năng cho phép người quản lý có thể sửa thông tin của một khu vực Đặc tả:
Pre-condition:
- Người dùng đã đăng nhập với quyền quản lý
- Đang ở chức năng quản lý bàn - khu vực
Dòng sự kiện:
Dòng sự kiện chính:
- Hệ thống đang hiển thị danh sách các khu vực
- Chọn khu vực cần chỉnh sửa thông tin
f Xoá khu vực
Mô tả: Chức năng cho phép người quản lý có thể xóa một khu vực
Đặc tả:
Pre-condition:
- Người dùng đã đăng nhập với quyền quản lý
- Đang ở chức năng quản lý bàn - khu vực