PHÂN TÍCH BÀI TỐN

Một phần của tài liệu Phát triển mở rộng hệ thống bán hàng thời trang dùng flutter và angular (Trang 51 - 86)

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 (adsbygoogle = window.adsbygoogle || []).push({});

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 (adsbygoogle = window.adsbygoogle || []).push({});

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 (adsbygoogle = window.adsbygoogle || []).push({});

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 (adsbygoogle = window.adsbygoogle || []).push({});

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 (adsbygoogle = window.adsbygoogle || []).push({});

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 (adsbygoogle = window.adsbygoogle || []).push({});

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 (adsbygoogle = window.adsbygoogle || []).push({});

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 (adsbygoogle = window.adsbygoogle || []).push({});

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

Một phần của tài liệu Phát triển mở rộng hệ thống bán hàng thời trang dùng flutter và angular (Trang 51 - 86)