Usecase kết thúc Alternative flow các bước phát sinh trong Basic flow Flow 1: Khách vãng lai nhấn chuột vào danh mục sản phẩm thuốc nam được chia theo danh mục dựa trên tác dụng của c
Trang 1TRƯỜNG ĐẠI HỌC SƯ PHẠM KỸ THUẬT
KHOA CÔNG NGHỆ SỐ
ĐỒ ÁN TỐT NGHIỆP
ĐẠI HỌC NGÀNH: CÔNG NGHỆ THÔNG TIN CHUYÊN NGÀNH: CÔNG NGHỆ THÔNG TIN
ĐỀ TÀI: XÂY DỰNG WEBSITE BÁN THUỐC NAM CHO TIỆM THUỐC NAM
LÊ THANH TẠI QUẬN HẢI CHÂU, THÀNH PHỐ ĐÀ NẴNG
Sinh viên thực hiện : Vy Quang Hiệp
Trang 2TRƯỜNG ĐẠI HỌC SƯ PHẠM KỸ THUẬT
KHOA CÔNG NGHỆ SỐ
ĐỒ ÁN TỐT NGHIỆP
ĐẠI HỌC NGÀNH: CÔNG NGHỆ THÔNG TIN CHUYÊN NGÀNH: CÔNG NGHỆ THÔNG TIN
ĐỀ TÀI: XÂY DỰNG WEBSITE BÁN THUỐC NAM CHO TIỆM THUỐC NAM
LÊ THANH TẠI QUẬN HẢI CHÂU, THÀNH PHỐ ĐÀ NẴNG
Giảng viên hướng dẫn
Trang 5Tên đề tài: Xây dựng website bán thuốc nam cho tiệm thuốc nam Lê Thanh tại quận Hải Châu thành phố Đà Nẵng
Sinh viên thực hiện: Vy Quang Hiệp Mã SV: 1911505310119 Lớp: 19T1 Nội dung tóm tắt
• Xây dựng website mua bán thuốc nam này làm cho việc mua bán cây thuốc nam trở nên dễ ràng hơn, cung cấp kiến thức về các loại cây thuốc đến người dùng, giúp người dùng chat trực tiếp cũng như sự tư vấn của tiệm thuốc Giúp tiệm thuốc quản lý được số lượng sản phẩm, thông tin nhà cung cấp, xác nhận đơn hàng, thống kê doanh thu, … dễ dàng hơn
• Website gồm có các chức năng chính:
o Về khách vãng lai: có thể đăng ký tài khoản, xem các bài viết về sức khoẻ, tìm kiếm sản phẩm, xem chi tiết sản phẩm, cập nhật sản phẩm trong giỏ hàng, đăng ký làm nhà cung cấp, chat với tiệm thuốc
o Về người dùng hệ thống: kế thừa tất cả chức năng của khách vãng lai, có thể đặt hàng, cập nhật thông tin cá nhân, xem lịch sử mua hàng
o Về nhân viên: có thể cập nhật sản phẩm, cập nhật nhà cung cấp, cập nhật danh mục, cập nhật loại sản phẩm, xác nhận đơn hàng, in đơn hàng, thống kê
o Về quản trị viên: kế thừa tất cả các chức năng của nhân viên, có thể cập nhật tài khoản
Trang 6Giảng viên hướng dẫn: ThS Phạm Thị Trà My Sinh viên thực hiện: Vy Quang Hiệp MSV: 1911505310119
1 Tên đề tài: Xây dượng website bán thuốc nam cho tiệm thuốc nam Lê Thanh tại quận Hải Châu, thành phố Đà Nẵng
2 Các số liệu ban đầu:
Tài liệu về Laravel: https://laravel.com/docs/8.x Tài liệu về MYSQL: https://www.mysql.com/
3 Các số liệu ban đầu:
Quá trình xây dựng website bán thuốc nam cho tiệm thuốc nam Lê Thanh tại quận Hải Châu, thành phố Đà Nẵng:
• Thu thập thông tin tài liệu liên quan đến khảo sát thực tế • Phân tích thiết kế các chức năng của hệ thống
• Phân tích thiết kế cơ sở dữ liệu • Thiết kế giao diện cho các chức năng • Xây dựng hệ thống website
• Hoàn thành báo cáo tổng hợp
4 Các sản phẩm dự kiến:
• Website bán thuốc nam trên phạm vi thành phố Đà Nẵng • File báo cáo hoàn chình
5 Ngày giao đồ án: 06/02/2023
Trang 7Trước hết, em xin bày tỏ tình cảm và lòng biết ơn của em tới cô Phạm Thị Trà My, người đã từng bước hướng dẫn, giúp đỡ em trong quá trình thực hiện đồ án tốt nghiệp của mình
Em xin chân thành cảm ơn các thầy cô giáo khoa công nghệ số của trường Đại học Sư phạm Kỹ thuật đã dìu dắt, dạy dỗ em cả về kiến thức chuyên môn và tinh thần học tập để em có được những kiến thức thực hiện đồ án tốt nghiệp của mình
Em xin chân thành cảm ơn PGS.TS Phan Cao Thọ – Hiệu trưởng Trường Đại
học Sư phạm Kỹ thuật, ban giám hiệu nhà trường, các phòng ban đã giúp đỡ tạo điều kiện tốt nhất cho em trong suốt thời gian học tập tại trường
Ngày nay, công nghệ thông tin đã có những bước phát triển mạnh mẽ theo cả chiều rộng và sâu Máy tính điện tử không còn là một thứ phương tiện quý hiếm mà đang ngày càng trở thành một công cụ làm việc và giải trí thông dụng của con người, không chỉ ở công sở mà còn ngay cả trong gia đình
Hiện nay, vấn đề sức khoẻ luôn được rất nhiều người quan tâm Bên cạnh thuốc tây thì các loại thảo dược cũng như cây thuốc nam cũng rất được ưa chuộng bởi sự gần gũi, mức giá thành rẻ hơn và rất phù hợp với thể chất và có hiệu quả chữa bệnh tốt hơn đối với con người ở nước ta
Vì vậy em tạo ra website này để góp phần làm cho việc mua bán cây thuốc nam trở nên dễ ràng hơn Đồng thời giúp cho cây thuốc nam gần gũi hơn với mọi người, đông thời mang lại nguồn kiến thức phong phú của các loài cây thuốc nam đến với mọi người Với sự hướng dẫn tận tình của cô Phạm Thị Trà My, em đã hoàn thành đồ án tốt nghiệp
này Tuy đã cố gắng hết sức tìm hiểu, phân tích thiết kế, xây dựng hệ thống nhưng sẽ
không tránh khỏi những thiếu sót Em rất mong nhận được sự thông cảm và góp ý của quý thầy cô
Xin chân thành cảm ơn!
Trang 8Em xin cam đoan: 1 Những nội dung trong báo cáo này là do em thực hiện dưới sự hướng dẫn trực tiếp của
cô Phạm Thị Trà My 2 Mọi tham khảo dùng trong báo cáo này đều được trích dẫn rõ ràng tên tác giả, tên công
trình, thời gian và địa điểm công bố 3 Mọi sao chép không hợp lệ, vi phạm quy chế đào tạo, hay gian trá, em xin chịu hoàn
toàn trách nhiệm
Sinh viên thực hiện: Vy Quang Hiệp
Trang 92 Đối tượng nghiên cứu và phạm vi nghiên cứu 1
a Đối tượng nghiên cứu 1
b Phạm vi nghiên cứu 1
3 Phương pháp nghiên cứu 2
4 Giải pháp công nghệ 2
5 Cấu trúc đồ án 2
Chương 1 CƠ SỞ LÝ THUYẾT 3
1.1 Hệ quản trị cơ sở dữ liệu: phpMyAdmin, Mysql 3
Trang 102.1.3.1 Kịch bản cho khách vãng lai 11
2.1.3.2 Kịch bản cho người dùng hệ thống 16
2.1.3.3 Kịch bản cho nhân viên 21
2.1.3.4 Kịch bản cho quản trị viên 34
2.1.4 Sơ đồ hoạt động 38
2.1.4.1 Sơ đồ hoạt động cho khách vãng lai 38
2.1.4.2 Sơ đồ hoạt động cho người dùng hệ thống 40
2.1.4.3 Sơ đồ hoạt động cho nhân viên 43
2.1.4.4 Sơ đồ hoạt động cho quản trị viên 45
2.1.5 Sơ đồ tuần tự 47
2.1.5.1 Sơ đồ tuần tự khách vãng lai 47
2.1.5.2 Sơ đồ tuần tự người dùng hệ thống 48
2.1.5.3 Sơ đồ tuần tự nhân viên 50
2.1.5.4 Sơ đồ tuần tự quản trị viên 54
Trang 113.1.6 Giao diện chi tiết sản phẩm 65
3.1.7 Giao diện giỏ hàng 66
3.1.8 Giao diện mua hàng 67
3.1.9 Giao diện cập nhật thông tin cá nhân 68
3.1.10 Giao diện đổi mật khẩu 68
3.1.11 Giao diện lịch sử mua hàng 69
3.1.12 Giao diện trang quản trị - tổng quan 70
3.1.13 Giao diện quản trị - cập nhật thông tin cá nhân 70
3.1.14 Giao diện quản lý danh mục 71
3.1.15 Giao diện quản lý nhà cung cấp 72
3.1.16 Giao diện quản lý sản phẩm 74
3.1.17 Giao diện quản lý đơn hàng 76
3.1.18 Giao diện quản lý tài khoản 78
KẾT LUẬN VÀ HƯỚNG PHÁT TRIỂN 80
3.2 Kết luận 80
3.3 Hướng phát triển 80
TÀI LIỆU THAM KHẢO 81
Trang 12Bảng 2.1: Kịch bản cho Usecase đăng ký tài khoản 11
Bảng 2.2: Kịch bản cho Usecase tìm kiếm sản phẩm 12
Bảng 2.3: Kịch bản cho Usecase xem chi tiết sản phẩm 13
Bảng 2.4: Kịch bản cho Usecase cập nhật giỏ hàng 14
Bảng 2.5: Kịch bản cho Usecase đăng nhập 16
Bảng 2.6: Kịch bản cho Usecase cập nhật thông tin cá nhân 17
Bảng 2.7: Kịch bản cho Usecase đặt hàng 18
Bảng 2.8: Kịch bản cho Usecase xem lịch sử mua hàng 19
Bảng 2.9: Kịch bản cho Usecase bình luận sản phẩm 20
Bảng 2.10: Kịch bản cho Usecase cập nhật sản phẩm 21
Bảng 2.11: Kịch bản cho Usecase cập nhật danh mục 24
Bảng 2.12: Kịch bản cho Usecase cập nhật nhà cung cấp 27
Bảng 2.13: Kịch bản cho Usecase cập nhật loại sản phẩm 30
Bảng 2.14: Kịch bản cho Usecase cập nhật đơn hàng 33
Bảng 2.15: Kịch bản cho Usecase cập nhật tài khoản 34
Trang 13DANH MỤC HÌNH VẼ
Hình 1.1: Hệ quản trị cơ sở dữ liệu phpMyAdmin 4
Hình 1.2: Dịch vụ cơ sở dữ liệu Xampp 5
Hình 1.3: Ngôn ngữ lập trình PHP 6
Hình 1.4: Laravel PHP Framework 7
Hình 1.5: Mô hình MVC 8
Hình 2.1: Sơ đồ usecase tổng quát 11
Hình 2.2: Sơ đồ hoạt động đăng ký tài khoản 38
Hình 2.3: Sơ đồ hoạt động xem chi tiết sản phẩm 39
Hình 2.4: Sơ đồ hoạt động cập nhật giỏ hàng 39
Hình 2.5: Sơ đồ hoạt động đăng nhập tài khoản 40
Hình 2.6: Sơ đồ hoạt động đổi mật khẩu 40
Hình 2.7: Sơ đồ hoạt động cập nhật thông tin cá nhân 41
Hình 2.8: Sơ đồ hoạt động đặt hàng 42
Hình 2.9: Sơ đồ hoạt động bình luận sản phẩm 42
Hình 2.10: Sơ đồ hoạt động đăng nhập 43
Hình 2.11: Sơ đồ hoạt động cập nhật thông tin cá nhân 43
Hình 2.12: Sơ đồ hoạt động cập nhật danh mục 44
Hình 2.13: Sơ đồ hoạt động cập nhật sản phẩm 44
Hình 2.14: Sơ đồ hoạt động cập nhật đơn hàng 45
Hình 2.15: Sơ đồ hoạt động đăng nhập 45
Hình 2.16: Sơ đồ hoạt động cập nhật thông tin cá nhân 46
Hình 2.17: Sơ đồ hoạt động cập nhật tài khoản 46
Hình 2.18: Sơ đồ sequence cho use-case đăng ký 47
Hình 2.19: Sơ đồ sequence cho use-case tìm kiếm sản phẩm 47
Hình 2.20: Sơ đồ sequence cho use-case đăng nhập 48
Hình 2.21: Sơ đồ sequence cho use-case cập nhật thông tin cá nhân 48
Hình 2.22: Sơ đồ sequence cho use-case cập nhật giỏ hàng 49
Hình 2.23: Sơ đồ sequence cho use-case đặt hàng 49
Hình 2.24: Sơ đồ sequence cho use-case đăng nhập 50
Trang 14Hình 2.26: Sơ đồ sequence cho use-case cập nhật sản phẩm (sửa) 51
Hình 2.27: Sơ đồ sequence cho use-case cập nhật sản phẩm (xoá) 51
Hình 2.28: Sơ đồ sequence cho use-case cập nhật danh mục (thêm) 52
Hình 2.29: Sơ đồ sequence cho use-case cập nhật danh mục (sửa) 52
Hình 2.30: Sơ đồ sequence cho use-case cập nhật danh mục (xoá) 53
Hình 2.31: Sơ đồ sequence cho use-case cập nhật đơn hàng (xác nhận) 53
Hình 2.32: Sơ đồ sequence cho use-case cập nhật đơn hàng (xoá) 54
Hình 2.33: Sơ đồ sequence cho use-case đăng nhập 54
Hình 2.34: Sơ đồ sequence cho use-case cập nhật tài khoản (thêm) 55
Hình 2.35: Sơ đồ sequence cho use-case cập nhật tài khoản (khoá, mở khoá, phân quyền, xoá) 55
Hình 2.36: Sơ đồ class 56
Hình 2.37: Sơ đồ ERD 61
Hình 3.1: Giao diện trang chủ 62
Hình 3.2: Giao diện trang chủ sau khi đăng nhập 62
Hình 3.3: Giao diện đăng ký 63
Hình 3.4: Giao diện đăng nhập 63
Hình 3.5: Giao diện bài viết tin tức 64
Hình 3.6: Giao diện chi tiết bài viết tin tức 64
Hình 3.7: Giao diện tìm kiếm sản phẩm 65
Hình 3.8: Giao diện tìm kiếm sản phẩm theo danh mục 65
Hình 3.9: Giao diện chi tiết sản phẩm 66
Hình 3.10: Giao diện giỏ hàng chưa có sản phẩm 66
Trang 15Hình 3.19: Giao diện cập nhật thông tin cá nhân 71
Hình 3.20: Giao diện trang thêm danh mục 71
Hình 3.21: Giao diện danh sách danh mục 72
Hình 3.22: Giao diện cập nhật danh mục 72
Hình 3.23: Giao diện thêm nhà cung cấp 73
Hình 3.24: Giao diện danh sách nhà cung cấp 73
Hình 3.25: Giao diện tìm kiếm nhà cung cấp 74
Hình 3.26: Giao diện cập nhật nhà cung cấp 74
Hình 3.27: Giao diện thêm sản phẩm 75
Hình 3.28: Giao diện danh sách sản phẩm 75
Hình 3.29: Giao diện cập nhật sản phẩm 76
Hình 3.30: Giao diện danh sách đơn hàng 76
Hình 3.31: Giao diện chi tiết đơn hàng 77
Hình 3.32: Giao diện xác nhận đơn hàng 78
Hình 3.33: Giao diện xuất hoá đơn 78
Hình 3.34: Giao diện thêm tài khoản 79
Hình 3.35: Giao diện danh sách tài khoản 79
Trang 16Stt Chữ viết tắt Giải nghĩa Nghĩa tiếng Việt
1 HTML
Hyper Text Markup Language Ngôn ngữ đánh dấu siêu văn bản 2 CSS Cascading Style Sheets
Ngôn ngữ tạo phong cách cho website
3 PHP Hypertext Preprocessor Ngôn ngữ lập trình kịch bản 4 ERD Entity Relationship Diagram Sơ đồ thực thể quan hệ
Trang 17MỞ ĐẦU
Giới thiệu tổng quan đề tài: Hiện nay, vấn đề sức khoẻ luôn được rất nhiều người quan tâm Bên cạnh thuốc tây thì các loại thảo dược cũng như cây thuốc nam cũng rất được ưa chuộng bởi sự gần gũi, mức giá thành rẻ hơn và rất phù hợp với thể chất và có hiệu quả chữa bệnh tốt hơn đối với con người ở nước ta
Vì vậy em tạo ra website này để góp phần làm cho việc mua bán cây thuốc nam trở nên dễ ràng hơn Đồng thời giúp cho cây thuốc nam gần gũi hơn với mọi người, đông thời mang lại nguồn kiến thức phong phú của các loài cây thuốc nam đến với mọi người
Là nơi đọc những tin tức liên quan đến thuốc nam được chia sẻ rộng rãi Là nơi bạn có thể trở thành nhà cung cấp dược liệu, có thể nhận tư vấn trực tiếp từ trung tâm dược liệu
Website được xây dựng trên ý tưởng về sự quan tâm đến sức khoẻ của bản thân và gia đình của mỗi chúng ta
2 Đối tượng nghiên cứu và phạm vi nghiên cứu
a Đối tượng nghiên cứu
• Khách hàng có nhu cầu mua thuốc nam, nhận tư vấn về thuốc nam cũng như tìm hiểu kiến thức về thuốc nam trên website
• Nhân viên, quản trị viên trên website
b Phạm vi nghiên cứu
• Áp dụng cho tiệm thuốc nam Lê Thanh • Địa chỉ: Chợ Cồn, Ông Ích Khiêm, P Hải Châu 2, Q Hải Châu, Tp Đà Nẵng
Trang 183 Phương pháp nghiên cứu
Tham khảo các website bán thuốc nam như duoclieuthaison.com, omega3.vn, nongsandungha.com
• Chương 1: Cơ sở lý thuyết • Chương 2: Phân tích thiết kế hệ thống • Chương 3: Xây dựng chương trình • Kết luận và hướng phát triển • Tài liệu tham khảo
Trang 19Chương 1CƠ SỞ LÝ THUYẾT
1.1 Hệ quản trị cơ sở dữ liệu: phpMyAdmin, Mysql
1.1.1 phpMyAdmin
• Khái niệm: phpMyAdmin là một ứng dụng web miễn phí cung cấp GUI sử dụng kết hợp với hệ thống quản lý cơ sở dữ liệu MySQL Đây là công cụ quản trị MySQL phổ biến nhất được sử dụng bởi hàng triệu người
• Tính năng
o Tạo và xóa người dùng, quản lý quyền người dùng o Tạo, thay đổi và xóa cơ sở dữ liệu, bảng, trường và hàng o Tìm kiếm đối tượng trong toàn bộ cơ sở dữ liệu hoặc trong bảng o Nhập và xuất dữ liệu theo các định dạng khác nhau, bao gồm SQL, XML,
CSV o Giám sát quá trình và theo dõi hiệu suất của các truy vấn khác nhau o Thực hiện các truy vấn SQL tùy chỉnh
o Sao lưu cơ sở dữ liệu MySQL của bạn ở chế độ thủ công • Nhược điểm:
o Chức năng export/import của phpMyAdmin thiếu rất nhiều tính năng mà bạn mong muốn:
o Lập kế hoạch (Scheduling): Với phpMyAdmin, không có cách nào để tự động xuất database data
o Hỗ trợ lưu trữ phương tiện truyền thông (Storage media support): Vì phpMyAdmin là một phần mềm dựa trên web nên bạn chỉ có thể làm việc với nó thông qua trình duyệt Điều này có nghĩa là bạn chỉ có thể lưu các bản sao lưu vào các local drive có sẵn trên hệ thống của mình, thông qua hộp thoại Save As của trình duyệt
o Nén, mã hóa và các tùy chọn khác: Các tệp được xuất bằng phpMyAdmin được lưu dưới dạng text files phổ biến, không cần xử lý thêm Lưu trữ ở dạng ban đầu sẽ khiến chúng chiếm rất nhiều dung lượng đĩa và không an toàn
Trang 20Hình 1.1: Hệ quản trị cơ sở dữ liệu phpMyAdmin
1.1.2 Xampp
• Định nghĩa: XAMPP là một phần mềm cho phép giả lập môi trường server hosting ngay trên máy tính của bạn, cho phép bạn chạy demo
website mà không cần phải mua hosting hay VPS Chính vì vậy, XAMPP hay
được phục vụ cho hoạt động học tập giảng dạy thực hành và phát triển web • Ưu điểm:
o Có thể chạy được linh hoạt được trên mọi hệ điều hành: Cross-platform, Windows, MacOS, Linux
o Có cấu hình đơn giản nhưng mang đến nhiều chức năng hữu ích như: Lập Server giả định, lập Mail Server giả định và hỗ trợ SSL trên localhost o Tích hợp được nhiều tính năng với các thành phần quan trọng như: Apache, PHP, MySql Vì thế, người dùng không cần cài đặt từng phần trên riêng lẻ mà chỉ cần cài XAMPP là có 1 web server hoàn chỉnh • Nhược điểm:
o Do cấu hình khá đơn giản cho nên Xampp hoàn toàn không nhận được sự hỗ trợ về cấu hình Module, đồng thời cũng không có cả MySQL
Trang 21Hình 1.2: Dịch vụ cơ sở dữ liệu Xampp
1.2 Ngôn ngữ lập trình • Khái niệm: Ngôn ngữ lập trình PHP là ngôn ngữ lập trình đa mục đích được
phát triển từ đầu năm 1994 PHP là một ngôn ngữ kịch bản với mã nguồn mở, chạy ở bên Server và được dùng để tạo ra các ứng dụng phát triển Web • Ưu điểm:
o PHP chính là một mã nguồn mở Vậy nên việc cài đặt và sử dụng ngôn ngữ PHP rất là dễ dàng và cài đặt phổ biến nhất là trên các WebSever thông dụng như Nginx, Apache Đặc biệt PHP là một mã nguồn miễn phí và được chia sẻ nhiều trên các diễn đàn, cộng đồng và bạn có thể dễ dàng sao chép và cài đặt sử dụng các website hay các ngữ cảnh có sẵn
o Đây là một ngôn ngữ có tính công đồng lớn nhất hiện nay vì đây là một mã nguồn mở và cũng rất dễ sử dụng cho nên PHP luôn được ưa chuộng và tạo nên một cộng đồng lớn và chất lượng với các chuyên gia trên toàn thế giới
o Khả năng bảo mật cao cho dù đây là mã nguồn mở, PHP được cộng đồng phát triển rất mạnh mẻ vì vậy PHP được coi là an toàn khi sử dụng với sự chia sẻ cách bảo mật Ngoài ra khi bạn sử dụng ngôn ngữ lập trình PHP sẻ kết hợp các kỹ thuật bảo mật với từng tầng khác nhau giúp khả năng hoạt động cho website ổn định và an toàn hơn
• Nhược điểm:
o Nhược điểm phải nói đến đầu tiên khi dùng PHP chính là cấu trúc ngôn ngữ của nó nhìn không được gọn gàng cho lắm Mọi câu lệnh được viết trong cặp câu lệnh <?php … ?>
o Không giống như Java và C# khi bạn học thì có thể làm website, các ứng dụng điện thoại, chương trình hay phần mềm… Tuy nhiên đối với PHP chỉ có thể sử dụng làm website và các ứng dụng website mở rộng mà thôi
Trang 22o Nhược điểm lớn nhất đáng nói đến là khả năng bị sao chép và hack mã code dễ hơn và độ an toàn không cao như các ngôn ngữ lập trình khác Nhưng từ khi lên phiên bản PHP 7 chấm trở lên đã khác phục được rất nhiều vấn đề này
Hình 1.3: Ngôn ngữ lập trình PHP
1.3 Laravel PHP Framework • Khái niệm: Laravel là PHP Web Framework miễn phí, mã nguồn mở, được tạo
bởi Taylor Otwell và dành cho việc phát triển các ứng dụng web theo mô hình
kiến trúc mô hình MVC và được viết bằng ngôn ngữ PHP • Ưu điểm:
Trang 23phát triển trên Laravel được bảo vệ tốt hơn khỏi các cuộc tấn công từ bên ngoài
o Cộng đồng đông đảo: Laravel có một cộng đồng đông đảo với nhiều người dùng và nhà phát triển đóng góp Điều này giúp cho việc tìm kiếm giải pháp cho các vấn đề khó khăn trở nên dễ dàng hơn
o Tốc độ phát triển nhanh: Nhờ tính năng mạnh mẽ và đơn giản, Laravel giúp cho các lập trình viên có thể phát triển ứng dụng nhanh chóng và hiệu quả hơn
• Nhược điểm:
o So với các PHP framework khác, framework laravel bộc lộ khá ít nhược điểm Vấn đề lớn nhất có thể kể đến của framework này là thiếu sự liên kết giữa các phiên bản, nếu cố cập nhật code, có thể khiến cho ứng dụng bị gián đoạn hoặc phá vỡ Bên cạnh đó, framework laravel cũng quá nặng cho ứng dụng di động, khiến việc tải trang trở nên chậm chạp
Hình 1.4: Laravel PHP Framework
Trang 241.4 Mô hình MVC
• Model: dùng để cung cấp dữ liệu, thực hiện kết nối, các thao tác với dữ liệu như: thêm, sửa, xóa, lọc… truy vấn dữ liệu trong database, tương tác với dữ liệu hay hệ quản trị cơ sở dữ liệu
• View: là thành phần chịu trách nhiệm hiển thị dữ liệu đã được truy xuất từ model theo một format nào đó theo ý đồ của lập trình viên và ở đây tôi dùng PHP • Controller: là thành phần làm nhiệm vụ xử lý nghiệp vụ, nó nhận request từ client
và lập trình viên gọi các hàm trong model có dữ liệu và đưa dữ liệu đó cho các View để hiện dữ liệu Mỗi controller chứa các hàm hành động
Hình 1.5: Mô hình MVC
Trang 25Chương 2PHÂN TÍCH THIẾT KẾ HỆ THỐNG
o Xem bài viết sức khoẻ o Chat với tiệm thuốc • Người dùng hệ thống
o Đăng ký tài khoản o Đăng nhập tài khoản o Cập nhật thông tin cá nhân o Đổi mật khẩu
o Đăng ký trở thành nhà cung cấp o Xem chi tiết sản phẩm
o Tìm kiếm sản phẩm o Cập nhật giỏ hàng o Xem bài viết sức khoẻ o Chat với tiệm thuốc o Đặt mua sản phẩm o Bình luận về sản phẩm o Xem lịch sử mua hàng • Nhân viên
o Đăng nhập tài khoản
Trang 26o Tư vấn khách hàng o Cập nhật thông tin cá nhân o Cập nhật sản phẩm
o Cập nhật danh mục sản phẩm o Cập nhật loại sản phẩm o Cập nhật thông tin nhà cung cấp o In đơn hàng
o Xác nhận đơn hàng o Thống kê
• Quản trị viên
o Đăng nhập tài khoản o Cập nhật tài khoản o Cập nhật thông tin cá nhân o Cập nhật sản phẩm
o Cập nhật danh mục sản phẩm o Cập nhật loại sản phẩm o Cập nhật thông tin nhà cung cấp o In đơn hàng
o Xác nhận đơn hàng o Thống kê
Trang 272.1.2 Sơ đồ usecase
Hình 2.1: Sơ đồ usecase tổng quát
2.1.3 Kịch bản cho usecase
Bảng 2.1: Kịch bản cho Usecase đăng ký tài khoản
Usecase name Đăng ký tài khoản
Description
Khách vãng lai đăng ký tài khoản trên hệ thống
Actors Khách vãng lai Input Số điện thoại, họ và tên, email, mật khẩu và nhập lại mật khẩu
Trang 28Output Hệ thống thông báo đăng ký thành công Basic flow 1 Khách vãng lai vào website
2 Khách vãng lai dùng chọn chức năng đăng ký tài khoản 3 Hệ thống hiển thị giao diện đăng ký
4 Khách vãng lai nhập thông tin đăng ký 5 Khách vãng lai nhấn nút xác nhận 6 Hệ thống sẽ lưu thông tin tài khoản mà người dùng vừa
nhập 7 Usecase kết thúc
Alternative flow (các bước phát sinh trong Basic flow)
• flow 1: Khách vãng lai đóng giao diện đăng ký (bắt đầu
sau bước 4 của dòng sự kiện chính) ➔ Kết thúc usecase
Exception flow (các trường hợp ngoại
lệ của Basic flow)
• Exception flow 1: Khách vãng lai chưa nhập đúng và đủ
thông tin (bắt đầu sau bước 4 của dòng sự kiện chính) 1 Hiển thị thông báo “Vui lòng kiểm tra lại thông tin vừa
nhập!” 2 Khách vãng lai nhấn “Đồng ý” 3 Hệ thống hiển thị trang đăng ký 4 Usecase kết thúc
Các usecase liên quan
Bảng 2.2: Kịch bản cho Usecase tìm kiếm sản phẩm
Usecase name Tìm kiếm sản phẩm
Trang 29Basic flow 1 Khách vãng lai vào website
2 Khách vãng lai nhấn chuột vào thanh tìm kiếm 3 Khách vãng lai nhập từ khoá muốn tìm kiếm 4 Khách vãng lai nhấn nút “tìm kiếm”
5 Hệ thống hiện danh sách thuốc nam dựa theo từ khoá khách vừa nhập
6 Usecase kết thúc
Alternative flow (các bước phát sinh trong Basic flow)
Flow 1: Khách vãng lai nhấn chuột vào danh mục sản phẩm
( thuốc nam được chia theo danh mục dựa trên tác dụng của cây thuốc ví dụ: đau đầu, giảm béo, thanh nhiệt, vv) ➔ Hệ thống hiển thị sản phẩm theo danh mục ➔ Kết thúc usecase
Exception flow (các trường hợp ngoại
lệ của Basic flow)
Exception flow 1: Khách vãng lai không nhập gì mà nhấn
nút tìm kiếm ( sau buốc 4 của dòng sự kiện chính) ➔ Hệ thống thông báo vui lòng nhập từ khoá ➔ Kết thúc usecase
Các usecase liên quan
Bảng 2.3: Kịch bản cho Usecase xem chi tiết sản phẩm
Usecase name Xem chi tiết sản phẩm Description Khách vãng lai xem thông tin chi tiết của thuốc nam muốn
mua
Actors Khách vãng lai Input Khách vãng lai nhấn vào sản phẩm
Output Hệ thống hiện trang thông tin chi tiết của thuốc nam Basic flow 1 Khách vãng lai vào website
2 Khách vãng lai nhấn chuột vào thuốc nam muốn xem chi tiết
3 Hệ thống hiện trang thông tin chi tiết của thuốc nam 4 Usecase kết thúc
Trang 30Alternative flow (các bước phát sinh trong Basic flow)
Exception flow (các trường hợp ngoại
lệ của Basic flow) Các usecase liên quan Thêm sản phẩm vào giỏ hàng
Bảng 2.4: Kịch bản cho Usecase cập nhật giỏ hàng
Usecase name Thêm sản phẩm sản phẩm vào giỏ hàng Description
Khách vãng lai thêm sản phẩm mình muốn mua vào giỏ hàng
Actors Khách vãng lai Input Số lượng mua, nhấn nút chọn mua
Output Hệ thống hiện thêm thành công, icon giỏ hàng hiện thông báo Basic flow 1 Khách vãng lai hoàn thành usecase xem chi tiết sản phẩm
2 Khách vãng lai nhấn vào nút “mua ngay” 3 Hệ thống hiện giao diện thêm sản phẩm 4 Khách vãng lai chọn số lượng và nhấn nút “thêm vào giỏ
hàng” 5 Hệ thống thông báo thêm thành công, icon giỏ hàng hiện
thông báo 6 Usecase kết thúc
Alternative flow (các bước phát sinh trong
Flow1: Khách vãng lai đóng giao diện thêm sản phẩm (bắt
Trang 31Các usecase liên quan Cập nhật giỏ hàng
Usecase name Cập nhật số lượng sản phẩm trong giỏ hàng Description Khách vãng lai cập nhật số lượng sản phẩm mình mua trong
giỏ hàng
Actors Khách vãng lai Input Số lượng mua, nhấn nút cập nhật
Output Số lượng mới, tổng tiền mới Basic flow 1 Khách vãng lai nhấn vào icon giỏ hàng
2 Hệ thống hiện giao diện giỏ hàng 3 Khách vãng lai chọn số lượng mới 4 Khách vãng lai nhấn nút cập nhật 5 Hệ thống hiển thị sản phẩm với số lượng mới, tổng tiền
mới 6 Usecase kết thúc
Alternative flow (các bước phát sinh trong Basic flow)
Flow1: Khách vãng lai đóng giao diện giỏ hàng (bắt đầu sau
bước 2 của dòng sự kiện chính) ➔ Kết thúc use case
Flow2: Không có sản phẩm trong giỏ hàng (bắt đầu sau bước
2 của dòng sự kiện chính) ➔ Kết thúc use case
Exception flow (các trường hợp ngoại lệ của Basic flow)
Exception flow 1: Không thể cập nhật số lượng sản phẩm
trong giỏ hàng lớn hơn trong kho hàng➔ Kết thúc use case
Các usecase liên quan Cập nhật giỏ hàng
Usecase name Xoá sản phẩm trong giỏ hàng Description Khách vãng lai cập nhật số lượng sản phẩm mình mua trong
giỏ hàng
Actors Khách vãng lai
Trang 32Input Thông tin sản phảm, nhấn nút xoá
Output Hiện sản phẩm còn lại trong giỏ hàng, tổng tiền mới Basic flow 1 Khách vãng lai nhấn vào icon giỏ hàng
2 Hệ thống hiện giao diện giỏ hàng 3 Khách vãng lai nhấn nút xoá 4 Hệ thống hiển thị sản phẩm còn lại trong giỏ hàng, tổng
tiền mới 5 Usecase kết thúc
Alternative flow (các bước phát sinh trong Basic flow)
Flow1: Khách vãng lai đóng giao diện giỏ hàng (bắt đầu sau
bước 2 của dòng sự kiện chính) ➔ Kết thúc usecase
Flow2: Không có sản phẩm trong giỏ hàng (bắt đầu sau bước
2 của dòng sự kiện chính) ➔ Kết thúc usecase
Exception flow (các trường hợp ngoại lệ của Basic flow) Các usecase liên quan Cập nhật giỏ hàng
Bảng 2.5: Kịch bản cho Usecase đăng nhập
Usecase name Đăng nhập
Description Người dùng hệ thống đăng nhập tài khoản đã đăng ký trên hệ
thống
Trang 33Basic flow 1 Người dùng hệ thống vào website
2 Người dùng hệ thống chọn đăng nhập 3 Hệ thống hiện trang đăng nhập
4 Nhập tài khoản 5 Nhập mật khẩu 6 Nhấp vào nút đăng nhập 7 Chuyển sang trang chủ với quyền người dùng hệ thống 8 Kết thúc usecase
Alternative flow (các bước phát sinh trong Basic flow)
Flow 1: Người dùng đóng giao diện(sau bước 3 của dòng sự
kiên chính )➔ Kết thúc usecase
Exception flow (các trường hợp ngoại lệ của Basic flow)
Exception flow 1: Nhập thông tin không đúng yêu cầu của
mẫu ➔ Hệ thống thông báo “Đăng nhập thất bại” ➔ Kết thúc usecase
Các usecase liên quan
Bảng 2.6: Kịch bản cho Usecase cập nhật thông tin cá nhân
Usecase name Cập nhật thông tin cá nhân Description
Người dùng hệ thống cập nhật thông tin cá nhân
Actors Người dùng hệ thống
Input Nhập thông tin cá nhân cần sửa
Output Hệ thống thông báo sửa thông tin thành công, hiển thị thông
tin đã sửa
Basic flow 1 Người dùng hệ thống chạy hệ thống
2 Người dùng hệ thống đăng nhập vào hệ thống 3 Người dùng hệ thống chọn chức năng cập nhật thông tin
cá nhân 4 Hệ thống hiển thị trang cập nhật thông tin cá nhân 5 Người dùng hệ thống chọn thông tin cần sửa đổi
Trang 346 Người dùng hệ thống nhập thông tin mới 7 Người dùng hệ thống nhấn nút cập nhật 8 Hệ thống sẽ lưu những thông tin thay đổi vừa sửa 9 Usecase kết thúc
Alternative flow (các bước phát sinh trong Basic flow)
Flow 1: Người dùng hệ thống đóng trang cập nhật thông tin
(bắt đầu sau bước 4 của dòng sự kiện chính) ➔ Kết thúc use case
Exception flow (các trường hợp ngoại lệ của Basic flow)
Exception flow 1: Người dùng hệ thống chưa nhập đúng và
đủ thông tin cá nhân (bắt đầu sau bước 5 của dòng sự kiện chính)
➔ Hiển thị thông báo “Vui lòng kiểm tra lại thông tin vừa nhập!”
➔ Người dùng hệ thống nhấn “Đồng ý” ➔ Hệ thống hiển thị trang quản lý thông tin cá nhân➔ Usecase kết thúc
Các usecase liên quan Cập nhật thông tin cá nhân
Trang 354 Người dùng hệ thống nhập thông tin, số điện thoại, địa chỉ
5 Người dùng hệ thống nhấn nút đặt mua 6 Hệ thống hiện thông báo đặt hàng thành công 7 Kết thúc usecase
Alternative flow (các bước phát sinh trong Basic flow)
Flow1: Khách vãng lai đóng giao diện giỏ hàng (bắt đầu sau
bước 2,3,4 của dòng sự kiện chính) ➔ Kết thúc use case
Exception flow (các trường hợp ngoại lệ của Basic flow)
Exception flow 1: Khách vãng lai nhập không đúng thông tin
(số điện thoại không hợp lệ, không nhập số điện thoại , địa chỉ, tên) hệ thống thông báo “Vui lòng nhập lại thông tin” ➔ Kết thúc usecase
Các usecase liên quan Cập nhật giỏ hàng, đăng nhập
Bảng 2.8: Kịch bản cho Usecase xem lịch sử mua hàng
Usecase name Xem lịch sử mua hàng Description
Người dùng hệ thống xem lịch sử mua hàng của mình
Actors Người dùng hệ thống
Input Chọn vào lịch sử mua hàng
Output Hệ thống hiện danh sách mua hàng Basic flow 1 Người dùng hệ thống vào website
2 Người dùng hệ thống đăng nhập tài khoản 3 Người dùng hệ thống chọn xem thông tin cá nhân 4 Hệ thống hiện trang thông tin cá nhân
5 Người dùng hệ thống chọn xem lịch sử mua hàng 6 Hệ thống hiện lịch sử mua hàng
7 Người dùng hệ thống chọn xem chi tiết đơn hàng 8 Hệ thống hiện chi tiết đơn hàng
9 Usecase kết thúc
Trang 36Alternative flow (các bước phát sinh trong Basic flow)
Flow 1: Người dùng hệ thống đóng trang thông tin cá nhân
(bắt đầu sau bước 4 của dòng sự kiện chính) ➔ Kết thúc usecase
Exception flow (các trường hợp ngoại lệ của Basic flow) Các usecase liên quan Đăng nhập, bình luận sản phẩm
Bảng 2.9: Kịch bản cho Usecase bình luận sản phẩm
Usecase name Bình luận sản phẩm Description
Người dùng hệ thống bình luận về sản phẩm đã mua
Actors Người dùng hệ thống
Input Chi tiết sản phẩm trong đơn hàng đã giao, nút gửi bình luận
Output Hệ thống hiện bình luận vừa gửi Basic flow 1 Người dùng hệ thống vào website
2 Người dùng hệ thống xem lịch sử mua hàng 3 Hệ thống hiện trang lịch sử mua hàng 4 Người dùng hệ thống chọn xem chi tiết đơn hàng đã giao 5 Hệ thống hiện những sản phẩm có trong đơn hàng
6 Người dùng hệ thống nhấn nút đánh giá 7 Hệ thống hiện giao diện bình luận sản phẩm
Trang 37Alternative flow (các bước phát sinh trong Basic flow)
Flow 1: Người dùng hệ thống đóng trang lịch sử mua hàng
(bắt đầu sau bước 3 của dòng sự kiện chính) ➔ Kết thúc usecase
Flow 2: Người dùng hệ thống đóng trang lịch sử mua hàng
(bắt đầu sau bước 5 của dòng sự kiện chính) ➔ Kết thúc usecase
Flow 3: Người dùng hệ thống đóng trang bình luận sản phẩm
(bắt đầu sau bước 7 của dòng sự kiện chính) ➔ Kết thúc usecase
Exception flow (các trường hợp ngoại lệ của Basic flow) Các usecase liên quan Đăng nhập, xem lịch sử mua hàng, xem chi tiết sản phẩm
Bảng 2.10: Kịch bản cho Usecase cập nhật sản phẩm
Usecase name Thêm sản phẩm Description
Nhân viên thêm thuốc nam
Actors Nhân viên Input Nhập thông tin thuốc nam
Output Hệ thống thông báo thêm sản phẩm thành công
Trang 38Basic flow 1 Nhân viên chạy hệ thống
2 Nhân viên đăng nhập vào hệ thống 3 Nhân viên chọn chức năng quản lý sản phẩm 4 Hệ thống hiển thị trang quản lý sản phẩm 5 Nhân viên nhấn nút thêm
6 Hệ thống hiển thị trang thêm sản phẩm 7 Nhân viên nhập thông tin sản phẩm 8 Nhân viên nhấn nút lưu
9 Hệ thống sẽ lưu danh mục mà nhân viên vừa nhập 10 Use case kết thúc
Alternative flow (các bước phát sinh trong Basic flow)
Flow 1: Nhân viên đóng trang quản lý sản phẩm (bắt đầu sau
bước 4 của dòng sự kiện chính) ➔ Kết thúc use case
Flow 2: Nhân viên đóng trang thêm sản phẩm (bắt đầu sau
bước 6 của dòng sự kiện chính) ➔ Kết thúc usecase
Exception flow (các trường hợp ngoại lệ của Basic flow)
Exception flow 1: Nhân viên chưa nhập đúng và đủ thông tin
sản phẩm (bắt đầu sau bước 7 của dòng sự kiện chính) ➔ Hiển thị thông báo “Vui lòng kiểm tra lại thông tin vừa
nhập!” ➔ Nhân viên nhấn “Đồng ý” ➔ Hệ thống hiển thị trang thêm danh mục ➔ Usecase kết thúc
Các usecase liên quan Cập nhật sản phẩm
Usecase name Sửa sản phẩm
Trang 39Basic flow 1 Nhân viên chạy hệ thống
2 Nhân viên đăng nhập vào hệ thống 3 Nhân viên chọn chức năng quản lý sản phẩm 4 Hệ thống hiển thị trang quản lý sản phẩm 5 Nhân viên nhấn nút sửa
6 Hệ thống hiển thị trang sửa sản phẩm 7 Nhân viên nhập sản phẩm
8 Nhân viên nhấn nút lưu 9 Hệ thống sẽ lưu thông tin sản phẩm mà nhân viên vừa
nhập 10 Usecase kết thúc
Alternative flow (các bước phát sinh trong Basic flow)
Flow 1: Nhân viên đóng trang quản lý sản phẩm (bắt đầu sau
bước 4 của dòng sự kiện chính) ➔ Kết thúc usecase
Flow 2: Nhân viên đóng trang sửa sản phẩm (bắt đầu sau
bước 6 của dòng sự kiện chính) ➔ Kết thúc usecase
Exception flow (các trường hợp ngoại lệ của Basic flow)
Exception flow 1: Nhân viên chưa nhập đúng và đủ thông tin
sản phẩm (bắt đầu sau bước 7 của dòng sự kiện chính) ➔ Hiển thị thông báo “Vui lòng kiểm tra lại thông tin vừa
nhập!” ➔ Nhân viên nhấn “Đồng ý” ➔ Hệ thống hiển thị trang thêm danh mục ➔ Use ase kết thúc
Các usecase liên quan Cập nhật sản phẩm
Usecase name Xoá sản phẩm Description
Nhân viên xoá thuốc nam
Actors Nhân viên Input Sản phẩm cần xoá, nút xoá
Output Hệ thống thông báo xoá thành công
Trang 40Basic flow 1 Nhân viên chạy hệ thống
2 Nhân viên đăng nhập vào hệ thống 3 Nhân viên chọn chức năng quản lý sản phẩm 4 Hệ thống hiển thị trang quản lý sản phẩm 5 Nhân viên nhấn nút xoá
6 Hệ thống hiển thị hộp thư xác nhận xoá 7 Nhân viên nhấn nút xác nhận
8 Hệ thống sẽ xoá sản phẩm mà nhân viên vừa nhập 9 Usecase kết thúc
Alternative flow (các bước phát sinh trong Basic flow)
Flow 1: Nhân viên đóng trang quản lý sản phẩm (bắt đầu sau
bước 4 của dòng sự kiện chính) ➔ Kết thúc usecase
Flow 2: Nhân viên nhấn nút huỷ (bắt đầu sau bước 6 của dòng
sự kiện chính) ➔ Kết thúc usecase
Exception flow (các trường hợp ngoại lệ của Basic flow)
Các usecase liên quan Cập nhật sản phẩm
Bảng 2.11: Kịch bản cho Usecase cập nhật danh mục
Usecase name Thêm danh mục Description
Nhân viên thêm danh mục thuốc nam dựa trên tác dụng
Actors Nhân viên