1.Sơ đồ usecase
.
Danh sách các Actor:
STT Tên Actor Ý nghĩa / Ghi chú 1
Người dùng
Người dùng sử dụng ứng dụng (Mobile) để xem và mua sản phẩm.
2
Người quản trị
Quản trị quản lí hệ thống (Web).
2.4.Firebase Database Query
- Bình thường, khi làm việc với database như MySQL, SQL
Server… muốn lấy dữ liệu ra thì sẽ cần phải query vào database với câu lệnh SQL rất phực tạp. Fireabase database query giúp đơn giản hóa q trình này. Firebase có 4 kiểu sắp xếp: • orderByKey() • orderByChild(‘child’) • orderByValue() • orderByPriority()
• startAt(‘value’)
• endAt(‘value’)
• equalTo(‘child_key’)
• limitToFirst(10)
• limitToLast(10)
So sánh với SQL truyền thống. Với SQL, để thực hiện một câu lệnh query: sẽ cần chọn column từ một table nào đó. Ví dụ: Chọn cột Users.Sau đó thực hiện truy vấn với những điều kiện mong muốn qua câu lệnh WHERE. Như ví dụ, muốn lấy tất cả Users có tên là “Anh Son”.
• SELECT * FROM Users WHERE name === "Anh Son";
Nếu muốn giới hạn số lượng Users được lấy ra thì thêm câu lệnh LIMIT.
• SELECT * FROM Users WHERE name === "GeekyAnts"
LIMIT 10;
Trong Firebase, việc query cũng hoàn toàn tương tự:
• const db = firebase.database(); • const firebaseRef = db.child('child');
• firebaseRef.orderByChild("users").equalTo("GeekyAnts ") .on("child_added", • function(snapshot){ • console.log(snapshot.key) • }); •
3.Đặc tả usecase, UML activity của các chức năng Mô tả use case cho khách hàng
Feature Đăng ký tài khoản
Description Người dùng tiến hành đăng ký tài khoản để đăng nhập trong app.
Purpose Giúp người tạo tài khoản User problem Khơng có
User value Tính năng này giúp người dùng
Assumptions Tài khoản người dùng đăng ký chưa tồn tại Not doing Đăng ký bằng tài khoản facebook, instagram Acceptance
criteria
Người dùng đã đăng ký tài khoản và đăng nhập với thơng tin hoặc hình ảnh khn mặt đã đăng ký
Feature Đăng ký và đăng nhập vào hệ thống app
Description Người dùng tiến hành đăng ký và đăng nhập vào app bằng cách tạo tên tài khoản, mật khẩu và email. Có thêm tính năng đăng ký và đăng nhập bằng nhận diện khuôn mặt.
Purpose Giúp người dùng truy cập vào app User problem Khơng có
User value Tính năng này giúp người dùng -Thực hiện truy cập vào app
Assumptions Các tài khoản truy cập phải thuộc cơ sở dữ liệu người dùng của app
Not doing Đăng ký luôn cho người dùng nếu tài khoản không tồn tại Acceptance
criteria
Người dùng đã đăng ký tài khoản và đăng nhập với thơng tin hoặc hình ảnh khn mặt đã đăng ký
- Chức năng nhận diện khuôn mặt
Feature Nhận diện khuôn mặt
Description Chức năng cho phép người dùng lưu thông tin và tự động đăng nhập bằng cách nhận diện khuôn mặt
Chức năng được chia làm 2 flow
mới tạo tài khoản, app khuyến nghị người dùng sử dụng chức năng
+ Nhận diện khn mặt: người dùng có thể vào màn hình nhận dạng, chỉnh camera sao cho vừa khuôn mặt, và nhấn xác nhận, nếu thành công, app sẽ tự động đăng nhập cho ngườI sử dụng Purpose Giúp người dùng đăng nhập trong trường hợp quên tên đăng
nhập hay mật khẩu, dễ sử dụng app hơn
User problem Người dùng có thể phẫu thuật chỉnh hình, hay việc thay đổi các nét khn mặt có thể dẫn đến không nhận diện khuôn mặt được User value Tài khoản người dùng
Assumptions Người dùng không phẫu thuật chỉnh hình.
Not doing Cho phép người dùng lưu nhiều thông tin đăng nhập dưới dạng 1 khuôn mặt
Acceptance criteria
Khuôn mặt của người dùng phải dễ dàng phát hiện, độ chính xác khi sử dụng chức năng phải cao
Feature Đọc tin tức được cập nhật hằng ngày
Description Người dùng có thể truy câp cập vào app và đọc tin tức thời trang mới nhất, nhấn vào tin tức để truy cập đường dẫn web mà khơng phải mở trình duyệt
Purpose Giúp người dùng đọc tin tức User problem Khơng có
User value Tin tức
Assumptions Người dùng có tài khoản và đã đăng nhập Not doing Cho phép người dùng ẩn tin tức
Acceptance criteria
Tin tức phải được cập nhật chính xác, hình tin tức khơng q nhỏ
- Chức năng xem quần áo
Feature Người dùng chọn quần áo để thấy cái nhìn tổng quan về các item đã chọn được mix như thế nào
Description Người dùng truy câp cập vào app và sử dụng chức năng gợi ý thời trang
- Chọn tạo mới quần áo khi nhấn hình logo Nón, Áo, Quần, Giày, Balo, hiện panel thể hiện danh sách các phụ kiện thời trang
-Chọn các item quần áo
-chọn các phụ kiện thời trang để đặt hàng.
-Khi nhấn nút Mở, chuyển sang màn hình danh sách quần áo mà người dùng đã lưu
-Khi nhấn nút Tạo mới, người dùng xóa các phụ kiện thời trang mà họ đã chọn trong màn hình
- Khi nhấn nút camera chuyển người dùng qua màn hình sử dụng AR
-Người dùng chụp hình lại hình ảnh bản thân với các item đã chọn ở tính năng AR
-khi nhấn nút Lưu, người dùng lưu thông tin các phụ kiện thời trang vào danh sách quần áo
-Khi nhấn nút đặt hàng, chuyển sang màn hình Thơng tin giao hàng
Purpose Giúp người dùng mix quần áo thời trang đã chọn
User problem Người dùng khơng có tài khoản khơng được truy cập và sử dụng chức năng này
User value Quần áo đã được bày biện, phối các phụ kiện thời trang với nhau lại
Assumptions Người dùng đăng ký tài khoản qua màn hình đăng ký tài khoản Not doing Cho phép người dùng xoay màn hình trong lúc xem quần áo Acceptance
criteria
Người dùng đã đăng ký tài khoản và đăng nhập với thông tin đã đăng ký và sử dụng chức năng gợi ý thời trang
Feature Chức năng thực tế ảo, thể hiện quần áo khi quay video thời gian thực
Description Người dùng “ướm thử” phụ kiện thời trang mà mình đã chọn mà ko phải mặc quần áo trực tiếp
- Trong lúc xem quần áo, người dùng nhấn nút AR để chuyển sang màn hình AR, trong màn hình, các phụ kiện được tự động gán ghép lên người, tạo cảm giác ướm thử, xem thử nếu bộ quần áo phù hợp với người sử dụng .
Purpose Cung cấp trải nghiệm thử đồ thực tế ảo cho người dùng User problem Việc thử quần áo AR ko thể hiện chính xác kích cỡ của phụ
kiện thời trang
thực
Assumptions Người dùng đã chọn phụ kiện thời trang cho riêng mình Not doing Ướm thử quần áo cho nhiều người
Acceptance criteria
Quần áo trong AR phải vừa khít người, vị trí ít lệch, ko địi hỏi người dùng lại quá gần hay quá xa
Feature Tạo đơn đặt hàng dựa trên bộ quần áo đã lựa chọn
họ nhấn nút đặt hàng
- Nhập các thông tin cần thiết cho đơn hàng (họ tên, số điện thoại, địa chỉ, …)
- Chọn dịch vụ thanh toán điện tử Purpose Đặt hàng quần áo
User problem Người dùng ở quá xa, khó vận chuyển hàng đến địa chỉ User value Đơn hàng đã được lưu trong cơ sở dữ liệu
Assumptions Trước khi đặt hàng, người dùng đã chọn Ít nhất 1 phụ kiện thời trang
Not doing Tạo đơn hàng khi người dùng chưa chọn phụ kiện thời trang nào
Acceptance criteria
Phải thông báo lại kết quả đặt hàng cho người dùng, cập nhật lại thông tin cho bên quản trị sau khi đặt hàng thành công
Feature Xem chi tiết đơn hàng
Description Người dùng xem thông tin cụ thể của 1 đơn hàng, bao gồm - Họ tên người đặt
- Số điện thoại - Địa chỉ
- Danh sách phụ kiện thời trang đã đặt - Tổng giá thành
- Ngày đặt
- Trạng thái đơn hàng (ĐANG NHẬN HÀNG, ĐANG VẬN CHUYỂN, ĐÃ NHẬN, ĐÃ HỦY)
Purpose Cho người dùng xem lại thông tin đặt hàng, đối chiếu lại nếu có vấn đề với sản phẩm đã được nhận
hoặc mất, việc thể hiện thông tin của chúng trong đơn hàng sẽ khó khăn
User value Bản thông tin chi tiết của 1 đơn hàng Assumptions Người dùng đã đặt 1 đơn hàng
Not doing Khơng có Acceptance
criteria
Thơng tin của đơn hàng phải chính xác
Feature Hủy 1 đơn hàng đang trong quá trình nhận hàng hay vận chuyển
Description Nếu người dùng có đặt 1 đơn hàng nhưng thay đổi ý định, họ chọn đơn hàng này và hủy nó
User problem Nếu người dùng hủy quá nhiều lần sẽ làm mất rất nhiều thời gian của cửa hàng, nên có cơ chế để tránh trường hợp này User value 1 đơn đặt hàng đã được hủy
Assumptions Người dùng đã đặt 1 đơn hàng
Not doing Khơng hủy đơn hàng có trạng thái ĐÃ NHẬN Acceptance
criteria
Khi hủy đơn hàng phải lập tức cập nhật trạng thái lại cho bên quản trị
Feature Chat với admin để giải đáp thắc mắc thắc mắc
Description Người dùng tiến hành chat với admin khi có thắc mắc về vấn đề gợi ý hoặc mua hàng
- Vào màn hình chat
+ Tạo vấn đề mô tả thắc mắc
+ Vào từng vấn đề để chat với admin giải quyết thắc mắc Purpose Giúp người dùng đặt giải đáp các thắc mắc về các item thời
trang đã chọn và các đơn hàng đã đặt
dụng chức năng này
User value 1 đoạn chat, có tiêu đề và nội dung
Assumptions Người dùng truy cập vào màn hình đặt hàng từ màn hình gợi ý quần áo
Not doing none Acceptance
criteria
Người dùng đã đăng ký tài khoản và đăng nhập với thông tin đã đăng ký và sử dụng chức năng chat
- Chức năng phiên dịch
Feature Nhận dạng ngôn ngữ, phiên dịch các thứ tiếng sang tiếng anh Description Người dùng sử dụng phiên dịch, trong trường hợp họ dùng thứ
- Chọn 1 đoạn chat, vào màn hình danh sách tin nhắn + Nhập phản hồi dựa trên thứ tiếng bất kỳ
+ Nhấn nút phiên dịch, app sẽ tự động nhận dạng ngôn ngữ người dùng sử dụng, tự động phiên dịch sang tiếng anh Purpose Giúp người dùng đặt giải đáp các thắc mắc về các item thời
trang đã chọn và các đơn hàng đã đặt
User problem Ngôn ngữ người dùng phản hồi khơng thể nhận dạng, hoặc có thể nhận dạng nhưng khơng phiên dịch được
User value Nội dung văn bản đã được phiên dịch sang tiếng anh
Assumptions Người dùng truy cập vào màn hình đặt hàng từ màn hình gợi ý quần áo
Not doing Phiên dịch từ tiếng anh sang các thứ tiếng khác Acceptance
criteria
Phiên dịch đúng, tránh gây nhầm lẫn
Mô tả use case cho quản trị - Chức năng quản lý tin tức
Mô tả chức năng
Feature Quản lý tin tức
Description Người dùng thay đổi thơng tin tin tức như thêm, sửa xóa tin tức Purpose Giúp người dùng quản lý tin tức, cập nhật những tin tức mới
cho khách hàng đọc hằng ngày User problem Khơng có
User value Tin tức được lưu trữ trong Database
Assumptions Người dùng đã đăng nhập, đăng ký tài khoản
Not doing Thực hiện chức năng khi tài khoản chưa được cấp quyền quản trị
Acceptance criteria
- Chức năng quản lý phụ kiện thời trang
Mô tả chức năng
Feature Quản lý phụ kiện thời trang
Description Người dùng thay đổi thông tin phụ kiện thời trang như thêm phụ kiện mới (quần, áo, giày, mũ, nón, ba lơ) cũng như cập nhật thơng tin như thay đổi giá, xóa phụ kiện khơng cịn bày bán
tin cho bên khách hàng
User problem Người dùng xóa phụ kiện trong lúc khách hàng đặt hàng User value Phụ kiện thời trang được lưu trữ trong Database
Assumptions Người dùng đã đăng nhập, đăng ký tài khoản
Not doing Thực hiện chức năng khi tài khoản chưa được cấp quyền quản trị
Acceptance criteria
Kết quả cập nhật phải được báo lại cho người dùng
Mô tả chức năng
Feature Thay đổi (cập nhật) trạng thái đơn hàng
Description Người dùng đảm nhiệm các đơn hàng do khách hàng đặt, cập nhật lại trạng thái đơn hàng như hủy đơn khi mặt hàng cần đặt bị thiếu
Purpose Giúp người dùng quản lý trạng thái đơn hàng, thông báo lại tiến độ giao đơn hàng cho bên khách hàng
User problem Khơng có
User value Đơn hàng được lưu trữ trong Database
Assumptions Người dùng đã đăng nhập, đăng ký tài khoản
Not doing Thực hiện chức năng khi tài khoản chưa được cấp quyền quản trị
Acceptance criteria
Kết quả cập nhật phải được báo lại cho người dùng
Mô tả chức năng
Feature Chức năng chat với khách hàng
Description Người dùng chat với bên khách hàng, giải đáp vướng mắc, thắc mắc, hoặc quảng cáo sản phẩm mới cho khách hàng
Purpose Giúp người dùng liên lạc với bên khách hàng User problem Khơng có
User value Hội thoại, tin nhắn được lưu trữ trong Database Assumptions Người dùng đã đăng nhập, đăng ký tài khoản
trị Acceptance
criteria
Sau khi phản hồi, tin nhắn mới phải được cập nhật trong danh sách tin nhắn
4. Sơ đồ cấu trúc cơ sở dữ liệu trong firebase firestore
Danh sách các bảng Bảng Tin tức
Tên cột Kiểu dữ liệu Khơng trống
Khóa ngoại
Ghi chú
Ma Nvarchar(20) X Auto generate
TieuDe Nvarchar(100) X HinhAnh text
NoiDung text
ThoiGianTao datetime X Auto generate
Bảng Người dùng
Tên cột Kiểu dữ liệu Không trống
Khóa ngoại
Ghi chú
Mã Nvarchar(20) X Lấy từ user id của
authentication
Email Nvarchar(100) X
KhachHang bit X Nếu true, ngườI
dùng có thể truy cập app khách hàng
QuanTri bit X Nếu true, ngườI
dùng có thể truy cập website quản trị
Bảng Khách hàng
Chú ý: bảng người dùng lưu thông tin tài khoản của cả quản trị lẫn khách hàng, bảng khách hàng lưu thông tin của khách hàng, có mã là mã của người dùng
Tên cột Kiểu dữ liệu Không trống
Khóa ngoại
Ghi chú
Ma Nvarchar(20) X Lấy từ uid từ
authentication
HoTen Nvarchar(100) X
SoDienThoai Nvarchar(20) X
DiaChi text X
Bảng Tin nhắn
Tên cột Kiểu dữ liệu Khơng trống
Khóa ngoại
Ghi chú
Ma Nvarchar(20) X Auto generate
TieuDe Nvarchar(100) X
MaNguoiTao Nvarchar(20) X X
TenNguoiTao Nvarchar(100) X
ThoiGianTao datetime X Auto generate
DoQuanTriTao bit X
Bảng chi tiết tin nhắn
Tên cột Kiểu dữ liệu Không trống
Khóa ngoại
Ghi chú
Ma Nvarchar(20) X Auto generate
NoiDung text X
MaTinNhan Nvarchar(20) X X
MaNguoiTao Nvarchar(20) X X
TenNguoiTao Nvarchar(100)
ThoiGianTao datetime X Auto generate
DoQuanTriTao bit X
Bảng Phụ kiện thời trang
Tên cột Kiểu dữ liệu Khơng trống
Khóa ngoại
Ghi chú
Ma Nvarchar(20) X Auto generate
Ten Nvarchar(100) X
HinhAnh text X
Loai Nvarchar(20) X Nhận 1 trong 5 giá
trị Nón Áo Quần Giày Ba lơ Hang Nvarchar(100) Gia Nvarchar(50) X Mau Nvarchar(100) MoTa text ConHang bit X Bảng mô tả phụ kiện
Chú ý: đây là bảng lưu dữ liệu hỗ trợ cho chức năng AR, người dùng sẽ ko thấy hoặc thao tác vớI bảng này
Tên cột Kiểu dữ liệu Khơng trống
Khóa ngoại
Ghi chú
Ma Nvarchar(20) X Lấy từ mã từ Phụ
kiện thời trang TrenTrai Vector(int, X
int) TrenPhai Vector(int, int) X DuoiTrai Vector(int, int) X DuoiPhai Vector(int, int) X Bảng Quần áo
Tên cột Kiểu dữ liệu Không trống Khóa ngoại Ghi chú Ma Nvarchar(20) X MaKhachHang Nvarchar(20) X X HinhAnh text X MaNon Nvarchar(20) X X MaAo Nvarchar(20) X X MaQuan Nvarchar(20) X X MaGiay Nvarchar(20) X X MaBalo Nvarchar(20) X X Bảng đơn hàng
Tên cột Kiểu dữ liệu Khơng
trống Khóa ngoại Ghi chú Ma Nvarchar(20) X MaKhachHang Nvarchar(20) x X
TenKhachHang Nvarchar(100) x Có giá trị mặc