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
Trang 1TRƯỜNG ĐẠI HỌC THỦ DẦU MỘT VIỆN 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Ệ CHO CÔNG TY TNHH ABC
GVHD: Th.S NGUYỄN HỮU VĨNH SVTH: VĂN ĐỨC QUÝ
MSSV: 1824801030173 LỚP: D18PM03
B=NH DƯƠNG – 11/2021
Trang 2TRƯỜNG ĐẠI HỌC THỦ DẦU MỘT VIỆN 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Ệ CHO CÔNG TY TNHH ABC
GVHD: Th.S NGUYỄN HỮU VĨNH SVTH: VĂN ĐỨC QUÝ
MSSV: 1824801030173 LỚP: D18PM03
B=NH DƯƠNG – 11/2021
Trang 3PHIẾU ĐÁNH GIÁ PROJECT
(Đánh giá quá trình thực hiện, báo cáo văn bản và sản phẩm)
Khá 75%
Trung bình 50%
Kém 0%
Thái độ
tham gia
tích cực
Nêuýtưởng
05
Tích cựctìm kiếm
và chủđộngđưa ra ýtưởngmangtính mới
Tìm kiếm
và đưa rađược ýtưởng khátốt
Chọn ýtưởng trong
số được đềnghị
Khôngquantâm lựachọn ýtưởng
Lậpkếhoạchthựchiện
05
Hoàntoàn hợplý,khôngcần điềuchỉnh
Khá hợp lý,điều chỉnhchút ít theogóp ý
Chưa hợp lý,
có điềuchỉnh theogóp ý
Khônghợp lývàkhôngđiềuchỉnhtheogóp ýQuá trình
thực hiện
project
nghiêm túc
Giaiđoạnchuẩ
n bị
10 Chuẩn bị
tốt mọiđiều kiệncho việcthực
Chuẩn bịđược đa sốđiều kiệncho việcthực hiện,
Chuẩn bịđược một sốđiều kiệncho việcthực hiện
Khôngchuẩn
bị đượcđiềukiện
Trang 4có thểkhởiđộngngay
có thể khởiđộng và bổsung sau
nhưng cần
bổ sungthêm mới cóthể khởiđộng
Thực hiệnkhá đúngphươngpháp, saisót nhỏ và
có sửachữa
Thực hiệntương đốiđúng phươngpháp, sai sótquan trọng
và có sửachữa
Thựchiệnkhôngđúngphươngpháp,sai sótkhôngsửachữa
10
Triểnkhaiđúng kếhoạch
Triển khaikhá đúng
kế hoạch,
có chậm trễnhưngkhông gâyảnh hưởng
Triển khaitương đốiđúng kếhoạch, cóchậm trễ gâyảnh hưởngnhưng khắcphục được
Triểnkhaichậmtrễ, gâyảnhhưởngkhôngkhắcphụcđượcMức
20 Ghi rõ từng mục tiêu thành phần (ở mỗi giai
đoạn của project) và thang điểm cụ thể
Trang 5- Báo cáo tiến trình thực hiện
- Thuyết minh sản phẩm
- Bài học rút raTrình
bàybáocáo
1) Thành viên có tham gia họp đầy đủ: 40%
Trang 6Không quan tâm: 0%
ĐIỂM CỦA CÁ NHÂN
(do nhóm ghi)
Danh sách thành viên của Nhóm:
1 (Tên họ):Văn Đức Qúy Điểm cá nhân:
TÊN HỌ VÀ CHỮ KÝ XÁC NHẬN CỦA GV:
Nguyễn Hữu Vĩnh
Ghi nhận của GV
(phần này do GV ghi và lưu
riêng để theo dõi, tư vấn cho
cá nhân SV, không phổ biến
- Về kiến thức, kỹ năng, thái độ:
- Khác:
- Phương pháp cải tiến:
- Nơi có thể cung cấp sự hỗ trợ:
Tóm Tắt Nội Dung Đồ Án
Trang 7Nội dung chính của đồ án là xây dựng website thương mại điện tử có các chức năng cần thiết như khách hàng có thể tạo tài khoản và đăng nhập vào website, có thể tìm kiếm và xem tin tức – bài viết Đối với khách hàng đã đăng nhập thì có thể quản lý tài khoản, mua hàng, bình luận và đánh giá Người quản trị, thông qua website có thể quản lý tình hình của cửa hàng như: tình trạng kho hàng, doanh thu cửa hàng qua đó có thể đưa ra những chiến lược kinh doanh trong tương lai.
Một yêu cầu quan trọng về website thương mại điện tử là không những hệ thống phải xử lý nhanh và chính xác mà còn phải có giao diện bắt mắt thu hút khách hà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
Bình Dương ngày 20 tháng 11
năm 2021
Sinh viên thực hiện
Văn Đức Qúy
Trang 8MỤ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 chính của hê ‹ thống 3
1.4 Định hướng giải quyết vấn đề 3
1.5 Tóm tắt cơ sở lý thuyết 3
1.5.1 Ngôn ngữ lập trình PHP 3
1.5.2 Mã nguồn mở 9
1.5.3 HTML, CSS và JavaScript 10
1.5.4 Môi trường phát triển ứng dụng 12
1.5.5 Thanh toán điện tử Ngân Lượng 13
1.5.6 Kết luận 16
CHƯƠNG 2 PHÂN TÍCH VÀ THIẾT KẾ HỆ THỐNG 17
2.1 Các yêu cầu đặt ra cho hệ thống 17
2.2 Các tác nhân của hệ thống 17
2.3 Biểu đồ UseCase của hệ thống 19
2.3.1 Biểu đồ UseCase tổng quát 19
2.3.2 Biểu đồ UseCase chi tiết với từng tác nhân 20
2.4 Các chức năng chính của hệ thống 23
2.4.1 Chức năng đăng ký 23
2.4.2 Chức năng đăng nhập 26
2.4.3 Chức năng quên mật khẩu 29
2.4.4 Chức năng thay đổi thông tin tài khoản 31
2.4.5 Chức năng tìm kiếm 33
2.4.6 Chức năng sắp xếp và lọc 35
2.4.7 Chức năng đánh giá và bình luận 38
2.4.8 Chức năng giỏ hàng 39
2.4.9 Chức năng mua hàng và thanh toán 43
2.4.10 Chức năng quản lý tài khoản 45
2.4.11 Chức năng quản lý bài viết 47
2.4.12 Chức năng quản lý sản phẩm 48
2.4.13 Chức năng quản lý đơn hàng 51
Trang 92.4.14 Chức năng thống kê 52
2.4.15 Một số chức năng khác 54
2.5 Thiết kế cơ sở dữ liệu 55
2.5.1 Các bảng trong cơ sở dữ liệu 55
2.5.2 Lược đồ quan hệ của các bảng 62
2.6 Kết luận 63
CHƯƠNG 3 XÂY DỰNG CHƯƠNG TR=NH 64
3.1 Môi trường triển khai ứng dụng 64
3.2 Giao diện ứng dụng 65
3.2.1 Giao diện một số trang chính 65
3.2.2 Giao diện một số chức năng 68
3.3 Kết quả hiệu năng thực tế 76
3.4 Kết luận 77
CHƯƠNG 4 KẾT LUẬN 78
4.1 Những kết quả đạt được 78
4.2 Kết quả chưa đạt được 78
4.3 Định hướng phát triển trong tương lai 79
TÀI LIỆU THAM KHẢO 80
Trang 10DANH 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ỉ số PYPL 5
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 14
Hình 1.6 Quy trình Checkout nâng cao 15
Hình 1.7 Quy trình Seamless Checkout 15
Hình 2.1 Các tác nhân của hệ thống 18
Hình 2.2 Biều đồ UseCase tổng quát 19
Hình 2.3 Biểu đồ UseCase với tác nhân Guest 20
Hình 2.4 Biểu đồ UseCase với tác nhân User và Online Payment 21
Hình 2.5 Biểu đồ UseCase với tác nhân Admin 22
Hình 2.6 Biểu đồ UseCase đăng ký 24
Hình 2.7 Biểu đồ hoạt động chức năng đăng ký 25
Hình 2.8 Biểu đồ UseCase đăng nhập 27
Hình 2.9 Biểu đồ hoạt động chức năng đăng nhập 28
Hình 2.10 Biểu đồ UseCase quên mật khẩu 30
Hình 2.11 Biểu đồ hoạt động chức năng quên mật khẩu 31
Hình 2.12 Biểu đồ UseCase thay đổi thông tin tài khoản 32
Hình 2.13 Biểu đồ hoạt động chức năng thay đổi thông tin tài khoản 33
Hình 2.14 Biểu đồ UseCase tìm kiếm 34
Hình 2.15 Biểu đồ hoạt động chức năng tìm kiếm 35
Hình 2.16 Biểu đồ UseCase sắp xếp và lọc 36
Hình 2.17 Biểu đồ hoạt động chức năng sắp xếp và lọc 37
Hình 2.18 Biểu đồ UseCase đánh giá và bình luận 38
Hình 2.19 Biểu đồ hoạt động chức năng đánh giá và bình luận 39
Hình 2.20 Biểu đồ UseCase giỏ hàng 39
Hình 2.21 Biểu đồ hoạt động chức năng giỏ hàng 41
Hình 2.22 Biểu đồ UseCase mua hàng và thanh toán 43
Hình 2.23 Biểu đồ hoạt động chức năng mua hàng và thanh toán 44
Hình 2.24 Biểu đồ UseCase quản lý tài khoản 45
Hình 2.25 Biểu đồ hoạt động chức năng quản lý tài khoản 46
Hình 2.26 Biểu đồ UseCase quản lý bài viết 47
Hình 2.27 Biểu đồ hoạt động chức năng quản lý bài viết 48
Hình 2.28 Biểu đồ UseCase quản lý sản phẩm 49
Hình 2.29 Biểu đồ hoạt động chức năng quản lý sản phẩm 50
Trang 11Hình 2.30 Biểu đồ UseCase quản lý đơn hàng 51
Hình 2.31 Biểu đồ hoạt động chức năng quản lý đơn hàng 52
Hình 2.32 Biểu đồ UseCase thống kê 53
Hình 2.33 Biểu đồ hoạt động chức năng thống kê 54
Hình 2.34 Biểu đồ quan hệ các bảng trong cơ sở dữ liệu 62
Hình 3.1 Các thông số môi trường thực tế 64
Hình 3.2 Giao diện trang chủ 65
Hình 3.3 Giao diện trang quản trị 66
Hình 3.4 Giao diện trang sản phẩm 66
Hình 3.5 Giao diện trang chi tiết sản phẩm 67
Hình 3.6 Giao diện trang tin tức 67
Hình 3.7 Giao diện trang đăng nhập hệ thống 68
Hình 3.8 Thông báo đăng nhập thành công cho tài khoản quản trị 68
Hình 3.9 Giao diện trang đăng ký tài khoản 69
Hình 3.10 Giao diện chức năng tìm kiếm 69
Hình 3.11 Giao diện chức năng đánh giá và bình luận 70
Hình 3.12 Giao diện trang giỏ hàng 71
Hình 3.13 Giao diện đặt hàng 71
Hình 3.14 Giao diện mua hàng thành công 69
Hình 3.15 Giao diện trang quản lý tài khoản 69
Hình 3.16 Giao diện trang chi tiết tài khoản 69
Hình 3.17 Giao diện trang quản lý bài viết 69
Hình 3.18 Giao diện trang quản lý sản phẩm 69
Hình 3.19 Giao diện chức năng thêm sản phẩm mới 69
Hình 3.20 Giao diện chức năng quản lý đơn hàng của người dùng 69
Hình 3.21 Giao diện phản hồi khách hàng 69
Hình 3.22 Kết quả hiệu năng website phonestore 76
Hình 3.23 Kết quả hiệu năng website FPT Shop 76
Hình 3.24 Kết quả hiệu năng website Thế Giới Di Động 77
Trang 12DANH MỤC BẢNG BIỂU
Bảng 2.1 Bảng đặc tả UseCase đăng ký 24
Bảng 2.2 Bảng đặc tả UseCase đăng nhập 27
Bảng 2.3 Bảng đặc tả UseCase quên mật khẩu 30
Bảng 2.4 Bảng đặc tả UseCase thay đổi thông tin tài khoản 32
Bảng 2.5 Bảng đặc tả UseCase tìm kiếm 34
Bảng 2.6 Bảng đặc tả UseCase sắp xếp và lọc 37
Bảng 2.7 Bảng đặc tả UseCase đánh giá và bình luận 38
Bảng 2.8 Bảng đặc tả UseCase giỏ hàng 40
Bảng 2.9 Bảng đặc tả UseCase mua hàng và thanh toán 43
Bảng 2.10 Bảng đặc tả UseCase quản lý tài khoản 45
Bảng 2.11 Bảng đặc tả UseCase quản lý bài viết 47
Bảng 2.12 Bảng đặc tả UseCase quản lý sản phẩm 49
Bảng 2.13 bảng đặc tả UseCase quản lý đơn hàng 51
Bảng 2.14 Bảng đặc tả UseCase thống kê 53
Bảng 2.15 Cấu trúc dữ liệu bảng users 55
Bảng 2.16 Cấu trúc dữ liệu bảng products 56
Bảng 2.17 Cấu trúc dữ liệu bảng producers 56
Bảng 2.18 Cấu trúc dữ liệu bảng product_details 57
Bảng 2.19 Cấu trúc dữ liệu bảng porduct_images 57
Bảng 2.20 Cấu trúc dữ liệu bảng product_votes 58
Bảng 2.21 Cấu trúc dữ liệu bảng comments 58
Bảng 2.22 Cấu trúc dữ liệu bảng notices 58
Bảng 2.23 Cấu trúc dữ liệu bảng orders 59
Bảng 2.24 Cấu trúc dữ liệu bảng order_details 59
Bảng 2.25 Cấu trúc dữ liệu bảng payment_methods 61
Bảng 2.26 Cấu trúc dữ liệu bảng posts 61
Bảng 2.27 Cấu trúc dữ liệu bảng advertises 61
Trang 13CHƯƠ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 chính 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ỉ lệ thuận với việc doanh thu sẽ tăng, đó chính 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 tính 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 chính 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ện tử (website)
Trên những cơ sở đó, đồ án tốt nghiê ‹p của em thực hiê ‹n đề tài “Xây dựng 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 đến khá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
Trang 14hướng của thờ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ố Thươ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”.
Dự đoán trong 10 năm sắp tới xu hướng mua sắm trên các nền tảng Thươngmạ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 Mục tiêu và chức năng chŽnh của hê Š th•ng
Hình 1.2 Doanh thu TMDT bán lẻ Việt Nam từ 2015 – 2018
Trang 15Để 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 tính 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ợi cho cả 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 với các trang web thương mại điệ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ện tử luôn luôn phả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ếntrê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 chính 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 nên 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
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
ư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
Trang 161.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ột tập con đơn giản của các mã kịchbả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ếtngày nay
PHP 3.0 đã chính 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áctí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 tính năng mở rộng của PHP 3.0 đã thu hút rất nhiều nhà phát triểntham 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 tính 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 chính 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ố lỗi trong đó đáng kể là lỗi xác thực HTTP Ngày 14 tháng 7 năm 2005, PHP 5.1 Beta 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ở dữ liệ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 tính 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 ra ở phiên bản
Trang 17này còn thêm vào rất nhiều cú pháp, tính năng mới giúp cho PHP trở nên mạnh
mẽ hơn Những tính 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ợ một cách vô cùng 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
Do 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
Hình 1.3 Top các ngôn ngữ phổ biến 01/2018 – chỉ số PYPL
Trang 18Cá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 dựng những ứng dụng đó Hay nói cách khác, PHP framework giúp đỡ các bạn thúc đẩy nhanh chóng quá trình phát triển ứng dụng, giúp bạn tiết kiệm được thời gian, tăng sự ổn định cho ứng dụng, và giảm thiểu số lần phải viết lại mã cholậ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âydựng các ứng dụng ổn định hơn nhờ việc tương tác chính 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ậptrì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 giaodiệ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 để gọi đúng Model & 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ức tạp hơn
Trang 19Trong 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ười sử dụng Dưới đây là 3 framework được đánh giá là tố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 framework 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 Chính 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 tính 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 nhaugiú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ắngkhi 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
Hình 1.4 Top các PHP framework phổ biến
Trang 20- 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, tính 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àmviệ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ở dữ liệu
- 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 trongnhữ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
- Mã rất dễ đọc, với những chú thích kiểu phpDocumentor, dễ dàng bảo trì
- Dễ dàng mở rộng, cho phép tích hợp với những thư viện khác
CodeIgniter
CodeIgniter là một nền tảng ứng dụng web nguồn mở được viết bằng ngôn ngữ PHP bởi Rick Ellis (CEO của EllisLab, Inc) Phiên bản đầu tiên được phát hành ngày 28.02.2006, phiên bản hiện tại: 3.1.4 (phát hành ngày 2017.03.20) Ý tưởng xây dựng CodeIgniter được dựa trên Ruby on Rails, một nền tảng ứng dụng web được viết bằng ngôn ngữ Ruby Hiện tại, CodeIgniter đang được phát triển bởi ExpressionEngine Development Team thuộc EllisLab, Inc CodeIgniter
có những điểm nổi bật như:
- Đượ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ử
Trang 21lý 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)…kích 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
Trên đây liệt kê một số tính 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 tính 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 đồ án
1.5.2 Mã nguồn mở
1.5.2.1 Giới thiệu
- Mã nguồn mở (Open Source) là khái niệm được nhắc đến khá nhiều trong lĩnh vực thiết kế website hiện nay Khi đặt dịch vụ thiết kế web, bạn có thể sẽ nghe họnói đến việc sử dụng công nghệ mã nguồn mở để thiết kế web cho bạn, hoặc khi
sử dụng các ứng dụng, chương trình phần mềm được tạo nên bởi các mã nguồn
mở, bạn cũng sẽ được nghe đến khái niệm này Vậy, Mã nguồn mở là gì? Mã nguồn mở hoạt động ra sau? Bài viết này của WEBICO sẽ giúp bạn làm rõ các thông tin chi tiết!
- Mã nguồn mở là phần mềm có bộ source code mà bất kì ai cũng có thể download về, sửa đổi hoặc nâng cấp thêm cho nó những tính năng vượt trội khác.Thông thường, mã nguồn mở được phát hành miễn phí và sở hữu bởi các đơn vị, doanh nghiệp lớn về công nghệ, cũng có một số trường hợp các lập trình viên phát triển mã nguồn mở và bày bán nó với các chức năng độc đáo hơn phiên bản gốc
Trang 22- “Mã nguồn” (source code) là phần mềm mà hầu hết người dùng máy tính không nhìn thấy Tuy nhiên, các lập trình viên có quyền truy cập vào mã nguồn này để cải thiện chương trình bằng cách thêm các tính năng hoặc sửa các phần không hoạt động đúng.
1.5.2.1 Vì sao mã nguồn mở tiện lợi và nên sữ dụng nhiều
- Khả năng quản trị và điều khiển cao: Mã nguồn mở được giới chuyên
môn ưa chuộng nhiều do họ có khả năng quản lí và kiểm soát sản phẩm của mìnhnhiều hơn Họ có thể cho phép phần nào hoạt động, phần nào không Còn trên phương diện người sử dụng sản phẩm, mặc dù không biết nhiều về khái niệm nàynhưng họ lại được hưởng khá nhiều lợi ích từ loại mã nguồn này
- Tăng khả năng sáng tạo: Vì được thiết kế dưới dạng “mở”, nên nhiều
người có thể nghiên cứu để tạo ra các phần mềm tốt hơn Đây có thể xem là một sản phẩm thách thức nhiều lập trình viên trong quá trình sáng tạo của mình
- Độ an ninh cao: Một điều khá nghịch lý ở phần mềm mã nguồn mở là
nó lại được bảo mật và an ninh cao hơn các phần mềm độc quyền khác Lý do lý giải cho điều này là vì nhiều người lập trình có thể cùng làm việc trên một phần mềm nguồn mở mà không cần xin phép từ các tác giả gốc, nên họ có thể sửa chữa, cập nhật và nâng cấp phần mềm mã nguồn mở nhanh hơn các phần mềm
có bản quyền Nói cách khác, khi có cả một cộng đồng cùng tập trung “chăm sóc” một sản phẩm thì chắc chắn nó sẽ cải tiến và sở hữu nhiều chức năng tốt hơn
- Ổn định: Nhiều người đánh giá cao mã nguồn mở vì cho rằng nó có thể
hỗ trợ cho nhiều công ty, doanh nghiệp trong các dự án quan trọng, có tính chất dài hạn Ví dụ khi muốn mở rộng hay cải thiện các chức năng cho website công
ty sau nhiều năm hoạt động, đội ngũ lập trình viên trong công ty của họ có thể điều chỉnh mã nguồn mở để đáp ứng các yêu cầu này Đối với các mã nguồn có bản quyền thì quá trình này lại gần như phức tạp hơn
1.5.2.2 Các loại mã nguồn mở
- WordPress: WordPress được đánh giá là mã nguồn mở với CMS hoạt động mạnh nhất từ trước đến nay Rất nhiều website trong nhiều lĩnh vực hiện nay đã và đang sử dụng mã nguồn mở để hoạt động và phát triển
- Joomla: Joomla cũng là một trong các mã nguồn mở được ưa chuộng hiện nay với cấu hình mạnh và khả năng tương thích cao, có thể mở rộng và phát triển thêm nhiều tính năng ưu việt khác
- Drupal: Drupal được xây dựng từ PHP và nhiều loại database: MySQL, PostgreSQL, SQLite, Microsoft SQL Server, MongoDB hoặc MariaDB… và hỗ trợ tốt cho nhiều loại website hiện này
- Magento, OpenCart, WooCommerce: Nhắc tới ba phần mềm mã nguồn
mở này thì phải kể đến ưu điểm tuyệt vời của nó trong việc hỗ trợ các website thương mại điện tử Các chức năng như bán hàng, thanh toán, giỏ hàng đều được phát triển mạnh mẽ với Magento, OpenCart, WooCommerce…
Trang 23- B2evolution: B2evolution ra đời vào năm 2003, được biết đến nhiều vì
có hỗ trợ nhiều blog, admin và user chỉ với một lần cài đặt duy nhất, đặc biệt là tính năng multi-blog B2evolution được xây dựng trên nền tảng PHP và MySQL,
là một phần mềm sử dụng mã nguồn mở hoạt động khá hiệu quả
1.5.3 HTML, CSS và JavaScript
1.5.3.1 HTML
HTML là chữ viết tắt cho “HyperText Markup Language”, hay là "Ngôn ngữ Đá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
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.2 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ỏ
Trang 24và nhẹ, chạy trong môi trường máy chủ lưu trữ (trình duyệt web) Nó có thể đượckế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ạybằng JavaScript Framework)
1.5.4 Môi trường phát triển ứng dụng
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áychủ 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 năm trước, tận những năm 1995
Apache 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.1 MySQL
MySQL là hệ quản trị cơ sở dữ liệu tự do nguồn mở phổ biến nhất thế giới
và được các nhà phát triển rất ưa chuộng trong quá trình phát triển ứng dụng, đă ‹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 đô ‹ xử lý cao, dễ sử dụng, ổn định, và tương thích 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.2 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
Trang 25bậ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.
1.5.5 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 tín 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 website 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
Trang 26- 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
- 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 28CHƯƠ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, biểu đồ 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ảngtrong cơ sở dữ liệu và quan hệ của chúng
2.1 Các yêu cầu đặt ra cho hệ th•ng
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ừ phía 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ải có giao diện thân thiện, bắt mắt, dễ sử 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 chính 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
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, chính sách, đánh giá – bình luận của những người dùng
Trang 29đă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 chính 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 chính 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ácthự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ột mã thông báo trạng 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.8 Các tác nhân của hệ thống
Trang 302.3 Biểu đồ UseCase của hệ th•ng
2.3.1 Biểu đồ UseCase tổng quát
Hình 2.9 Biều đồ UseCase tổng quát
Trang 312.3.2 Biể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.10 Biểu đồ UseCase với tác nhân Guest
Trang 322.3.2.2 Biểu đồ UseCase với tác nhân User và Online Payment
Hình 2.11 Biểu đồ UseCase với tác nhân User và Online Payment
Trang 332.3.2.3 Biểu đồ UseCase với tác nhân Admin
Hình 2.12 Biểu đồ UseCase với tác nhân Admin
Trang 342.4 Các chức năng chŽnh của hệ th•ng
Dựa trên văn bản mô tả các yêu cầu đặt ra cho hệ thống, việc phân tích các tác nhân ảnh hướng đến hệ thống và biểu đồ UseCase tổng quát của từng tác nhân, ta xác định được các chức năng của hệ thống tương ứng với từng tác nhân như sau:
2.4.1 Chức năng đăng ký
2.4.1.1 Mô tả chức năng
Chức năng này cho phép người dùng có thể tự do đăng ký tài khoản để đăngnhập vào hệ thống Khi khách hàng điền đầy đủ thông tin đăng ký, hệ thống sẽ gửi một email về tài khoải email đăng ký để người dùng có thể kích hoạt tài khoản Trong trường hợp khách hàng không muốn điền thông tin đăng ký, hệ thống sẽ cung cấp giải pháp đăng ký bằng tài khoản xã hội Google+ và Facebookgiúp người dùng có thể nhanh chóng đăng ký một tài khoản Chức năng này chỉ
áp dụng cho tác nhân khách hàng chưa có tài khoản (Guest)
Trang 352.4.1.2 UseCase đăng ký
Bảng 2.1 Bảng đặc tả UseCase đăng ký
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
Hình 2.13 Biểu đồ UseCase đăng ký
Trang 362.4.1.3 Biểu đồ hoạt độ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ọn đăng
ký bằng form đăng ký bằng cách điền đầy đủ thông tin trên form hiển thị rồi clickvào nút đăng ký Nếu thông tin đăng ký không đạt yêu cầu, hệ thống sẽ quay lại trang đă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ữ liệu người dùng vào database với trạng thái tài khoản chưa được
Hình 2.14 Biểu đồ hoạt động chức năng đăng ký
Trang 37kí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 đã kích 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à kết thúc chức năng đăng ký
2.4.2 Chức năng đăng nhập
2.4.2.1 Mô tả chức năng
Chức năng này cho phép người dùng có tài khoản và đã được kích hoạt hoặc người quản trị đăng nhập vào hệ thống Khi điền đầy đủ và chính xác thông tin đăng nhập, hệ thống sẽ xác minh và chuyển hướng trang đến trang chủ nếu là tài khoản khách hàng hoặc trang quản trị nếu là tài khoản quản trị Hệ thống cũngcung cấp cho người dùng khả năng đăng nhập bằng tài khoản mạng xã hội Google+ 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 382.4.2.1 UseCase đăng nhập
Bảng 2.2 Bảng đặc tả UseCase đăng nhập
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ủy đăng nhập.
sẽ chuyển hướng đến trang chủ
- Người dùng chọn đăng nhập bằng form đăng nhập: sau khi điền đầy đủ 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 đăng nhập
Hình 2.15 Biểu đồ UseCase đăng nhập
Trang 392.4.2.2 Biểu đồ hoạt động chức năng đăng nhập
Mô tả biểu đồ hoạt động:
Chức năng đăng nhập bắt đầu khi người dùng có tài khoản nhưng chưa đăng nhập vào hệ thống truy cập trang đăng nhâp Tại đây người dùng có thể đăng nhập bằ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ệ
Hình 2.16 Biểu đồ hoạt động chức năng đăng nhập
Trang 40thố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
2.4.3 Chức 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)