Website cần có các chức năng cơ bản của các trang thương mại điện tử như: Người mua có thể đăng k và đăng nhập vào hệ thống để qu n lý tài kho n, gi ả ả ỏhàng, đơn hàng, tương tác với h
Trang 1TRƯỜNG ĐẠI HỌC THỦ DẦU MỘT KHOA KỸ THUẬT - CÔNG NGHỆ
BÁO CÁO MÔN H C Ọ
L P: D17PM03 Ớ
Trang 2TRƯỜNG ĐẠI HỌC THỦ DẦU MỘT KHOA K Ỹ THUẬT – CÔNG NGHỆ
BÁO CÁO MÔN H C Ọ
ĐỒ ÁN CHUYÊN NGÀNH
XÂY D ỰNG WEBSITE BÁN ĐIỆ N THO ẠI VÀ ĐỒ
CÔNG NGH B NG PHP Ệ Ằ
GVHD: Th.S NGUY ỄN HỮU VĨNH SVTH: PHẠ M TUYÊN
MSSV: 1724801030138
L P: D17PM03 Ớ
BNH DƯƠNG – 11/2020
Trang 3tr trợ ực tuyến đểđảm b o hả ệ ống thân thi n nh t vth ệ ấ ới người dùng
Trên đây là các yêu cầu c a h ủ ệ thống trong khuôn kh cổ ủa đồ án này Tuy hệ thống ch ỉđáp ứng được các chức năng của một website thương mại điện t c nh ử ỡ ỏ
- thích h p cho kinh doanh bán l theo cá nhân ho c hợ ẻ ặ ộ gia đình, nhưng trong tương lai em sẽ tiếp tục phát triển hệ thống thành một chu i các c a hàng, xây ỗ ửdựng app mobile cho hệ thống và đặc biệt phát triển các dịch vụ logistics
Bình Dương ngày 20 tháng 11
năm 2019
Sinh viên th c hi n ự ệ
Ph ạm Tuyên
Trang 4MỤC L C Ụ
CHƯƠNG 1 KHẢO SÁT HIỆN TRẠNG 1
1.1 Đặt vấn đề 1
1.2 Thương mại điện tử Việt Nam 1
1.3 Mục tiêu và chức năng chnh c a hủ ệ thố 3ng 1.4 Định hướng giải quyết vấn đề 3
1.5 Tóm tắt cơ sở lý thuy t ế 3
Ngôn ng l p trình PHP ữ ậ 4
Laravel Framework 10
HTML, CSS và JavaScript 12
Môi trường phát triển ứng dụng 13
Thanh toán điện tử Ngân Lượng 14
Kết luận 17
CHƯƠNG 2 PHÂN TÍCH VÀ THIẾT KẾ HỆ THỐNG 18
2.1 Các yêu cầu đặt ra cho hệ thố 18ng 2.2 Các tác nhân c a hủ ệ thố 18ng 2.3 Biểu đồ UseCase của hệ thống 20
Biểu đồ UseCase tổng quát 20
Biểu đồ UseCase chi tiết với từng tác nhân 21
2.4 Các chức năng chnh của hệ thống 24
Chức năng đăng ký 24
Chức năng đăng nhập 27
Chức năng quên mật khẩu 30
Chức năng thay đổi thông tin tài khoản 32
Chức năng tìm kiếm 34
Chức năng sắp xếp và lọc 36
Chức năng đánh giá và bình luận 39
Chức năng giỏ hàng 41
Chức năng mua hàng và thanh toán 45
Chức năng quản lý tài khoản 48
Chức năng quản lý bài viết 50
Chức năng quản lý sản phẩm 52
Trang 5Chức năng thống kê 57
Một số chức năng khác 59
2.5 Thiết kế cơ sở ữ liệ 60 d u Các bảng trong cơ sở dữ liệu 60
Lược đồ quan hệ của các bảng 68
2.6 Kết lu n ậ 69
CHƯƠNG 3 XÂY DỰNG CHƯƠNG TRNH 70
3.1 Môi trường triển khai ứng dụng 70
3.2 Giao di n ệ ứng dụng 71
Giao di n m t s trang chính ệ ộ ố 71
Giao di n m t sệ ộ ố chức năng 76
3.3 Kết qu hiả ệu năng thự ế c t 88 3.4 Kết lu n ậ 89
CHƯƠNG 4 KẾT LUẬN 90
4.1 Những kết quả đạt được 90
4.2 Kết quả chưa đạt đượ 90c 4.3 Định hướng phát triển trong tương lai 91
TÀI LI U THAM KH O Ệ Ả 92
Trang 6DANH M C HÌNH V Ụ Ẽ
Hình 1.1 Top 5 website thương mại điện tử ở Việt Nam 2
Hình 1.2 Doanh thu TMDT bán lẻ Việt Nam t 2015 2018 ừ – 2
Hình 1.3 Top các ngôn ng ph bi n 01/2018 ữ ổ ế – chỉ ố PYPL 6 s Hình 1.4 Top các PHP framework ph bi n ổ ế 7
Hình 1.5 Quy trình Checkout tiêu chu n ẩ 15
Hình 1.6 Quy trình Checkout nâng cao 16
Hình 1.7 Quy trình Seamless Checkout 16
Hình 2.1 Các tác nhân c a hủ ệ thố 19ng Hình 2.2 Biều đồ UseCase tổng quát 20
Hình 2.3 Biểu đồ UseCase với tác nhân Guest 21
Hình 2.4 Biểu đồ UseCase với tác nhân User và Online Payment 22
Hình 2.5 Biểu đồ UseCase với tác nhân Admin 23
Hình 2.6 Biểu đồ UseCase đăng ký 25
Hình 2.7 Biểu đồ hoạt động chức năng đăng ký 26
Hình 2.8 Biểu đồ UseCase đăng nhậ 28p Hình 2.9 Biểu đồ hoạt động chức năng đăng nhậ 29p Hình 2.10 Biểu đồ UseCase quên mật kh u ẩ 31
Hình 2.11 Biểu đồ hoạt động chức năng quên mật kh u ẩ 32
Hình 2.12 Biểu đồ UseCase thay đổi thông tin tài kho n ả 33
Hình 2.13 Biểu đồ hoạt động chức năng thay đổi thông tin tài khoản 34
Hình 2.14 Biểu đồ UseCase tìm kiếm 35
Hình 2.15 Biểu đồ hoạt động chức năng tìm kiế 36m Hình 2.16 Biểu đồ UseCase sắp x p và l c ế ọ 37
Hình 2.17 Biểu đồ hoạt động chức năng sắp x p và l c ế ọ 38
Hình 2.18 Biểu đồ UseCase đánh giá và bình luậ 39n Hình 2.19 Biểu đồ hoạt động chức năng đánh giá và bình luậ 41n Hình 2.20 Biểu đồ UseCase giỏ hàng 41
Hình 2.21 Biểu đồ hoạt động chức năng giỏ hàng 43
Hình 2.22 Biểu đồ UseCase mua hàng và thanh toán 46
Hình 2.23 Biểu đồ hoạt động chức năng mua hàng và thanh toán 47
Hình 2.24 Biểu đồ UseCase quản lý tài kho n ả 48
Hình 2.25 Biểu đồ hoạt động chức năng quản lý tài kho n ả 50
Hình 2.26 Biểu đồ UseCase quản lý bài vi t ế 51
Hình 2.27 Biểu đồ hoạt động chức năng quản lý bài vi t ế 52
Hình 2.28 Biểu đồ UseCase quản lý s n ph m ả ẩ 53
Trang 7Hình 2.30 Biểu đồ UseCase quản lý đơn hàng 56
Hình 2.31 Biểu đồ hoạt động chức năng quản lý đơn hàng 57
Hình 2.32 Biểu đồ UseCase thống kê 58
Hình 2.33 Biểu đồ hoạt động chức năng thống kê 59
Hình 2.34 Biểu đồ quan h các bệ ảng trong cơ sở dữ liệu 68
Hình 3.1 Các thông số môi trường th c t ự ế 70
Hình 3.2 Giao di n trang ch PhoneStore ệ ủ 71
Hình 3.3 Giao di n trang qu n tr PhoneStore ệ ả ị 72
Hình 3.4 Giao di n trang s n ph m ệ ả ẩ 72
Hình 3.5 Giao di n trang chi ti t s n ph m ệ ế ả ẩ 73
Hình 3.6 Giao di n trang tin t c ệ ứ 74
Hình 3.7 Giao di n trang chi ti t tin t c ệ ế ứ 75
Hình 3.8 Giao diện trang đăng nhập hệ thống 76
Hình 3.9 Thông báo đăng nhập thành công cho tài khoản người dùng 76
Hình 3.10 Thông báo đăng nhập thành công cho tài khoản quản trị 76
Hình 3.11 Giao diện trang đăng ký tài khoản 77
Hình 3.12 Email kích ho t tài kho n ạ ả 77
Hình 3.13 Thông báo kích ho t tài kho n thành công ạ ả 77
Hình 3.14 Giao di n trang quên m t kh u ệ ậ ẩ 78
Hình 3.15 Email chức năng quên mật kh u ẩ 78
Hình 3.16 Giao diện trang đặ ạt l i m t kh u ậ ẩ 78
Hình 3.17 Giao di n chệ ức năng tìm kiế 79m Hình 3.18 Giao di n chệ ức năng sắp x p và l c ế ọ 79
Hình 3.19 Giao di n chệ ức năng đánh giá và bình luậ 80n Hình 3.20 Giao di n trang gi hàng ệ ỏ Error! Bookmark not defined. Hình 3.21 Giao di n gi hàng mini ệ ỏ 81
Hình 3.22 Giao di n trang mua hàng ệ 81
Hình 3.23 Giao di n trang thanh toán online ệ 82
Hình 3.24 Giao di n thanh toán online thành côngệ 82
Hình 3.25 Thông báo mua hàng thành công 82
Hình 3.26 Giao di n trang qu n lý tài kho n ệ ả ả 83
Hình 3.27 Giao di n trang chi t tài kho n ệ tiế ả 83
Hình 3.28 Giao di n trang qu n lý bài việ ả ết 83
Hình 3.29 Giao di n trang ch nh s a bài vi t ệ ỉ ử ế 84
Hình 3.30 Giao di n trang qu n lý s n ph m ệ ả ả ẩ 84
Trang 8Hình 3.33 Giao di n trang chi tiệ ết đơn hàng 86
Hình 3.34 Giao di n chệ ức năng in hóa đơn 86
Hình 3.35 Giao di n chệ ức năng thống kê doanh thu theo các ngày trong m t thángộ 87
Hình 3.36 Giao di n chệ ức năng thống kê doanh thu theo các tháng trong một năm 87
Hình 3.37 Giao di n chệ ức năng in báo cáo 88
Hình 3.38 K t qu hiế ả ệu năng website phonestore 88
Hình 3.39 K t qu hiế ả ệu năng website FPT Shop 88
Hình 3.40 K t qu hiế ả ệu năng website Thế Giới Di Động 89
Trang 9DANH M C B NG BI U Ụ Ả Ể Bảng 2.1 Bảng đặ ả UseCase đăng ký 25c t Bảng 2.2 Bảng đặ ả UseCase đăng nhậ 28c t p
Bảng 2.3 Bảng đặ ả UseCase quên mậc t t khẩu 31
Bảng 2.4 Bảng đặ ả UseCase thay đổc t i thông tin tài kho n ả 33
Bảng 2.5 Bảng đặ ả UseCase tìm kiế 35c t m Bảng 2.6 Bảng đặ ả UseCase sắc t p x p và l c ế ọ 38
Bảng 2.7 Bảng đặ ả UseCase đánh giá và bình luậ 39c t n Bảng 2.8 Bảng đặ ả UseCase giỏc t hàng 42
Bảng 2.9 Bảng đặ ả UseCase mua hàng và thanh toán 46c t Bảng 2.10 Bảng đặ ả UseCase quảc t n lý tài kho n ả 48
Bảng 2.11 Bảng đặ ả UseCase quảc t n lý bài vi t ế 51
Bảng 2.12 Bảng đặ ả UseCase quảc t n lý s n ph m ả ẩ 53
Bảng 2.13 bảng đặ ả UseCase quản lý đơn hàng 56c t Bảng 2.14 Bảng đặ ả UseCase thốc t ng kê 58
Bảng 2.15 C u trúc dấ ữ liệu b ng users ả 60
Bảng 2.16 C u trúc dấ ữ liệu b ng products ả 61
Bảng 2.17 C u trúc dấ ữ liệu b ng producers ả 61
Bảng 2.18 C u trúc dấ ữ liệu b ng product_details ả 62
Bảng 2.19 C u trúc dấ ữ liệu b ng porduct_images ả 62
Bảng 2.20 C u trúc dấ ữ liệu b ng product_votes ả 63
Bảng 2.21 C u trúc dấ ữ liệu b ng comments ả 63
Bảng 2.22 C u trúc dấ ữ liệu b ng notices ả 63
Bảng 2.23 C u trúc dấ ữ liệu b ng orders ả 64
Bảng 2.24 C u trúc dấ ữ liệu b ng order_details ả 64
Bảng 2.25 C u trúc dấ ữ liệu b ng payment_methods ả 66
Bảng 2.26 C u trúc dấ ữ liệu b ng posts ả 66
Bảng 2.27 C u trúc dấ ữ liệu b ng advertises ả 66
Trang 10CHƯƠNG 1. KHẢO SÁT HIỆN TRẠNG Nội dung: Trong chương 1, em sẽ tìm hi u vể ề nhu c u, th c tr ng cầ ự ạ ủa thương mại điện tử cũng như xây dựng các kênh giao ti p, bán hàng, quế ản lý… Từ đó đưa
ra m c tiêu và chụ ức năng chnh của hệ thống, đưa ra hướng gi i quy t vả ế ấn đề đặt
ra, định hướng các giải pháp công nghệ và tóm tắt cơ sở lý thuy ết
Với việc thương mại điệ ửn t hóa, m i rào c n vọ ả ề không gian địa lý hay thời gian làm vi c ệ đều được xoá b Các s n phỏ ả ẩm được gi i thi u rõ dàng d nh cho ớ ệ àkhông ch nhỉ ững người mua hàng khu vở ực đó mà trên cả đất nước Vi t Nam, ệthậm ch là người dân trên toàn thế giới Người bán giờ đây không chỉ còn ngồi một chỗ chờ khách hàng tìm đến mà đã tích cực chủ động đứng lên và tìm đến khách hàng Và khi số lượng khách hàng tăng lên thì nó cũng tỉ ệ thuậ l n v i viớ ệc doanh thu sẽ tăng, đó chnh là điều mà m i doanh nghiọ ệp đều hướng t ới
Không ch d ng l i vỉ ừ ạ ậy, thương mại điệ ửn t còn t o ra nhạ ững cơ hội làm ăn cho những ai không đủ vốn bởi: bạn không ph i m t ti n thuê m t b ng nh ng ả ấ ề ặ ằ ở ữnơi đắt đỏ, thuê nhân viên, đầu tư nhiều cho vi c ch y quệ ạ ảng cáo… mà chỉ cần đầu
tư, chăm chút kỹ lưỡng cho một trang web thương mại điện tử với đầy đủ thông tin v doanh nghi p c a bề ệ ủ ạn cũng như các tnh năng hỗ trợ tìm ki m mua hàng, ếđưa hình ảnh, thông tin về sản phẩm Từ đó, khách hàng sẽ có thể tiếp c n thông ậtin chủ động hơn, nhờ tư vấn và mua bán d dàng, chính xác và nhanh gễ ọn hơn Với tình hình c nh tranh c c kạ ự ỳ “khốc liệt” như hiện nay giữa các doanh nghiệp thì rất khó để có thể độc quy n m t s n ph m nào, b i về ộ ả ẩ ở ậy nơi chinh phục được khách hàng chnh là nơi làm họ cảm thấy thoải mái nhất, hài lòng nhất
Bằng việc thương mại điện t hóa, t t c các doanh nghi p t l n, v a và nh ử ấ ả ệ ừ ớ ừ ỏ
đều có th thoả s c sáng t o, c nh tranh công b ng Nhể ứ ạ ạ ằ ững ý tưởng kinh doanh mới táo b o, nhạ ững chiến lược ti p th , khuy n mế ị ế ại… đều có th được áp dụng và ểhướng tr c tiự ếp đến khách hàng nhanh nh t mà không t n quá nhi u chi phí b i tấ ố ề ở ất
cả vẫn được gói g n trong mọ ột trang thương mại điệ ử (website) n t
Trên những cơ sở đó, đồ án t t nghi p c a em th c hiố ệ ủ ự ện đề ài “Xây d ng t
website thương mại điện tử PhoneStore” nhằm giải quy t c c nhu c u qu ng b ế á ầ ả á
và kinh doanh s n ph m ả ẩ hướng tr c tiự ếp đế khán ch h ng trên m i à ọ miền đất nước, thậm ch l qu c t à ố ế
1.2 Thương mại điện tử Việt Nam
Thương mại điện tử (E-Commerce) là hình thức kinh doanh tr c tuy n s ự ế ửdụng n n t ng công ngh thông tin v i s h ề ả ệ ớ ự ỗ trợ của Internet để thực hiện các giao dịch mua bán, trao đổi, thanh toán tr c tuy n ự ế Thương mại điện tử là xu hướng của
Trang 11thời đại toàn cầu hóa, đây là lĩnh vực tiềm năng để các doanh nghiệp vừa và nhỏ sinh l i và phát triợ ển, cơ hội cho nh ng ai mu n kh i nghi p kinh doanh theo mô ữ ố ở ệhình m ới Mô hình kinh doanh Thương mại điện t ử được xem như một trong nh ng ữgiải pháp thúc đẩy sự phát triển của nền kinh tế quốc gia
Theo báo cáo ch s Tỉ ố hương mại điện tử Việt Nam (EBI) 2019: “Năm 2018 thương mại điện t ử Việt Nam tiếp tục phát triển toàn diện với tốc độ tăng trưởng trên 30% V i s ớ tăng trưở ng cao và liên t c t ụ ừ năm 2015, chúng ta tin tưởng sẽ đạt được m c tiêu 10 t USD lo i hình doanh nghi p vụ ỷ ạ ệ ới người tiêu dùng vào năm
2020 nêu trong K ho ch t ng th phát triế ạ ổ ể ển thương mại điện tử giai đoạn 2016 –
2020”
Hình 1.2 Doanh thu TMDT bán l ẻ Việ t Nam t 2015 2018ừ –
Hình 1.1 Top 5 website thương mại điện tử ở Việt Nam
Trang 12Dự đoán trong 10 năm sắ ới xu hướp t ng mua sắm trên các nền tảng Thương mại điện tử sẽ phát triển mạnh mẽ thay thế d n các mô hình kinh doanh truyền ầthống
1.3 Mc tiêu v chc năng ch nh c a hệ thng
Để có một website bán hàng online ch c h n giao di n c a trang web là mắ ẳ ệ ủ ột điều vô cùng quan trọng, giao di n c n ph i thân thi n v i cệ ầ ả ệ ớ ả máy tnh cũng như thiết b ịdi động, dễ s d ng, b t mử ụ ắ ắt và hướng đến thị hiếu cũng như cảm nh n cậ ủa khách hàng Bên cạnh đó, website cần ph i có tả ốc độ ử x lý nhanh, chính xác, hi u ệquả và ti n l cho cệ ợi ả người mua cũng như người bán - chủ website
Website cần có các chức năng cơ bản của các trang thương mại điện tử như: Người mua có thể đăng k và đăng nhập vào hệ thống để qu n lý tài kho n, gi ả ả ỏhàng, đơn hàng, tương tác với hệ thống như đánh giá, bình luận hay gửi tin nh n ắBên c nh s phát tri n c a m ng xã hạ ử ể ủ ạ ội như Google+ hay Facebook thì việc tích hợp vào hệ thống là m t l i th c a website Vi c tích hộ ợ ế ủ ệ ợp thanh toán điệ ửn t là một chức năng không thể thiếu đố ới các trang web thương mại điệi v n tử Về phía của hàng, người quản trị website có thể qu n lý t t c n i dung cả ấ ả ộ ủa trang web như
là t o các áp phích qu ng cáo cho t ng s n ph m, t o bài vi t thu hút khách hàng, ạ ả ừ ả ẩ ạ ếquản lý s n ph m trong kho, quả ẩ ản lý đơn hàng, thông kê doanh số bán hàng Một website thương mại điệ ử luôn luôn phn t ải hướng đến khách hàng, do vậy sử d ng các y u tụ ế ố tương tác trong trang web là một điều quan trọng, cần sử dụng các hình nh mô ph ng s n phả ỏ ả ẩm đẹp và chất lượng hay những đoạn video hoặc các phương tiện truy n thông xã h i là m t trong nh ng y u t ề ộ ộ ữ ế ố tương tác phổ biến nh t c n phấ ầ ải nghĩ đến khi thi t k website bán hàng ế ế
Trên đây là các vấn đề đặt ra để xây dựng một hệ thống bán hàng trực tuyến trên Internet trong khuôn kh cổ ủa đồ án t t nghi p ố ệ
1.4 Định hướng giải quyết vấn đề
Dựa trên cơ sở mục tiêu và chức năng chnh của hệ thống, cùng với thời gian làm vi c tr c tiệ ự ếp cũng ngôn ngữ PHP và s ng ý c a th y TS Tr nh Anh Phúc, ự đồ ủ ầ ị
em đã quyết định sử dụng ngôn ng PHP là ngôn ng chính s lý logic c a h ữ ữ ử ủ ệthống K t h p v i m t s ngôn ngế ợ ớ ộ ố ữ như HTML, CSS, Javascript để thiết k giao ếdiện Về thanh toán điệ ử, em sử dn t ụng API thanh toán điệ ử của Ngân Lượng n t– một kênh thanh toán online phổ bi n nhế ất nước ta với kh ả năng bảo mật và nhiều phương thúc thanh toán tiện lợi cho người dùng Kết hợp với một số tiện ích của mạng xã hôi như Google+ và Facebook h a h n s ứ ẹ ẽ đem đến cho khách hàng s ự tiện lợi và tho i mãi khi sả ử d ng hụ ệ thống
Với vi c s d ng các ngôn ng l p trình ph bi n và các ti n ích mệ ử ụ ữ ậ ổ ế ệ ạng xã hội kèm theo đã được ch ng minh tính hi u qu qua các website l n, em t tin kh ng ứ ệ ả ớ ự ả
định hệ th ng có thể đáp ứng hoàn ố toàn các yêu cầu đặt ra
1.5 Tóm tắt cơ sở lý thuy t ế
Trang 13Ngôn ng l p trình PHP ữ ậ
1.5.1.1 Giới thi u ệ
PHP là vi t t t c a tế ắ ủ ừ “PHP: Hypertext Preprocessor”, đây là một ngôn ng ữlập trình kịch b n hay m t lo i mã l nh ch yả ộ ạ ệ ủ ếu được dùng để phát tri n các ể ứng dụng vi t cho máy ch , mã ngu n m , m c tiêu chính c a ngôn ng là cho phép ế ủ ồ ở ụ ủ ữcác nhà phát tri n viể ết ra các trang web động m t cách nhanh chóng Nó r t phù ộ ấhợp để phát triển web và có thể dễ dàng nhúng vào các trang HTML Do được tối
ưu hóa cho các ứng dụng web, tốc độ nhanh, nhỏ gọn, cú pháp giống C và Java,
dễ h c và th i gian xây d ng s n phọ ờ ự ả ẩm tương đối ngắn hơn so với các ngôn ng ữkhác nên PHP đã nhanh chóng trở thành m t ngôn ng l p trình web ph ộ ữ ậ ổ biến nhất
thế giớ i
1.5.1.2 L ịch sử hình thành và phát tri n ể
PHP được phát triển từ một sản phẩm có tên là PHP/FI do Rasmus Lerdorf tạo ra năm 1994, ban đầu được xem như là mộ ập con đơn giảt t n của các mã kịch bản Perl để theo dõi tình hình truy cập đến bản sơ yếu lý lịch của ông trên mạng Vào tháng 11 năm 1997, PHP/FI 2.0 được chính thức công bố, sau một thời gian khá dài chỉ được công bố dưới dạng các bản beta Nhưng không lâu sau đó, nó đã được thay thế bởi các bản alpha đầu tiên của PHP 3.0 – phiên bản đầu tiên cho chúng ta th y m t hình nh gấ ộ ả ần gũi với các phiên bản PHP mà chúng ta được biết ngày nay
PHP 3.0 đã chnh thức được công bố vào tháng 6 năm 1998, sau thời gian 9 tháng được cộng đồng kiểm nghiệm PHP 3.0 đã được Andi Gutmans và Zeev Suraski t o ra sau khi vi t lạ ế ại hoàn toàn b mã nguộ ồn trước đó Lý do chính mà h ọ
đã tạo ra phiên bản này là do họ nhận thấy PHP/FI 2.0 h t s c y u kém trong viế ứ ế ệc phát tri n các ng dể ứ ụng thương mại điệ ửn t mà họ đang xúc tiến trong m t dộ ự án của trường đại học Một trong những sức mạnh lớn nhất của PHP 3.0 là các tính năng mở rộng m nh mạ ẽ của nó Ngoài khả năng cung cấp cho người dùng cuối một cơ sở hạ tầng chặt chẽ dùng cho nhiều cơ sở dữ liệu, giao thức và API khác nhau, các tnh năng mở rộng của PHP 3.0 đã thu hút rất nhiều nhà phát triển tham gia và đề xuất các mô đun mở rộng mới
Tháng 5 năm 2000, gần 2 năm sau khi bản PHP 3.0 ra đời, phiên bản PHP 4.0 chính thức được công b Ngoài tố ốc độ ử x lý được c i thi n r t nhi u, PHP 4.0 ả ệ ấ ềđem đến các tnh năng chủ yếu khác g m có s h ồ ự ỗ trợ nhiều máy ch ủ Web hơn, hỗ trợ phiên làm vi c HTTP, t o bệ ạ ộ đệm thông tin đầu ra, nhiều cách xử lý thông tin ngườ ửi s dụng nhập vào bảo mật hơn và cung cấp một vài các cấu trúc ngôn ng ữmới V i PHP 4, s nhà phát tri n dùng PHP ớ ố ể đã lên đến hàng trăm nghìn và hàng triệu site đã công bố cài đặt PHP, chiếm khoảng 20% số tên miền trên mạng Internet
Sau s thành công cự ủa PHP 4.0, ngày 13 tháng 7 năm 2004 PHP 5.0 chnh thức ra mắt sau một thời gian khá dài tung ra các b n ki m tra th bao g m Beta, ả ể ử ồ
RC Mặc dù coi đây là phiên bản sản xuất đầu tiên nhưng PHP 5.0 vẫn còn một số
Trang 14Beta 3 được PHP Team công bố đánh dấu sự chín muồi mới của PHP với sự có mặt c a PDO, mủ ột nỗ l c trong vi c t o ra m t hự ệ ạ ộ ệ thống API nh t quán trong viấ ệc truy cập cơ sở ữ liệ d u và th c hi n các câu truy v n Ngoài ra, trong PHP 5.1, các ự ệ ấnhà phát tri n PHP ti p t c có nh ng c i ti n trong nhân Zend Engine 2, nâng cể ế ụ ữ ả ế ấp
mô đun PCRE lên bản PCRE 5.0 cùng những tnh năng và cải tiến mới trong SOAP, streams và SPL
Hiện nay phiên b n ti p theo cả ế ủa PHP đang được phát tri n, Phiên b n PHP ể ả
6 được kỳ vọng s lẽ ấp đầy nh ng khi m khuy t c a PHP phiên b n hi n tữ ế ế ủ ở ả ệ ại, như là: hỗ trợ namespace, hỗ trợ Unicode, s d ng PDO làm API chu n cho vi c truy ử ụ ẩ ệcập cơ sở dữ liệu, các API cũ sẽ bị đưa ra thành thư viện PECL Phiên bản 6 này chỉ dùng ở việc nghiên c u và th nghi m PHP 7 v i vi c s d ng b nhân Zend ứ ử ệ ớ ệ ử ụ ộEngine m i PHPNG cho tớ ốc độ nhanh g p 2 l n Ngoài rấ ầ a ở phiên b n này còn ảthêm vào r t nhiấ ều cú pháp, tnh năng mới giúp cho PHP tr nên m nh mở ạ ẽ hơn Những tnh năng mới quan tr ng có th k ọ ể ể đến như: khai báo kiểu dữ liệu cho bi n, ếxác định kiểu dữ liệu sẽ ả tr về cho 1 hàm, thêm các toán tử mới
1.5.1.3 Ưu điểm của PHP
PHP là ngôn ng mã ngu n m , có thữ ồ ỡ ể chạy được trên c Apache và IIS do ả
đó so với ASP.NET thì nó phổ biến nhiều hơn, điều đó được minh ch ng b ng s ứ ằ ốlượng các website được thiết kế bằng ngôn ngữ PHP hiện nay Cấu trúc PHP cực
kỳ đơn giản, vậy nên bạn sẽ không mất nhiều thời gian để có thể học được Một khi đã làm chủ được HTML và C, bạn hoàn toàn có thể làm chủ được ngôn ngữ lập trình này
Thư viện của PHP vô cùng phong phú, hệ thống CMS miễn ph dùng tương đối nhiều, cũng như được cộng đồng hỗ trợ ột cách vô cùng mạ m nh m V y nên ẽ ậbạn có th d dàng tìm ngu n tài li u mình cể ễ ồ ệ ần cũng như có thể nhận được s h ự ỗ
trợ m t cách nhanh nhộ ấ t
Trang 15Do chạy được trên máy ch Apache ủ và thường đi cặp cùng với hệ qu n tr ả ị cơ
sở dữ liệu MySQL nên việc cài đặt môi trường phát triển vô cùng đơn giản, thông qua m t bộ ộ cài đặt duy nhất như là: XAMPP trên windows và linux, MAMP trên MacOS
1.5.1.4 PHP Framework
Framework là m t b mã nguộ ộ ồn được xây d ng, phát triự ển và đóng gói –phân ph i b i các chuyên gia l p trình ho c b i các công ty l p trình Nó số ở ậ ặ ở ậ ẽ cung cấp m t c u trúc phát tri n chuộ ấ ể ẩn để các developer dựa vào đó xây dựng và phát triển các d ự án Đi kèm theo nó là một kho thư viện gồm nhi u l p/hàm x ề ớ ử lý được đặt trong các packages ho c namespace riêng Các chuyên gia l p trình sặ ậ ử d ng ụnhiều kỹ thuật l p trình và gi i thuậ ả ật/thuật toán để xây d ng các l p x lý m t cách ự ớ ử ộtối ưu nhất, giải quyết các bài toán lập trình nhanh chóng và chính xác Các lớp trong m t framework s làm vi c t t nh t v i c u trúc chuộ ẽ ệ ố ấ ớ ấ ẩn mà framework đó cung c p ấ
Nhắc đến sự hỗ trợ m nh m c a cạ ẽ ủ ộng đồng cho ngôn ng l p trình PHP thì ữ ậchắc ch n ph i k t i sắ ả ể ớ ự đa dạng c a các PHP Framework: Laravel, Symfonyủ , Codeigniter, CakePHP Các PHP Framework đều được xây d ng theo chu n mô ự ẩhình MVC (Model – View – Controller) và cung cấp r t nhi u l p hấ ề ớ ỗ trợ ử x lý v ềbảo m t, phân quyậ ền, captcha, view helper, module manager, database, service… khi đó các l p trình viên s xây d ng, phát tri n website m t cách d dàng và nhanh ậ ẽ ự ể ộ ễchóng
PHP framework làm cho s phát tri n c a nh ng ng d ng web vi t b ng ự ể ủ ữ ứ ụ ế ằngôn ng PHP tr nên trôi chữ ở ảy hơn, bằng cách cung cấp 1 cấu trúc cơ bản để xây
Hình 1.3 Top các ngôn ng ph bi n 01/2018 ữ ổ ế – chỉ ố s PYPL
Trang 16gian, tăng sự ổn định cho ứng dụng, và gi m thi u s l n ph i vi t l i mã cho lả ể ố ầ ả ế ạ ập trình viên Ngoài ra Framework còn giúp những người m i bớ ắt đầu có th xây d ng ể ựcác ứng d ng ụ ổn định hơn nhờ việc tương tác chnh xác giữa các Database, mã (PHP) và giao di n (HTML) m t cách riêng biệ ộ ệt Điều này cho phép b n dành ạnhiều thời gian để tạo ra các ứng dụng web, hơn là ph thời gian để viết các đoạn
mã l p l i trong m t project ặ ạ ộ
Ý tưởng chung đằng sau cách thức làm việc của một PHP framework được
kể đến là Model View Controller (MVC) MVC là 1 mô hình (ki n trúc) trong lế ập trình, cho phép tách bi t các mã nghi p v ệ ệ ụ (business logic) và giao di n (UI) thành ệcác ph n riêng biầ ệt, điều này đồng nghĩa với việc ta có th ể chỉnh sửa chúng 1 cách riêng l Trong c m tẻ ụ ừ MVC thì: Model (M) có th hi u là ph n x lý các thao tác ể ể ầ ử
về nghi p vệ ụ (business logic), View (V) được hi u là ph n x lý l p giao diể ầ ử ớ ện (presentation layer), và Controller (C) làm nhiệm v lụ ọc các request đc gọi từ user,
có chức năng như 1 route: điều ch nh, phân lu ng các yêu cỉ ồ ầu để ọi đúng Model g
& View thích h p Vợ ề cơ bản, MVC chia nh quá trình x lý c a 1 ng d ng, vì ỏ ử ủ ứ ụthế nên b n có th làm vi c trên t ng thành ph n riêng l , trong khi nh ng thành ạ ể ệ ừ ầ ẻ ữphần khác s không bẽ ị ảnh hưởng tới Thực chất, điều này giúp đỡ bạn lập trình PHP nhanh hơn và t phứ ạp hơn.c t
Trong vài năm qua, PHP đã tiến tri n thành 1 ngôn ngể ữ script đượ ực l a ch n ọbời h u h t các nhà phát triầ ế ển website, đã có 1 sự bùng n v các PHP framework, ổ ề
dẫn đến các cuộc tranh luận lớn về đề tài: PHP framework nào là t t nh t, b i vì ố ấ ởthực tế không phải tất c các framework đều được xây dựng trên khuôn khổ dành ảcho nhiều ngườ ử ụng Dưới đây là 3 framework được đánh giá là tối s d t và ph ổbiến nh t hi n nay: ấ ệ
Laravel
Laravel ra m t vào cu i tháng 04-ắ ố 2011 nhưng đã gây được s chú ý lự ớn đối với cộng đồng PHP framework Laravel được tạo ra bởi Taylor Otwell Nó là 1
Hình 1.4 Top các PHP framework ph bi ổ ến
Trang 17framework khá m i m ớ ẻ nhưng bù lại nó có “hướng d n s dẫ ử ụng” ( Document ) khá đầy đủ, rõ ràng và d hi u và nhiễ ể ều ưu điểm h p d n ấ ẫ Chnh vì nó ra đời sau, khắc phục được những thiếu xót của các framework đàn anh, nên nó đang nắm giữ vị trí s m t vố ộ ề độ ph bi n hi n nay v i nhiổ ế ệ ớ ều tnh năng mạnh m : ẽ
- Route trong Laravel th t sậ ự khác bi t, mệ ới mẻ và đầy mạnh mẻ Mọi url đều
có th qu n lý trong file route ể ả
- Master layout được tích hợp sẵn cùng Blade template giúp code c a chúng ủ
ta trên nên g n gàng và ti n d ng Các file layout có th d dàng extend c a nhau ọ ệ ụ ể ẽ ủgiúp code ng n g n, d qu n lý ắ ọ ễ ả
- Migration qu n lý database ả thật d dàng khi làm viễ ệc đội nhóm
- Eloquent class đầy m nh m n i b t khi x ạ ẽ ổ ậ ử lý cơ sở dữ liệu quan hệ 1 N và –N–N, tối ưu tấ ảt c các câu truy v n ấ
- Composer qu n lý và tích hả ợp các thư viện khác th t hay và không lo l ng ậ ắkhi thư viện đó bị thay đổi, laravel có đầy đủ các thư viện cơ bản đủ để thực hiện mọi yêu c u cầ ủa chúng ta
- Document d c, d hiễ đọ ễ ểu và có đầy đủ các ví dụ Tuy ra đời muộn hơn các framework khác nhưng laravel lại có hướng dẫn chi tiết và đầy đủ ví dụ ngay tại trang ch , các ví vủ ụ để đọc đễ hiểu, cộng đồng phát tri n r ng l n và luôn luôn ể ộ ớđược update k p thời ị
- Eloquent ORM: đây là một ORM tuy t v i vệ ờ ới khả năng migration data và làm vi c t t vệ ố ới MySQL, Postgres, SQL Server và SQLite, MongoDB Các câu truy v n database d hi u, nhanh chóng ấ ễ ể
- Package-libery phong phú, đa dạng, đáp ứng được hầu hết các nhu cầu cơ bản c a chúng ta ủ
- User authentication được tích hợp sẵn, lập trình viên ch c n g i class là có ỉ ầ ọthể s d ng theo ý mu n ử ụ ố
Symfony
Ra mắt và năm 2005, là một framework mạnh m , Symfony là s kẽ ự ết hợp giữa tính v ng b n c a PHP, s t do c a Open Soure vữ ề ủ ự ự ủ ới đặc tính d b o trì cễ ả ủa một mã lập trình được thi t k theo mô hình MVC (Model-ế ế View-Controller).Symfony là m t framework Open Source vi t b ng ngôn ng l p trình PHP5 ộ ế ằ ữ ậSymfony giúp phát tri n ng d ng web thi t k theo yêu c u M t cể ứ ụ ế ế ầ ộ ộng đồng r ng ộlớn các lập trình viên đảm b o vả ề khả năng phát triển, tnh linh động, tự do và tiết kiệm chi phí cho các dự án được phát tri n vể ới Symfony, đây cũng là những đặc tính mà Sutunam luôn chú trọng đưa vào các gi i pháp Open Source c a mình ả ủTrên h t, cùng vế ới Drupal, phpBB và ezPublish, Symfony2 hiện đang là một trong những phiên b n h ả ệ thống qu n tr n i dung (CMS) m i nhả ị ộ ớ ất được viết bằng PHP Symfony có những ưu điểm như:
- Dễ cài đặt và cấu hình trên hầu hết các hệ điều hành và được bảo đảm làm việc t t trên các hố ệ điều hành chu n *nix(Linux và Unix) và Windows ẩ
- Độc l p v i hậ ớ ệ cơ sở ữ liệu d
Trang 18- Dễ dùng trong h u hầ ết các trường hợp nhưng vẫn đủ m m dề ẻo để thích nghi với những trường h p phợ ức t p ạ
- Hoạt động theo cấu hình định trước – l p trình viên ch c n c u hình trong ậ ỉ ầ ấnhững trường hợp riêng biệt không theo quy ước
- Tuân theo nh ng hoữ ạt động và m u thi t k t t nh t ẫ ế ế ố ấ
- Sẵn sàng cho môi trường xí nghi p thích nghi v i nh ng chính sách và ệ – ớ ữkiến trúc công nghệ thông tin và đủ ổn định cho nh ng d án dài h n ữ ự ạ
- Được thi t kế ế theo mô hình Model-View-Controller: Mô hình MVC giúp tá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ệc thi 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 cao khả 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) So vỉ ồ ầ ới các PHP framework khác như CakePHP (1.3MB), Symfony (5.08MB) hay Zend Framework (5.66MB)…kch thước c a CodeIgniter giúp gi m thiủ ả ểu đáng kểkhông gian lưu trữ
- Tốc độ nhanh: CodeIgniter được đánh giá là PHP framework có tốc độ nhanh nh t hi n nay 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átt 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 t thâ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ư truy cậ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 19 Trên đây liệt kê m t sộ ố tnh năng, đặc điểm n i b t c a 3 php framework ổ ậ ủphổ bi n hi n nay, m i Framework có mế ệ ỗ ột tnh năng và đặc điểm riêng, tùy theo từng đặc điểm của dự án, khách hàng mà ta có thể chọn một framework phù h p ợTrong khuôn khổ đồ án tốt nghiệp này, em đã lựa chọn Laravel để phát triển đồ
Nhưng cũng chnh vì ra đời muộn màng như thế đã buộc nó phải học hỏi cái hay từ các PHP Framework đàn anh đi trước, khắc phục những thiếu xót của các framework khác như symfony (laravel dùng thư viện của symfony) và đặc biệt là
CI Không nh ng h c h i t các PHP Framework, nó còn h c cái hay tữ ọ ỏ ừ ọ ừ Ruby on Rails, ASP.NET MVC, và Sinatra
Vào khoảng Tháng 3 năm 2015, các lập trình viên đã có một cuộc bình chọn PHP framework ph bi n nhổ ế ất, Laravel đã giành vị trí quán quân cho PHP framework ph bi n nhổ ế ất năm 2015, theo sau lần lượt là Symfony2, Nette, CodeIgniter, Yii2 vào một số khác Trước đó, Tháng 8 năm 2014, Laravel đã trởthành project PHP ph bi n nhổ ế ất và được theo dõi nhi u nh t trên Github Laravel ề ấđược phát hành theo giấy phép MIT, với source code được lưu trữ ại Github t
1.5.2.2 L ịch sử hình thành và phát tri n ể
Bản phát hành beta đầu tiên của Laravel được phát hành vào ngày 9 tháng 6 năm 2011, tiếp theo là bản phát hành Laravel 1 sau đó trong cùng một tháng Laravel 1 bao g m h ồ ỗ trợ tích h p cho xác th c, bợ ự ản địa hóa (localisation), models, views, sessions, định tuyến (routing) và các cơ chế khác, nhưng thiếu hỗ trợ cho các b ộ điều khiển (controller) ngăn cản nó tr thành m t MVC framework th c s ở ộ ự ựLaravel 2 được phát hành vào tháng 9 năm 2011, mang lại nhiều c i ti n khác ả ếnhau t tác gi và cừ ả ộng đồng Các tnh năng chnh mới bao g m s hồ ự ỗ trợ cho các
bộ điều khiển (controller), nó đã làm cho Laravel 2 trở thành m t framework tuân ộthủ đầy đủ MVC, hỗ trợ ẵn cho nguyên lý điều khi n (IoC) và m t h s ể ộ ệ thống templating gọi là Blade Nhược điểm, hỗ trợ cho các gói c a bên th ba (third-ủ ứparty packages) đã được gỡ bỏ trong Laravel 2
Laravel 3 được phát hành vào tháng 2 năm 2012 với một loạt các tnh năng
Trang 20xử lý events và hệ thống đóng gói được g i là Bundles K tọ ể ừ bước nh y vả ọt ởphiên b n này, ta ch ng ki n sả ứ ế ự gia tăng người dùng (developer) và mức độ ph ổbiến của Laravel tăng chóng mặt
Laravel 4, được đặt tên là Illuminate , được phát hành vào tháng 5 năm 2013
Nó được viết thành một khung hoàn ch nh c a Laravel framework, di chuy n b ỉ ủ ể ốcục c a nó thành m t t p các gói riêng biủ ộ ậ ệt được phân ph i thông qua Composer, ốphục vụ như một trình quản lý gói ứng d ng Cách bụ ố tr như vậy đã cải thi n kh ệ ảnăng mở rộng của Laravel 4 Các tnh năng mới khác trong b n phát hành Laravel ả
4 bao g m database seeding, hồ ỗ trợ hàng đợi (queue) tin nh n, hắ ỗ trợ cho vi c gệ ửi các lo i email khác nhau và hạ ỗ trợ xóa các bản ghi cơ sở dữ liệu dạng SoftDelete (không xóa h n kh i database) ẳ ỏ
Laravel 5 được phát hành vào tháng 2 năm 2015 là kết quả của những thay đổi nội bộ đã kết thúc trong việc thay đổ ản phát hành Laravel 4.3 trong tương i blai Các tnh năng mới trong bản phát hành Laravel 5 bao g m hồ ỗ trợ ậ l p kế hoạch (scheduling) các tác vụ được th c hiự ện định k thông qua gói có tên Scheduler, ỳmột l p trớ ừu tượng (abstraction layer) có tên Flysystem cho phép lưu trữ t xa cách ừdùng tương tự như trên local, cải thiện việc xử lý tài sản gói thông qua Elixir (giờ
đổi tên thành Laravel Mix), h tr xác th c bên th 3 đơn giản thông qua gói ỗ ợ ự ứLaravel 5 cũng giới thi u cệ ấu trúc cây thư mục m i cho các ớ ứng dụng đã phát triển Vừa qua, ngày 3 tháng 9 năm 2019 Laravel đã phát hành chnh thức phiên bản 6 với nhiều tnh năng cả ếi ti n so v i phiên b n 5 ớ ả
1.5.2.3 Ưu điểm của Laravel
Tốc độ xử lý nhanh: Sự ra đờ ủa Laravel như mội c t luồng gió mới thổi vào cộng đồng framework PHP N n t ng này có th hề ả ể ỗ trợ ạ t o nên các trang web l n, ớ
dự án l n R t nhi u công ty công nghớ ấ ề ệ đã sử ụ d ng n n tề ảng để phát tri n các s n ể ảphẩm cho công ty c a h ủ ọ
Dễ dàng s d ng: M t trong nh ng lý do khiử ụ ộ ữ ến Laravel nhanh chóng được cộng đồng người dùng đón nhận và s d ng nhi u là do nó r t dử ụ ề ấ ễ để có th s ể ửdụng Ngay c khi b n ch m i ch có nh ng ki n thả ạ ỉ ớ ỉ ữ ế ức cơ bản nh t vấ ề ậ l p trình web v i PHP, thì ch mớ ỉ ất vài gi là b n có th b t tay vào vi c làm m t project ờ ạ ể ắ ệ ộnhỏ v i Laravel ớ
Mã ngu n mồ ở: Laravel framework được xây dựng v i mã ngu n mớ ồ ỡ và hoàn toàn miễn ph Do đó, bạn không c n ph i quaầ ả n tâm đến vi c tr thêm phí khi m ệ ả ởrộng ng d ng hay trang web c a mình M i l n n n tứ ụ ủ ỗ ầ ề ảng này được c p nh t, b n ậ ậ ạlại có cơ hội khám phá thêm nhiều tnh năng độc đáo và ứng d ng vào các sụ ản phẩm công nghệ mà mình đang triển khai
Được xây dựng theo đúng chuẩn WVC: WVC là tiêu chu n thi t kẩ ế ế web, bất
kì website nào được đánh giá theo đúng chuẩn này thì đều sẽ hoạt động tốt và ít nhiều mang l i nhạ ững hi u quệ ả thực sự dành cho công ty, đơn vị sở hữu nó
Mô hình MVC: là m t ki n trúc ph n mộ ế ầ ềm hay mô hình thiết kế được sử dụng trong kỹ thuật ph n m m Nó giúp cho các developer tách ng d ng c a h ầ ề ứ ụ ủ ọ
ra 3 thành ph n khác nhau Model, View và Controller M i thành ph n có mầ ỗ ầ ột
Trang 21nhiệm v riêng biụ ệt và độ ậc l p v i các thành ph n khác V i tiêu chu n này, các ớ ầ ớ ẩcấu trúc và cách tổ chức code trong d án c a b n sự ủ ạ ẽ được s p x p m t cách hắ ế ộ ợp
lý d dàng cho viễ ệc duy trì cũng như phát triển v lâu dài ề
Tích h p s n nhiợ ẵ ều tnh năng: Bản thân Laravel đã cung cấp cho người dùng rất nhiều các nhóm tnh năng giúp quá trình phát triển trở nên nhanh chóng hơn rất nhiều l n ầ
Module đa dạng: Laravel được xây d ng dự ựa trên hơn 20 thư viện khác nhau Hiểu được cách thiết kế framework khi n các l p trình hoàn toàn có thế ậ ể đóng góp cho framework cũng như mở rộng chúng một cách dễ dàng
Tính b o mả ật cao: Để giúp lập trình viên có th tể ối đa thời gian t p trung vào ậviệc phát triển các tnh năng mình cần, Laravel đã cung cấp sẵn cho người dùng các tnh năng bảo mật cơ bản như: ORM của Laravel sử dụng PDO thay vì mysqli
để ch ng l i t n công SQL Injection, Laravel s d ng m t field token ố ạ ấ ử ụ ộ ẩn để chống lại t n công ki u CSRF, Các biấ ể ến được đưa ra view mặc định đều được Laravel escape để tránh tấn công XSS Do đó, khi thiết kế web với Laravel, b n không cạ ần quá lo l ng vắ ề kh năng bảo mật hay mất nhi u thả ề ời gian để cài đặt hay tối ưu thêm cho tnh năng này Tất cả đã có sẵn với Laravel
Cộng đồng người dùng rộng lớn: Như nhiều nền tảng mã ngu n mồ ở khác, Laravel Framwork cũng có cộng đồng người dùng rộng rãi và sẵn sàng hỗ trợ bạn trong quá trình thi t l p và v n hành dế ậ ậ ự án Đặc biệt việc fix bug hay tìm lỗi trở nên nhanh chóng, d dàng và ti t ki m thễ ế ệ ời gian hơn rất nhiều
HTML, CSS và JavaScript
1.5.3.1 HTML
HTML là ch ữ viế ắt cho “HyperText Markup Language”, hay là "Ngôn ngữ t tĐánh dấu Siêu văn bản" là một ngôn ngữ đánh dấu được thi t kế ế ra để tạo nên các trang web v i các mớ ẩu thông tin được trình bày trên World Wide Web Cùng với CSS và JavaScript, HTML t o ra b ba n n t ng kạ ộ ề ả ỹ thuật cho World Wide Web HTML được định nghĩa như là một ứng dụng đơn giản của SGML và được sử dụng trong các t ổ chức cần đến các yêu c u xu t b n ph c tầ ấ ả ứ ạp HTML đã trở thành một chu n Internet do tẩ ổ chức World Wide Web Consortium (W3C) duy trì HTML được sáng tạo bởi Tim Berners-Lee, nhà vật lý học của trung tâm nghiên c u CERN ứ ở Thụy Sĩ Anh ta đã nghĩ ra được ý tưởng cho hệ thống hypertext trên n n Internet Anh xu t b n phiên bề ấ ả ản đầu tiên của HTML trong năm
1991 bao g m 18 tag HTML Tồ ừ đó, mỗi phiên b n m i cả ớ ủa HTML đều có thêm tag mới và attributes m i Nâng c p m i nh t gớ ấ ớ ấ ần đây là vào năm 2014, khi ra mắt chuẩn HTML5
1.5.3.2 CSS
CSS là chữ viế ắt cho “Cascading Style Sheets”, đượt t c s dử ụng để mô tả giao diện và định d ng c a mạ ủ ột tài liệu vi t b ng ngôn ng ế ằ ữ đánh dấu (markup) Nó cung c p mấ ột tnh năng bổ sung cho HTML Nó thường được s d ng v i HTML ử ụ ớ
Trang 22để thay đổi style của trang web và giao diện người dùng Nó cũng có thểđược s ửdụng v i b t kớ ấ ỳ loại tài li u XML nào bao g m cệ ồ ả XML đơn giản, SVG và XUL CSS được phát tri n bể ởi W3C (World Wide Web Consortium) vào năm 1996, nhằm mục đch: Hạn chế tối thiểu vi c làm r i mã HTML c a trang Web b ng các ệ ố ủ ằthẻ quy định kiểu dáng khiến mã nguồn của trang Web được gọn gàng hơn, tách nội dung của trang Web và định d ng hi n th , d dàng cho vi c c p nh t n i dung; ạ ể ị ễ ệ ậ ậ ộTạo ra các ki u dáng có th áp d ng cho nhi u trang Web, giúp tránh ph i l p lể ể ụ ề ả ặ ại việc định dạng cho các trang Web giống nhau
Giống như HTML, CSS không thực sự là một ngôn ngữ lập trình mà là một ngôn ng nh ki u ữ đị ể – style Điều này có nghĩa là nó cho phép bạn áp dụng ki u có ểchọn l c cho các ph n t trong tài li u HTML ọ ầ ử ệ
1.5.3.3 JavaScript
JavaScript là m t ngôn ng l p trình k ch bộ ữ ậ ị ản đa nề ản t ng (cross-platform), hướng đối tượng Nó chủ yếu được sử dụng để tăng cường cung cấp trải nghiệm thân thiện hơn với người dùng website như là bao gồm các trang web c p nh t t ậ ậ ựđộng, c i ti n giao diả ế ện người dùng như menu và hộp thoại, hình động, đồ họa 2D
và 3D, bản đồ tương tác, trình phát video JavaScript là một ngôn ng nh và nhữ ỏ ẹ, chạy trong môi trường máy chủ lưu trữ (trình duyệt web) Nó có thể được kết nối với các đối tượng của môi trường để cung cấp kiểm soát chương trình đối với chúng
JavaScript được phát tri n b i Brendan Eich t i Hãng truy n thông Netscape ể ở ạ ềvới cái tên đầu tiên Mocha, rồi sau đó đổi tên thành LiveScript, và cu i cùng thành ốJavaScript Giống Java, JavaScript có cú pháp tương tự C, nhưng nó gần với Self hơn Java Hiện nay phiên b n mả ới nhất của JavaScript là ECMAScript 7 với nhiều cải tiến vượ ật b c so v i phiên b n ti n nhiớ ả ề ệm
JavaScript là ngôn ng k ch b n phía máy khách (client-side) duy nh t Do ữ ị ả ấ
đó, nó được s d ng trên h u h t các trang web mà b n nhìn th y trên internet Tuy ử ụ ầ ế ạ ấnhiên cú pháp c a nó vô cùng l n x n và khó làm chủ ộ ộ ủ, do đó Jquery – một thư viện của JavaScript ra đời nhằm giúp l p trình viên xây d ng nh ng chậ ự ữ ức năng có sửdụng Javascript tr nên dở ễ dàng hơn như: đơn giản hóa việc duyệt tài liệu HTML,
xử lý sự kiện, hoạt ảnh và tương tác Ajax để phát triển web nhanh chóng jQuery
là m t b công c JavaScript g n nhộ ộ ụ ọ ẹ nhưng đầy m nh mạ ẽ, được ch ng minh qua ứhơn 90% các website trên thế giới sử dụng (trừ các website chạy bằng JavaScript Framework)
Môi trường phát triển ng dng
1.5.4.1 Apache WebServer
Apache là m t ph n m m mã ngu n mộ ầ ề ồ ở miễn ph được cài đặt trên các máy chủ web server (ph n cầ ứng) để xử lý các yêu c u g i t i máy chầ ử ớ ủ dưới giao thức HTTP Tên chính th c cứ ủa Apache là Apache HTTP Server, được điều hành và phát tri n b i Apache Software Foundation Apache là m t trong s nh ng web ể ở ộ ố ữserver lâu đời và đáng tin cậy nhất, phiên bản đầu tiên đã được ra mắt từ hơn 20
Trang 23Apache WebServer phân tích các yêu c u t trình duyầ ừ ệt, sau đó xử lý yêu cầu với các file ngôn ngữ lập trình như là PHP, Python, Java, thành file HTML và trả về cho người dùng web trên trình duyệt để ể hi n th ị
1.5.4.2 MySQL
MySQL là h qu n trệ ả ị cơ ở ữ liệ ự s d 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, đặc biệt l cà ác ứng d ng website v nụ à ó thường đi kế ợt h p v i ngôn ng l p tr nh PHP ớ ữ ậ ì
để xây d ng các ng dụng ự ứ website MySQL được các hệ thống web ưa chuộng là
vì tốc độ ử ý cao, d s d ng, x l ễ ử ụ ổn định, v à tương thch với các hệ điều h nh thông àdụng hi n ệ nay như Linux, Window, Mac OS X, Unix, FreeBSD…
1.5.4.3 XAMPP
Apache và MySQL là hai y u tế ố c n thi t cầ ế ấu thành nên môi trường phát tri n ểứng dụng web b ng ngôn ng ằ ữ PHP Do đó XAMPP ra đời nhằm mục đch kết hợp tất c các y u tả ế ố c u thành WebServer trong mấ ột chương trình
XAMPP là chương trình tạo máy chủ Web (Web Server) được tích hợp sẵn Apache, PHP, MySQL, FTP Server, Mail Server và các công cụ như phpMyAdmin XAMPP có chương trình quản lý khá tiện lợi, cho phép chủ động bật t t ho c khắ ặ ởi động l i các d ch vạ ị ụ máy ch b t kủ ấ ỳ lúc nào Nhìn chung XAMPP được xem là m t bộ công cụ hoàn ch nh dành cho lập trình viên PHP trong việc ộ ỉthiết l p và phát tri n các website ậ ể
Thanh toán điện tử Ngân Lượng
NgânLượng.vn là V điện tử và C ng Thanh toán Tr c tuy n (TTTT) tiên ổ ự ếphong và uy tn hàng đầu tại Việt Nam, cả về ả s n ph m d ch vẩ ị ụ, độ ph ủ thị trường
và lưu lượng thanh toán Được phát tri n b i Nexttech Group (ti n thân là ể ở ềPeaceSoft Group) từ năm 2009 Ngân Lượng cho phép các cá nhân và doanh nghiệp gửi và nh n ti n thanh toán trên Internet mậ ề ột cách nhanh chóng, an toàn và
tiện lợ i
Giải pháp tích h p dùng cho các weợ bsite bán hàng online, sàn thương mại điệ ửn t (Wordpress, Joomla, Magento, ) cần tích hợp chức năng thanh toán trực tuyến, cho phép người mua thanh toán trên các kênh Online như ATM, Internet Banking, Thẻ Quố ếc t (visa, maste, JCB, Amex), QRCode, Chuy n kho n ngân ể ảhàng Các phương thức thanh toán hỗ trợ bao gồm:
- Thẻ qu c t ( VISA, Master, JCB, Amex ) ố ế
- Thẻ ATM nội địa
- Internet Banking
- QR-Code Mobile Banking
- V điện tử trong và ngoài nước
- Chuyển kho n ngân hàng ả
- Tiền m t t i qu y ặ ạ ầ
- Thẻ trả trước
Trang 24Hiện t i Ngân ạ Lượng đang cung câp ba hình thức tích hợp thanh toán trên Website là:
- Checkout Tiêu chu n: là các hình th c nẩ ứ gười dùng ch n thanh toán thì s ọ ẽđược chuyển hướng sang Ngân Lượng để tiến hành thanh toán
- Checkout Nâng cao: là các hình thức thanh toán được hi n th ngay trên ể ịwebsite người bán
Hình 1.5 Quy trình Checkout tiêu chu ẩn
Trang 25- Seamless Checkout: là các hình thức thanh toán được hi n th ngay trên ể ịwebsite người bán và người mua thực hiện xác thực giao dịch trên hệ thống (web/app) c a merchant ho c ngân hàng ủ ặ
Hình 1.6 Quy trình Checkout nâng cao
Hình 1.7 Quy trình Seamless Checkout
Trang 26Kết lu n ậ
Qua nội dung của chương 1, em đã trình bày hiểu biết về nhu cầu, th c trự ạng của thương mại điện t ử cũng như xây dựng các kênh giao tiếp, bán hàng… và cũng
đã lựa chọn được giải pháp công nghệ để phát tri n website trên n n t ng Laravel, ể ề ả
hệ qu n trả ị cơ sở ữ liệu MySQL, k t h p cùng v i HTML, CSS, JavaScript T d ế ợ ớ ừ
cơ sở này, ở chương 2 em sẽ tiếp tục đi tìm hiểu khảo sát thực tế các nghiệp vụ, chức năng cần thiết cho hệ thống website bán điện thoại
Trang 27CHƯƠNG 2. PHÂN TÍCH VÀ THIẾT KẾ HỆ THỐNG
Nội dung: Chương 2 trình bày các yêu cầu đặt ra cho hệ thống, các tác nhân của hệ thống Đồng thời đưa ra các chức năng, ểu đồ bi UseCase và biểu đồ hoạt động cho từng tác nhân đó Trên cơ sở phân tích trên em s ẽ thiế ết k các b ng trong ả
cơ sở dữ liệu và quan hệ của chúng
2.1 Các yêu cầu đặt ra cho h ệ thng
Hệ thống là một website thương mại điệ ửn t nên mọi doanh thu và lợi nhuận đều đến từ pha khách hàng Do đó các yêu cầu đặt ra cho hệ thống cũng phải phù hợp v i nhu c u c a khách hàng ớ ầ ủ
Yêu c u v giao di n website: ph có giao di n thân thi n, b t m t, d s ầ ề ệ ải ệ ệ ắ ắ ễ ửdụng, phù h p vợ ới th yị ếu và nhu c u cầ ủa người dùng Không nên có quá nhiều hiệu ứng, hoa m , lòe lo t, nhi u chi ti t không c n thi t gây mỹ ẹ ề ế ầ ế ỏi mắt Trang chủ phải hi n thể ị bao quat toàn b hộ ệ thống và ph i làm n i b t nh ng s n ph m m i, ả ổ ậ ữ ả ẩ ớsản phẩm ưa chuộng H ệ thống ph i có các trang gi i thiả ớ ệu, trang hướng d n, trang ẫchnh sách để người dùng có thể tìm được thông tin và t o sạ ự tin tưởng cho khách hàng
Về hiệu năng của hệ thống: hệ thống ph i có hiả ệu năng xử lý yêu cầu của khách hàng nhanh nh t có th , ngay l p t c ph i h i lấ ể ậ ứ ả ồ ại khi người dùng click vào một chức năng cụ thể Bên cạnh hiêu năng nhanh còn phải x lý chính xác yêu c u ử ầcủa khách hàng và đảm bảo an toàn bảo mật cho khách hàng
Về các chức năng của hệ thống: đảm bảo hệ thống có đầy đủ chức năng cần thiết c a mủ ột trang thương mại điện tử Khách hàng có thể tạo tài khoản và đăng nhập, tìm ki m, thêm s n ph m vào giế ả ẩ ỏ hàng, mua hàng và thanh toán Người quản trị có th qu n lý t t cể ả ấ ả các người dùng trong hệ thống, qu n lý s n ph m, ả ả ẩquản lý đơn hàng, thống kê doanh số
Trên đây là các yêu cầu cơ bản c a mủ ột trang thương mại điện t trong khuôn ửkhổ của đồ án t t nghi p này ố ệ
hệ thống thanh toán điện tử (Online Payment) do tích hợp thanh toán bên th ba ứ
Guest: là những người truy cập vào website nhưng chưa đăng nhập Mục đch của hệ thống hướng tới những tác nhân này ch nh m qu ng bá cho website, ỉ ằ ả
do đó những tác nhân này chỉ được sử d ng các chụ ức năng cơ bản như: tìm kiếm, xem s n ph m, bài viả ẩ ết, chnh sách, đánh giá – bình lu n c a nhậ ủ ững người dùng
Trang 28đăng nhập, khuyến mại của cửa hàng và được hỗ trợ trực tuyến từ c a hàng thông ửqua messenger
User: là những người dùng đã đăng nhập vào hệ thống Nh ng tác nhân này ữ
là mục đch chnh mà hệ thống hướng tới do đó ngoài các chức năng cơ bản mà Guest được sử dụng thì còn được sử dụng thêm nhiều chức năng nâng cao khác, như là: quản trị tài khoản, mua s n phả ẩm, đánh giá – bình lu n v 1 bài vi t hay ậ ề ếsản phẩm Hơn nữa nh ng tác nhân này còn có th nhữ ể ận được thông báo t h ừ ệthống v tình trề ạng đơn hàng, chương trình khuyến m i m i nh t, tri ân khách ạ ớ ấhàng
Admin: là tác nhân giữ vai trò chính trong hệ thống website Là người điều
hành, qu n lý và theo dõi m i hoả ọ ạt động c a hủ ệ thống Tác nhân có thể thực hiện được tất c chức năng quản tr trong hệ thống như là: quản lý kho hàng, quản lý ả ịbài vi t, qu n lý các tài kho n thành viên khác, xế ả ả ử lý đơn hàng, thống kê doanh thu, hỗ trợ và ph n h i cho khách hàng ả ồ
Online Payment: là kênh thanh toán điện tử được hệ thống tin tưởng và tích
hợp vào nh m mằ ục đch giúp cho người dùng tiện lợi hơn trong việc thanh toán khi mua hàng, người quản tr ịcũng dễ kiểm soát được doanh s ố cũng như tài chnh của c a hàng Tác nhân này chử ỉ tác động đến hệ thống khi người dùng tiến hành thanh toán khi mua s n ph m bả ẩ ằng phương thức thanh toán online M i xác thọ ực tài kho n và tiả ến hành thanh toán đều được hệ thống y quy n cho tác nhân này ủ ềSau khi thanh toán, tác nhân này sẽ trả ạ l i cho hệ thống m mã thông báo tr ng ột ạthái thanh toán có th là thành công ho c th t b i, hể ặ ấ ạ ệ thống s d a hoàn toàn vào ẽ ự
mã trạng thái này để quyết định tác v nào sụ ẽ được th c hi n ti p theo ự ệ ế
Hình 2.1 Các tác nhân c a hủ ệ thống
Trang 292.3 Biểu đồ UseCase ca h ệ thng
Biểu đồ UseCase tổng quát
Hình 2.2 Biều đồ UseCase t ng quátổ
Trang 30Biểu đồ UseCase chi tiết với từng tác nhân
2.3.2.1 Biểu đồ UseCase với tác nhân Guest
Hình 2.3 Bi ểu đồ UseCase v i tác nhân Guestớ
Trang 312.3.2.2 Biểu đồ UseCase với tác nhân User và Online Payment
Trang 322.3.2.3 Biểu đồ UseCase với tác nhân Admin
Hình 2.5 Bi ểu đồ UseCase v i tác nhân Adminớ
Trang 342.4.1.2 UseCase đăng ký
B ảng 2.1 B ảng đặ ả UseCase đăng ký c t
Tên UseCase Đăng ký
Mô T ả Cho phép khách hàng đăng ký tài khoản
Tác Nhân Người dùng chưa đăng nhập (Guest)
Điều kiện đầu vào Khi người dùng chưa có tài khoản chọn chức năng đăng ký
Điều kiện đầu ra Người dùng đăng ký thành công hoặc hủy đăng ký
- Người dùng chọn đăng ký bằng form đăng ký: sau khi điền đầy đủ thông tin và ấn nút gửi, h ệ thống s gẽ ửi email xác nhân đăng ký
Người dùng ấn vào link trong email và đợi thông báo k t qu t hế ả ừ ệ thống
Dòng sự kiện ph ụ
- Khi tài kho n facebook ho c google không ả ặchính xác hoặc đã đăng ký, hệ thống s hiẽ ển thị thông báo và quay lại trang đăng ký
- Khi người dùng nh p thông tin tài khoậ ản vào form đăng ký không chnh xác hoặc đã tồn t i, hạ ệ thống s hi n th thông báo và ẽ ể ịquay lại trang đăng ký
Hình 2.6 Bi ểu đồ UseCase đăng ký
Trang 352.4.1.3 Biểu đồ ạt độ ho ng chức năng đăng ký
Mô t biả ểu đồ hoạt động:
Chức năng đăng ký được kích hoạt khi người dùng truy cập vào trang đăng
ký, hệ thống s hi n th giao diẽ ể ị ện đăng ký Tại đây người dùng có thể chọ đăng n
ký bằng form đăng ký bằng cách điền đầy đủ thông tin trên form hi n th r i click ể ị ồ
Hình 2.7 Biểu đồ hoạt động chức năng đăng ký
Trang 36trang đăng ký và hiển thị trường không đạt yêu cầu Nếu thông tin đạt yêu cầu, hệ
thống sẽ lưu dữ ệu ngườli i dùng vào database với trạng thái tài khoản chưa được kích ho t và g i email kích ho t vào ạ ử ạ email người dùng vừa đăng ký Người dùng kiểm tra email và click vào đường link kích ho t tài khoạ ản, sau đó hệ thống s ẽchuyển d ữ liệu người dùng sang rạng thái đã kch hoạt và kết thúc chức năng đăng
ký
Trường h p n u không muợ ế ốn đăng ký trược tiếp, người dùng có th click vào ểnút Facebook hoặc Google trên trang đăng ký để đăng ký thông qua tài khoản mạng xã hội Trong trường h p này hợ ệ thống sẽ chuyển hướng đến trang xác thực của mạng xã hội đó, người dùng điền đầy đủ thông tin đăng nhập mạng xã h i, sau ộkhi xác th c thành công, hự ệ thống s l y dẽ ấ ữ liệu tài kho n m ng xã h i cả ạ ộ ủa người dùng lưu vào database sau đó tự động đăng nhập và chuyển hướng đến trang ch ủ
và facebook Chức năng này áp dụng cho tác nhân khách hàng đã có tài khoản nhưng chưa đăng nhập (Guest)
Trang 372.4.2.2 UseCase đăng nhập
B ảng 2.2 B ảng đặ ả UseCase đăng nhập c t
Tên UseCase Đăng nhập
Mô T ả Cho phép khách hàng đăng nhập tài khoản
Tác Nhân Người dùng chưa đăng nhập (Guest)
Điều kiện đầu vào Khi người dùng đã có tài khoản và chưa đăng nhập chọn chức năng đăng nhập
Điều kiện đầu ra Người dùng đăng nhập thành công ho c hđăng nhập ặ ủy
- Người dùng chọn đăng nhập bằng form đăng nhậ sau khi điền đầy đủp: thông tin và
ấn nút đăng nhập, hệ thống sẽ kiểm tra, nếu thành công sẽ chuyển hướng đến trang ch ủhoặc trang qu n trả ị tùy thuộc vào lo i tài ạkhoản
Dòng sự kiện ph ụ
- Khi tài kho n facebook hoả ặc google chưa đăng ký, hệ thống sẽ tự động đăng ký và chuyển hướng đến trang chủ
- Khi người dùng nh p thông tin tài khoậ ản vào form đăng nhập không chính xác, hệ thống s hi n th thông báo và quay l i trang ẽ ể ị ạ
Hình 2.8 Bi ểu đồ UseCase đăng nhập
Trang 382.4.2.3 Biểu đồ ạt độ ho ng chức năng đăng nhập
Trang 39bằng form đăng nhập bằng cách điền đầy đủ thông tin trên form hi n th và n nút ể ị ấđăng nhập Hệ thống sẽ kiểm tra thông tin đăng nhập, nếu sai hệ thống sẽ hiển thị lại trang đăng nhập cùng thông báo lỗi, nếu thành công hệ thống sẽ lưu dữ liệu đăng nhập vào session và chuyển hướng đến trang chủ nếu người dùng đăng nhập bằng thông tin tài khoản thường ho c trang qu n tr nặ ả ị ếu người dùng điền thông tin tài kho n qu n tr ả ả ị
Người dùng cũng có thể chọn đăng nhập bằng tài khoản mạng xã hội như Facebook ho c Google nặ ếu click vào nút đăng nhập b ng tài kho n m ng xã h i ằ ả ạ ộKhi đó hệ thống sẽ chuyển hướng đến trang xác thực tương ứng với mạng xã hội
đó Nếu xác thực thành công, hệ thống sẽ lấy thông tin người dùng để đối chiếu với database, nếu người dùng chưa đăng ký bằng tài khoản đó thì hệ thống s t ẽ ựđộng đăng ký, lưu dữ liệu vào database và session sau đó chuyển hướng đến trang chủ và k t thúc chế ức năng đăng nhập
Chc năng quên mật khẩu
2.4.3.1 Mô t ả chức năng
Chức năng này cho phép người dùng đặt lại mật khẩu khi bị quên Sau khi điền chính xác thông tin tài khoản, hệ thống sẽ xác minh và gửi email để người dùng có thể đặ ạt l i m t kh u Chậ ẩ ức năng này áp dụng cho tác nhân người dùng có tài khoản nhưng quên mật kh u (Guest) ẩ
Trang 402.4.3.2 UseCase quên mật kh u ẩ
B ảng 2.3 Bảng đặ ảc t UseCase quên m t kh u ậ ẩ
Tên UseCase Quên m t kh u ậ ẩ
Mô T ả Cho phép khách hàng đặt lại mật khẩu
Tác Nhân Người dùng chưa đăng nhập (Guest)
Điều kiện đầu vào Khi người dùng đã có tài khoản và quên mật khẩu ch n chọ ức năng đăng nhập
Điều kiện đầu ra Người dùng thay đổi mật khẩu thành công hoặc h y l y l i m t kh u ủ ấ ạ ậ ẩ
Dòng sự kiện chính
Khi người dùng chọn chức năng quên mật khẩu ở trang đăng nhập, sau khi điền thông tin đăng ký và ấn nút lấy lại mật kh u, hệ ẩthống s g i email quên m t kh u kèm link ẽ ử ậ ẩ
có chứa token để truy cập trang đặ ạt l i mật khẩu
Sau khi điền mật khẩu mới và xác nhận, hệ thống s thông báo kẽ ết qu N u thành công, ả ếkết thúc ca sử d ng và quay l i trang ch ụ ạ ủ
Dòng sự kiện ph ụ
Khi người dùng nhập email hoặc số điện thoại chưa được đăng ký tài khoản vào form lấy l i m t kh u, hạ ậ ẩ ệ thống s gẽ ửi thông báo lỗi và quay l i trang quên m t kh u ạ ậ ẩ
Hình 2.10 Bi ểu đồ UseCase quên m t khậ ẩu