BỘ GIÁO DỤC VÀ ĐÀO TẠO
TRƯỜNG ĐẠI HỌC NHA TRANG
KHOA CÔNG NGHỆ THÔNG TIN
ĐỀ TÀI
XÂY DỰNG WEBSITE BÁN HÀNG TRỰC TUYẾN SỬ DỤNG
NODE.JS, REACT VÀ MONGODB
Khánh Hòa
TÓM TẮT ĐỀ TÀI
Với thời gian thực hiện đề tài còn hạn chế nên đề tài “Xây dựng Website bán
hàng trực tuyến sử dụng Node.js, React và MongoDB” chỉ dừng ở việc khảo sát,
thiết kế cơ sở dữ liệu thông tin về cửa hàng xung quanh khu vực Tp.Nha Trang cũng
như một số dữ liệu liên quan; tìm hiểu về Node.js và React cùng một số thư viện liên
quan, hệ quản trị cơ sở dữ liệu NoSQL/MongoDB và một số Framework của
Javascripts. Từ những cơ sở trên xây dựng Website bán hàng trực tuyến sử dụng
Node.js, React và MongoDB.
Mục đích của việc tin học hóa quản lý bán hàng là nhằm giúp cho người dùng
mà đặc biệt là khách hàng có thể dễ dàng xem thơng tin và lựa chọn sản phẩn thông
qua trang Website với những ưu điểm nổi bật như hiển thị trực quan, dễ tiếp cận, thông
tin truyền tải giàu hình ảnh, cho cái nhìn hệ thống tổng thể và tồn diện có thể hỗ trợ
việc cung cấp cũng như tiếp cận thông tin sản phẩm được tiến hành nhanh hơn, kết quả
tốt hơn, từ đó có thể dễ dàng đưa ra quyết định mua hàng một cách hiệu quả hơn.
Do khả năng của chúng em còn hạn chế nên các chức năng của website và hệ
thống vẫn chưa hồn thiện. Rất mong nhận được sự thơng cảm và đóng góp ý kiến từ
Q Thầy/Cơ và các bạn.
3
MỤC LỤC
4
MỞ ĐẦU
Lý do chọn đề tài:
Nha Trang là một thành phố ven biển và là trung tâm chính trị, kinh tế, văn hóa,
khoa học kỹ thuật và du lịch của tỉnh Khánh Hòa, Việt Nam. Thống kê về dân số tại
Nha Trang là 422.601 người (số liệu năm 2019). Từ đầu năm đến nay do ảnh hưởng
của dịch Covid-19, hoạt động kinh doanh thương mại- dịch vụ trên địa bàn thành phố
Nha Trang chịu tác động nặng nề. Ước tính tổng mức bán lẻ hàng hóa và dịch vụ tiêu
dùng trên địa bàn thành phố trong quý I năm 2020 chỉ đạt 7.494 tỷ đồng, bằng 12,67%
kế hoạch và giảm 28,76% so với cùng kỳ.
Trong hoạt động sản xuất, kinh doanh, giờ đây, thương mại điện tử đã khẳng định
được vai trò xúc tiến và thúc đẩy sự phát triển trong kinh doanh. Đối với một cửa hàng
hay shop, việc quảng bá và giới thiệu đến khách hàng các sản phẩm mới đáp ứng được
nhu cầu của khác hàng sẽ là cần thiết. Con người đang trở nên bận rộn và có rất ít thời
gian để đi mua sắm hơn. Đó là lý do tại sao, mua sắm trực tuyến đang dần lên ngôi.
Xây dựng website bán hàng là cách tiết kiệm, hiệu quả để các cửa hàng giới thiệu sản
phẩm và bán hàng.
Website không chỉ giúp bán hàng. Nó cịn là kênh để cửa hàng có thể giao tiếp với
khách hàng cực kỳ hiệu quả. Các công cụ như: bình luận trên sản phẩm, rating hàng
hố, hoặc live chat, giúp khách mua hàng tương tác với cửa hàng thuận tiện hơn.
Những thắc mắc và câu hỏi của khách hàng về sản phẩm sẽ được ghi nhận, phản hồi
trực tiếp. Khi mua hàng, khách cũng để lại thông tin liên hệ. Về lâu dài, bạn sẽ có
thơng tin khách hàng, biết thói quen mua sắm của họ để thực hiện các chương trình ưu
đãi hoặc upsales.
Từ những lý do trên nên em đã quyết định thực hiện đề tài: “Xây dựng Website
bán hàng trực tuyến sử dụng Node.js, React và MongoDB”.
Mục tiêu nghiên cứu:
+ Mục tiêu chung: Xây dụng Website bán hàng trực tuyến sử dụng Node.js,
React và MongoDB kết hợp với những kiến thức đã học tại trường.
+ Mục tiêu cụ thể:
- Xây dựng CSDL.
5
- Thiết kế giao diện trang Website.
- Thiết kế và xây dựng chức năng cơ bản của Website bán hàng.
Nội dung và phương thức thực hiện:
+ Nội dung thực hiện:
- Khảo sát các yêu cầu chức năng của Website bán hàng (khảo sát online – khảo sát
thực tế)
- Thu thập thông tin, xây dựng cơ sở dữ liệu cho Website
- Tìm hiểu cơng nghệ tích hợp cho Website (Machine Learning, AI)
+ Phương pháp:
- Chọn lọc chức năng, yêu cầu từ phiếu khảo sát và khảo sát thực tế
Cấu trúc của báo cáo bao gồm:
Chương 1: Tổng quan về vấn đề nghiên cứu.
Chương 2: Khảo sát hiện trạng
Chương 3: Phân tích thiết kế hệ thống
Chương 4: Trình bày những kết quả đã thực hiện được và hướng dẫn chi tiết
cách cài đặt, sử dụng chương trình.
Chương 5: Những kết quả, ưu điểm và mặt hạn chế của hệ thống
6
CHƯƠNG 1. TỔNG QUAN VỀ VẤN ĐỀ NGHIÊN CỨU
1.1 CƠ SỞ LÝ THUYẾT
1.1.1 Giới thiệu Node.js
Nodejs là một mã nguồn được xây dựng dựa trên nền tảng Javascript V8 Engine.
Nodejs sử dụng rộng bởi hàng ngàn lập trình viên trên tồn thế giới. NodeJS có thể
chạy trên nhiều nền tảng hệ điều hành khác nhau từ Windows cho tới Linux, MacOs
nên đó cũng là một lợi thế. NodeJS cung cấp các thư viện phong phú ở dạng Javascript
Module khác nhau giúp đơn giản hóa việc lập trình và giảm thời gian ở mức thấp nhất.
Khi nói đến NodeJS thì phải nghĩ tới vấn đề Realtime. Realtime ở đây chính là xử lý
giao tiếp từ client tới máy chủ theo thời gian thực.
Các tính năng vượt trội của Node.js:
• Khơng đồng bộ: Tất cả các API của Nodejs đều không đồng bộ (noneblocking), nó chủ yếu dựa trên nền của Nodejs Server và chờ đợi Server trả dữ
liệu về. Việc di chuyển máy chủ đến các API tiếp theo sau khi gọi và cơ chế
thông báo các sự kiện của Node.js giúp máy chủ để có được một phản ứng từ
các cuộc gọi API trước (Realtime).
• Chạy rất nhanh: Nodejs được xây dựng dựa vào nền tảng V8 Javascript Engine
nên việc thực thi chương trình rất nhanh.
• Đơn luồng nhưng khả năng mở rộng cao: Node.js sử dụng một mơ hình luồng
duy nhất với sự kiện lặp. cơ chế tổ chức sự kiện giúp các máy chủ để đáp ứng
một cách không ngăn chặn và làm cho máy chủ cao khả năng mở rộng như trái
ngược với các máy chủ truyền thống mà tạo đề hạn chế để xử lý yêu cầu.
Node.js sử dụng một chương trình đơn luồng và các chương trình tương tự có
thể cung cấp dịch vụ cho một số lượng lớn hơn nhiều so với yêu cầu máy chủ
truyền thống như Apache HTTP Server.
• Khơng đệm: Nodejs khơng đệm bất kì một dữ liệu nào và các ứng dụng này chủ
yếu là đầu ra dữ liệu.
• Có giấy phép: Nodejs đã được cấp giấy phép bởi MIT License.
1.1.2 Giới thiệu ReactJs
React.JS là một thư viện Javascript dùng để xây dựng giao diện người dùng, nó
khơng phải là 1 framework js nào hết. React hỗ trợ việc xây dựng những thành phần
(components) UI có tính tương tác cao, có trạng thái và có thể sử dụng lại được.React
được xây dựng xung quanh các component.
React không chỉ hoạt động trên phía client, mà cịn được render trên server và
có thể kết nối với nhau…
7
Những đặc trưng của ReactJs:
• JSX: Trong React, thay vì thường xuyên sử dụng JavaScript để thiết kế bố cục
trang web thì sẽ dùng JSX. JSX được đánh giá là sử dụng đơn giản hơn
JavaScript và cho phép trích dẫn HTML cũng như việc sử dụng các cú pháp thẻ
HTML để render các subcomponent. JSX tối ưu hóa code khi biên soạn, vì vậy
nó chạy nhanh hơn so với code JavaScript tương đương.
• Redux: là một predictable state management tool cho các ứng dụng Javascript.
Nó giúp bạn viết các ứng dụng hoạt động một cách nhất quán, chạy trong các
môi trường khác nhau (client, server, and native) và dễ dàng để test. Redux ra
đời lấy cảm hứng từ tư tưởng của ngôn ngữ Elm và kiến trúc Flux của
Facebook. Do vậy Redux thường dùng kết hợp với React.
• Single-way data flow (Luồng dữ liệu một chiều): ReactJS khơng có những
module chuyên dụng để xử lý data, vì vậy ReactJS chia nhỏ view thành các
component nhỏ có mỗi quan hệ chặt chẽ với nhau. Luồng truyền dữ liệu trong
ReactJS: Luồng dữ liệu một chiều từ cha xuống con. Việc ReactJS sử dụng oneway data flow có thể gây ra một chút khó khăn cho những người muốn tìm hiểu
và ứng dụng vào trong các dự án. Tuy nhiên, cơ chế này sẽ phát huy được ưu
điểm của mình khi cấu trúc cũng như chức năng của view trở nên phức tạp thì
ReactJS sẽ phát huy được vai trị của mình.
• Virtual DOM: Những Framework sử dụng Virtual-DOM như ReactJS khi
Virtual-DOM thay đổi, chúng ta không cần thao tác trực tiếp với DOM trên
View mà vẫn phản ánh được sự thay đổi đó. Do Virtual-DOM vừa đóng vai trị
là Model, vừa đóng vai trò là View nên mọi sự thay đổi trên Model đã kéo theo
sự thay đổi trên View và ngược lại. Có nghĩa là mặc dù chúng ta khơng tác
động trực tiếp vào các phần tử DOM ở View nhưng vẫn thực hiện được cơ chế
Data-binding. Điều này làm cho tốc độ ứng dụng tăng lên đáng kể – môt lợi thế
không thể tuyệt vời hơn khi sử dụng Virtula-DOM.
1.1.3. Giới thiệu MongoDB
MongoDB là một database hướng tài liệu (document), một dạng NoSQL
database. Vì thế, MongoDB sẽ tránh cấu trúc table-based của relational database để
thích ứng với các tài liệu như JSON có một schema rất linh hoạt gọi là BSON.
MongoDB sử dụng lưu trữ dữ liệu dưới dạng Document JSON nên mỗi một collection
sẽ các các kích cỡ và các document khác nhau. Các dữ liệu được lưu trữ trong
document kiểu JSON nên truy vấn sẽ rất nhanh.
Ưu điểm của MongoDB:
+ Dữ liệu lưu trữ phi cấu trúc, không có tính ràng buộc, tồn vẹn nên tính sẵn sàng
cao, hiệu suất lớn và dễ dàng mở rộng lưu trữ.
8
+ Dữ liệu được caching (ghi đệm) lên RAM, hạn chế truy cập vào ổ cứng nên tốc độ
đọc và ghi cao.
Nhược điểm của MongoDB:
+ Không ứng dụng được cho các mơ hình giao dịch nào có u cầu độ chính xác cao
do khơng có ràng buộc.
+ Khơng có cơ chế transaction (giao dịch) để phục vụ các ứng dụng ngân hàng.
+ Dữ liệu lấy RAM làm trọng tâm hoạt động vì vậy khi hoạt động yêu cầu một bộ nhớ
RAM lớn.
+ Mọi thay đổi về dữ liệu mặc định đều chưa được ghi xuống ổ cứng ngay lập tức vì
vậy khả năng bị mất dữ liệu từ nguyên nhân mất điện đột xuất là rất cao.
1.2 CÁC NGÔN NGỮ ĐƯỢC SỬ DỤNG
1.2.1 Ngôn ngữ HTML (Ngôn ngữ đánh dấu siêu văn bản)
HTML là viết tắt của Ngôn ngữ đánh dấu siêu văn bản. Nó được sử dụng để thiết
kế các trang web bằng ngôn ngữ đánh dấu. HTML là sự kết hợp của ngôn ngữ Siêu
văn bản và Đánh dấu. Siêu văn bản xác định liên kết giữa các trang web. Ngôn ngữ
đánh dấu được sử dụng để xác định tài liệu văn bản trong thẻ xác định cấu trúc của các
trang web.
1.2.2 Ngôn ngữ CSS (Cascading Style Sheets)
Trong tin học, các tập tin định kiểu theo tầng – dịch từ tiếng Anh là Cascading
Style Sheets (CSS) – được dùng để miêu tả cách trình bày các tài liệu viết bằng ngơn
ngữ HTML và XHTML. Ngồi ra ngơn ngữ định kiểu theo tầng cũng có thể dùng cho
XML, SVG, XUL. Các đặc điểm kỹ thuật của CSS được duy trì bởi World Wide Web
Consortium (W3C). Thay vì đặt các thẻ quy định kiểu dáng cho văn bản HTML (hoặc
XHTML) ngay trong nội dung của nó, ta có thể sử dụng tệp CSS để định dạng và có
thể tái sử dụng.
1.2.3 Ngơn ngữ JavaScript
JavaScript là ngơn ngữ lập trình website phổ biến hiện nay, nó được tích hợp và
nhúng vào HTML giúp website trở nên sống động hơn. JavaScript đóng vai trò như là
một phần của trang web, thực thi cho phép Client-side script từ phía người dùng cũng
như phía máy chủ (Nodejs) tạo ra các trang web động. JavaScript Framework là thư
viện được xây dựng dựa vào ngôn ngữ lập trình JavaScript. Từ đó, mỗi framework
được tạo ra để phục cho từng lĩnh vực khác nhau.
Hiện nay, có rất nhiều JavaScript Framework thông dụng như:
Reactjs: Thư viện dùng cho ứng dụng mobile.
Node.js: Dùng để xây dựng và phát triển ứng dụng realtime từ phía máy chủ.
Angular: Dùng để xây dựng ứng dụng Single Page….
Các ứng dụng của JavaScript:
Phát triển web: Thêm tính tương tác và hành vi vào các trang web tĩnh,
JavaScript đã được phát minh để làm điều này vào năm 1995 bằng cách sử dụng
AngularJS.
Ứng dụng web: Với cơng nghệ, các trình duyệt đã được cải thiện đến mức cần
có một ngơn ngữ để tạo ra các ứng dụng web mạnh mẽ. Khi chúng ta khám phá bản đồ
trong Google Maps thì chúng ta chỉ cần nhấp và kéo chuột. Tất cả chế độ xem chi tiết
9
chỉ cần một cú nhấp chuột và điều này chỉ có thể là JavaScript. Nó sử dụng Giao diện
lập trình ứng dụng (API) cung cấp thêm sức mạnh cho mã Electron và React rất hữu
ích trong bộ phận này.
Ứng dụng máy chủ: Với sự trợ giúp của Node.js, JavaScript đã đi từ máy khách
đến máy chủ và Node.js là mạnh nhất ở phía máy chủ.
Trị chơi: Khơng chỉ trong các trang web, JavaScript còn giúp tạo ra các trò chơi
để giải trí. Sự kết hợp giữa JavaScript và HTML5 cũng làm cho JavaScript trở nên phổ
biến trong phát triển trò chơi. Nó cung cấp thư viện EaseJS cung cấp các giải pháp để
làm việc với đồ họa phong phú.
Đồng hồ thông minh: JavaScript đang được sử dụng trong tất cả các thiết bị và
ứng dụng có thể. Nó cung cấp một thư viện PebbleJS được sử dụng trong các ứng
dụng đồng hồ thông minh. Framework này hoạt động cho các ứng dụng yêu cầu
internet cho hoạt động của nó.
Nghệ thuật: Các nghệ sĩ và nhà thiết kế có thể tạo bất cứ thứ gì họ muốn bằng
JavaScript để vẽ trên khung vẽ HTML5, làm cho âm thanh hiệu quả hơn cũng có thể
được sử dụng thư viện p5.js.
Học máy: Thư viện ml5.js JavaScript có thể được sử dụng trong phát triển web
bằng cách sử dụng machine learning.
1.3 THỰC TIỄN VẤN ĐỀ LIÊN QUAN ĐẾN ĐỀ TÀI
Ngày nay, thuật ngữ website được sử dụng rất phổ biến, bất cứ ai, bất cứ thiết bị
máy tính,di động, hoặc thiết bị thơng minh nào đều có kết nối internet hoặc có kết nối
sóng di động đều có thể truy cập một website ở bất kì đâu.
Đối với các cá nhân, doanh nghiệp trong thời đại cơng nghệ 4.0 bùng nổ thì
Website là một kênh thông tin thiết yếu, là phương tiện tốt nhất và nhanh nhất để đưa
khách hàng tiềm năng đến với cửa hàng, đưa đến sự thành công trong việc bán hàng,
mở rộng phát triển thị trường và xây dựng phát triển thương hiệu.
• Một trang Web được ví như là một cửa hàng thứ hai của doanh nghiệp, cá nhân
trên Internet.
Nếu như cửa hàng trong thực tế là nơi để các cá nhân, tập thể,khách hàng gặp
mặt, thực hiện các giao dịch một cách trực tiếp thì thơng qua website, khách hàng đã
có thể cập nhật được những thơng tin về sản phẩm, về dịch vụ mà không cần phải đến
tận nơi. Bên cạnh đó, một website có phong cách thiết kế ấn tượng cũng sẽ để lại ấn
tượng trong lịng khách hàng.
• Website giúp khẳng định thương hiệu và là công cụ cạnh tranh với đối thủ.
Khi khách hàng có nhu cầu tìm kiếm bất kỳ thơng tin về sản phẩm, dịch vụ hành động
đầu tiên của khách hàng chính là tìm kiếm thơng tin trên Internet. Ngay lúc này
10
website chính là một cơng cụ chính để giúp cạnh tranh và thu hút khách hàng hơn so
với đối thủ cạnh tranh.
Khơng chỉ cần có một website đơn giản mà phải cần sở hữu ngay một website
chuyên nghiệp để thu hút khách hàng và cạnh tranh với đối thủ.
11
CHƯƠNG 2. KHẢO SÁT HIỆN TRẠNG
2.1. HIỆN TRẠNG THÀNH PHỐ NHA TRANG
Vị trí: Nha Trang là một thành phố ven biển và là trung tâm chính trị, kinh tế,
văn hóa, khoa học kỹ thuật và du lịch của tỉnh Khánh Hòa, Việt Nam. Trước đây, vùng
đất Nha Trang vốn thuộc về Chiêm Thành, do đó các di tích của người Chăm vẫn còn
tồn tại nhiều nơi ở Nha Trang. Nha Trang được Thủ tướng chính phủ Việt Nam cơng
nhận là đô thị loại I vào ngày 22 tháng 4 năm 2009. Nha Trang được mệnh danh là hòn
ngọc của biển Đơng, Viên ngọc xanh vì giá trị thiên nhiên, vẻ đẹp cũng như khí hậu
của nó.
Dân số: Theo điều tra dân số năm 2019 thì dân số tồn thành phố có 322.601
người (1/4/2019), trong đó dân số thành thị chiếm 67,62% dân số nông thôn chiếm
32,38%. Mật độ dân số trung bình tồn thành phố là 1.062 người/km². Dân cư phân bố
không đều, tập trung chủ yếu ở các phường nội thành. Một số khu đô thị mới như khu
đô thị ven sông Tắc, khu đô thị Mipeco Nha Trang, khu đô thị VCN Phước Long, khu
đô thị Nha Trang Green Hill Villa, khu đô thị Nam Vĩnh Hải, khu đơ thị Hồng Long,
khu đơ thị VCN Phước Hải, khu đơ thị An Bình Tân, khu đơ thị Lê Hồng Phong II,
khu đơ thị Vĩnh Hịa, khu đơ thị Cồn Tân Lập, khu đơ thị Hịn Rớ 1, khu đơ thị Royal
Garden, khu đô thị Garden Bay, khu đô thị biển An Viên, khu đô thị Vĩnh Điềm Trung,
khu đô thị Mỹ Gia, khu đô thị Bắc Vĩnh Hải, khu đô thị Lê Hồng Phong I, khu đô thị
Phước Long...
Kinh tế: Tổng mức bán lẻ hàng hóa và dịch vụ tiêu dùng quý III/2021 được
3.136,111 tỷ đồng, đạt 5,24% kế hoạch, giảm 54,72% so cùng kỳ; 9 tháng đầu năm
được18.255,070 tỷ đồng, đạt 30,52% kế hoạch, giảm 13,57% so cùng kỳ.
2.2. TÌNH HÌNH BÁN LẺ HÀNG HĨA HIỆN NAY
Mơ hình kinh doanh bán lẻ đa số được triển khai dưới dạng tạp hóa, cửa hàng
tiện lợi, siêu thị mini,…
Tuy nhiên, tình hình dịch bệnh Covid19 diễn biến phức tạp; qua nhiều lần thực
hiện giãn cách xã hội theo Chỉ thị số 16/CT-TTg, đến nay tình hình bệnh Covid -19
trên địa bàn thành phố cơ bản đã dần được kiểm soát, toàn thành phố đã thực hiện chủ
trương nới lỏng các biện pháp giãn cách xã hội tương ứng với từng mức độ nguy cơ ở
thôn, tổ dân phố từ ngày 08/9/2021. Việc áp dụng nới lỏng đã góp phần làm cho tình
hình hoạt động bán lẻ trên địa bàn thành phố tăng so với tháng trước, nhưng so với
cùng kỳ thì vẫn ở mức độ giảm do vẫn thực hiện nghiêm quy định phòng chống dịch
và người dân ra đường khi cần thiết và không ra khỏi nhà từ 19 giờ ngày hơm trước tới
5 giờ hơm sau.
Trước tình hình đó nhiều hộ kinh doanh đã tìm đến những hình thức kinh doanh
online như sử dụng mạng xã hội Facebook để làm kênh bán lẻ, nhưng nó khơng mang
lại nhiều lợi ích do những chính sách từ phía Facebook. Đối với một số người sử dụng
các ứng dụng bán hàng như Shopee, Lazada, Tiki, nhưng khó trong khâu quản lý hàng
hóa.
Trong mùa dịch hiện nay nhu cầu về nhu yếu phẩm là rất cần thiết cho người
tiêu dùng. Do không thể đi lại thuận tiện, nguy cơ tiềm ẩn của dịch bệnh nên việc tới
những cửa hàng tạp hóa, siêu thị là điều rất khó khăn. Việc đặt các sản phẩm qua sàn
12
thương mại điện từ như Shopee thì khơng thể đảm bảo thời gian giao hàng, nguồn
hàng cũng có thể được chuẩn bị sơ sài, khơng đảm bảo u cầu.
Những khó khăn trên sẽ được giải quyết nếu như cửa hàng bán lẻ, siêu thị có
cho mình một Website bán hàng trực tuyến đáp ứng được nhu cầu mua hàng của người
tiêu dùng. Qua đó họ có thể xem được thơng tin chi tiết mặt hàng, so sánh giá tiền,
chất lượng giữa các mặt hàng, tiết kiệm thời gian mua hàng,… Cùng với đó một cửa
hàng bán lẻ có Website có thể cung cấp cho khách hàng trải nghiệm mua hàng tốt nhất
và có thể quản lý được hệ thống bán lẻ (nhập – xuất sản phẩm, thống kê) một cách tối
ưu nhất.
2.3. ĐẶC TẢ BÀI TOÁN
Phạm vi ứng dụng: Sử dụng trong việc quản lý bán hàng của các cửa hàng tiện
lợi, siêu thị, doanh nghiệp vừa và nhỏ…
Đối tượng sử dụng: Website có thể được sử dụng bởi Quản trị viên bán hàng,
Quản trị viên nhập hàng, Quản trị viên, khách hàng mua sản phẩm.
2.3.1. Chức năng đối với khách hàng
a) Xem sản phẩm
Mơ tả
Khách hàng có thể xem chi tiết về các loại sản phẩm
Nhập
Lựa chọn loại sản cần xem
Xử lý
Tìm kiếm trong CSDL
Xuất
Hiển thị thơng tin về sản phẩm mà khách hàng muốn xem.
Bảng 2.1: Bảng mô tả chức năng xem sản phẩm
b) Tìm kiếm
Mơ tả
Khách hàng có thể tìm kiếm sản phẩm hoặc 1 nhóm bằng những form tìm
kiếm được xây dựng sẵn trên website.
Nhập
Khách hàng nhập vào từ khóa
Xử lý
Hệ thống sẽ ghi nhận và thực hiện tìm kiếm trong cơ sở dữ liệu tất cả sản
phẩm mà tên có chứa từ khóa hay gần đúng với từ khóa
Xuất
Hiển thị thơng tin về 1 hoặc nhiều loại sản phẩm thỏa mãn được tìm kiếm
Bảng 2.2: Bảng mơ tả chức năng tìm kiếm
c) Lựa chọn sản phẩm vào giỏ hàng
13
Mơ tả
Nhập
Khách hàng có thể lựa chọn loại sản phẩm
Lựa chọn sản phẩm cần mua.
Xử lý
-Kiểm tra sản phẩm có trong giỏ hàng.
Xuất
-Nếu giỏ hàng đã có sản phẩm thì tăng số
Hiển thị thông tin về giỏ hàng mà khách h
Bảng 2.3: Bảng mô tả chức năng chọn sản phẩm vào giỏ hàng
d) Đặt hàng
Mô tả
Nhập
Sau khi chọn sản phẩm vào giỏ hàng, khác
Nhập sản phẩm vào giỏ hàng và cung cấp
Xử lý
Lựa chọn cách thức thanh toán trực tiếp h
-Kiểm tra sản phẩm có trong giỏ hàng.
-Kiểm tra thơng tin khách hàng.
-Ghi nhận hóa đơn khách vào CSDL.
Hiển thị thông tin về những sản phẩm mà
Xuất
Bảng 2.4: Bảng mô tả chức năng đặt hàng
e) Đăng kí thành viên
Mơ tả
Nhập
Khách vãng lai có thể đăng ký làm thành
Đưa vào các thông tin cá nhân như userna
Xử lý
- Kiểm tra user khơng được trùng lặp
- Mật khẩu phải gồm ít nhất 6 ký tự.
- Email có đúng định dạng.
...
- Thêm mới các thông tin khách hàng, mã
Thông báo tới khách hàng việc đăng ký đ
Xuất
Bảng 2.6: Bảng mô tả chức năng đăng kí thành viên
f) Đăng nhập website
Mơ tả Đăng nhập vào website bằng cách gõ user và password đã đăng ký.
Nhập
Cung cấp tên đăng nhập và mật khẩu
Xử lý
Truy cập kiểm tra tính chính xác trong CSDL
14
Xuất
Hiển thị thông báo đăng nhập thành công hoặc lỗi và phải đăng nhập lại.
Bảng 2.7: Bảng mô tả chức năng đăng nhập website
g) Đăng xuất website
Mô tả
Đăng xuất khỏi website
Nhập
click vào nút đăng xuất trên website
Xử lý
- Hủy toàn bộ session (hoặc token) của người dùng hiện tại
Xuất
- Đưa trở về chức năng của khách vãng lai.
Đưa về giao diện chính dành cho khách vãng lai
Bảng 2.8: Bảng mơ tả chức năng đăng xuất website
h) Đánh giá sản phẩm
Mô tả
Đánh giá về sản phẩm trên website
Nhập
Nhấp vào biểu tượng đánh giá
Xử lý
- Nhập thông tin đánh giá theo định dạng
Xuất
- Xác nhận đánh giá
Hiển thị thông báo đánh giá thành công
Bảng 2.9: Bảng mô tả chức năng đánh giá sản phẩm
i) Tra cứu đơn hàng
Mơ tả
Người dùng có thể xem tra cứu đơn hàng
Nhập
Nhấp vào danh mục đơn hàng trong phần menu nhỏ
Xử lý
- Hiển thị danh sách đơn hàng của người dùng (đơn giản)
Xuất
Thông tin trạng thái đơn hàng (có thể xem chi tiết hơn)
Bảng 2.10: Bảng mơ tả chức năng kiểm tra trạng thái đơn hàng
2.3.2. Chức năng của quản trị viên
a) Đăng nhập quản trị
15
Mô tả
Quản trị viên quản lý đăng nhập vào
Đầu vào
- Tên đăng nhập.
- Mật khẩu.
- Kiểm tra thông tin nhập vào có hợp
- Kết nối đến CSDL để kiểm tra tên đ
- Chuyển đến trang quản trị nếu đăng
- Quay lại trang đăng nhập nếu đăng
Xử lý
Đầu ra
Bảng 2.11: Bảng mô tả chức năng đăng nhập Quản trị viên
b) Đăng xuất quản trị
Mơ tả
Đầu vào
Xử lý
Đầu ra
Thốt khỏi tài khoản Qu
Click vào biểu tượng đăn
Tiến hành thoát tài khoản
Quay lại trang đăng nhập
Bảng 2.12: Bảng mô tả chức năng đăng xuất Quản trị viên
c)Quản lý sản phẩm
Mô tả Quản trị viên có quyền thêm, sửa hoặc xóa sản phẩm.
Nhập
Chọn và sử dụng công cụ quản lý sản phẩm.
Xử lý -Thêm:
Kiểm tra tính hợp lệ của thơng tin sản phẩm mới
Kiểm tra có tồn tại hay chưa?
Nếu chưa thêm mới sản phẩm vào CSDL.
-Sửa:
Kiểm tra tính hợp lệ của thơng tin sản phẩm mới
Kiểm tra có tồn tại hay chưa?
Nếu chưa cập nhật thơng tin sản phẩm vào CSDL.
-Xóa:
Nếu sản phẩm đã thuộc một giỏ hàng hoặc đơn hàng thì khơng được phép
xóa.
Ngược lại cho phép xóa sản phẩm.
Xuất
Thao tác chỉ cho phép thực hiện bởi các tài khoản có quyền hợp lệ
Hiện thông báo thành công hoặc lỗi.
16
Bảng 2.13. Bảng mô tả chức năng quản lý sản phẩm
d)Quản lý khách hàng
Mô tả Quản trị viên quản lý có quyền thêm, sửa hoặc xóa khách hàng.
Nhập
Chọn và sử dụng công cụ quản lý khách hàng.
Xử lý -Thêm:
Kiểm tra tính hợp lệ của thơng tin khách hàng mới
Kiểm tra có tồn tại tài khoản tương tự hay chưa?
Nếu chưa thêm mới khách vào CSDL.
-Sửa:
Kiểm tra tính hợp lệ của thơng tin mới
Kiểm tra có tồn tại hay chưa?
Nếu chưa cập nhật thơng tin sản phẩm vào CSDL.
-Xóa:
Xuất
Thao tác xóa chỉ cho phép thực hiện bởi các tài khoản có quyền hợp lệ
Hiện thông báo thành công hoặc lỗi.
Bảng 2.14. Bảng mô tả chức năng quản lý khách hàng
e) Quản lý đơn hàng
Mơ tả Quản trị viên quản lý có quyền xem và cập nhật trạng thái đơn hàng, trạng
thái giao hàng
Nhập Chọn và sử dụng công cụ quản lý đơn hàng.
Xử lý - Cập nhật trạng thái đơn hàng:
+ Xác nhận: khi số lượng hàng trong kho đủ yêu cầu đơn
+ Hủy: Khi khách hàng yêu cầu hoặc số lượng không đủ (thông báo cho
khách hàng)
- Cập nhật trạng thái giao hàng: (Quản trị viên xác nhận)
+ Chưa giao (mặc định)
+ Đang giao
+ Đã giao
Xuất
Phân quyền để sử dụng từng chức năng
Hiện thông báo thành công hoặc lỗi.
Bảng 2.15. Bảng mô tả chức năng quản lý đơn hàng
17
f) Quản lý đánh giá
Mô tả Quản trị viên quản lý có quyền xem và xóa đánh giá của các sản phẩm
Nhập
Chọn và sử dụng công cụ quản lý đánh giá
Xử lý - Xem danh sách các bản đánh giá sản phẩm
Xuất
- Xóa các đánh giá khơng phù hợp
Hiện thơng báo thành công hoặc lỗi.
Bảng 2.16. Bảng mô tả chức năng quản lý đánh giá
g) Thống kê, báo cáo
Mô tả Quản trị viên quản lý có quyền xem thống kê, báo cáo nhập – xuất hàng
Nhập
Chọn và sử dụng công cụ thống kê, báo cáo
Xử lý In ra thông tin về thống kê, báo cáo theo yêu cầu của người dùng như doanh
thu theo tháng, quý, năm, sản phẩm bán chạy nhất…
Xuất Hiển thị bảng biểu thống kê
Bảng 2.17. Bảng mô tả chức năng thống kê
18
CHƯƠNG 3. PHÂN TÍCH THIẾT KẾ HỆ THỐNG
3.1 PHÂN TÍCH
3.1.1 Xác định Actor và Use-case
a)Danh sách các Actor của hệ thống
STT
1
2
3
Tên Actor
Quản trị viên
Ý nghĩa
Quản trị viên là người quản trị trang web, có quyền hạn
thực hiện tất cả các chức năng của hệ thống như quản lý
hàng hóa, quản lý đơn hàng, cập nhật sản phẩm, đăng
nhập, quản lý người dùng,…
Khách hàng lựa chọn sản phẩm cần mua, yêu cầu mua
hàng, xem thơng tin hàng hóa,…
Sau khi 2 actor đăng nhập hợp lệ và hệ thống thì sẽ
mang danh nghĩa “thành viên” khác với “khách vãn
lai”. Một số use case dùng chung cho cả 2 đối tượng sẽ
được chỉ định tác nhân là actor này.
Khách hàng
Thành viên
Bảng 3.1. Các Actor của hệ thống
b) Danh sách các Use Case của hệ thống
STT
Tên Use case
1
Đăng nhập
Đăng nhập thành viên của trang web.
2
Đăng ký
Đăng ký làm thành viên trang web
3
Quản lý đơn hàng
4
Quản lý sản phẩm
5
Quản lý người dùng
6
Ý nghĩa
Quản lý đơn hàng (thêm, xóa, thay đổi trạng
thái) của website.
Quản lý các sản phẩm (thêm, xóa, sửa, tìm
kiếm) của trang web.
Quản lý thông tin người dùng của trang web.
Quản lý danh mục sản Thực hiện nhập, sửa, xóa thơng tin loại sản
phẩm
phẩm.
Quản lý các bình luận, nhận xét về sản phẩm của
7
Quản lý đánh giá
8
Quản lý thông tin cá nhân
9
Đặt hàng
Xác nhận việc mua hàng đã chọn.
10
Tìm kiếm
Tìm kiếm sản phẩm của trang web.
11
Đánh giá sản phẩm
Trực tiếp nhận xét, bình luận về sản phẩm trên
khách hàng.
Quản lý các thông tin tài khoản (sửa thông tin,
đổi mật khẩu, …) trên website
19
website.
12
Thống kê báo cáo
Thống kê dữ liệu trong website.
Bảng 3.2. Các Use Case của hệ thống
3.1.2 Đặc tả Use Case
a)Use case của hệ thống
Hình 3.1. Biểu đồ Use Case hệ thống
b)Use case đăng ký thành viên
20
Hình 3.1.1. Biểu đồ Use case đăng ký thành viên
- Tác nhân: Khách hàng.
- Mô tả: Cho phép khách xem đăng ký làm thành viên của hệ thống.
- Tiền điều kiện:
- Dịng sự kiện chính:
• Khách xem chọn mục đăng ký thành viên.
• Form Đăng ký thành viên hiển thị.
• Khách xem nhập thông tin cá nhân cần thiết vào form.
• Nhấn nút Đăng ký.
• Hệ thống thơng báo kết quả nhập thông tin cá nhân. Nếu thông tin nhập khơng
chính xác thì thực hiện luồng nhánh A1. Nếu nhập chính xác thì thực hiện bước
tiếp theo.
• Hệ thống cập nhật thông tin của khách xem vào danh sách thành viên.
• Use case kết thúc.
- Dịng sự kiện rẽ nhánh:
+ Dịng rẽ nhánh A1: Q trình nhập thơng tin khơng chính xác.
• Hệ thống thơng báo nhập thơng tin khơng chính xác.
• Hệ thống u cầu khách xem lại thơng tin nhập.
• Nếu khách xem đồng ý thì quay lại bước 2 của luồng sự kiện chính.Nếu khơng
đồng ý thì use case kết thúc.
- Hậu điều kiện: Khách hàng trở thành thành viên của hệ thống.
c)Use case đăng nhập
21
Hình 3.1.2. Biểu đồ Use case đăng nhập
- Tác nhân: Thành viên (gồm khách hàng và quản trị viên).
- Mô tả: Use case cho phép thành viên đăng nhập vào hệ thống.
- Tiền điều kiện: Thành viên chưa đăng nhập vào hệ thống.
Dịng sự kiện chính:
• Thành viên chọn chức năng đăng nhập.
• Form Đăng nhập hiển thị.
• Nhập email, mật khẩu vào form Đăng nhập.
• Hệ thống kiểm tra email, mật khẩu nhập của thành viên.
• Nếu thành viên nhập sai email, mật khẩu thì chuyển sang dịng sự kiện rẽ nhánh
A1. Nếu nhập đúng thì chuyển về trang chủ và lưu phiên đăng nhập để thực hiện
các chức năng trong hệ thống.
• Use case kết thúc.
- Dịng sự kiện rẽ nhánh:
+ Dòng rẽ nhánh A1: Thành viên đăng nhập khơng thành cơng.
• Hệ thống thơng báo q trình đăng nhập khơng thành cơng.
• Chọn đăng ký hay đăng nhập lại. Nếu chọn đăng ký thì thực hiện A2.
• Hệ thống yêu cầu thành viên nhập lại tên, mật khẩu.
• Nếu khách xem đồng ý thì quay về bước 2 của luồng sự kiện chính, nếu khơng
đồng ý thì use case kết thúc.
+ Dòng rẽ nhánh A2: Thành viên chuyển qua use case Đăng ký thành viên.
• Form Đăng ký hiển thị
Hậu điều kiện: Thành viên đăng nhập thành cơng và có thể thực hiện các chức năng mà hệ
thống cung cấp.
d)Use case quản lý thông tin cá nhân
22
Hình 3.1.3. Biểu đồ Use case quản lý thơng tin cá nhân
- Tác nhân: Thành viên (gồm khách hàng và quản trị viên).
- Mô tả: Use case cho phép thành viên thay đổi các thông tin đã đăng ký.
- Tiền điều kiện: Đã đăng nhập vào hệ thống
- Dòng sự kiện chính:
• Thành viên chọn chức năng sửa thơng tin cá nhân.
• Hệ thống hiển thị form sửa thơng tin với các thơng tin cũ của thành viên hiện tại.
• Thành viên nhập các thơng tin mới.
• Nhấn nút lưu thơng tin.
• Nếu cập nhật thành cơng thì thực hiện bước tiếp theo. Nếu khơng thì thực hiện
luồng rẽ nhánh A1.
• Lưu thơng tin.
• Use case kết thúc.
- Dịng sự kiện rẽ nhánh A1: Thơng tin nhập khơng hợp lệ.
• Hệ thống thông báo việc nhập dữ liệu không hợp lệ.
• Thành viên nhập lại thơng tin.
• Quay lại bước 4 của dịng sự kiện chính.
Hậu điều kiện: Thơng tin thay đổi của thành viên được lưu vào hệ thống.
e)Use case quản lý sản phẩm
23
Hình 3.1.4. Biểu đồ Use case quản lý sản phẩm
- Tác nhân: Quản trị viên
- Mô tả: Use case cho phép thêm, thay đổi hay xóa danh sách của các sản phẩm trong
hệ thống.
- Tiền điều kiện: Đã đăng nhập vào hệ thống.
- Dịng sự kiện chính:
• Quản trị viên chọn kiểu tác động lên danh sách sản phẩm: thêm, thay đổi thơng
tin sản phẩm hay xóa sản phẩm ra khỏi danh sách sản phẩm của hệ thống.
+ Thêm sản phẩm:
• Hệ thống hiển thị form Nhập thơng tin sản phẩm.
• Quản trị viên nhập thơng tin sản phẩm
• Nhấn nút lưu thơng tin.
• Nếu nhập thành cơng thì thực hiện bước tiếp theo. Nếu sai thực hiện dòng sự
kiện rẽ nhánh A1.
• Lưu thơng tin sản phẩm.
+ Thay đổi thơng tin sản phẩm:
• Hệ thống hiển thị form sửa thơng tin sản phẩm.
• Quản trị viên nhập các thơng tin cần thay đổi.
• Nhấn nút lưu thơng tin.
• Nếu việc thay đổi thành cơng thì thực hiện bước tiếp theo. Nếu sai thực hiện
dịng rẽ nhánh A1.
• Lưu thơng tin về danh sách sản phẩm.
+ Xóa sản phẩm:
• Quản trị viên chọn sản phẩm cần xóa.
• Nhấn nút xóa để thực hiện loại bỏ sản phẩm.
• Thơng báo sản phẩm đã được xóa.
• Hệ thống hiển thị lại danh sách sản phẩm.
• Use case kết thúc.
- Dịng sự kiện rẽ nhánh A1:
• Hệ thống thơng báo việc nhập dữ liệu không hợp lệ.
24
• Quản trị viên nhập lại thông tin.
• Nhấn nút xác nhận đối với từng thao tác.
- Hậu điều kiện: Các thông tin về sản phẩm được cập nhật trong cơ sở dữ liệu.
f)Use case giỏ hàng
Hình 3.1.5. Biểu đồ Use case giỏ hàng
- Tác nhân: Khách hàng.
- Mô tả: Use case cho phép khách hàng đưa sản phẩm đã chọn vào giỏ hàng và loại bỏ
sản phẩm khỏi giỏ hàng.
- Tiền điều kiện: sản phẩm đã được chọn.
- Dòng sự kiện chính:
+ Thêm sản phẩm vào giỏ hàng:
• Tìm kiếm sản phẩm theo yêu cầu.
• Nhấp vào xem chi tiết sản phẩm để xem thông tin sản phẩm, cùng những đánh
giá về sản phẩm.
• Chọn chức năng Thêm sản phẩm vào giỏ hàng để đưa sản phẩm đã chọn vào
giỏ hàng. Nếu khơng thêm được sản phẩm thì hiển thị thơng báo khơng thêm
được sản phẩm.
• Hệ thống hiển thị thơng tin đưa vào giỏ hàng.
• Use case kết thúc.
+ Loại bỏ sản phẩm:
• Khách hàng truy cập vào giỏ hàng
• Khách hàng có thể lựa chọn loại bỏ một số lượng nhất định hoặc loại bỏ hoàn
toàn sản phẩm khỏi giỏ hàng.
-Hậu điều kiện: Thông tin của sản phẩm đã đưa vào giỏ hàng phải được lưu trữ. Loại
bỏ sản phẩm khỏi mục lưu trữ.
g)Use case đặt hàng
25