- Xử lý: Hệ thống nhận yêu cầu, sau đó giao cho controller quản lý tài khoản xử lý; Controller quản lý tài khoản kiểm tra quyền truy cập; Controller tải khoản truy xuất dữ liệu tài
Trang 1ĐẠI HỌC ĐÀ NẴNG PHÂN HIỆU TẠI KON TUM
SISAMOUND KAI
ĐỒ ÁN TỐT NGHIỆP
XÂY DỰNG WEBSITE BÁN LAPTOP
Kon Tum, tháng 04 năm 2022
Trang 2ĐẠI HỌC ĐÀ NẴNG PHÂN HIỆU TẠI KON TUM
ĐỒ ÁN TỐT NGHIỆP
XÂY DỰNG WEBSITE BÁN LAPTOP
GIẢNG VIÊN HƯỚNG DẪN : ThS LÊ THỊ BẢO YẾN
Kon Tum, tháng 04 năm 2022
Trang 3LỜI CÁM ƠN
Trước tiên với tình cảm sâu sắc và chân thành nhất, cho phép em được bày tỏ lòng
biết ơn đến tất cả các cá nhân và tổ chức đã tạo điều kiện hỗ trợ, giúp đỡ em trong suốt
quá trình học tập và nghiên cứu đề tài này Trong suốt thời gian từ khi bắt đầu học tập
tại trường đến nay, em đã nhận được rất nhiều sự quan tâm, giúp đỡ của quý Thầy Cô
và bạn bè
Với lòng biết ơn sâu sắc nhất, em xin gửi đến quý Thầy Cô ở Khoa Công nghệ đã
truyền đạt vốn kiến thức quý báu cho chúng em trong suốt thời gian học tập tại trường
Nhờ có những lời hướng dẫn, dạy bảo của các thầy cô nên đề tài nghiên cứu của em mới
có thể hoàn thiện tốt đẹp
Một lần nữa, em xin chân thành cảm ơn thầy/cô – người đã trực tiếp giúp đỡ, quan
tâm, hướng dẫn em hoàn thành tốt bài báo cáo này trong thời gian qua
Bài báo cáo đồ án tốt nghiệp thực hiện trong khoảng thời gian gần 4 tháng Bước
đầu đi vào thực tế của em còn hạn chế và còn nhiều bỡ ngỡ nên không tránh khỏi những
thiếu sót , em rất mong nhận được những ý kiến đóng góp quý báu của quý Thầy Cô để
kiến thức của em trong lĩnh vực này được hoàn thiện hơn đồng thời có điều kiện bổ
sung, nâng cao ý thức của mình
Em xin chân thành cảm ơn!
SISAMOUD Kai
Trang 4MỤC LỤC
CHƯƠNG 1 TỔNG QUAN ĐỀ TÀI 1
1.1 TỔNG QUAN VẤN ĐỀ NGHIÊN CỨU 1
1.2 LÝ DO CHỌN ĐỀ TÀI 1
1.3 MỤC TIÊU NGHIÊN CỨU 2
1.3.1 Lý thuyết 2
1.3.2 Về mặt công nghệ 2
1.3.3 Về mặt ứng dụng 2
1.4 PHƯƠNG PHÁP NGHIÊN CỨU 2
1.4.1 Khảo sát thực tế 2
1.4.2 Lý thuyết 2
1.4.3 Công nghệ 3
1.5 PHẠM VI ỨNG DỤNG 3
CHƯƠNG 2 CƠ SỞ LÝ THUYẾT 4
2.1 GIẢI PHÁP THIẾT KẾ 4
2.1.1 Mô hình Client - Server 4
2.1.2 Mô hình MVC trong việc xây dựng website 5
2.1.3 Mô hình thương mại điện tử 7
2.2 CÔNG NGHỆ SỬ DỤNG 9
2.2.1 Ngôn ngữ lập trình PHP 10
2.2.2 Hệ quản trị cơ sở dữ liệu MySQL 10
2.2.3 Công cụ Xampp 11
2.2.4 Visual Studio Code 12
2.2.5 Bootstrap 13
CHƯƠNG 3 PHÂN TÍCH, THIẾT KẾ HỆ THỐNG VÀ KẾT QUẢ 14
3.1 ĐẶC TẢ YÊU CẦU 14
3.1.1 Các tác nhân 14
3.1.2 Yêu cầu chức năng 14
3.1.3 Yêu cầu phi chức năng 16
3.2 PHÂN TÍCH YÊU CẦU 16
3.2.1 Yêu cầu chức năng Admin 16
3.2.2 Yêu cầu chức năng khách hàng 24
3.3 PHÂN TÍCH VÀ THIẾT KẾ HỆ THỐNG 28
3.3.1 Sơ đồ usecase 28
3.3.2 Sơ đồ tuần tự 44
3.3.3 Sơ đồ lớp 65
3.3.4 Lược đồ cơ sở dữ liệu 68
CHƯƠNG 4 DEMO KẾT QUẢ 71
4.1 FRONTEND 71
4.1.1 Giao diện trang chủ 71
Trang 54.1.2 Giao diện trang sản phẩm 72
4.1.3 Giao diện xem chi tiết sản phẩm 73
4.1.4 Giao diện đánh giá 74
4.1.5 Giao diện trang tìm kiếm 74
4.1.6 Giao diện trang giỏ hàng 75
4.1.7 Giao diện thanh toán hàng 75
4.1.8 Giao diện đặt hàng thành công 76
4.1.9 Giao diện liên hệ 77
4.1.10 Giao diện đăng nhập 77
4.1.11 Giao diện đăng ký 78
4.1.12 Giao diện xem thông tin tài khoản 78
4.1.13 Giao diện chỉnh sửa thông tin tài khoản 78
4.1.14 Giao diện danh sách đơn hàng đã đặt 79
4.1.15 Giao diện xem chi tiết thông tin đặt hàng 80
4.2 BACKEND 80
4.2.1 Trang thống kê 80
4.2.2 Trang quản lý tài khoản 81
4.2.3 Trang quản lý danh mục 82
4.2.4 Trang quản lý thương hiệu 83
4.2.5 Trang quản lý sản phẩm 84
4.2.6 Trang quản lý đơn hàng 85
4.2.7 Trang quản lý slide 88
4.2.8 Trang quản lý đánh giá 89
CHƯƠNG 5 KẾT LUẬN 90
5.1 KẾT LUẬN 90
5.1.1 Kết quả đạt được 90
5.1.2 Hạn chế 91
5.2 HƯỚNG PHÁT TRIỂN 91
DANH MỤC TÀI LIỆU THAM KHẢO 92 GIẤY XÁC NHẬN HOÀN THÀNH BÁO CÁO ĐÔ ÁN TỐT NGHIỆP
Trang 6DANH MỤC CÁC TỪ VIẾT TẮT
CSDL : Cơ sở dữ liệu
Trang 7DANH MỤC CÁC BẢNG
3.4 Đặc tả sơ đồ usecase đăng ký tài khoản 29
3.6 Đặc tả sơ đồ usecase chỉnh sửa tài khoản 30
3.8 Đặc tả sơ đồ usecase thêm danh mục sản phẩm 31 3.9 Đặc tả sơ đồ usecase chỉnh sửa danh mục sản phẩm 32 3.10 Đặc tả sơ đồ usecase xóa danh mục sản phẩm 32 3.11 Đặc tả sơ đồ usecase thêm thương hiệu sản phẩm 33 3.12 Đặc tả sơ đồ usecase chỉnh sửa thương hiệu sản phẩm 34 3.13 Đặc tả sơ đồ usecase xóa thương hiệu sản phẩm 34
3.15 Đặc tả sơ đồ usecase chỉnh sửa sản phẩm 36
3.21 Đặc tả sơ đồ usecase chỉnh sửa đánh giá 39
3.25 Đặc tả sơ đồ usecase thêm sản phẩm vào giỏ hàng 42 3.26 Đặc tả sơ đồ usecase xóa sản phẩm khỏi giỏ hàng 43
Trang 8DANH MỤC CÁC HÌNH
3.8 Sơ đồ usecase quản lý danh mục sản phẩm 31
3.10 Sơ đồ usecase chỉnh sửa danh mục sản phẩm 32
3.13 Sơ đồ usecase thêm thương hiệu sản phẩm 34 3.14 Sơ đồ usecase chỉnh sửa thương hiệu sản phẩm 34 3.15 Sơ đồ usecase xóa thương hiệu sản phẩm 35
Trang 93.28 Đặc tả sơ đồ usecase xác nhận đơn hàng 41 3.29 Đặc tả sơ đồ usecase xác nhận đơn hàng 41
3.32 Sơ đồ usecase thêm sản phẩm vào giỏ hàng 43 3.33 Sơ đồ usecase xóa sản phẩm khỏi giỏ hàng 43
3.40 Sơ đồ tuần tự chỉnh sửa danh mục sản phẩm 49
3.57 Sơ đồ tuần tự thêm sản phẩm vào giỏ hàng 63
Trang 104.6 Giao diện tìm kiếm 74
4.10 Email thông báo cho Admin có khách hàng đặt hàng 76 4.11 Email thông báo cho Khách hàng đơn đặt hàng 76
4.16 Giao diện chỉnh sửa thông tin tài khoản 78
4.19 Email thông báo có đơn hàng đã bị hủy 79 4.20 Giao diện xem chi tiết thông tin đặt hàng 80
Trang 12CHƯƠNG 1 TỔNG QUAN ĐỀ TÀI
1.1 TỔNG QUAN VẤN ĐỀ NGHIÊN CỨU
Quá trình toàn cầu hóa và hội nhập quốc tế cùng với cuộc Cách mạng công nghiệp lần thứ 4 đang tạo ra những bước đột phá mới Để thúc đẩy sự phát triển nhanh và hiện đại thì việc tăng cường đổi mới sáng tạo và ứng dụng khoa học - công nghệ, nhất là công nghệ cao là yêu cầu bức thiết hiện nay
Công nghệ ngày càng phát triền và dần dần được phổ biến rộng rãi hơn trong đời sống hằng ngày, và trong tương lai sẽ là một phần không thể thiếu Công nghệ được sử dụng hầu hết trong mọi lĩnh vực từ trồng trọt, chăn nuôi, giáo dục, y tế, quốc phòng
và lĩnh vực thương mại điện tử cũng không nằm ngoài việc đó Có thể nói thương mại điện tử là lĩnh vực mà tạo ra sự thu hút rất lớn đối với mọi người Hiện nay các sàn thương mại điện tử như Shopee, Lazada và Sendo đều có sức ảnh hưởng rộng lớn đến nhiều khu vực và đánh tốt vào nhu cầu mua sắm của người sử dụng Việc mua sắm online ngày càng nhận được sự quan tâm rất lớn do những lợi ích của nó mang lại Các sản phẩm công nghệ như là điện thoại, laptop, tai nghe, camera Ngày càng được giới trẻ quan tâm nhất là các sản phẩm như điện thoại và laptop Và việc tìm kiếm
và chọn mua các sản phẩm công nghệ phù hợp với nhu cầu của mình cũng rất nhiều Nắm bắt được nhu cầu đó mà có rất nhều website bán sản phẩm điện tử như là FPT Shop, TheGioiDiDong, CellPhones được ra đời đem lại những sản phẩm tốt nhất và những dịch vụ ưu đãi nhất cho khách hàng
1.2 LÝ DO CHỌN ĐỀ TÀI
Trong thị trường hiện nay thì việc cạnh tranh ngày càng trở nên quyết liệt và hầu hết những nhà kinh doanh, những công ty lớn đều chú tâm đến việc thỏa mãn khách hàng một cách tốt nhất
Hiện nay càng nhiều doanh nghiệp phát triển hệ thống bán hàng theo loại thương mại điện tử So với kinh doanh truyền thống thì thương mại điện tử chi phí thấp hơn, hiệu quả đạt cao hơn Hơn thế nữa, với lợi thế của công nghệ Internet nên việc truyền tải thông tin về sản phẩm nhanh chóng, thuận tiện Kết hợp với bộ phận giao hàng tận nơi, càng tăng thêm lợi nhuận để loại hình này phát triển
Biết được những nhu cầu đó đề tài “Xây dựng website bán laptop” được xây dựng nhằm để đáp ứng nhu cầu mua sắm cho mọi người tiêu dùng trên toàn quốc và thông qua hệ thống website này họ có thể đặt mua các mặt hàng hay sản phẩm cần thiết Việc chọn đề tài “Xây dựng website bán laptop” sẽ là cơ hội tốt để có thể tìm hiểu thêm về các loại hình thương mại điện tử, cách hoạt động của các loại hình đó và tìm hiểu được cách xây dựng một website thương mại điện tử cơ bản
Trang 131.3 MỤC TIÊU NGHIÊN CỨU
1.3.1 Lý thuyết
- Nắm được lý thuyết về mô hình MVC, cách hoạt động như thế nào và làm sao để
áp dụng tốt vào việc xây dựng web;
- Nắm được lý thuyết về thương mại điện từ và các hình thức kinh doanh thương mại điện tử
1.3.2 Về mặt công nghệ
- Sử dụng thành thạo ngôn ngữ PHP;
- Sử dụng thành thạo công nghệ HTML, CSS, JavaScript và Bootstrap;
- Kết nối và quản trị được hệ quản trị cơ sở dữ liệu MySQL
- Tìm hiểu cách hoạt động của một website thương mại điện tử như là Lazada, Shopee và các website bán sản phẩm điện tử như là FPT, TheGioiDiDong Xem xét và phân tích chức năng cụ thể trên website, từ đó nghiên cứu lại và xây dựng những tính năng sẽ áp dụng vào xây dựng website;
- Khảo sát nhu cầu sử dụng “Website bán laptop” Khảo sát sẽ tập trung vào 2 đối tượng là khách hàng trải nghiệm website và người bán hàng quản lý website Phương thức khảo sát qua form online hoặc khảo sát trực tiếp qua gặp mặt, điền giấy
1.4.2 Lý thuyết
- Nghiên cứu mô hình MVC, một mô hình phổ biến trong việc thiết kế website Nghiên cứu làm sao để xây dựng một website có áp dụng mô hình MVC bằng cách làm theo hướng dẫn, sau đó sẽ áp dụng vào xây dựng website;
- Tìm hiểu UI/UX (User Interface và User Experience) Thực hành thiết kế giao diện theo lý thuyết UI/UX Tìm hiểu làm sao để chọn màu sắc, typography, cách sắp xếp layout phù hợp với một website bán sản phẩm điện tử;
- Tìm hiểu về các loại hình thương mại điện tử Chọn ra một mô hình phù hợp nhất Tập trung đọc các tài liệu liên quan đến loại hình thương mại đó;
- Nghiên cứu những thiết kế cơ sở dữ liệu đã được thiết kế và sử dụng hiệu quả để thiết kế một cơ sở dữ liệu phù hợp với các tính năng có trong website
Trang 15CHƯƠNG 2
CƠ SỞ LÝ THUYẾT
2.1 GIẢI PHÁP THIẾT KẾ
2.1.1 Mô hình Client - Server
a Giới thiệu mô hình Client - Server
Hình 2.1: Mô hình Client - Server
Client server là mô hình mạng máy tính bao gồm 2 thành phần chính là máy khách (client) và máy chủ (server) Trong mô hình này, server là nơi lưu trữ tài nguyên, cài đặt các chương trình dịch vụ và thực hiện các yêu cầu của client Client đón vai trò gửi yêu cầu đến server Client gồm máy tính và thiết bị điện tử nói chung [1]
Mô hình Client server cho phép mạng tập trung các ứng dụng và chức năng tại một hoặc nhiều máu dịch vụ file chuyên dụng Các máy này trở thành trung tâm của hệ thống
Hệ điều hành của Client server cho phép người dùng chia sẻ đồng thời cùng một tài nguyên, không quan trọng vị trí địa lý
Mô hình web client-server là một mô hình nổi tiếng trong mạng máy tính, được áp dụng rất rộng rãi và là mô hình của mọi trang web hiện có Một mô hình ngược lại là
mô hình master-slaver, trong đó máy chủ (đóng vai trò ông chủ) sẽ gửi dữ liệu đến máy con (đóng vai trò nô lệ) bất kể máy con có cần hay không
Mô hình client/server như sau: Client/Server là mô hình tổng quát nhất, trên thực
tế thì một server có thể được nối tới nhiều server khác nhằm làm việc hiệu quả và nhanh hơn Khi nhận được 1 yêu cầu từ client, server này có thể gửi tiếp yêu cầu vừa nhận được cho server khác ví dụ như database server vì bản thân nó không thể xử lý yêu cầu này được Máy server có thể thi hành các nhiệm vụ đơn giản hoặc phức tạp
Trang 16b Nguyên lý hoạt động của Client – Server
Toàn bộ quá trình giao tiếp giữa server và client phải dựa trên các giao thức chuẩn TCP/IP, SAN (IBM), ISDN, OSI, X.25, LAN-to-LAN Netbios là những giao thức chuẩn được sử dụng phổ biến hiện nay
Client server là giải pháp phần mềm hiệu quả, giúp khắc phục tình trạng quá tải của hệ thống mạng Bên cạnh đó, mô hình này còn vượt qua sự khác biệt trong cấu trúc vật lý và hệ điều hành của các hệ thống máy tính Mô hình Client server gồm có 2 phần
là client & server
- Client: Client hay chính là máy khách, máy trạm – là nơi gửi yêu cầu đến server
Nó tổ chức giao tiếp với người dùng, server và môi trường bên ngoài tại trạm làm việc Client tiếp nhận yêu cầu của người dùng sau đó thành lập các query string để gửi cho server Khi nhận được kết quả từ server, client sẽ tổ chức và trình diễn những kết quả
đó
- Server: Server xử lý yêu cầu gửi đến từ client Sau khi xử lý xong, server sẽ gửi trả lại kết quả, client có thể tiếp tục xử lý các kết quả này để phục vụ người dùng Server giao tiếp với môi trường bên ngoài và client tại server, tiếp nhận yêu cầu dưới dạng query string (xâu ký tự) Khi phân tích xong các xâu ký tự, server sẽ xử lý dữ liệu và gửi kết quả về cho client
2.1.2 Mô hình MVC trong việc xây dựng website
a Giới thiệu mô hình MVC
Mô hình MVC là một mô hình lập trình web được sử dụng rộng rãi hiện nay, được viết tắt bởi ba từ Model – View – Controller, tương ứng với ba bộ phận tạo nên cấu trúc của ứng dụng này Mỗi thành phần kiến trúc được xây dựng để xử lý khía cạnh phát triển cụ thể của một ứng dụng [8]
Hình 2.2: Mô hình MVC
Trang 17b Các thành phần cấu tạo trong mô hình MVC
- View: View là một phần của ứng dụng chịu trách nhiệm cho việc trình bày dữ liệu Thành phần này được tạo bởi dữ liệu thu thập từ dữ liệu mô hình, và giúp người dùng có cái nhìn trực quan về trang web, cũng như ứng dụng
View cũng đại diện cho dữ liệu từ các cuộc trò chuyện, sơ đồ và bảng Ví dụ: bất
kỳ View nào cũng sẽ bao gồm tất cả các thành phần giao diện người dùng như một nút bấm, khung nhập, menu, hình ảnh
- Model: Phần Model của kiến trúc MVC là thành phần chính đảm nhiệm chức năng lưu trữ dữ liệu và các bộ phận logic liên quan của toàn bộ ứng dụng Model chịu trách nhiệm cho các thao tác dữ liệu giữa Controller hoặc bất kỳ logic nghiệp vụ liên quan nào khác như: cho phép xem, truy xuất dữ liệu Ví dụ, Controller sẽ lấy thông tin khách hàng từ cơ sở dữ liệu Model sẽ thực hiện các thao tác dữ liệu và gửi lại cơ sở dữ liệu hoặc sử dụng nó cho View
- Controller: Đây là phần xử lý tương tác người dùng của ứng dụng Controller xử
lý dữ liệu đầu vào từ bàn phím và chuột của người dùng sau đó thông báo tới View và Model Sau đó liền gửi các lệnh tới Model để thay đổi trạng thái của Model (Ví dụ: lưu một tài liệu cụ thể) Controller cũng gửi các lệnh tương tự tới View để thực hiện các thay đổi về giao diện
c Luồng xử lý trong mô hình MVC
MVC đại diện cho kiến trúc mà các nhà phát triển ứng dụng áp dụng vào dự án, chúng ta xem xét cách luồng dữ liệu ứng dụng hoạt động như thế nào nhé
Có rất nhiều kịch bản cho luồng xử lý MVC trên ứng dụng web Dưới đây là luồng
- Bước 3: Model tương tác với Database để truy xuất dữ liệu phù hợp với yêu cầu
- Bước 4: Database trả về cho Model dữ liệu theo yêu cầu của Model
- Bước 5: Model trả về dữ liệu cho Controller xử lý
- Bước 6: Controller sẽ gọi đến View phù hợp với yêu cầu và kèm theo dữ liệu cho View View chịu trách nhiệm hiển thị dữ liệu phù hợp với yêu cầu
- Bước 7: Sau khi xử lý hiển thị dữ liệu, View trả về cho Controller kết quả (HTML, XML hoặc JSON…)
- Bước 8: Sau khi hoàn tất, Controller sẽ trả về kết quả cho Client
Trang 18Hình 2.3: Luồng xử lý của mô hình MVC 2.1.3 Mô hình thương mại điện tử
a Khái niệm thương mại điện tử
Thương mại điện tử (TMĐT) là giao dịch mua bán dựa trên nền tảng www (world wide web) thông qua các thiết bị điện tử có kết nối internet [6]
Hình 2.4: Mô hình thương mại điện tử
Trang 19b Các mô hình thương mại điện tử
Hình 2.5: Các mô hình thương mại điện tử
- Business-to-business (B2B): Thương mại điện tử B2B là gì? Là khi một công ty mua hàng hóa hoặc dịch vụ trực tuyến từ một doanh nghiệp khác Ví dụ như: một nhà hàng mua một máy làm đá hoặc một công ty luật mua phần mềm kế toán Các phần mềm kinh doanh như quản lý quan hệ khách hàng (CRM) và các công ty cung cấp dịch vụ thanh toán cũng được coi là B2B Bán hàng trực tuyến B2B có xu hướng phức tạp hơn các hình thức thương mại điện tử khác vì nó có một danh mục lớn các sản phẩm phức tạp;
- Business-to-consumer (B2C): Bán lẻ trực tuyến B2C là khi người tiêu dùng mua một mặt hàng qua internet để sử dụng riêng Mặc dù thương mại điện tử B2C có vẻ nổi bật hơn, nhưng nó chỉ bằng một nửa kích thước của thị trường thương mại điện tử B2B trên toàn thế giới;
- Consumer-to-consumer (C2C): C2C hoạt động như các trang trao đổi, mua bán, đấu giá qua internet trong đó người dùng bán hàng hóa cho nhau Đây có thể là những sản phẩm họ làm ra, chẳng hạn như thủ công hoặc đồ cũ mà họ sở hữu và muốn bán;
- Consumer-to-business (C2B): Khi người tiêu dùng tạo ra giá trị cho doanh nghiệp, đó là thương mại C2B Tạo giá trị có thể có nhiều hình thức Chẳng hạn, C2B
có thể đơn giản như một khách hàng để lại đánh giá tích cực cho một doanh nghiệp hoặc một trang web nhiếp ảnh mua hình ảnh từ các nhiếp ảnh gia tự do Ngoài ra, C2B còn là các doanh nghiệp bán hàng second hand đôi khi mua hàng hóa từ những người dùng internet bình thường;
- Business-to-government (B2G): Hình thức này đôi khi được gọi là administration (B2A) Là khi một công ty tư nhân trao đổi hàng hóa hoặc dịch vụ với một cơ quan công cộng Thông thường dưới dạng một hợp đồng kinh doanh với một tổ chức công cộng để thực hiện một dịch vụ được ủy quyền Chẳng hạn, một công ty giám sát có thể đấu thầu trực tuyến một hợp đồng để làm sạch tòa án quận hoặc một công ty CNTT có thể đáp ứng đề xuất quản lý phần cứng máy tính của thành phố
Trang 20business-to-c Những tính chất của thương mại điện tử
- Được phát triển dựa trên công nghệ: Thương mại truyền thống đã xuất hiện từ thời xa xưa, còn thương mại điện tử là kết quả của việc tích hợp công nghệ kỹ thuật số với các quy trình kinh doanh và các giao dịch kinh tế Nền tảng công nghệ của thương mại điện tử là Internet, World Wide Web và các giao thức khác;
- Công nghệ trung gian: Trong thương mại điện tử, người mua và người bán gặp trực tiếp nhau trong không gian ảo thay vì là một địa điểm như thương mại truyền thống
Do đó thương mại điện tử là một công nghệ trung gian;
- Tính quốc tế: Trong thương mại điện tử các hoạt động mua bán diễn ra trên các trang web Các trang web này có thể truy cập từ bất kỳ nơi nào trên toàn cầu do đó thương mại điện tử có tính quốc tế;
- Thông tin hai chiều: Công nghệ thương mại điện tử đảm bảo liên lạc hai chiều giữa người mua và người bán Một mặt, bằng cách sử dụng thương mại điện tử các công
ty có thể giao tiếp với khách hàng thông qua các trang web Mặt khác, khách hàng cũng
có thể điền vào các mẫu đơn đặt hàng, phản hồi và tương tác với các công ty có hoạt động kinh doanh thương mại điện tử;
- Cung cấp thông tin: Thương mại điện tử đóng vai trò là kênh truyền thông tốt nhất Các công nghệ thương mại điện tử đảm bảo cung cấp thông tin nhanh chóng với chi phí rất thấp và cũng làm tăng đáng kể mật độ thông tin;
- Tính đa ngành: Triển khai thương mại điện tử cần rất nhiều kiến thức về các vấn
đề quản trị, công nghệ, xã hội và pháp lý Bên cạnh đó, sự hiểu biết về hành vi của người tiêu dùng, các công cụ marketing cũng quan trọng như thiết kế các trang web thương mại điện tử
2.2 CÔNG NGHỆ SỬ DỤNG
Bảng 2.1: Các công nghệ được sử dụng STT Tên công nghệ Mô tả
1 PHP Ngôn ngữ lập trình phía máy chủ
2 MySQL Lưu trữ cơ sở dữ liệu
3 Xampp Host PHP server và MySQL server
4 Visual Studio Code Viết code cho website
5 Google Chrome Hiển thị website và kiểm lỗi
6 HTML, CSS, JS Công nghệ thiết kế giao diện website
7 Bootstrap Hỗ trợ thiết kế giao diện website
8 Google Map Hiển thị bản đồ
Trang 212.2.1 Ngôn ngữ lập trình PHP
PHP là dạng viết tắt của thuật ngữ Personal Home Page Đây là một chuỗi ngôn ngữ kịch bản hoặc một dạng mã lệnh Trong đó, ngôn ngữ PHP chủ yếu được phát triển dành cho các ứng dụng nằm trên máy chủ Khi các lập trình viên PHP viết chương trình, các chuỗi lệnh sẽ được chạy ở trên server nhằm sinh ra mã HTML Nhờ đó, những ứng dụng trên các website có thể chạy một cách dễ dàng [7]
Ngôn ngữ PHP thông thường phù hợp với việc lập trình web vì nó có thể dễ dàng kết nối với các website có sử dụng HTML để chạy trên những trình duyệt web Chính
vì vậy, ngôn ngữ lập trình này luôn được coi là khá dễ học Và PHP cũng trở thành ngôn ngữ web dev phổ biến nhất mà các lập trình viên sẽ cần phải học khi mới bắt đầu vào nghề
Hình 2.6: Ngôn ngữ lập trình PHP 2.2.2 Hệ quản trị cơ sở dữ liệu MySQL
MySQL là một hệ thống quản trị cơ sở dữ liệu mã nguồn mở (gọi tắt là RDBMS) hoạt động theo mô hình client-server Với RDBMS là viết tắt của Relational Database Management System MySQL được tích hợp apache, PHP MySQL quản lý dữ liệu thông qua các cơ sở dữ liệu Mỗi cơ sở dữ liệu có thể có nhiều bảng quan hệ chứa dữ liệu MySQL cũng có cùng một cách truy xuất và mã lệnh tương tự với ngôn ngữ SQL [5]
Trang 22Hình 2.7: Hệ quản trị cơ sở dữ liệu MySQL 2.2.3 Công cụ Xampp
Hình 2.8: Công cụ Xampp
Ý nghĩa chữ viết tắt XAMPP là gì? XAMPP hoạt động dựa trên sự tích hợp của 5 phần mềm chính là Cross-Platform (X), Apache (A), MariaDB (M), PHP (P) và Perl (P), nên tên gọi XAMPP cũng là viết tắt từ chữ cái đầu của 5 phần mềm này [4]:
- Chữ X đầu tiên là viết tắt của hệ điều hành mà nó hoạt động với: Linux, Windows
và Mac OS X
- Apache: Web Server mã nguồn mở Apache là máy chủ được sử dụng rộng rãi nhất trên toàn thế giới để phân phối nội dung Web Ứng dụng được cung cấp dưới dạng phần mềm miễn phí bởi Apache Software Foundation
- MySQL / MariaDB: Trong MySQL, XAMPP chứa một trong những hệ quản trị
cơ sở dữ liệu quan hệ phổ biến nhất trên thế giới Kết hợp với Web Server Apache và ngôn ngữ lập trình PHP, MySQL cung cấp khả năng lưu trữ dữ liệu cho các dịch vụ Web Các phiên bản XAMPP hiện tại đã thay thế MySQL bằng MariaDB (một nhánh của dự án MySQL do cộng đồng phát triển, được thực hiện bởi các nhà phát triển ban đầu)
Trang 23- PHP: Ngôn ngữ lập trình phía máy chủ PHP cho phép người dùng tạo các trang Web hoặc ứng dụng động PHP có thể được cài đặt trên tất cả các nền tảng và hỗ trợ một số hệ thống cơ sở dữ liệu đa dạng
- Perl: ngôn ngữ kịch bản Perl được sử dụng trong quản trị hệ thống, phát triển Web và lập trình mạng Giống như PHP, Perl cũng cho phép người dùng lập trình các ứng dụng Web động
2.2.4 Visual Studio Code
Là một trình biên tập lập trình code miễn phí dành cho Windows, Linux và macOS, Visual Studio Code được phát triển bởi Microsoft Nó được xem là một sự kết hợp hoàn hảo giữa IDE và Code Editor [2]
Visual Studio Code hỗ trợ chức năng debug, đi kèm với Git, có syntax highlighting,
tự hoàn thành mã thông minh, snippets, và cải tiến mã nguồn Nhờ tính năng tùy chỉnh, Visual Studio Code cũng cho phép người dùng thay đổi theme, phím tắt, và các tùy chọn khác
Hình 2.9: Phần mềm Visual Studio Code
- Một số tính năng của Visual Studio Code:
Hỗ trợ nhiều ngôn ngữ lập trình: Visual Studio Code hỗ trợ nhiều ngôn ngữ lập trình như C/C++, C#, F#, Visual Basic, HTML, CSS, JavaScript, … Vì vậy, nó dễ dàng phát hiện và đưa ra thông báo nếu chương chương trình có lỗi
Hỗ trợ đa nền tảng: Các trình viết code thông thường chỉ được sử dụng hoặc cho Windows hoặc Linux hoặc Mac Systems Nhưng Visual Studio Code có thể hoạt động tốt trên cả ba nền tảng trên
Cung cấp kho tiện ích mở rộng: Trong trường hợp lập trình viên muốn sử dụng một ngôn ngữ lập trình không nằm trong số các ngôn ngữ Visual Studio hỗ trợ, họ
có thể tải xuống tiện ích mở rộng Điều này vẫn sẽ không làm giảm hiệu năng của phần mềm, bởi vì phần mở rộng này hoạt động như một chương trình độc lập
Trang 24 Kho lưu trữ an toàn: Đi kèm với sự phát triển của lập trình là nhu cầu về lưu trữ an toàn Với Visual Studio Code, người dùng có thể hoàn toàn yên tâm vì nó dễ dàng kết nối với Git hoặc bất kỳ kho lưu trữ hiện có nào
Hỗ trợ web: Visual Studio Code hỗ trợ nhiều ứng dụng web Ngoài ra, nó cũng có một trình soạn thảo và thiết kế website
Lưu trữ dữ liệu dạng phân cấp: Phần lớn tệp lưu trữ đoạn mã đều được đặt trong các thư mục tương tự nhau Ngoài ra, Visual Studio Code còn cung cấp các thư mục cho một số tệp đặc biệt quan trọng
Hỗ trợ viết Code: Một số đoạn code có thể thay đổi chút ít để thuận tiện cho người dùng Visual Studio Code sẽ đề xuất cho lập trình viên các tùy chọn thay thế nếu
có
Intellisense: Hầu hết các trình viết mã đều có tính năng nhắc mã Intellisense, nhưng ít chương trình nào chuyên nghiệp bằng Visual Studio Code Nó có thể phát hiện nếu bất kỳ đoạn mã nào không đầy đủ Thậm chí, khi lập trình viên quên không khai báo biến, Intellisense sẽ tự động giúp họ bổ sung các cú pháp còn thiếu
Hỗ trợ Git: Visual Studio Code hỗ trợ kéo hoặc sao chép mã trực tiếp từ GitHub Mã này sau đó có thể được thay đổi và lưu lại trên phần mềm
2.2.5 Bootstrap
Bootstrap là 1 framework HTML, CSS, và JavaScript cho phép người dùng dễ dàng thiết kế website theo 1 chuẩn nhất định, tạo các website thân thiện với các thiết bị cầm tay như mobile, ipad, tablet [3]
Bootstrap bao gồm những cái cơ bản có sẵn như: typography, forms, buttons, tables, navigation, modals, image carousels và nhiều thứ khác Trong bootstrap có thêm nhiều Component, Javascript hỗ trợ cho việc thiết kế reponsive của bạn dễ dàng, thuận tiện và nhanh chóng hơn
Hình 2.10: Logo của Bootstrap
Trang 25CHƯƠNG 3 PHÂN TÍCH, THIẾT KẾ HỆ THỐNG VÀ KẾT QUẢ
3.1 ĐẶC TẢ YÊU CẦU
3.1.1 Các tác nhân
- Admin: Người quản trị hệ thống;
- Khách hàng: Người sử dụng website để mua hàng
3.1.2 Yêu cầu chức năng
Bảng 3.1: Mô tả các chức năng Tác
nhân Chức năng Chức năng con Sự kiện
Xem danh sách tài khoản
Chỉnh sửa tài khoản
Quản lý thương
hiệu
Xem danh sách thương hiệu
Chỉnh sửa thương hiệu
Xác nhận giao hàng thành công
Sau khi giao hàng thành công thì admin xác nhận là giao hàng thành công
Trang 26đơn hàng được cập nhật
Khi có cập nhật đơn hàng, hệ thống sẽ gửi thông tin cập nhật qua
Trang 27Tác
nhân Chức năng Chức năng con Sự kiện
email, ví dụ khi từ trạng thái chưa xác nhận hóa đơn khi được người quản trị xác nhận đơn hàng thì hệ thống sẽ gửi email cho khách hàng
3.1.3 Yêu cầu phi chức năng
Bảng 3.2: Yêu cầu phi chức năng STT Yêu cầu Chi tiết
1 Giao diện thân
2 Bảo mật thông tin Thông tin tài khoản như mật khẩu, số điện thoại, thông
tin mua hàng được bảo mật và đảm bảo an toàn
3 Tốc độ xử lý Tải dữ liệu nhanh chóng, không tốn quá 5 giây trả về
kết quả
4 Chịu tải tốt Khi có nhiều người dùng truy cập thì website phải
hoạt động tốt và không bị sập máy chủ
3.2 PHÂN TÍCH YÊU CẦU
3.2.1 Yêu cầu chức năng Admin
a Đăng nhập
- Đầu vào: Email và mật khẩu
- Xử lý:
Hệ thống nhận yêu cầu, sau đó giao cho controller đăng nhập xử lý đăng nhập;
Controller đăng nhập nhận yêu cầu kiểm tra xem email và mật khẩu đã tồn tại trên hệ thống chưa;
Nếu có đăng nhập cho người dùng, ngược lại thông báo lỗi
- Đầu ra:
Đăng nhập thành công: Chuyển hướng từ trang đăng nhập sang trang yêu cầu;
Đăng nhập thất bại: Thông báo đăng nhập thất bại
Trang 28b Đăng xuất
- Đầu vào: Không
- Xử lý:
Hệ thống nhận yêu cầu, sau đó giao cho controller đăng xuất xử lý;
Controller đăng xuất nhận yêu cầu và đăng xuất người dùng;
- Đầu ra: Thông báo đã đăng xuất và trở về trang chủ
c Quản lý tài khoản
Xem danh sách tài khoản:
- Đầu vào: Không
- Xử lý:
Hệ thống nhận yêu cầu, sau đó giao cho controller quản lý tài khoản xử lý;
Controller quản lý tài khoản kiểm tra quyền truy cập;
Controller tải khoản truy xuất dữ liệu tài khoản từ CSDL;
- Đầu ra:
Cho phép truy cập: Danh sách tài khoản;
Không cho phép truy cập: Thông báo quyền bị giới hạn
Thêm tài khoản:
- Đầu vào: Email, mật khẩu, nhập lại mật khẩu, tên, số điện thoại, địa chỉ và loại tài khoản
- Xử lý:
Hệ thống nhận yêu cầu, sau đó giao cho controller quản lý tài khoản xử lý;
Controller quản lý tài khoản kiểm tra quyền truy cập;
Controller quản lý tài khoản kiểm tra đảm bảo form nhập đầy đủ thông tin và đúng kiểu dữ liệu, kiểm tra mật khẩu và nhập lại mật khẩu trùng khớp;
Controller quản lý tài khoản thêm tài khoản mới vào CSDL
- Đầu ra:
Cho phép thêm: Thông báo thêm thành công;
Không cho phép thêm: Thông báo lỗi thêm không thành công
Chỉnh sửa tài khoản:
- Đầu vào: Id tài khoản, email, mật khẩu, nhập lại mật khẩu, tên, số điện thoại và địa chỉ
- Xử lý:
Hệ thống nhận yêu cầu, sau đó giao cho controller quản lý tài khoản xử lý;
Controller quản lý tài khoản kiểm tra quyền truy cập;
Controller quản lý tài khoản kiểm tra đảm bảo form nhập đầy đủ thông tin và đúng kiểu dữ liệu;
Controller quản lý tài khoản chỉnh sửa tài khoản trong CSDL
- Đầu ra:
Cho phép sửa: Thông báo chỉnh sửa thành công;
Trang 29 Không cho phép sửa: Thông báo lỗi chỉnh sửa không thành công
Xóa tài khoản:
- Đầu vào: Id tài khoản
- Xử lý:
Hệ thống nhận yêu cầu, sau đó giao cho controller quản lý tài khoản xử lý;
Controller quản lý tài khoản kiểm tra quyền truy cập;
Controller quản lý tài khoản kiểm tra id tài khoản trong hệ thống;
Controller quản lý tài khoản xóa tài khoản trong CSDL
- Đầu ra:
Cho phép xóa: Thông báo xóa thành công;
Không cho phép xóa: Thông báo lỗi xóa không thành công
d Quản lý thương hiệu
Xem danh sách thương hiệu:
- Đầu vào: Không
- Xử lý:
Hệ thống nhận yêu cầu, sau đó giao cho controller quản lý thương hiệu xử lý;
Controller quản lý thương hiệu kiểm tra quyền truy cập;
Controller tải khoản truy xuất dữ liệu thương hiệu từ CSDL;
- Đầu ra:
Cho phép truy cập: Danh sách thương hiệu;
Không cho phép truy cập: Thông báo quyền bị giới hạn
Thêm thương hiệu:
- Đầu vào: Tên thương hiệu
- Xử lý:
Hệ thống nhận yêu cầu, sau đó giao cho controller quản lý thương hiệu xử lý;
Controller quản lý thương hiệu kiểm tra quyền truy cập;
Controller quản lý thương hiệu kiểm tra đảm bảo form nhập đầy đủ thông tin
và đúng kiểu dữ liệu;
Controller quản lý thương hiệu thêm thương hiệu mới vào CSDL
- Đầu ra:
Cho phép thêm: Thông báo thêm thành công;
Không cho phép thêm: Thông báo lỗi thêm không thành công
Chỉnh sửa thương hiệu:
- Đầu vào: Id thương hiệu và tên thương hiệu
- Xử lý:
Hệ thống nhận yêu cầu, sau đó giao cho controller quản lý thương hiệu xử lý;
Controller quản lý thương hiệu kiểm tra quyền truy cập;
Controller quản lý thương hiệu kiểm tra đảm bảo form nhập đầy đủ thông tin
và đúng kiểu dữ liệu;
Trang 30 Controller quản lý thương hiệu chỉnh sửa thương hiệu trong CSDL
- Đầu ra:
Cho phép sửa: Thông báo chỉnh sửa thành công;
Không cho phép sửa: Thông báo lỗi chỉnh sửa không thành công
Xóa thương hiệu:
- Đầu vào: Id thương hiệu
- Xử lý:
Hệ thống nhận yêu cầu, sau đó giao cho controller quản lý thương hiệu xử lý;
Controller quản lý thương hiệu kiểm tra quyền truy cập;
Controller quản lý thương hiệu kiểm tra id thương hiệu trong hệ thống;
Controller quản lý thương hiệu xóa thương hiệu trong CSDL
- Đầu ra:
Cho phép xóa: Thông báo xóa thành công;
Không cho phép xóa: Thông báo lỗi xóa không thành công
e Quản lý danh mục
Xem danh sách danh mục:
- Đầu vào: Không
- Xử lý:
Hệ thống nhận yêu cầu, sau đó giao cho controller quản lý danh mục xử lý;
Controller quản lý danh mục kiểm tra quyền truy cập;
Controller tải khoản truy xuất dữ liệu danh mục từ CSDL;
- Đầu ra:
Cho phép truy cập: Danh sách danh mục;
Không cho phép truy cập: Thông báo quyền bị giới hạn
Thêm danh mục:
- Đầu vào: Tên danh mục
- Xử lý:
Hệ thống nhận yêu cầu, sau đó giao cho controller quản lý danh mục xử lý;
Controller quản lý danh mục kiểm tra quyền truy cập;
Controller quản lý danh mục kiểm tra đảm bảo form nhập đầy đủ thông tin và đúng kiểu dữ liệu;
Controller quản lý danh mục thêm danh mục mới vào CSDL
- Đầu ra:
Cho phép thêm: Thông báo thêm thành công;
Không cho phép thêm: Thông báo lỗi thêm không thành công
Trang 31 Controller quản lý danh mục kiểm tra quyền truy cập;
Controller quản lý danh mục kiểm tra đảm bảo form nhập đầy đủ thông tin và đúng kiểu dữ liệu;
Controller quản lý danh mục chỉnh sửa danh mục trong CSDL
- Đầu ra:
Cho phép sửa: Thông báo chỉnh sửa thành công;
Không cho phép sửa: Thông báo lỗi chỉnh sửa không thành công
Xóa danh mục:
- Đầu vào: Id danh mục
- Xử lý:
Hệ thống nhận yêu cầu, sau đó giao cho controller quản lý danh mục xử lý;
Controller quản lý danh mục kiểm tra quyền truy cập;
Controller quản lý danh mục kiểm tra id danh mục trong hệ thống;
Controller quản lý danh mục xóa danh mục trong CSDL
- Đầu ra:
Cho phép xóa: Thông báo xóa thành công;
Không cho phép xóa: Thông báo lỗi xóa không thành công
f Quản lý sản phẩm
Xem danh sách sản phẩm:
- Đầu vào: Không
- Xử lý:
Hệ thống nhận yêu cầu, sau đó giao cho controller quản lý sản phẩm xử lý;
Controller quản lý sản phẩm kiểm tra quyền truy cập;
Controller tải khoản truy xuất dữ liệu sản phẩm từ CSDL;
- Đầu ra:
Cho phép truy cập: Danh sách sản phẩm;
Không cho phép truy cập: Thông báo quyền bị giới hạn
Thêm sản phẩm:
- Đầu vào: id danh mục, id thương hiệu, tên sản phẩm, số lượng đã bán, số lượng hiện tại, giá, giá gốc và mô tả
- Xử lý:
Hệ thống nhận yêu cầu, sau đó giao cho controller quản lý sản phẩm xử lý;
Controller quản lý sản phẩm kiểm tra quyền truy cập;
Controller quản lý sản phẩm kiểm tra đảm bảo form nhập đầy đủ thông tin và đúng kiểu dữ liệu;
Controller quản lý sản phẩm thêm sản phẩm mới vào CSDL
- Đầu ra:
Cho phép thêm: Thông báo thêm thành công;
Không cho phép thêm: Thông báo lỗi thêm không thành công
Trang 32Chỉnh sửa sản phẩm:
- Đầu vào: Id sản phẩm, id danh mục, id thương hiệu, tên sản phẩm, số lượng đã bán, số lượng hiện tại, giá, giá gốc và mô tả
- Xử lý:
Hệ thống nhận yêu cầu, sau đó giao cho controller quản lý sản phẩm xử lý;
Controller quản lý sản phẩm kiểm tra quyền truy cập;
Controller quản lý sản phẩm kiểm tra đảm bảo form nhập đầy đủ thông tin và đúng kiểu dữ liệu;
Controller quản lý sản phẩm chỉnh sửa sản phẩm trong CSDL
- Đầu ra:
Cho phép sửa: Thông báo chỉnh sửa thành công;
Không cho phép sửa: Thông báo lỗi chỉnh sửa không thành công
Xóa sản phẩm:
- Đầu vào: Id sản phẩm
- Xử lý:
Hệ thống nhận yêu cầu, sau đó giao cho controller quản lý sản phẩm xử lý;
Controller quản lý sản phẩm kiểm tra quyền truy cập;
Controller quản lý sản phẩm kiểm tra id sản phẩm trong hệ thống;
Controller quản lý sản phẩm xóa sản phẩm trong CSDL
- Đầu ra:
Cho phép xóa: Thông báo xóa thành công;
Không cho phép xóa: Thông báo lỗi xóa không thành công
g Quản lý đơn hàng
Xem danh sách đơn hàng:
- Đầu vào: Không
- Xử lý:
Hệ thống nhận yêu cầu, sau đó giao cho controller quản lý đơn hàng xử lý;
Controller quản lý đơn hàng kiểm tra quyền truy cập;
Controller tải khoản truy xuất dữ liệu đơn hàng từ CSDL;
- Đầu ra:
Cho phép truy cập: Danh sách đơn hàng;
Không cho phép truy cập: Thông báo quyền bị giới hạn
Xác nhận đơn hàng:
- Đầu vào: Id đơn hàng
- Xử lý:
Hệ thống nhận yêu cầu, sau đó giao cho controller quản lý đơn hàng xử lý;
Controller quản lý đơn hàng kiểm tra quyền truy cập;
Controller quản lý đơn hàng kiểm tra id đơn hàng trong hệ thống;
Controller quản lý đơn hàng cập nhật lại đơn hàng;
Trang 33 Controller quản lý đơn hàng gửi email cho khách hàng
- Đầu ra:
Cho phép thêm: Thông báo xác nhận thành công;
Không cho phép thêm: Thông báo lỗi xác nhận không thành công
Xác nhận giao hàng thành công:
- Đầu vào: Id đơn hàng
- Xử lý:
Hệ thống nhận yêu cầu, sau đó giao cho controller quản lý đơn hàng xử lý;
Controller quản lý đơn hàng kiểm tra quyền truy cập;
Controller quản lý đơn hàng kiểm tra id đơn hàng trong hệ thống;
Controller quản lý đơn hàng cập nhật lại đơn hàng;
Controller quản lý đơn hàng gửi email cho khách hàng
- Đầu ra:
Cho phép thêm: Thông báo cập nhật thành công;
Không cho phép thêm: Thông báo lỗi cập nhậtkhông thành công
Xóa đơn hàng:
- Đầu vào: Id đơn hàng
- Xử lý:
Hệ thống nhận yêu cầu, sau đó giao cho controller quản lý đơn hàng xử lý;
Controller quản lý đơn hàng kiểm tra quyền truy cập;
Controller quản lý đơn hàng kiểm tra id đơn hàng trong hệ thống;
Controller quản lý đơn hàng xóa đơn hàng trong CSDL
- Đầu ra:
Cho phép xóa: Thông báo xóa thành công;
Không cho phép xóa: Thông báo lỗi xóa không thành công
h Quản lý đánh giá
Xem danh sách đánh giá:
- Đầu vào: Không
- Xử lý:
Hệ thống nhận yêu cầu, sau đó giao cho controller quản lý đánh giá xử lý;
Controller quản lý đánh giá kiểm tra quyền truy cập;
Controller tải khoản truy xuất dữ liệu đánh giá từ CSDL;
- Đầu ra:
Cho phép truy cập: Danh sách đánh giá;
Không cho phép truy cập: Thông báo quyền bị giới hạn
Trang 34 Controller quản lý đánh giá kiểm tra quyền truy cập;
Controller quản lý đánh giá kiểm tra đảm bảo form nhập đầy đủ thông tin và đúng kiểu dữ liệu;
Controller quản lý đánh giá thêm đánh giá mới vào CSDL
- Đầu ra:
Cho phép thêm: Thông báo thêm thành công;
Không cho phép thêm: Thông báo lỗi thêm không thành công
Chỉnh sửa đánh giá:
- Đầu vào: Id đánh giá, id tài khoản đánh giá, nội dung đánh giá, sao
- Xử lý:
Hệ thống nhận yêu cầu, sau đó giao cho controller quản lý đánh giá xử lý;
Controller quản lý đánh giá kiểm tra quyền truy cập;
Controller quản lý đánh giá kiểm tra đảm bảo form nhập đầy đủ thông tin và đúng kiểu dữ liệu;
Controller quản lý đánh giá chỉnh sửa đánh giá trong CSDL
- Đầu ra:
Cho phép sửa: Thông báo chỉnh sửa thành công;
Không cho phép sửa: Thông báo lỗi chỉnh sửa không thành công
Xóa đánh giá:
- Đầu vào: Id đánh giá
- Xử lý:
Hệ thống nhận yêu cầu, sau đó giao cho controller quản lý đánh giá xử lý;
Controller quản lý đánh giá kiểm tra quyền truy cập;
Controller quản lý đánh giá kiểm tra id đánh giá trong hệ thống;
Controller quản lý đánh giá xóa đánh giá trong CSDL
- Đầu ra:
Cho phép xóa: Thông báo xóa thành công;
Không cho phép xóa: Thông báo lỗi xóa không thành công
i Quản lý slide
Xem danh sách slide:
- Đầu vào: Không
- Xử lý:
Hệ thống nhận yêu cầu, sau đó giao cho controller quản lý slide xử lý;
Controller quản lý slide kiểm tra quyền truy cập;
Controller tải khoản truy xuất dữ liệu slide từ CSDL;
- Đầu ra:
Cho phép truy cập: Danh sách slide;
Không cho phép truy cập: Thông báo quyền bị giới hạn
Thêm slide:
Trang 35- Đầu vào: Tiêu đề slide, nội dung slide và liên kết slide
- Xử lý:
Hệ thống nhận yêu cầu, sau đó giao cho controller quản lý slide xử lý;
Controller quản lý slide kiểm tra quyền truy cập;
Controller quản lý slide kiểm tra đảm bảo form nhập đầy đủ thông tin và đúng kiểu dữ liệu;
Controller quản lý slide thêm slide mới vào CSDL
- Đầu ra:
Cho phép thêm: Thông báo thêm thành công;
Không cho phép thêm: Thông báo lỗi thêm không thành công
Chỉnh sửa slide:
- Đầu vào: Id slide, tiêu đề slide, nội dung slide và liên kết slide
- Xử lý:
Hệ thống nhận yêu cầu, sau đó giao cho controller quản lý slide xử lý;
Controller quản lý slide kiểm tra quyền truy cập;
Controller quản lý slide kiểm tra đảm bảo form nhập đầy đủ thông tin và đúng kiểu dữ liệu;
Controller quản lý slide chỉnh sửa slide trong CSDL
- Đầu ra:
Cho phép sửa: Thông báo chỉnh sửa thành công;
Không cho phép sửa: Thông báo lỗi chỉnh sửa không thành công
Xóa slide:
- Đầu vào: Id slide
- Xử lý:
Hệ thống nhận yêu cầu, sau đó giao cho controller quản lý slide xử lý;
Controller quản lý slide kiểm tra quyền truy cập;
Controller quản lý slide kiểm tra id slide trong hệ thống;
Controller quản lý slide xóa slide trong CSDL
- Đầu ra:
Cho phép xóa: Thông báo xóa thành công;
Không cho phép xóa: Thông báo lỗi xóa không thành công
3.2.2 Yêu cầu chức năng khách hàng
a Đăng ký
- Đầu vào: Email, mật khẩu, nhập lại mật khẩu, tên, số điện thoại, địa chỉ
- Xử lý:
Hệ thống nhận yêu cầu, sau đó giao cho controller đăng ký xử lý đăng ký;
Controller đăng kýkiểm tra đảm bảo form nhập đầy đủ thông tin và đúng kiểu
dữ liệu;
Đăng ký tài khoản mới cho người dùng
Trang 36- Đầu ra:
Đăng ký thành công: Chuyển hướng từ trang đăng ký sang trang đăng nhập;
Đăng nhập thất bại: Thông báo đăng ký thất bại
b Đăng nhập
- Đầu vào: Email và mật khẩu
- Xử lý:
Hệ thống nhận yêu cầu, sau đó giao cho controller đăng nhập xử lý đăng nhập;
Controller đăng nhập nhận yêu cầu kiểm tra xem email và mật khẩu đã tồn tại trên hệ thống chưa;
Nếu có đăng nhập cho người dùng, ngược lại thông báo lỗi
- Đầu ra:
Đăng nhập thành công: Chuyển hướng từ trang đăng nhập sang trang yêu cầu;
Đăng nhập thất bại: Thông báo đăng nhập thất bại
c Đăng xuất
- Đầu vào: Không
- Xử lý:
Hệ thống nhận yêu cầu, sau đó giao cho controller đăng xuất xử lý;
Controller đăng xuất nhận yêu cầu và đăng xuất người dùng;
- Đầu ra: Thông báo đã đăng xuất và trở về trang chủ
d Xem sản phẩm
- Đầu vào: Không
- Xử lý:
Hệ thống nhận yêu cầu, sau đó giao cho controller quản lý sản phẩm xử lý;
Controller tải khoản truy xuất dữ liệu sản phẩm từ CSDL
- Đầu ra: Danh sách sản phẩm
e Tìm kiếm sản phẩm
- Đầu vào: Từ khóa tìm kiếm
- Xử lý:
Hệ thống nhận yêu cầu, sau đó giao cho controller quản lý sản phẩm xử lý;
Controller tải khoản truy xuất dữ liệu sản phẩm từ CSDL
- Đầu ra: Danh sách sản phẩm tìm kiếm
f Xem chi tiết sản phẩm
- Đầu vào: Không
- Xử lý:
Hệ thống nhận yêu cầu, sau đó giao cho controller quản lý sản phẩm xử lý;
Controller tải khoản truy xuất dữ liệu sản phẩm từ CSDL;
- Đầu ra: Thông tin sản phẩm
Trang 37g Quản lý giỏ hàng
Xem danh sách giỏ hàng:
- Đầu vào: Không
- Xử lý:
Hệ thống nhận yêu cầu, sau đó giao cho controller quản lý giỏ hàng xử lý;
Controller quản lý giỏ hàng kiểm tra quyền truy cập;
Controller tải khoản truy xuất dữ liệu giỏ hàng từ CSDL;
- Đầu ra:
Cho phép truy cập: Danh sách giỏ hàng;
Không cho phép truy cập: Thông báo quyền bị giới hạn
Thêm sản phẩm vào giỏ hàng:
- Đầu vào: Form thêm giỏ hàng
- Xử lý:
Hệ thống nhận yêu cầu, sau đó giao cho controller quản lý giỏ hàng xử lý;
Controller quản lý giỏ hàng kiểm tra quyền truy cập;
Controller quản lý giỏ hàng kiểm tra đảm bảo form nhập đầy đủ thông tin và đúng kiểu dữ liệu;
Controller quản lý giỏ hàng thêm sản phẩm vào giỏ hàng
- Đầu ra:
Cho phép thêm: Thông báo thêm thành công;
Không cho phép thêm: Thông báo lỗi thêm không thành công
Xóa sản phẩm khỏi giỏ hàng:
- Đầu vào: Id giỏ hàng
- Xử lý:
Hệ thống nhận yêu cầu, sau đó giao cho controller quản lý giỏ hàng xử lý;
Controller quản lý giỏ hàng kiểm tra quyền truy cập;
Controller quản lý giỏ hàng kiểm tra id giỏ hàng trong hệ thống;
Controller quản lý giỏ hàng xóa sản phẩm khỏi giỏ hàng
- Đầu ra:
Cho phép xóa: Thông báo xóa thành công;
Không cho phép xóa: Thông báo lỗi xóa không thành công
Mua hàng:
- Đầu vào: Danh sách sản phẩm
- Xử lý:
Hệ thống nhận yêu cầu, sau đó giao cho controller quản lý giỏ hàng xử lý;
Controller quản lý giỏ hàng kiểm tra quyền truy cập;
Controller quản lý giỏ hàng kiểm tra đảm bảo form nhập đầy đủ thông tin và đúng kiểu dữ liệu;
Controller quản lý giỏ hàng thêm đơn hàng mới vào CSDL
Trang 38- Đầu ra:
Cho phép thêm: Thông báo thêm thành công;
Không cho phép thêm: Thông báo lỗi thêm không thành công
h Quản lý dơn hàng
Xem danh sách đơn hàng:
- Đầu vào: Không
- Xử lý:
Hệ thống nhận yêu cầu, sau đó giao cho controller quản lý đơn hàng xử lý;
Controller quản lý đơn hàng kiểm tra quyền truy cập;
Controller tải khoản truy xuất dữ liệu đơn hàng từ CSDL;
- Đầu ra:
Cho phép truy cập: Danh sách đơn hàng;
Không cho phép truy cập: Thông báo quyền bị giới hạn
Hủy đơn hàng:
- Đầu vào: Id đơn hàng
- Xử lý:
Hệ thống nhận yêu cầu, sau đó giao cho controller quản lý đơn hàng xử lý;
Controller quản lý đơn hàng kiểm tra quyền truy cập;
Controller quản lý đơn hàng kiểm tra id đơn hàng trong hệ thống;
Controller quản lý đơn hàng xóa đơn hàng trong CSDL
- Đầu ra:
Cho phép xóa: Thông báo xóa thành công;
Không cho phép xóa: Thông báo lỗi xóa không thành công
Trang 393.3 PHÂN TÍCH VÀ THIẾT KẾ HỆ THỐNG
3.3.1 Sơ đồ usecase
a Sơ đồ usecase tổng quát
Hình 3.1: Sơ đồ usecase tổng quát
Điều kiện tiên quyết - Người dùng đã truy cập giao diện của website
- Người dùng chưa đăng nhập
Dòng sự kiện chính 1 Từ trang bất kì, người dùng nhấn nút đăng nhập
2 Hệ thống hiển thị giao diện đăng nhập, người dùng nhập tên tài khoản và mật khẩu và nhấn nút đăng nhập
3 Hệ thống kiểm tra thông tin, nếu thông tin hợp lệ thì cho phép đăng nhập, nếu không thì thông báo lỗi
Dòng sự kiện thay thế Hiển thị thông báo thông tin không hợp lệ
Điều kiện sau Đăng nhập vào hệ thống
Trang 40Hình 3.2: Sơ đồ usecase đăng nhập
- Đăng ký:
Bảng 3.4: Đặc tả sơ đồ usecase đăng ký tài khoản
Định nghĩa Khách hàng muốn đăng ký một tài khoản mới vào hệ
thống
Điều kiện tiên quyết - Người dùng đã truy cập trang đăng nhập
Dòng sự kiện chính 1 Từ trang đăng nhập, người dùng nhấn nút đăng ký
2 Hệ thống hiển thị giao diện đăng ký tài khoản, người dùng nhập thông tin được yêu cầu và nhấn nút đăng ký tài khoản
3 Hệ thống kiểm tra thông tin, nếu thông tin hợp lệ thì hệ thống sẽ thêm tài khoản mới vào CSDL và thông báo thành công, ngược lại thông báo thất bại
Dòng sự kiện thay thế Hiển thị thông báo thông tin không hợp lệ
Điều kiện sau Tài khoản đã được đăng ký thành công
Hình 3.3: Sơ đồ usecase đăng ký tài khoản
- Quản lý tài khoản:
Hình 3.4: Sơ đồ tuần tự quản lý tài khoản Bảng 3.5: Đặc tả sơ đồ usecase thêm tài khoản
Định nghĩa Admin muốn thêm một tài khoản mới vào hệ thống