Professional Documents
Culture Documents
MỤC LỤC
I. ĐẶC TẢ YÊU CẦU.............................................................................................2
I.1 Các yêu cầu chức năng..................................................................................2
I.1.1 Các tác nhân............................................................................................2
I.1.2 Các chức năng hệ thống.........................................................................3
A. Các chức năng của Khách hàng/Người dùng ......................................3
B. Các chức năng của Admin.....................................................................6
I.2 Unified Modeling Language - UML...........................................................10
I.2.1 Usecase Diagram...................................................................................10
II. CÀI CẮM BUG VÀO SẢN PHẨM................................................................12
1
I. ĐẶC TẢ YÊU CẦU:
I.1 Các yêu cầu chức năng:
- Hệ thống bao gồm các tác nhân: Admin, Nhân Viên, Khách Hàng
Admin: Thành viên quản trị của hệ thống, có tất cả các quyền và chức năng:
Đăng nhập
Quản lý sản phẩm – CRUD
Quản lý tài khoản (Client và User) – CRUD
Quản lý hóa đơn
Quản lý phân quyền
Thống kê (Top 10, 5, …, từ ngày/tháng/năm đến ngày/tháng/năm, hiển thị tổng
doanh thu các mặt hàng, doanh thu từng mặt hàng)
Nhân viên: Thành viên có chức năng được Admin cấp quyền
Đăng nhập
Đăng kí tài khoản (Admin tạo từ thông tin được cung cấp từ User)
Khách hàng: Người dùng có các chức năng:
Đăng kí/ Đăng nhập (Có thể đăng nhập bằng tài khoản Google hoặc đăng ký qua
xác nhận OTP email để được mua hàng)
Xem/Chỉnh sửa thông tin cá nhân (Thay đổi số điện thoại, địa chỉ, thêm ảnh giao
diện)
Tìm kiếm sản phẩm
Xem thông tin sản phẩm
2
Thêm sản phẩm vào giỏ hàng (chỉ thêm được sản phẩm khi đã đăng nhập, giỏ
hàng sẽ không bị mất sản phẩm nếu đóng tab)
Xem giỏ hàng
Đặt hàng
Xem lịch sử mua hàng
Đổi mật khẩu/Quên mật khẩu (Thông qua xác nhận OTP được gửi qua SMS)
Input: Khách hàng phải nhập đầy đủ thông tin và đúng định dạng (email, phone number)
(*:là thông tin bắt buộc)
Username: (*)
Email: (*)
Phone Number: (*)
Address: (*)
Password: (*)
Repeat Password: (*)
Process (Hệ thống): Kiểm tra thông tin đăng ký (đúng định dạng email, phone number,
kiểm tra email và phone number đã tồn tại chưa, yêu cầu nhập lại nếu email, phone
number bị trùng). Nếu thông tin chính xác sẽ gửi OTP đến email được đăng ký, người
dùng mở hòm thư nhận OTP và xác nhận vào form để tài khoản được duyệt từ trạng thái
“pending” sang “active”, sau khi xác nhận OTP thành công sẽ lưu thông tin và thông tin
đăng nhập vào CSDL.
Output: Đưa ra thông báo đăng ký thành công hoặc yêu cầu nhập lại nếu thông tin không
hợp lệ
Input: Khách hàng thêm thông tin Address, Phone Number (Đối với người dùng đăng
nhập bằng Google Account) và thêm/thay đổi ảnh đại diện đối với người dùng đăng nhập
thông thường
Process (Hệ thống): Kiểm tra định dạng và Phone number đã tồn tại trong CSDL. Nếu
thông tin hợp lệ sẽ lưu thông tin vào CSDL.
Output: Đưa ra thông báo nếu Phone number không đúng định dạng hoặc đã tồn tại, yêu
cầu nhập lại thông tin
3
Input: Lọc sản phẩm theo Brands (Nike, Adidas, Puma,…) - Hãng, Categories (Sneakers,
Boots, Slippers,…) – Phân loại, hoặc đồng thời Brands và Categories. Sắp xếp theo giá
(Cao – Thấp, Thấp – Cao , lọc trong khoảng (100$ - 50000$, 100000$, …), (1000$, low
to high),…, Tìm kiếm theo tên sản phẩm, theo chữ cái,…
Output: Hiện thông tin sản phẩm theo yêu cầu tìm kiếm
Input: Chọn sản phẩm muốn mua, điều chỉnh số lượng, chọn size, ấn “add to cart”
Description: Cho phép thêm sản phẩm vào giỏ hàng
Process: Lấy thông tin sản phẩm từ CSDL thông qua ProductID, ProductID này được lấy
từ biến session lưu các thông tin về mã sản phẩm, số lượng, size của từng sản phẩm mà
khách hàng chọn vào giỏ hàng
Output: Thông báo đã thêm sản phẩm vào giỏ hàng thành công, thông báo “Your quantity
is invalid” nếu số lượng sản phẩm vượt quá số lượng sản phẩm được hiển thị hoặc số
lượng bằng 0, thông báo “you must select a valid size” nếu người dùng chưa chọn size
sản phẩm
Input: Sau khi xem giỏ hàng, khách hàng có nhu cầu đặt hàng có thể ấn vào “Buy Now”
Description: Cho phép người dùng mua sản phẩm
4
Process: Lưu thông tin khách hàng, thông tin hóa đơn vào CSDL, đồng thời xóa dữ liệu
đã được lưu ở table “Cart”
Output: Thông báo đặt hàng thành công
Input: Khách hàng phải thông tin và đúng định dạng (phone number) (*:là thông tin bắt
buộc)
Phone number : (*)
Process: Kiểm tra thông tin (đúng định dạng phone number và đã tồn tại chưa, yêu cầu
nhập lại nếu phone number chưa tồn tại). Nếu thông tin chính xác sẽ gửi OTP đến phone
number được đăng ký, người dùng mở SMS nhận OTP và xác nhận vào form, sau khi xác
nhận OTP thành công sẽ chuyển hướng sang trang đổi mật khẩu.
New password: (*)
Repeat new password: (*)
Output: Đưa ra thông báo đổi mật khẩu thành công hoặc yêu cầu nhập lại nếu thông tin
không hợp lệ
Input: Người dùng nhập các thông tin email và password để đăng nhập hoặc đăng nhập
bằng Google Account
Process: Kiểm tra thông tin nhập vào với thông tin có trong CSDL
Output: Nếu đúng thông báo đăng nhập thành công và cho phép mua hàng, ngược lại
thông báo “email or password is wrong, please re-enter” nếu thông tin không chính xác
5
B. Các chức năng của Admin:
Input: Ấn vào “Create new product”, điền đầy đủ thông tin sản phẩm (Tên sản phẩm, giá,
mô tả, category, brand, hình ảnh), ấn “save”để tạo mới sản phẩm
Process: Kiểm tra những thông tin nào có thể trống (mô tả, hình ảnh), nếu phù hợp thì
thêm vào CSDL
Output: Thông báo thêm sản phẩm thành công, load lại danh sách hiển thị sản phẩm
Input: Ấn vào “Quantity” trên từng sản phẩm, điền đầy đủ thông tin sản phẩm (size,
quantity), ấn “add quantity”để thêm mới số lượng với size. Ấn vào “Details” trên từng
sản phẩm, chỉnh sửa thông tin sản phẩm (Tên sản phẩm, giá, mô tả, category, brand, hình
ảnh), ấn “save” để lưu thông tin mới
Process: Cập nhật thông tin mới cho sản phẩm
Output: Thông báo chỉnh sửa sản phẩm thành công, load lại danh sách hiển thị sản phẩm
Input: Ấn vào “Quantity” trên từng sản phẩm, ấn “delete”để xóa sản phẩm.
Process: Xóa thông tin trong CSDL
Output: Thông báo xóa sản phẩm thành công, load lại danh sách hiển thị sản phẩm
3.1. Chức năng quản lý tài khoản User (những người làm việc với hệ thống):
6
3.1.1 Chức năng tạo mới User:
Input: Ấn “Add new user”, Admin phải nhập đầy đủ thông tin và đúng định dạng (email,
phone number) (*:là thông tin bắt buộc)
Username: (*)
Full Name: (*)
Birthday: (*)
Gender: (*)
Email: (*)
Phone Number: (*)
Address: (*)
Password: (*)
Repeat Password: (*)
Choose user type option: “Admin”, “NhanVien” – Nếu không lựa chọn sẽ mặc
định là Admin
Process (Hệ thống): Kiểm tra thông tin đăng ký (đúng định dạng email, phone number,
kiểm tra email và phone number đã tồn tại chưa, yêu cầu nhập lại nếu email, phone
number bị trùng). Thông tin hợp lệ sẽ lưu vào CSDL.
Output: Đưa ra thông báo đăng ký thành công hoặc yêu cầu nhập lại nếu thông tin không
hợp lệ
Input: Ấn vào “Details” trên từng user, chỉnh sửa thông tin cá nhân (Tên, phone, address,
username, password, gender, email, birthday, type), ấn “save” để lưu thông tin mới
Process: Cập nhật thông tin mới vào CSDL
Output: Thông báo chỉnh sửa thông tin user thành công, load lại danh sách hiển thị user
7
3.2.1 Chức năng chỉnh sửa thông tin client:
Input: Ấn vào “Details” trên từng client, chỉnh sửa thông tin cá nhân (Tên, phone,
address, username, password), ấn “save” để lưu thông tin mới
Process: Cập nhật thông tin mới vào CSDL
Output: Thông báo chỉnh sửa thông tin client thành công, load lại danh sách hiển thị
client
4.1. Chức năng xem thông tin chi tiết các đơn đặt hàng:
Input: Ấn vào “Orders” trên Navbar, chọn “Details” để xem thông tin chi tiết của từng
đơn hàng (CustomerID, BuyDate, Trạng thái được duyệt, Mã sản phẩm, Tên sản phẩm,
số lượng, size)
Process: Hiển thị thông tin từ CSDL
Output: Thông tin của tất cả đơn hàng (Mã đơn hàng, mã khách hàng, ngày mua, trạng
thái đơn hàng - được duyệt/chưa được duyệt)
Input: Nhập hoặc chọn từ cuốn lịch vào “From” và “To” để lọc ngày/tháng/năm muốn
lọc, có thể nhập thêm “Customer_ID” để xem đơn hàng cụ thể của từng khách hàng
Process: Kiểm tra từ CSDL và lọc ra những đơn hàng có ngày mua trong khoảng được
lọc
Output: Thông tin đơn hàng muốn xem
8
4.4 Chức năng xóa đơn hàng:
Input: Ấn “Account Action” và chọn “Admin” hoặc “NhanVien” ứng với từng Chức
năng/Nhóm “Quản lý sản phẩm” / “Quản lý hóa đơn” / “Quản lý tài khoản” / “Thống kê”
Process: Cập nhật CSDL
Output: User được phép theo các quyền được cấp
Input: Nhập hoặc chọn từ cuốn lịch vào “From” và “To” để lọc ngày/tháng/năm muốn
lọc, nhập thêm “Search by Category” để xem thống kê của từng phân loại (Sneakers,
Boots, Crocs,…)
Process: Kiểm tra từ CSDL và lọc ra những sản phẩm có trong khoảng được lọc
Output: Thông tin các sản phẩm, doanh thu từng sản phẩm, tổng doanh thu
Input: Nhập hoặc chọn từ cuốn lịch vào “From” và “To” để lọc ngày/tháng/năm muốn
lọc, nhập thêm “Search by top sale” để xem thống kê Top (10, 5, 20,…)
Process: Kiểm tra từ CSDL và lọc ra những sản phẩm có trong khoảng được lọc
Output: Thông tin các sản phẩm, doanh thu từng sản phẩm, tổng doanh thu
9
I.2 Unified Modeling Language - UML:
10
11
II. CÀI CẮM BUG VÀO SẢN PHẨM:
Ta cài cắm bug vào bằng cách sửa đoạn code để không check lại mật khẩu
12
- Lỗi giao diện:
Ta cài cắm bug vào bằng cách sửa đoạn code để không xuất hiện các nút mua ở bên dưới sản phẩm
- Lỗi crash:
13
Cài cắm bug vào code để để không thể load được trang sản phẩm
Ta cài cắm bug vào code để khi kiểm tra 2 mật khẩu không giống nhau vẫn không hiện ra validation
14