Bảng 2.1 - Danh sách các tác nhân của hệ thống STT Tên Actor Giải thích 1 Người dùng User - Đăng nhập hệ thống: Mỗi một khách hàng đã đăng ký tài khoản đều có quyền đăngnhập vào tài khoả
Trang 1ĐẠI HỌC ĐÀ NẴNG TRƯỜNG CÔNG NGHỆ THÔNG TIN VÀ TRUYỀN THÔNG
VIỆT - HÀN
ĐỒ ÁN CƠ SỞ 2
ĐỀ TÀI: XÂY DỰNG WEBSITE ĐẶT MÓN ĂN
Sinh viên thực hiện : TRẦN QUỐC TÍNH - 19IT5
NGUYỄN ĐĂNG QUÝ - 19IT4
Giảng viên dạy : THS TRỊNH THỊ NGỌC LINH
Trang 2
Đà nẵng, tháng 11 năm 2020
Trang 3ĐẠI HỌC ĐÀ NẴNG TRƯỜNG CÔNG NGHỆ THÔNG TIN VÀ TRUYỀN THÔNG
VIỆT - HÀN
ĐỒ ÁN CƠ SỞ 2
ĐỀ TÀI: XÂY DỰNG WEBSITE ĐẶT MÓN ĂN
Sinh viên thực hiện : TRẦN QUỐC TÍNH - 19IT5
NGUYỄN ĐĂNG QUÝ - 19IT4
Giảng viên dạy : THS TRỊNH THỊ NGỌC LINH
Đà Nẵng, tháng 11 năm 2020
Trang 4MỞ ĐẦU
1 Lý do chọn đề tài:
Trong những năm gần đây với sự phát triển vượt trội của khoa học kỹ thuậtđặc biệt là công nghệ thông tin, với những ứng dụng của công nghệ thông tin vàocác lĩnh vực đã đóng góp phần to lớn cho sự nghiệp phát triển của con người.Việc xây dựng các trang web để phục vụ cho các nhu cầu riêng của các tổ chức,công ty thậm chí các cá nhân ngày càng phổ biến và không còn là vấn đề xa lạ
Và một người bất kì có thể trở thành chủ của một website giới thiệu về bất cứ gì
mà họ quan tâm: một website giới thiệu về bản thân và gia đình họ, hay là mộtwebsite trình bày các bộ sưu tập hình ảnh, các sở thích mà họ yêu thích,
Đối với các nhà hàng thì việc xây dựng các website riêng càng ngày càng trởnên cấp thiết Thông qua những website này, thông tin về họ cũng như các món
ăn, dịch vụ mới của nhà hàng sẽ đến với những người quan tâm, đến với kháchhàng của họ một cách nhanh chóng kịp thời, tránh những phiền hà mà phươngthức giao tiếp truyền thống thường gặp phải
Từ vốn kiến thức có được trong quá trình học tập và thông qua tham khảomột số trang Web giới thiệu sản phẩm, quảng bá sản phẩm Em đã thực hiện đềtài: “Xây dựng website đặt món ăn”
2 Mục đích nghiên cứu:
Website sau khi xây dựng xong sẽ đáp ứng được các yêu cầu cơ bản sau:
Giúp cho khách hàng: Đăng ký tài khoản, đăng nhập tài khoản, đổi mậtkhẩu, chỉnh sửa thông tin cá nhân, đặt mua món ăn, xem trạng thái đơnhàng, tìm kiếm và xem thông tin về món ăn
Giúp cho quản trị: Đăng nhập, đổi mật khẩu, chỉnh sửa thông tin cánhân, quản lý danh mục các sản phẩm, quản lý đơn hàng, quản lý tàikhoản, quản lý khuyến mãi, thống kê đơn đặt hàng
3 Đối tượng ứng dụng và phạm vi ứng dụng:
Đối tượng ứng dụng của đề tài:
Mọi người tiêu dùng trên toàn quốc có nhu cầu đặt mua món ăn quamạng
Các công ty, doanh nghiệp có nhu cầu mua hệ thống website đặt mónăn
Phạm vi nghiên cứu của đề tài:
Tìm hiểu kỹ thuật lập trình, cách thức hoạt động và các đối tượng trongPHP
Hiểu được cách lưu trữ dữ liệu của hệ quản trị cơ sở dữ liệu MySQL
Sử dụng ngôn ngữ PHP và hệ quản trị MySQL để xây dựng website
4 Ý nghĩa khoa học thực tiễn của đề tài:
Trong thời đại thương mại điện tử đang ngày càng phát triển việc ứng dụngvào hoạt động “Xây dựng website đặt món ăn” đã mang lại nhiều ý nghĩa sau:
Đỡ tón thời gian cho người tiêu dùng cũng như nhà quản lý trong việctham gia vào hoạt động mua bán món ăn
Giúp người tiêu dùng tìm được giá cả và hình ảnh món ăn một cáchchính xác
Giúp nhà quản lý dễ dàng hơn trong việc quản lý sản phẩm
Trang 5LỜI CẢM ƠN
Trước hết, xin gởi lời cảm ơn chân thành đến cô giáo Trịnh Thị Ngọc Linh
đã tận tình chỉ dẫn, góp ý để báo cáo của nhóm tránh nhiều sai sót và hoàn thiệnhơn Đề án này được được thực hiện bởi nhóm gồm 2 thành viên thuộc sinh viêncủa trường Đại học Công nghệ thông tin và Truyền thông Việt – Hàn Đà Nẵng.Xin gởi lời cảm ơn đến các tác giả bài viết, các trang web đã góp phần cung cấpcho chúng tôi các tiện ích và thông tin cần thiết để thực hiện đồ án
Cuối cùng, mặc dù nhóm đã rất cố gắng nhưng chắc chắn sẽ còn rất nhiềusai sót mà chưa thể khắc phục hết được vì vậy rất mong thầy đóng góp ý kiến,phê bình để nhóm rút thêm kinh nghiệm cho những lần sau
Xin chân thành cảm ơn!
Trang 6NHẬN XÉT
(Của giảng viên hướng dẫn)
………
………
………
………
………
………
………
………
………
………
………
………
………
………
………
………
………
………
………
………
………
………
………
………
………
………
………
………
………
………
………
………
………
………
Ký tên
Trang 7MỤC LỤC
Trang
MỞ ĐẦU 1
Chương 1 Giới thiệu 11
1.1 Tổng quan 11
1.2 Phương pháp, kết quả 11
1.2.1 Nhiệm vụ thiết kế 11
1.3 Giới thiệu về kiến trúc và công nghệ chính được sử dụng 11
1.3.1 PHP 12
1.3.2 Bootstrap 12
1.3.3 JavaScript 12
1.3.4 Giới thiệu về Ajax 13
1.3.5 CodeIgniter 13
1.4 Cấu trúc đồ án 15
Chương 2 Phân tích thiết kế hệ thống 16
2.1 Phân tích yêu cầu hệ thống 16
2.1.1 Các yêu cầu chức năng 16
2.1.2 Các yêu cầu phi chức năng 16
2.2 Bảng chú giải 16
2.2.1 Giới thiệu 16
2.2.2 Các định nghĩa 17
2.3 Đặc tả bổ sung 17
2.3.1 Mục tiêu 17
2.3.2 Phạm vi 17
2.3.3 Tài liệu tham khảo 17
2.3.4 Chức năng 17
2.3.5 Tính khả dụng 17
2.3.6 Tính ổn định 17
2.3.7 Hiệu suất 17
2.3.8 Sự hỗ trợ 18
2.3.9 Tính bảo mật 18
2.3.10 Các ràng buộc thiết kế 18
2.4 Các sơ đồ Use Case 18
2.4.1 Các tác nhân của hệ thống 18
2.4.2 Mô hình các trường hợp sử dụng của Người dùng 19
2.4.3 Mô hình các trường hợp sử dụng của Quản trị viên 19
2.4.4 Biểu đồ use case mức tổng quát của hệ thống 19
2.5 Đặc tả Use Case 21
2.5.1 Đăng nhập vào hệ thống: 21
2.5.2 Đăng ký tài khoản: 22
2.5.3 Đăng xuất tài khoản: 23
2.5.4 Quản lý đơn hàng: 23
2.5.5 Quản lý thông tin cá nhân: 24
2.5.6 Quản lý thực đơn: 25
2.5.7 Quản lý mặt hàng: 25
2.5.8 Quản lý danh mục sản phẩm: 26
2.5.9 Quản lý tài khoản người dùng: 27
2.5.10 Quản lý khuyến mãi: 28
2.5.11 Thống kê đơn đặt hàng: 28
2.5.12 Quản lý trang con: 29
Trang 82.5.13 Quản lý ngôn ngữ website: 30
2.5.14 Tìm kiếm: 30
2.5.15 Đổi mật khẩu: 31
2.5.16 Quản lý giỏ hàng: 32
2.5.17 Xem thức ăn đồ uống: 33
2.6 Biểu đồ lớp 33
2.6.1 Các biểu đồ lớp ràng buộc mối quan hệ: 33
2.7 Biểu đồ tuần tự 38
2.7.2 Biểu đồ tuần tự cho chức năng quản trị hệ thống 39
2.7.3 Biểu đồ tuần tự cho chức năng quản lý danh mục sản phẩm 40
2.7.4 Biểu đồ tuần tự cho chức năng tìm kiếm 41
2.7.5 Biểu đồ tuần tự cho chức năng quản lý đơn hàng 42
2.7.6 Biểu đồ tuần tự cho chức năng quản lý khuyến mãi 43
2.7.7 Biểu đồ tuần tự cho chức năng đổi mật khẩu: 44
2.7.8 Biểu đồ tuần tự cho chức năng chỉnh sửa thông tin cá nhân: 45
2.7.9 Biểu đồ tuần tự cho chức năng đặt món ăn: 46
2.7.10 Biểu đồ tuần tự cho chức năng xem đơn hàng: 47
Chương 3 Triển khai xây dựng website 48
3.1 Cài đặt website trên máy tính 48
3.1.1 Cài đặt phần mềm Xampp 48
3.1.2 Tạo cơ sở dữ liệu MySQL 52
3.2 Thiết kế giao diện website 53
3.2.1 Giao diện người dùng 53
3.2.2 Giao diện quản trị 56
Kết luận và Hướng phát triển 58
3.3 Kết luận 58
3.4 Hướng phát triển 58
3.4.1 Để tài có thể được mở rộng và phát triển theo các hướng sau: 58
3.4.2 Liên kết với các hệ thống ngân hàng: 58
3.4.3 Liên kết với các đối tác là nhà cung cấp dịch vụ để thực hiện quá trình đăng ký và thanh toán tự động 58
3.4.4 Đưa vào triển khai ứng dụng trên thực tế 59
DANH MỤC TÀI LIỆU THAM KHẢO 58
Trang 9DANH MỤC CÁC BẢNG
Trang
Bảng 2.1 - Danh sách các tác nhân của hệ thống 13
Bảng 2.2 - Đăng nhập 18
Bảng 2.3 - Đăng ký 20
Bảng 2.4 - Đăng xuất 21
Bảng 2.5 - Quản lý đơn hàng 21
Bảng 2.6 - Quản lý thông tin cá nhân 22
Bảng 2.7 - Quản lý thực đơn 23
Bảng 2.8 - Quản lý mặt hàng 23
Bảng 2.9 - Quản lý danh mục sản phẩm 24
Bảng 2.10 - Quản lý tài khoản người dùng 25
Bảng 2.11 - Quản lý khuyến mãi 26
Bảng 2.12 - Thống kê đơn đặt hàng 26
Bảng 2.13 - Quản lý trang con 27
Bảng 2.14 - Quản lý ngôn ngữ website 28
Bảng 2.15 - Tìm kiếm 28
Bảng 2.16 - Đổi mật khẩu 29
Bảng 2.17 - Quản lý giỏ hàng 30
Bảng 2.18 - Xem thức ăn đồ uống 31
Trang 10DANH MỤC HÌNH
Trang
Hình 2.1 - Biểu đồ Use Case của người dùng 15
Hình 2.2 - Biểu đồ Use Case của người quản trị 16
Hình 2.3 - Biểu đồ ràng buộc của lớp orders 17
Hình 3.2 - Giao diện thiết lập cấu hình của XAMPP 27
Hình 3.3 - Thiết lập thư mục Webserver XAMPP 27
Hình 3.4 - Tiến trình cài đặt của Xampp 28
Hình 3.5 - Giao diện chọn ngôn ngữ mặc định của Xampp 28
Hình 3.6 - Giao diện chương trình Xampp 29
Hình 3.7 - Hướng dẫn truy cập file php.ini 29
Hình 3.8 - Code của file php.ini 30
Hình 3.9 - Giao diện trang phpMyAdmin 30
Hình 3.10 - Tạo cơ sở dữu liệu 30
Trang 12Chương 1 Giới thiệu
1.1 Tổng quan
Với sự phát triển của thương mại điện tử, mô hình thương mại điện tử O2Odần ra đời Hệ thống đặt hàng trực tuyến là một biểu hiện của mô hình kinh doanhnày Bây giờ có nhiều điều cần biết xung quanh khuôn viên trường chúng tôi,nhưng hầu hết chúng vẫn sử dụng cách đặt hàng qua điện thoại và ghi chép bằngtay Phương thức này không chỉ rườm rà, mất thời gian mà còn do việc mua mang
về thường tập trung nên nhiều người sẽ gọi cùng lúc trong bữa trưa và bữa tối.Đối mặt với tình huống này, nhà hàng hoặc sẽ tăng số lượng kết nối đồng thờinhưng điều này sẽ làm tăng chi phí hoặc không làm gì sẽ mất đi lợi nhuận màđáng lẽ có được
Hệ thống đặt hàng trực tuyến có thể giải quyết tốt vấn đề này, mạng có thể
xử lý đồng thời các công việc kinh doanh cùng lúc, từ đó tránh được tình trạngmất khách do nhiều người gọi đến cùng lúc và không kết nối được Đồng thờicách thức đặt suất ăn điện tử cũng tạo điều kiện thuận lợi cho việc thu thập vàphân tích dữ liệu Do đó, đồ án này có thể hiện thực hóa việc đặt hàng trực tuyếnđồng bộ, chỉ cần người dùng đặt hàng trực tuyến là có thể nhận được dịch vụ giao
đồ ăn giống như đặt hàng qua điện thoại, tiện lợi và nhanh chóng hơn
1.2 Phương pháp, kết quả
1.2.1 Nhiệm vụ thiết kế
Giao diện người dùng của một trang web rất quan trọng, nó trực tiếp đốimặt với người dùng Tuy nhiên để nâng cao trải nghiệm của nhiều người dùngcần phải có nhiều chức năng tương tác giữa người dùng và quản trị viên Vì vậy,trong đồ án này, thiết kế back-end chiếm một phần lớn và liên quan đến nhiềukhía cạnh của công nghệ
Giao diện người dùng của trang sử dụng công nghệ HTML và JavaScript
để hỗ trợ hoạt động của giao diện người dùng và sử dụng công nghệ Ajax để đăng
dữ liệu lên máy chủ, nhờ đó trang có thể tương tác với máy chủ mà không cầnlàm mới
Cấu trúc website được thiết kế để khách hàng có thể đặt thức ăn trực tiếptrên website sau khi đăng ký trên website Còn quản trị sau khi đăng nhập trêntrang web có thể quản lý các cài đặt khác nhau của nhà hàng trong nền, bao gồmtên nhà hàng, giờ làm việc, giới thiệu nhà hàng, số điện thoại nhà hàng (số điệnthoại di động, điện thoại cố định) và các thông tin khác, và bạn cũng có thể tùychỉnh các yêu cầu giao hàng của riêng mình Chờ đợi Sau khi tùy chỉnh thông tin,người dùng nhà hàng có thể tải lên thông tin món ăn của riêng họ Sau khi tảithông tin món ăn lên, hãy tải hình ảnh món ăn lên và cuối cùng, nhấp vào nút trựctuyến nhà hàng trong nền để món ăn trong nhà hàng có thể được xuất bản bìnhthường Với sự kiểm soát của quản trị viên để tất cả thông tin sản phẩm có thểđược cập nhật kịp thời và tất cả các đơn đặt hàng có thể được xử lý kịp thời điềunày thực sự hiện thực hóa văn phòng trực tuyến, giảm chi phí làm việc và nângcao hiệu quả công việc
1.3 Giới thiệu về kiến trúc và công nghệ chính được sử dụng
Môi trường phát triển đồ án này là Window 10, ngôn ngữ phát triển là PHP,
cơ sở dữ liệu sử dụng mã nguồn mở MySql, máy chủ sử dụng máy chủ mã nguồn
mở nổi tiếng Xampp Nó được cài đặt bằng gói môi trường phát triển Xampp, do
Trang 13đó không cần phải cấu hình các biến môi trường của PHP, Apache và MySqlriêng sau khi cài đặt Xampp tích hợp PHP, Apache, MySql để cấu hình cùngnhau, trong quá trình phát triển bạn có thể dễ dàng sửa đổi các thông tin cấu hìnhkhác nhau, ngoài ra Xampp còn đi kèm với công cụ phpMyAdmin cho phép bạn
dễ dàng thực hiện các thao tác khác nhau trên cơ sở dữ liệu thông qua trang web
Đồ án này sử dụng một framework PHP có tên là CodeIgniter, được pháthành sau phiên bản PHP 5.3, điều này cho thấy nó có nhiều ưu điểm hơn so vớicác framework PHP khác
Lý do tại sao ngôn ngữ PHP được sử dụng để phát triển là vì theo thống kêcủa Alexa, vào năm 2013, khoảng 40% trang web được phát triển với cơ sở dữliệu PHP và MySql Là một sinh viên năm hai, tôi rất tò mò về việc sử dụngnhiều loại công nghệ như vậy Có vẻ như, em hy vọng sẽ học hỏi được nhiều điều
từ quá trình phát triển đồ án này
1.3.1 PHP
PHP (tên đầy đủ là Hypertext Preprocessor) là một ngôn ngữ lập trình máytính đa năng mã nguồn mở, đặc biệt thích hợp để phát triển web và được nhúngtrong HTML Ngữ pháp của PHP hấp thụ các đặc điểm của các ngôn ngữ máytính phổ biến như ngôn ngữ C, Java và Perl, và rất dễ học cho các lập trình viênnói chung Mục tiêu chính của PHP là cho phép các nhà phát triển web nhanhchóng viết các trang động, nhưng PHP cũng được sử dụng trong nhiều lĩnh vựckhác PHP ban đầu được phát triển bởi Ledorf vào năm 1995 Và bây giờ các tiêuchuẩn PHP được duy trì bởi Nhóm PHP và cộng đồng nguồn mở PHP sử dụngGiấy phép PHP làm thỏa thuận cấp phép, nhưng vì thỏa thuận này hạn chế việc
sử dụng tên PHP, nên nó không tương thích với thỏa thuận cấp phép nguồn mởGPL PHP có một loạt các ứng dụng, đặc biệt là trong việc phát triển các chươngtrình web Nói chung, PHP chủ yếu chạy trên các máy chủ web và tạo ra cáctrang web được người dùng duyệt bằng cách chạy mã PHP PHP có thể chạy trênhầu hết các máy chủ và hệ điều hành, và hoàn toàn miễn phí khi sử dụng PHP
1.3.2 Bootstrap
Trang sử dụng phiên bản Bootstrap V3 nhiều nhất, đây là bộ công cụ mãnguồn mở để phát triển front-end do Twitter đưa ra Nó là một khuôn khổCSS/HTML được phát triển bởi nhà thiết kế Twitter Mark Otto và JacobThornton Bootstrap cung cấp các thông số kỹ thuật HTML và CSS thanh lịch,được viết bằng ngôn ngữ CSS động Less Bootstrap đã trở nên phổ biến kể từ khi
nó được đưa ra và là một dự án nguồn mở phổ biến trên GitHub, bao gồm cả Tintức mới về MSNBC (Microsoft National Broadcasting Corporation) của NASA
Nhiều công ty xuất sắc trong và ngoài nước sử dụng Bootstrap làm khungphát triển front-end cho các trang web của họ Các trang riêng của Twitter đượcphát triển bằng Bootstrap và phần phụ trợ của các nhà phát triển Douban trongnước cũng được viết bằng Bootstrap Ưu điểm của việc sử dụng ngôn ngữ CSSđộng Less for development là bạn có thể viết mã CSS như lập trình, điều này giúpcải thiện đáng kể hiệu quả phát triển
1.3.3 JavaScript
JavaScript, một ngôn ngữ kịch bản theo nghĩa đen, là một ngôn ngữ dựatrên nguyên mẫu được gõ động, được gõ yếu, có hỗ trợ kiểu cài sẵn Trình thôngdịch của nó được gọi là công cụ JavaScript, là một phần của trình duyệt và được
sử dụng rộng rãi trong các ngôn ngữ kịch bản phía máy khách Nó được sử dụnglần đầu tiên trên các trang web HTML để thêm các chức năng động vào các trang
Trang 14web HTML Tuy nhiên, giờ đây JavaScript cũng có thể được sử dụng trên cácmáy chủ web như Node.js.
Trong đồ án này, thư viện jQuery rất thông dụng đã được sử dụng jQuery
là một thư viện JavaScript trên nhiều trình duyệt giúp đơn giản hóa hoạt độnggiữa HTML và JavaScript Phiên bản đầu tiên được phát hành bởi John Resig tạiBarCamp NYC vào tháng 1 năm 2006 Nó hiện đang được phát triển bởi mộtnhóm phát triển do Dave Methvin dẫn đầu Trong số 10.000 trang web được truycập nhiều nhất trên thế giới, 65% sử dụng jQuery, đây là thư viện JavaScript phổbiến nhất hiện nay
jQuery là phần mềm mã nguồn mở, được cấp phép theo giấy phép MIT.Thiết kế cú pháp của jQuery giúp thực hiện nhiều thao tác dễ dàng, chẳng hạnnhư thao tác với các đối tượng tài liệu (document), chọn phần tử DOM, tạo hiệuứng hoạt hình, xử lý sự kiện và phát triển chương trình Ajax jQuery cũng cungcấp cho các nhà phát triển khả năng tạo các plug-in trên đó Điều này cho phépcác nhà phát triển tóm tắt các tương tác và hoạt ảnh cấp thấp, các hiệu ứng nângcao và các thành phần chủ đề nâng cao Phương pháp mô-đun cho phép thư việnjQuery tạo các trang web động và ứng dụng web mạnh mẽ
Hệ thống này sử dụng hai phiên bản jQuery, phiên bản 2.1.0 mới nhấtđược sử dụng ở chế độ nền và phiên bản 2.0.3 được sử dụng ở chế độ nền Ưuđiểm lớn nhất của việc sử dụng jQuery là tính đến khả năng tương thích của trìnhduyệt, vì vậy bạn không cần phải Gỡ lỗi trong các trình duyệt khác nhau
1.3.4 Giới thiệu về Ajax
AJAX là viết tắt của "Asynchronous JavaScript and XML" (công nghệJavaScript và XML không đồng bộ), dùng để chỉ một tập hợp các công nghệ pháttriển trang web phía trình duyệt tích hợp nhiều công nghệ Khái niệm về Ajaxđược đưa ra bởi Jesse James Garrett
Các ứng dụng web truyền thống cho phép người dùng điền vào biểu mẫu
và gửi yêu cầu đến máy chủ web khi biểu mẫu được gửi Máy chủ nhận và xử lýbiểu mẫu đến, sau đó gửi nó trở lại một trang web mới, nhưng cách tiếp cận nàylãng phí rất nhiều băng thông, vì hầu hết các mã HTML trong hai trang thườnggiống nhau Vì mỗi giao tiếp ứng dụng cần gửi một yêu cầu đến máy chủ, thờigian phản hồi của ứng dụng phụ thuộc vào thời gian phản hồi của máy chủ Điềunày khiến giao diện người dùng phản hồi chậm hơn nhiều so với các ứng dụnggốc
Không giống như điều này, các ứng dụng AJAX chỉ có thể gửi và truyxuất dữ liệu cần thiết đến máy chủ và sử dụng JavaScript trên máy khách để xử lýphản hồi từ máy chủ Do dữ liệu trao đổi giữa máy chủ và trình duyệt giảm đi rấtnhiều (chỉ còn khoảng 5% so với ban đầu) nên máy chủ phản hồi nhanh hơn.Đồng thời, rất nhiều công việc xử lý có thể được thực hiện trên máy khách thựchiện yêu cầu, do đó, tải trên máy chủ Web cũng được giảm bớt
Trong đồ án này, thư viện Ajax sử dụng thư viện trong jQuery, và tất cả dữliệu tương tác với máy chủ đều ở định dạng json để tránh các định dạng khôngnhất quán
1.3.5 CodeIgniter
CodeIgniter là một nền tảng ứng dụng web nguồn mở được viết bằng ngônngữ PHP bởi Rick Ellis (CEO của EllisLab, Inc) Phiên bản đầu tiên được pháthành ngày 28.02.2006, phiên bản hiện tại: 1.7.2 (phát hành ngày 11.09.2009) Ýtưởng xây dựng CodeIgniter được dựa trên Ruby on Rails, một nền tảng ứng
Trang 15dụng web được viết bằng ngôn ngữ Ruby Hiện tại, CodeIgniter đang được pháttriển bởi ExpressionEngine Development Team thuộc EllisLab, Inc
CI Framework hoạt động theo cơ chế lưu các nội dung vào cache (bộ nhớđệm) và check bộ đệm trước khi tiến hành thực hiện yêu cầu Từ đó giúp trangwebsite bạn xây dựng giảm số lần truy cập và xử lý các dữ liệu Qua đó giúp tối
ưu hóa tốc độ tải website Một số tính năng cơ bản của Codeigniter Frameworkbao gồm:
Thông qua active records hỗ trợ kết nối và tương tác đa nền tảngdatabase
Hỗ trợ quản lý Session
Định dạng và chuẩn hóa dữ liệu đầu vào
Tăng độ truy xuất dữ liệu và giảm tải cho toàn trang để tăng tốc độthực thi (Caching)
Hỗ trợ giao diện web Template Engine hoặc sử dụng chính PHP tagshoặc để điều hướng trong Views
Hỗ trợ Hooks, Class Extensions (các lớp ngòai) và Plugins
Framework này giúp bạn có khung sườn xử lý cả 2 vấn đề là bảo mật PHP
và PHP nâng cao để tạo ra những dự án khác nhau Với người mới tìm hiểu vềMVC thì Codeigniter Framework rất phù hợp bởi tính năng dễ học, tốc độ chạynhanh chóng, nhà phát triển web không cần phải viết những đoạn code hỗn tạp,khó khăn Ngoài ra, bạn còn có thể upload file, xử lý hình ảnh, tạo session vàcookies đơn giản
Ưu điểm:
- Được thiết kế theo mô hình Model-View-Controller: Mô hình MVC giúptách thành phần hiển thị giao diện (presentation) và xử lý (business logic)của một phần mềm thành những thành phần độc lập, từ đó giúp cho việcthiết kế, xử lý và bảo trì mã nguồn dễ dàng, đồng thời tăng khả năng mởrộng của phần mềm CodeIgniter vận dụng mô hình này trong thiết kế,giúp tách biệt các tập tin giao diện với các tập tin xử lý dữ liệu, nâng caokhả năng quản lý và dễ bảo trì
- Nhỏ gọn: Gói cài đặt chỉ 404KB (không bao gồm phần User Guide) Sovới các PHP framework khác như CakePHP (1.3MB), Symfony (5.08MB)hay Zend Framework (5.66MB)…kích thước của CodeIgniter giúp giảmthiểu đáng kể không gian lưu trữ
- Tốc độ nhanh: CodeIgniter được được đánh giá là PHP framework có tốc
độ nhanh chỉ sau framework Laravel Bằng cơ chế lưu nội dung vào bộđệm (cache), kiểm tra bộ đệm trước khi tiến hành thực hiện yêu cầu,CodeIgniter giảm số lần truy cập và xử lý dữ liệu, từ đó tối ưu hóa tốc độtải trang
- Miễn phí: CodeIgniter được phát hành dưới giấy phép Apache/BSD mởrộng, cho phép người dùng tự do thay đổi, phát triển và phân phối mãnguồn
- Hỗ trợ Search Engine Optimization: Cấu trúc URL của CodeIgniter rấtthân thiện với các robot tìm kiếm
- Hệ thống thư viện phong phú: CodeIgniter cung cấp các thư viện phục vụcho những tác vụ thường gặp nhất trong lập trình web, chẳng hạn như truycập cơ sở dữ liệu, gửi email, kiểm tra dữ liệu, quản lý session, xử lýảnh…đến những chức năng nâng cao như XML-RPC, mã hóa, bảo mật…
- Bảo mật hệ thống: Cơ chế kiểm tra dữ liệu chặt chẽ, ngăn ngừa XSS vàSQL Injection của CodeIgniter giúp giảm thiểu các nguy cơ bảo mật cho
hệ thống
Trang 16Nhược điểm:
- Chưa hỗ trợ kỹ thuật lập trình ORM (Object – Relational Mapping): Kỹthuật lập trình này giúp các bảng của cơ sở dữ liệu được ánh xạ thành cácđối tượng trong lập trình, giúp việc thực hiện các thao tác trong cơ sở dữliệu thuận tiện và đơn giản hơn
- Chưa hỗ trợ công nghệ AJAX tạo ứng dụng cho website (AsynchronousJavascript and XML): Để thiết kế các website 2.0 dường như không thểthiếu AJAX nhằm tăng cường tương tác giữa hệ thống và người dùng Đây
là điểm yếu của Codeigniter khiến các lập trình viên/nhà phát triển webphải sử dụng thêm thư viện bên ngoài như Mootools, JQuery, Prototype,Script.aculo.us,…
- Chưa hỗ trợ một vài loại module thông dụng như với một số loạiframework mã nguồn mở khác: Codeigniter chưa sở hữu các module hỗtrợ một số tác vụ cơ bản trong quá trình thiết lập và phát triển ứng dụngweb như trình xử lý PDF, Chứng thực người dùng (User Authorization),trình phân tích RSS (RSS Parser,…
- Chưa hỗ trợ nguyên lý lập trình EDP (Event Driven Programming): Cácluồng xử lý của hệ thống của EDP sẽ dựa vào các sự kiện, ví dụ như một
cú click chuột, gõ bàn phím,… Dù vậy thì khuyết điểm này không phải làvấn đề lớn của Framework Codeigniter
1.4 Cấu trúc đồ án
Phần này trình bày cấu trúc của đồ án:
Chương 2: Phân tích thiết kế hệ thống Bao gồm các tài liệu liên quan
đến quá trình phân tích hệ thống như: phân tích các yêu cầu chức năng và phi chức năng, các mô hình use case và đặt tả use case, các mô hình lớp và lưu đồ hoạt động
Chương 3: Triển khai xây dựng website Bao gồm các tài liệu liên quan
đến quá trình thiết kế hệ thống như: cài đặt môi trường máy chủ và cơ sở dữ liệu, thiết kế giao diện
Chương 4: Kết luận và hướng phát triển Trình bày tóm tắt các kết quả
đạt được và đề xuất các hướng mở rộng, phát triển trong tương lai
Trang 17Chương 2 Phân tích thiết kế hệ thống
2.1 Phân tích yêu cầu hệ thống
2.1.1 Các yêu cầu chức năng
Yêu cầu chức năng nghiệp vụ:
Cho phép người dùng đăng ký với hệ thống với vai trò khách hàng.
Lưu trữ thông tin của khách hàng.
Cho phép khách hàng đặt món ăn qua web.
Cho phép khách hàng tìm kiếm thông tin món ăn.
Yêu cầu chức năng hệ thống:
Cho phép người dùng đăng nhập vào hệ thống với các vai trò người dùng và quản trị viên.
Đảm bảo tính bảo mật của các thông tin đăng nhập của người dùng.
Phân cấp quyền hạn của khách hàng và quản trị viên trong việc truy cập vào các tài nguyên của hệ thống.
2.1.2 Các yêu cầu phi chức năng
Nhằm lợi ích của các đối tượng người dùng:
Tính tiện dụng: Giao diện thân thiện, dễ sử dụng đối với nhữngngười dùng Windows
Tính hiệu quả: Đảm bảo việc truy xuất nhanh đến các trang và khảnăng kiểm soát lỗi tốt
Tính tương thích: Hỗ trợ tốt trên các trình duyệt từ IE5.1 trở lên vàcác trình duyệt tương thích khác như Netscape, Opera, Mozilla…Tính tiến hóa
Nhằm lợi ích của việc phát triển đồ án:
Thiết kế theo mô hình MVC
Tính module hóa
Các tham số của hệ thống được thiết kế động, dễ điều chỉnh
Tính dùng lại của code
2.2 Bảng chú giải
2.2.1 Giới thiệu
Bảng chú giải này được dùng để định nghĩa các thuật ngữ đặc thù tronglĩnh vực của bài toán, giải thích các từ ngữ có thể không quen thuộc đối v ớingười đọc trong các mô tả use case hoặc các tài liệu khác của đề tài Thường thìtài liệu này có thể được dùng như một từ điển dữ liệu không chính thức, ghi lại
Trang 18các định nghĩa dữ liệu để các mô tả use case và các tài liệu khác có thể tập trungvào những gì hệ thống phải thực hiện.
2.2.2 Các định nghĩa
Bảng chú giải này bao gồm các định nghĩa cho các thuật ngữ được sử dụngtrong mô hình use case và trong các tài liệu khác của hệ thống website đặt món ănsau:
Admin (Quản trị viên): Admin là người quản trị hệ thống website, chịutrách nhiệm quản lý tất cả các thông tin người dùng thuộc các đốitượng khác nhau Ngoài ra, nhiệm vụ quan trọng của phía quản trịtrang web là làm cầu nối liên hệ giữa bên cung cấp dịch vụ (thanh toán
ví điện tử, thẻ ngân hàng)
Users (Người dùng): Người dùng là đối tượng phục vụ chủ yếu của hệthống Người dùng có nhu cầu sử dụng các dịch vụ như đăng ký tàikhoản, tìm kiếm sản phẩm, thêm sản phẩm vào giỏ hàng Sau khi đăng
ký tài khoản thì người dùng có thể thanh toán giỏ hàng, chỉnh sửa trangcác nhân, đổi mật khẩu, xem trạng thái đơn hàng, điểm khuyến mãi
2.3 Đặc tả bổ sung
2.3.1 Mục tiêu
Mục tiêu của tài liệu này là để định nghĩa các yêu cầu của Hệ thốngwebsite đặt món ăn qua mạng Đặc tả bổ sung này liệt kê các yêu cầu chưa đượcthể hiện trong các use case Đặc tả bổ sung cùng với các use case trong mô hìnhuse case thể hiện đầy đủ các yêu cầu trong hệ thống
2.3.3 Tài liệu tham khảo
Không có
2.3.4 Chức năng
Hỗ trợ nhiều người dùng làm việc đồng thời
Thông báo kết quả đăng ký cho người dùng trong thời gian nhanh nhấtTìm kiểm sản phẩm phù hợp nhất cho người dùng
Trang 192.3.8 Sự hỗ trợ
Không có
2.3.9 Tính bảo mật
Vai trò của từng đối tượng phải được thể hiện rõ ràng
Chỉ có người quản trị mới có quyền quyết định thêm, xóa hay kích hoạt,hủy kích hoạt các đối tượng và nội dung trong website
Các thông tin chung của mỗi đối tượng do đối tượng đó quản lý
Bảng 2.1 - Danh sách các tác nhân của hệ thống
STT Tên Actor Giải thích
1 Người dùng (User) - Đăng nhập hệ thống: Mỗi một khách hàng
đã đăng ký tài khoản đều có quyền đăngnhập vào tài khoản của mình và tài khoản
sẽ được quản lý bởi Adminstrator
- Đăng ký tài khoản thành viên khi kháchhàng muốn tham gia website
- Sửa thông tin tài khoản: khi cần cập nhật,sửa thông tin (họ và tên, địa chỉ email, sốđiện thoại)
- Đặt đơn hàng: Khi người dùng đã chọn cácsản phẩm cần mua vào giỏ hàng thì sẽ đượcchuyển đến trang thanh toán để điền cácthông tin cần thiết (chọn địa chỉ, phươngthức thanh toán) và sau đó xác nhận đơnhàng
- Xem đơn hàng: Khi đơn hàng đã được đặtthành công thì người dùng có thể xem trạngthái đơn hàng và hủy đơn hàng
- Sửa địa chỉ giao hàng: người dùng có thểtùy chỉnh địa chỉ (thêm, sửa, xóa) và đặt địachỉ mặc định khi đặt hàng
- Thay đổi mật khẩu: khi muốn thay đổi mậtkhẩu người dùng chỉ cần nhập đúng mậtkhẩu cũ và mật khẩu mới 2 lần
Trang 202 Quản trị viên (Admin) - Admin là tác nhân giữ vai trò chính của
website: Quyền quản lý là quyền cao nhấtcủa hệ thống Những người giữ vai trò quản
lý chính có thể phân quyền cho các thànhviên trong website
- Tác nhân Admin có thể thực hiện được tất
cả các chức năng của website như: Tạo,quản lý tài khoản thành viên tức là Admin
có quyền sửa hay xóa tài khoản của cácthành viên trong ban quản trị các chuyênmục tin Ngoài ra Admin còn quản lý vàphân quyền cho các chuyên mục, tùy chỉnhmón ăn (thêm, sửa, xóa)
2.4.2 Mô hình các trường hợp sử dụng của Người dùng
2.4.3 Mô hình các trường hợp sử dụng của Quản trị viên
2.4.4 Biểu đồ use case mức tổng quát của hệ thống
Hình 2.1 - Biểu đồ Use Case của người dùng
Trang 21
Hình 2.2 - Biểu đồ Use Case của người quản trị
Trang 22Tên Use case Đăng nhập
Mô tả Use case cho phép người dùng đăng nhập vào website
để thực hiện những chức năng của mìnhActor Khách hàng,Admin
Điều kiện kích hoạt Khi người dùng chọn chức năng đăng nhập từ trang chủ
của websiteTiền điều kiện Người dùng phải có tài khoản trên website
Hậu điều kiện Người dùng đăng nhập thành công
Luồng sự kiện chính 1 Hệ thống hiển thị màn hình đăng nhập
2 Người dùng nhập tên đăng nhập và mật khẩu
3 Hệ thống hiển thị kiểm tra thông tin đăng nhập
4 Nếu thành công hệ thống hiển thị ra giao diện củangười dùng
5 Kết thúc Use case
Luồng sự kiện phụ TH1 – Mật khẩu không hợp lệ: Khi người dùng nhập sai
tên đăng nhập và mật khẩu
1 Hệ thống hiển thị lại màn hình đăng nhập để người dùng đăng nhập lại thông tin kèm theo thông báo tên đăng nhập và mật khẩu bị sai
2 Quay lại bước 2 trong luồng sự kiện chính
TH2 – Quên mật khẩu: Khi người dùng chọn chức năng quên mật khẩu trên màn hình đăng nhập
1 Hệ thống hiển thị màn hình để người dùng nhập email
2 Người dùng nhập email và chọn nút chức năng Lấy lại mật khẩu
3 Hệ thống kiểm tra email hợp lệ và gửi liên kết để reset mật khẩu cho người dùng email
4 Hệ thống hiển thị màn hình thông báo thành công
5 Use case kết thúc
2.5.2 Đăng ký tài khoản:
Bảng 2.3 - Đăng ký
Use case Nội dung
Tên Use case Đăng ký
Trang 23Mô tả Use case cho phép người dùng đăng ký tài khoản để
thực hiện những chức năng của mìnhActor Khách hàng
Điều kiện kích hoạt Khi người dùng chọn chức năng đăng ký từ trang chủ
của websiteTiền điều kiện Người dùng phải có tài khoản email
Hậu điều kiện Người dùng đăng ký thành công
Luồng sự kiện chính Use case này bắt đầu khi một khách viếng có nhu cầu
đăng ký làm thành viên của hệ thống hoặc khi người dùng chọn đăng ký sử dụng dịch vụ mà chưa có account đăng ký
1 Hệ thống hiển thị màn hình đăng ký
2 Người dùng nhập tên, email, số điện thoại và mậtkhẩu
3 Hệ thống hiển thị kiểm tra thông tin đăng ký
4 Nếu thành công hệ thống hiển thị thông báo thành công trên màn hình
5 Kết thúc Use case
Luồng sự kiện phụ TH1 - Nếu trong quá trình đăng ký người dùng quyết
định hủy bỏ các thông tin đăng ký thì use case sẽ kết thúc và trạng thái của hệ thống không thay đổi
TH2 - Nếu quá trình kiểm tra thông tin nhập phát hiện không hợp lệ thì hệ thống sẽ trở về trạng thái trước đó (mở trang nhập liệu với các thông tin nhập trước đó vẫn còn để người dùng có thể chỉnh sửa)
2.5.3 Đăng xuất tài khoản:
Bảng 2.4 - Đăng xuất
Use case Nội dung
Tên Use case Đăng xuất
Mô tả Use case cho phép người dùng đăng xuất khỏi website
Trang 24Actor Khách hàng, Admin
Điều kiện kích hoạt Khi người dùng chọn chức năng đăng xuất từ trang chủ
của websiteTiền điều kiện Người dùng phải phải đăng hhập vào hệ thống
Hậu điều kiện Người dùng đăng xuất thành công
Luồng sự kiện chính 1 Hệ thống hiển thị màn hình đăng xuất
2 Người dùng nhấn vào mục Logout xuất hiện trên thanh menu “My Account”
3 Hệ thống sẽ kiểm tra tài khoản
4 Nếu thành công hệ thống hiển thị thông báo thành công trên màn hình
5 Kết thúc Use case
Luồng sự kiện phụ TH - Nếu trong quá trình đăng ký người dùng quyết
định hủy bỏ các thông tin đăng ký thì use case sẽ kết thúc và trạng thái của hệ thống không thay đổi
2.5.4 Quản lý đơn hàng:
Bảng 2.5 – Quản lý đơn hàng
Use case Nội dung
Tên Use case Quản lý đơn hàng
Mô tả Use case cho phép người dùng quản lý đơn hàng của
khách hàngActor Admin
Điều kiện kích hoạt Khi người dùng chọn chức năng Orders trên thanh menu
của websiteTiền điều kiện Người dùng phải đăng nhập vào hệ thống
Hậu điều kiện Người dùng xem thông tin đơn hàng thành công
Luồng sự kiện chính 1 Hệ thống hiển thị thông tin đơn hàng trên màn
hình
2 Người dùng có thể xem các đơn hàng mới, đơn hàng đã giao hay đơn hàng đã hủy, có thể tìm kiếm thông tin đơn hàng
3 Hệ thống hiển thị thông tin cụ thể về đơn hàng như : ngày đặt hàng, tên khách hàng, số điện thoại khách hàng
4 Kết thúc Use case
Trang 252.5.5 Quản lý thông tin cá nhân:
Bảng 2.6 - Quản lý thông tin cá nhân
Use case Nội dung
Tên Use case Quản lý thông tin cá nhân
Mô tả Use case cho phép người dùng chỉnh sửa hồ sơ của mìnhActor Khách hàng, Admin
Điều kiện kích hoạt Khi người dùng chọn chức năng profile trên thanh menu
của websiteTiền điều kiện Người dùng phải đăng nhập vào hệ thống
Hậu điều kiện Người dùng có thể chỉnh sửa và cập nhật hồ sơ
Luồng sự kiện chính 1 Hệ thống hiển thị trang profile
2 Người dùng nhập tên, họ, email, số điện thoại và ảnh đại diện Sau đó nhấn nút cập nhật hoặc hủy bỏ
3 Hệ thống hiển thị kiểm tra thông tin cập nhật
4 Nếu thành công hệ thống hiển thị thông báo thành công trên màn hình
5 Kết thúc Use case
Luồng sự kiện phụ TH2 – Nhập không đúng thông tin yêu cầu: Khi người
dùng nhập sai định dạng tên, email hoặc số điện thoại
1 Hệ thống hiển thị lại màn hình cập nhật hồ sơ để người dùng điền lại thông tin kèm theo thông báođịnh dạng tên, email, số điện thoại hoặc số điện thoại bị sai
2 Quay lại bước 2 trong luồng sự kiện chính
2.5.6 Quản lý thực đơn:
Bảng 2.7 - Quản lý thực đơn
Use case Nội dung
Tên Use case Quản lý thực đơn
Mô tả Use case cho phép người dùng chỉnh sửa thông tin của
thực đơnActor Admin
Trang 26Điều kiện kích hoạt Khi người dùng chọn chức năng menu trên thanh menu
của websiteTiền điều kiện Người dùng phải đăng nhập vào hệ thống
Hậu điều kiện Người dùng có thể chỉnh sửa và cập nhật thực đơnLuồng sự kiện chính 1 Hệ thống hiển thị trang menu
2 Người dùng có thể thêm, sửa, xóa thông tin thực đơn, kích hoạt và hủy kích hoạt
3 Hệ thống hiển thị kiểm tra thông tin cập nhật
4 Nếu thành công hệ thống hiển thị thông báo thành công trên màn hình
5 Kết thúc Use case
Luồng sự kiện phụ TH: Nếu trong quá trình thực hiện use case, người quản
trị quyết định hủy bỏ thao tác ‘Hủy bỏ’ hoặc quá trình truy xuất dữ liệu thất bại thì trạng thái của hệ thống không thay đổi
2.5.7 Quản lý mặt hàng:
Bảng 2.8 - Quản lý mặt hàng
Use case Nội dung
Tên Use case Quản lý mặt hàng
Mô tả Use case cho phép người dùng chỉnh sửa thông tin của
mặt hàngActor Admin
Điều kiện kích hoạt Khi người dùng chọn chức năng items trên thanh menu
của websiteTiền điều kiện Người dùng phải đăng nhập vào hệ thống
Hậu điều kiện Người dùng có thể chỉnh sửa và cập nhật mặt hàngLuồng sự kiện chính 1 Hệ thống hiển thị trang items
2 Người dùng có thể thêm, sửa, xóa thông tin mặt hàng, kích hoạt và hủy kích hoạt
3 Hệ thống hiển thị kiểm tra thông tin cập nhật
4 Nếu thành công hệ thống hiển thị thông báo thành công trên màn hình
5 Kết thúc Use case
Trang 27Luồng sự kiện phụ TH: Nếu trong quá trình thực hiện use case, người quản
trị quyết định hủy bỏ thao tác ‘Hủy bỏ’ hoặc quá trình truy xuất dữ liệu thất bại thì trạng thái của hệ thống không thay đổi
2.5.8 Quản lý danh mục sản phẩm:
Bảng 2.9 - Quản lý danh mục sản phẩm
Use case Nội dung
Tên Use case Quản lý danh mục sản phẩm
Mô tả Use case cho phép người dùng chỉnh sửa thông tin của
mặt hàngActor Admin
Điều kiện kích hoạt Khi người dùng chọn chức năng item types trên thanh
menu của websiteTiền điều kiện Người dùng phải đăng nhập vào hệ thống
Hậu điều kiện Người dùng có thể chỉnh sửa và cập nhật mặt hàngLuồng sự kiện chính 1 Hệ thống hiển thị trang item types
2 Người dùng có thể thêm, sửa, xóa thông tin mặt hàng, kích hoạt và hủy kích hoạt
3 Hệ thống hiển thị kiểm tra thông tin cập nhật
4 Nếu thành công hệ thống hiển thị thông báo thành công trên màn hình
5 Kết thúc Use case
Luồng sự kiện phụ TH: Nếu trong quá trình thực hiện use case, người quản
trị quyết định hủy bỏ thao tác ‘Hủy bỏ’ hoặc quá trình truy xuất dữ liệu thất bại thì trạng thái của hệ thống không thay đổi
2.5.9 Quản lý tài khoản người dùng:
Bảng 2.10 - Quản lý tài khoản người dùng
Use case Nội dung
Tên Use case Quản lý tài khoản người dùng
Mô tả Use case cho phép người dùng quản lý thông tin tài
khoản của khách hàng
Trang 28Actor Admin
Điều kiện kích hoạt Khi người dùng chọn chức năng customers trên thanh
menu của websiteTiền điều kiện Người dùng phải đăng nhập vào hệ thống
Hậu điều kiện Người dùng đăng nhập thành công
Luồng sự kiện chính Use case này bắt đầu khi người quản trị có nhu cầu xem
các thông tin của khách hàng và chọn chức năng quản lýngười dùng (Customers) trên menu
1 Người dùng đăng nhập vào hệ thống với vai trò quản trị
2 Nếu đăng nhập thành công hệ thống vào trang Admin
3 Người quản trị chọn chức năng quản lý người dùng
4 Hệ thống truy xuất cơ sở dữ liệu và mở một trangweb để hiển thị danh sách các người dùng
5 Người quản trị chọn một người dùng trong danh sách
6 Người quản trị chọn chức năng thực hiện: hoặc làxem thông tin chi tiết hoặc xóa người dùng
7 Nếu chọn chức năng xem thông tin chi tiết thì hệ thống sẽ truy xuất cơ sở dữ liệu và mở một trang web để hiển thị thông tin của người dùng đó
8 Nếu chọn chức năng ‘Xóa’ thì hệ thống sẽ truy xuất cơ sở dữ liệu và xóa các thông tin liên quan đến người dùng đó, đồng thời cập nhật lại danh sách người dùng đang hiển thị
Luồng sự kiện phụ TH: Nếu trong quá trình thực hiện use case, người quản
trị quyết định hủy bỏ thao tác ‘Hủy bỏ’ hoặc quá trình truy xuất dữ liệu thất bại thì trạng thái của hệ thống không thay đổi
2.5.10 Quản lý khuyến mãi:
Bảng 2.11 - Quản lý khuyến mãi
Use case Nội dung
Tên Use case Quản lý khuyến mãi
Mô tả Use case cho phép người dùng chỉnh sửa thông tin của
khuyến mãi
Trang 29Actor Admin
Điều kiện kích hoạt Khi người dùng chọn chức năng khuyến mãi trên thanh
menu của websiteTiền điều kiện Người dùng phải đăng nhập vào hệ thống
Hậu điều kiện Người dùng có thể vào trang khuyến mãi
Luồng sự kiện chính 1 Hệ thống hiển thị trang khuyến mãi
2 Người dùng có thể thêm, sửa, xóa thông tin khuyến mãi, kích hoạt và hủy kích hoạt
3 Hệ thống hiển thị kiểm tra thông tin cập nhật
4 Nếu thành công hệ thống hiển thị thông báo thành công trên màn hình
5 Kết thúc Use case
Luồng sự kiện phụ TH: Nếu trong quá trình thực hiện use case, người quản
trị quyết định hủy bỏ thao tác ‘Hủy bỏ’ hoặc quá trình truy xuất dữ liệu thất bại thì trạng thái của hệ thống không thay đổi
2.5.11 Thống kê đơn đặt hàng:
Bảng 2.12 - Thống kê đơn đặt hàng
Use case Nội dung
Tên Use case Thống kê đơn đặt hàng
Mô tả Use case cho phép người dùng xem thông tin thống kê
số đơn đặt hàng của khách hàngActor Admin
Điều kiện kích hoạt Khi người dùng chọn chức năng dashboard trên thanh
menu của websiteTiền điều kiện Người dùng phải đăng nhập vào hệ thống
Hậu điều kiện Người dùng có thể xem thông tin thành công
Luồng sự kiện chính 1 Hệ thống hiển thị trang dashboard
2 Người dùng có thể xem thông tin thống kê đơn hàng cụ thể
3 Hệ thống hiển thị kiểm tra thông tin cập nhật
4 Nếu thành công hệ thống hiển thị thông báo thành công trên màn hình
5 Kết thúc Use case
Trang 302.5.12 Quản lý trang con:
Bảng 2.13 - Quản lý trang con
Use case Nội dung
Tên Use case Quản lý trang con
Mô tả Use case cho phép người dùng xem trạng thái hoạt động
của các trang con, kích hoạt và hủy kích hích hoạt.Actor Admin
Điều kiện kích hoạt Khi người dùng chọn chức năng pages trên thanh menu
của websiteTiền điều kiện Người dùng phải đăng nhập vào hệ thống
Hậu điều kiện Người dùng có thể vào trang pages
Luồng sự kiện chính 1 Hệ thống hiển thị các trang con
2 Người dùng có thể kích hoạt và hủy kích hoạt cáctrang con
3 Hệ thống hiển thị kiểm tra thông tin cập nhật
4 Nếu thành công hệ thống hiển thị thông báo thành công trên màn hình
5 Kết thúc Use case
Luồng sự kiện phụ TH: Nếu trong quá trình thực hiện use case, người quản
trị quyết định hủy bỏ thao tác ‘Hủy bỏ’ hoặc quá trình truy xuất dữ liệu thất bại thì trạng thái của hệ thống không thay đổi
2.5.13 Quản lý ngôn ngữ website:
Bảng 2.14 - Quản lý ngôn ngữ website
Use case Nội dung
Tên Use case Quản lý ngôn ngữ website
Mô tả Use case cho phép người dùng thêm, xóa, sửa ngôn ngữ
hoặc cụm từ mà người dùng có ý định cập nhật thông tinActor Admin