3. CHƯƠNG 3: XÁC ĐỊNH VÀ MÔ HÌNH HÓA YÊU CẦU
3.3.2. Đặc tả, luồng xử lý Use case
3.3.2.1. Use case Đăng nhập bằng Email/SĐT
Use case Đăng nhập bằng Email/SĐT Tác nhân kích hoạt Guest
Tiền điều kiện Guest đã đăng ký tài khoản thành công
Các bước thực hiện
Bước 1: Hiển thị biểu mẫu đăng nhập.
Bước 2: Nhận Esmail/SĐT và password từ Guest.
Bước 3: Nếu không nhập đầy đủ cả 2 trường thông báo yêu
cầu nhập, quay lại bước 2 ngược lại đến bước 4.
Bước 4: Truy vấn dữ liệu, tìm trong CSDL tài khoản trùng
Email/SĐT mà Guest đã nhập.
Nếu không tìm được, thông báo "Không đúng Email/SĐT hoặc password", quay lại bước 2 ngược lại đến bước 5.
Bước 5: Tiến hành mã hóa mật khẩu đã nhập và so sánh với
CSDL, nếu khác nhau thông báo "Không đúng Email/SĐT hoặc password", ngược lại giống nhau lưu role tài khoản (user hoặc admin) và chuyển sang bước 6.
Bước 6: Điều hướng đến trang chủ của user hoặc admin. Bước 7: Kết thúc.
Bảng 3.4: Bảng đặc tả, luồng xử lý Đăng nhập bằng Email/SĐT
3.3.2.1. Use case Đăng nhập bằng Facebook, Google
Use case Đăng nhập bằng Facebook/Google Tác nhân kích hoạt Guest
Tiền điều kiện Guest đã đăng ký tài khoản thành công
Các bước thực hiện
Bước 1: Nhận yêu cầu đăng nhập thông qua Facebook hoặc
Google từ người dùng.
Bước 2: Kiểm tra tài khoản có tồn tại trong CSDL không: nếu có chuyển đến bước 4, ngược lại đến trang cấp quyền truy cập thông tin từ Facebook/Google.
Bước 3: Nhận quyền truy cập, lưu thông tin người dùng lấy
được từ Facebook/Google vào CSDL.
Bước 4: Đăng nhập thành công, điều hướng đến trang chủ user.
Bước 5: Kết thúc.
Bảng 3.5: Bảng đặc tả, luồng xử lý Đăng nhập bằng Facebook, Google
3.3.2.2. Use case Đăng ký
Use case Đăng ký Tác nhân kích hoạt Guest (Khách)
Tiền điều kiện Có sử dụng email hoặc số điện thoại có thể xác nhận được
Các bước thực hiện
Bước 1: Hiển thị biểu mẫu đăng ký tài khoản. Bước 2: Nhận thông tin đăng ký từ Guest.
Bước 3: Nếu không nhận đầy đủ các trường, thông báo yêu
38
Bước 4: Kiểm tra Email/SĐT đã tồn tại trong CSDL hay chưa: nếu tồn tại thông báo "Tài khoản đã tồn tại", quay lại bước 2, ngược lại đến bước 5.
Bước 5: Kiểm tra mật khẩu và xác nhận mật khẩu có khớp
nhau không. Nếu không thông báo "Xác nhận mật khẩu không khớp", quay lại bước 2, ngược lại đến bước 6.
Bước 6: Đăng ký thành công, chuyển đến trang Đăng nhập Bước 7: Kết thúc.
Bảng 3.6: Bảng đặc tả, luồng xử lý Đăng ký
3.3.2.2. Use case Quên mật khẩu
Use case Quên mật khẩu Tác nhân kích hoạt Guest (khách)
Tiền điều kiện Có sử dụng email hoặc số điện thoại có thể xác nhận được
Các bước thực hiện
Bước 1: Hiển thị biểu mẫu Quên mật khẩu.
Bước 2: Nhận thông tin tài khoản đăng nhập: email hoặc số
điện thoại.
Bước 3: Kiểm tra trong CSDL có tài khoản trùng với thông
tin đã nhận không, nếu không thông báo "Tài khoản không tồn tại", quay lại bước 2, ngược lại đi đến bước 4.
Bước 4: Gửi mã xác nhận qua email hoặc số điện thoại Bước 5: Nhận mã xác nhận từ khách.
Bước 6: So sánh mã đã nhận với mã đã gửi đi, nếu khác nhau
thông báo "Mã xác nhận không đúng", quay lại bược 5, ngược lại đi đến bước 7.
Bước 7: Nhận thông tin mật khẩu mới, và xác nhận mật khẩu
mới.
Bước 8: So sánh mật khẩu mới và mật khẩu xác nhận có giống nhau không: nếu không thông báo "Xác nhận mật khẩu không khớp" quay lại bước 7, ngược lại đi đến bước 9.
Bước 9: Đổi mật khẩu thành công, mã hóa và cập nhật vào
CSDL.
Bước 10: Chuyển hướng đến trang đăng nhập. Bước 11: Kết thúc.
Bảng 3.7: Bảng đặc tả, luồng xử lý Quên mật khẩu
3.3.2.2. Use case Thông tin cá nhân
Use case Thông tin cá nhân Tác nhân kích hoạt User
Tiền điều kiện Khách hàng đã đăng nhập thành công
Các bước thực hiện
Bước 1: Hiển thị biểu mẫu Thông tin cá nhân.
Bước 2: Lấy thông tin user từ CSDL tương ứng với email hoặc số điện thoại.
Bước 3: Hiển thị dữ liệu lên biểu mẫu. Bước 4: Kết thúc.
39
3.3.2.2. Use case Cập nhật thông tin cá nhân
Use case Cập nhật thông tin cá nhân Tác nhân kích hoạt User
Tiền điều kiện Khách hàng đã đăng nhập thành công
Các bước thực hiện
Bước 1: Hiển thị biểu mẫu Cập nhật thông tin cá nhân. Bước 2: Nhận thông tin cá nhân mới.
Bước 3: Cập nhật vào CSDL.
Bước 4: Quay lại biểu mẫu Thông tin cá nhân.
Bước 5: Lấy thông tin cá nhân mới tương ứng với email hoặc
số điện thoại user.
Bước 6: Hiển thị dữ liệu lên biểu mẫu. Bước 7: Kết thúc.
Bảng 3.9: Bảng đặc tả, luồng xử lý Cập nhật thông tin cá nhân
3.3.2.2. Use case Đổi mật khẩu
Use case Đổi mật khẩu Tác nhân kích hoạt User
Tiền điều kiện Khách hàng đã đăng nhập thành công
Các bước thực hiện
Bước 1: Hiển thị biểu mẫu Đổi mật khẩu
Bước 2: Nhận mật khẩu cũ, mật khẩu mới và xác nhận mật
khẩu từ user.
Bước 3: Kiểm tra dữ liệu có rỗng không. Nếu có thông báo
yêu cầu nhập, quay lại bước 2, ngược lại đến bước 4.
Bước 4: Tìm user trong CSDL, mã hóa mật khẩu cũ và so
sánh với mật khẩu trong CSDL. Nếu khác nhau thông báo "Mật khẩu cũ không đúng" quay lại bước 2, ngược lại đi đến bước 5.
Bước 5: So sánh mật khẩu mới và xác nhận mật khẩu. Nếu
khác nhau thông báo "Xác nhận mật khẩu không khớp" quya lại bước 2, ngược lại đến bước 6.
Bước 6: Mã hóa mật khẩu mới, cập nhật vào CSDL. Bước 7: Kết thúc.
Bảng 3.10: Bảng đặc tả, luồng xử lý Đổi mật khẩu
3.3.2.2. Use case Xem danh sách yêu thích
Use case Xem danh sách yêu thích Tác nhân kích hoạt User
Tiền điều kiện Khách hàng đã đăng nhập thành công
Các bước thực hiện
Bước 1: Hiển thị biểu mẫu Danh sách yêu thích. Bước 2: Lấy danh sách yêu thích của user từ CSDL. Bước 3: Hiển thị danh sách yêu thích lên biểu mẫu. Bước 4: Kết thúc.
40
3.3.2.2. Use case Thêm vào danh sách yêu thích
Use case Thêm vào danh sách yêu thích Tác nhân kích hoạt User
Tiền điều kiện Khách hàng đã đăng nhập thành công
Các bước thực hiện
Bước 1: Nhận id sản phẩm user đã thêm vào danh sách yêu
thích.
Bước 2: Add id sản phẩm vào CSDL (Collection users) Bước 3: Thông báo đã thêm thành công.
Bước 4: Kết thúc.
Bảng 3.12: Bảng đặc tả, luồng xử lý Thêm danh sách yêu thích
3.3.2.2. Use case Xóa khỏi danh sách yêu thích
Use case Xóa khỏi danh sách yêu thích Tác nhân kích hoạt User
Tiền điều kiện Khách hàng đã đăng nhập thành công
Các bước thực hiện
Bước 1: Nhận id sản phẩm user đã chọn xóa khỏi danh sách
yêu thích.
Bước 2: Remove id sản phẩm khỏi CSDL (Collection users) Bước 3: Thông báo xóa thành công.
Bước 4: Kết thúc.
Bảng 3.13: Bảng đặc tả, luồng xử lý Xóa khỏi danh sách yêu tu thích
3.3.2.2. Use case Xem danh sách đơn hàng
Use case Xem danh sách đơn hàng Tác nhân kích hoạt User
Tiền điều kiện Khách hàng đã đăng nhập thành công
Các bước thực hiện
Bước 1: Hiển thị biểu mẫu Danh sách đơn hàng. Bước 2: Lấy danh sách đơn hàng của user từ CSDL. Bước 3: Hiển thị dữ liệu lên biểu mẫu/
Bước 4: Kết thúc.
Bảng 3.14: Bảng đặc tả, luồng xử lý Xem danh sách đơn hàng
3.3.2.2. Use case Hủy đơn hàng
Use case Hủy đơn hàng Tác nhân kích hoạt User
Tiền điều kiện Khách hàng đã đăng nhập thành công
Các bước thực hiện
Bước 1: Nhận id đơn hàng user đã chọn hủy.
Bước 2: Nếu đơn hàng đã được thanh toán online, kiểm tra
đã quá 24 giờ kể từ thời điểm xác nhận đơn hàng hay chưa: nếu có thông báo "Hết hạn hủy đơn hàng", đến bước 6, ngược lại đến bước 3;
Bước 3: Cập nhật trạng thái đơn hàng vào CSDL, tiến hành
hoàn tiền nếu đã thanh toán online.
41
Bước 5: Lấy lại danh sách đơn hàng và hiển thị lại lên biểu
mẫu
Bước 6: Kết thúc.
Bảng 3.15: Bảng đặc tả, luồng xử lý Hủy đơn hàng
3.3.2.2. Use case Lọc đơn hàng
Use case Lọc đơn hàng Tác nhân kích hoạt User
Tiền điều kiện Khách hàng đã đăng nhập thành công
Các bước thực hiện
Bước 1: Nhận thông tin lọc đơn hàng (thời gian tạo đơn hàng).
Bước 2: Tìm trong CSDL danh sách đơn hàng ứng với tài khoản user.
Bước 3: Hiển thị dữ liệu lên biểu mẫu Đơn hàng. Bước 4: Kết thúc.
Bảng 3.16: Bảng đặc tả, luồng xử lý Lọc đơn hàng
3.3.2.2. Use case Danh mục sản phẩm
Use case Danh mục sản phẩm Tác nhân kích hoạt User
Tiền điều kiện Khách hàng đã đăng nhập thành công
Các bước thực hiện
Bước 1: Nhận tên danh mục sản phẩm từ việc click chọn danh mục của người dùng.
Bước 2: Hiển thị biểu mẫu Danh mục sản phẩm.
Bước 3: Lấy thông tin danh mục sản phẩm từ CSDL ứng với
tên danh mục.
Bước 4: Hiển thị thông tin danh mục lên biểu mẫu. Bước 5: Kết thúc.
Bảng 3.17: Bảng đặc tả, luồng xử lý Danh mục sản phẩm
3.3.2.2. Use case Chi tiết sản phẩm
Use case Chi tiết sản phẩm Tác nhân kích hoạt User
Tiền điều kiện Khách hàng đã đăng nhập thành công
Các bước thực hiện
Bước 1: Nhận id sản phẩm từ việc click chọn sản phẩm của
người dùng.
Bước 2: Hiển thị biểu mẫu Chi tiết sản phẩm.
Bước 3: Lấy thông tin sản phẩm từ CSDL ứng với id đã chọn. Bước 4: Hiển thị thông tin sản phẩm lên biểu mẫu.
Bước 5: Kết thúc.
42
3.3.2.2. Use case Tìm kiếm sản phẩm
Use case Tìm kiếm sản phẩm Tác nhân kích hoạt User
Tiền điều kiện Khách hàng đã đăng nhập thành công
Các bước thực hiện
Bước 1: Nhận tên sản phẩm tìm kiếm từ người dùng. Bước 2: Hiển thị biểu mẫu Tìm kiếm sản phẩm.
Bước 3: Tìm trong CSDL những sản phẩm có tên giống hoặc
gần giống với từ khóa tìm kiếm đã nhận.
Bước 4: Hiển thị danh sách sản phẩm tìm được lên biểu mẫu. Bước 5: Kết thúc.
Bảng 3.19: Bảng đặc tả, luồng xử lý Tìm kiếm sản phẩm
3.3.2.2. Use case Chat
Use case Chat Tác nhân kích hoạt User
Tiền điều kiện Khách hàng đã đăng nhập thành công
Các bước thực hiện
Bước 1: Nhận id socket cần truyền dữ liệu. Nếu user chat với
admin thì nhận id socket của admin, nếu admin phản hồi lại user thì nhận id socket của user do admin chọn.
Bước 2: Nhận nội dung tin nhắn
Bước 3: Truyền dữ liệu sang id socket đã nhận. Bước 4: Lưu thông tin chat xuống CSDL. Bước 5: Kết thúc.
Bảng 3.20: Bảng đặc tả, luồng xử lý Chat
3.3.2.2. Use case Thêm sản phẩm vào giỏ hàng
Use case Thêm sản phẩm vào giỏ hàng Tác nhân kích hoạt User
Tiền điều kiện Khách hàng đã đăng nhập thành công
Các bước thực hiện
Bước 1: Nhận id sản phẩm mà user đã add vào giỏ hàng. Bước 2: Add id sản phẩm vào CSDL (Collections users). Bước 3: Lấy danh sách sản phẩm trong giỏ hàng từ CSDL. Bước 4: Cập nhật lại giỏ hàng trên giao diện.
Bước 5: Kết thúc.
Bảng 3.21: Bảng đặc tả, luồng xử lý Thêm sản phẩm vào giỏ hàng
3.3.2.2. Use case Xóa sản phẩm khỏi giỏ hàng
Use case Xóa sản phẩm khỏi giỏ hàng Tác nhân kích hoạt User
Tiền điều kiện Khách hàng đã đăng nhập thành công
Các bước thực hiện
Bước 1: Nhận id sản phẩm mà user cần xóa khỏi giỏ hàng. Bước 2: Remove id sản phẩm khỏi CSDL (Collections users).
Bước 3: Lấy danh sách sản phẩm trong giỏ hàng từ CSDL. Bước 4: Cập nhật lại giỏ hàng trên giao diện.
43
Bước 5: Kết thúc.
Bảng 3.22: Bảng đặc tả, luồng xử lý Xóa sản phẩm khỏi giỏ hàng
3.3.2.2. Use case Xác nhận đơn hàng
Use case Xác nhận đơn hàng Tác nhân kích hoạt User
Tiền điều kiện Khách hàng đã đăng nhập thành công, đã thêm sản phẩm
vào giỏ hàng
Các bước thực hiện
Bước 1: Hiển thị biểu mẫu tổng kết đơn hàng
Bước 2: Nhận số lượng, màu sắc, kích cỡ mới của sản phẩm
và cập nhật vào CSDL.
Bước 3: Khách hàng nhấn tiếp tục thanh toán thì hiển thị biểu
mẫu Thông tin địa chỉ giao hàng.
Bước 4: Nhận thông tin, địa chỉ khách hàng và cập nhật vào
CSDL.
Bước 5: Khách nhấn tiếp tục thanh toán sẽ tính toán chi phí
vận chuyển, tổng tiền sản phẩm và tổng tiền đơn hàng hiển thị cho người dùng thông qua biểu mẫu Hóa đơn.
Bước 6: Nếu khách hàng chọn Tiếp tục chuyển đến bước 7,
ngươc lại chọn Đóng thì quay lại bước 4.
Bước 7: Nhận phương thức xác nhận đơn hàng của khách hàng (email hoặc sms).
Bước 8: Khách hàng chọn tiếp tục thì gửi mã xác nhận qua
email hoặc sms sau đó hiển thị biểu mẫu nhập mã xác nhận.
Bước 9: Nhận mã xác nhận đơn hàng.
Bước 10: So sánh mã xác nhận người dùng nhập với mã đã
gửi đi. Nếu khác nhau thông báo "Mã xác nhận không đúng" quay lại bước 9, ngược lại đến bước 11.
Bước 11: Chuyển đến biểu mẫu xác nhận đơn hàng thành công, cập nhật trạng thái Confirmed vào CSDL.
Bước 12: Kết thúc.
Bảng 3.23: Bảng đặc tả, luồng xử lý Xác nhận đơn hàng
3.3.2.2. Use case Thanh toán online
Use case Thanh toán online Tác nhân kích hoạt User
Tiền điều kiện User đã đăng nhập, thêm sản phẩm vào giỏ hàng và xác nhận đơn hàng thành công.
Các bước thực hiện
Bước 1: Nhận cổng thanh toán từ khách hàng.
Bước 2: Chuyển đến cổng thanh toán mà khách hàng lựa chọn (bước này khách hàng sẽ thực hiện nhập thông tin và thanh toán bên website của cổng thanh toán).
Bước 3: Nhận callback từ cổng thanh toán, nếu thanh toán
thất bại thông báo lỗi đến khách hàng, ngược lại chuyển đến biểu mẫu thanh toán thành công, cập nhật trạng thái Payment Success vào CSDL.
44
Bước 4: Kết thúc.
Bảng 3.24: Bảng đặc tả, luồng xử lý Thanh toán Online
3.3.2.2. Use case Xem danh sách user/sản phẩm/danh mục sản phẩm/đơn hàng/tin nhắn
Use case Xem danh sách user/sản phẩm/danh mục sản phẩm/đơn hàng/tin nhắn
Tác nhân kích hoạt Admin
Tiền điều kiện Admin đã đăng nhập thành công
Các bước thực hiện
Bước 1: Hiển thị biểu mẫu Quản lý (user, sản phẩm, danh mục sản phẩm, đơn hàng, tin nhắn).
Bước 2: Truy vấn và lấy dữ liệu từ CSDL. Đối với user thì
sắp xếp theo thứ tự giảm dần số lượng đơn đặt hàng, còn lại sẽ lấy dữ liệu theo thứ tự mặc định.
Bước 3: Hiển thị dữ liệu lên biểu mẫu. Bước 4: Kết thúc.
Bảng 3.25: Bảng đặc tả, luồng xử lý Xem danh sách user/sản phẩm/danh mục sản phẩm/đơn hàng/tin nhắn
3.3.2.2. Use case Thêm user/sản phẩm/danh mục sản phẩm/tin nhắn Use case Thêm user/sản phẩm/danh mục sản phẩm/tin nhắn Tác nhân kích hoạt Admin
Tiền điều kiện Admin đã đăng nhập thành công
Các bước thực hiện
Bước 1: Hiển thị biểu mẫu Thêm user/sản phẩm/danh mục sản phẩm/tin nhắn.
Bước 2: Nhận thông tin của các trường được hiển thị trên biểu mẫu từ admin.
Bước 3: Nếu bất kỳ thông tin nhận được có giá trị rỗng thông
báo yêu cầu nhập, quay lại bước 2, ngược lại đi đến bước 4.
Bước 4: Lưu thông tin vào CSDL và thông báo thêm thành
công.
Bước 5: Lấy lại danh sách user/sản phẩm/danh mục sản phẩm/tin nhắn từ CSDL. Đối với user thì dữ liệu lấy lên được sắp xếp theo thứ tự giảm dần số lượng đặt hàng của user.
Bước 6: Hiển thị dữ liệu lên biểu mẫu Quản lý. Bước 7: Kết thúc.
Bảng 3.26: Bảng đặc tả, luồng xử lý Thêm user/sản phẩm/danh mục sản phẩm/đơn hàng/tin nhắn
3.3.2.2. Use case Sửa user/sản phẩm/danh mục sản phẩm
Use case Sửa user/sản phẩm/danh mục sản phẩm Tác nhân kích hoạt Admin
Tiền điều kiện Admin đã đăng nhập thành công
Các bước thực hiện
Bước 1: Hiển thị biểu mẫu Sửa user/sản phẩm/danh mục sản