4.1.1. Yêu cầu chức năng
4.1.1.1. Yêu cầu lưu trữ
Tính năng lưu trữ là một trong những tính năng quan trọng, ảnh hưởng trực tiếp đến các chức năng trong hệ thống. Để hệ thống hoạt động tốt và đạt yêu cầu, ta cần lưu trữ các thông tin sau:
- Thông tin về các món ăn: Tên món ăn, hình ảnh, nguyên liệu, cách nấu,
thông tin tác giả, đường dẫn đến video hướng dẫn nấu ăn.
- Thông tin đánh giá món ăn: Bao gồm các đánh giá, bình luận của người
dùng về món ăn.
- Thông tin nội dung đăng tải: Các bài đăng, bình luận của người dùng.
- Thông tin cá nhân: Tên tài khoản, ảnh đại diện, thông tin thêm, cân nặng,
chiều cao, giới tính của người dùng.
- Thông tin cuộc trò chuyện: Bao gồm thời gian, nội dung cuộc trò chuyện.
4.1.1.2. Yêu cầu về tính năng
Ứng dụng di động chạy trên nền tảng Android, có khả năng truy cập ở mọi vị trí, thời điểm với kết nối Internet. Một vài yêu cầu mà hệ thống cần đáp ứng:
- Chức năng truy vấn: Đáp ứng yêu cầu truy vấn của người dùng như: Tìm
kiếm các người dùng khác trong ứng dụng, tìm kiếm món ăn.
- Chức năng cập nhật: Cập nhật các bài đăng, thông tin cá nhân người dùng
- Chức năng tự động: Ứng dụng tự động gửi thông báo đến người dùng
4.1.2. Phân tích yêu cầu phi chức năng
Tốc độ phản hồi các thao tác của người dùng nhanh, độ trễ thấp
Tận dụng các công cụ, tài nguyên miễn phí và giá thành phù hợp ngân sách để triển
18 khai hệ thống.
Các thông tin của người dùng được bảo mật và bảo đảm chỉ có những người có quyền có thể try cập vào các tài nguyên cụ thể.
4.1.3. Phân tích yêu cầu người dùng
Hệ thống sử dụng kết quả khảo sát, nghiên cứu hiện trạng để tiến hành phân tích yêu cầu và chức năng của hệ thống, được biểu diễn bằng ngôn ngữ mô hình hoá (UML).
19
4.1.3.1. Mô hình Use case toàn hệ thống
Hình 4.1: Sơ đồ Use case hệ thống
4.1.3.2. Danh sách các Actor
STT Tên Actor Ý nghĩa
1 Người dùng Những người có nhu cầu sử dụng ứng dụng và đã thực hiện
20
ứng dụng được sở hữu bởi tài khoản đã đăng ký
2 Chuyên gia Tương tự như người dùng thông thường. Ngoài ra họ là những
người có kiến thức nhất định về mảng dinh dưỡng và có thể đưa ra lời khuyên cho người khác
3 Người quản
trị
Người quản trị và vận hành hệ thống
Bảng 4.1: Danh sách các Actor trong hệ thống
4.1.3.3. Danh sách các Use case
STT Tên Use case Mô tả Use case
1 Đăng ký Cho phép người dùng đăng ký tài khoản dùng để truy cập
và sử dụng các chức năng của hệ thống
2 Đăng nhập Người dùng có thể đăng nhập vào hệ thống bằng tài khoản
đã đăng ký hoặc đăng nhập thông qua tài khoản Google
3 Khôi phục mật
khẩu
Cho phép lấy lại mật khẩu thông qua email đã đăng ký
4 Quản lý tài
khoản
Cho phép người dùng cập nhật các thông tin liên quan đến tài khoản
5 Cập nhật thông
tin cá nhân
Là use case mở rộng của Quản lý tài khoản. Cho phép người dùng cập nhật các thông tin trên trang cá nhân
6 Thay đổi mật
khẩu
Là use case mở rộng của Quản lý tài khoản. Cho phép người dùng thay đổi mật khẩu truy cập
21
7 Bảng tin Cho phép người dùng khám phá các bài viết của người
dùng khác
8 Tạo, cập nhật
bài viết
Là use case mở rộng của Bảng tin. Cho phép người dùng đăng, chỉnh sửa bài viết lên trang tin của mình và bạn bè
9 Tương tác bài
viết
Người dùng có thể tương tác với bài viết bằng cách bình luận hoặc nhấn yêu thích
10 Lưu bài viết Người dùng có thể lưu bài viết để có thể xem lại nếu cần
11 Xem danh sách
bài viết đã lưu
Là use case mở rộng của Lưu bài viết. Cho phép người dùng xem lại danh sách bài viết đã lưu
12 Kết nối Cho phép người dùng tương tác với các người dùng khác
trong hệ thống
13 Theo dõi trang
cá nhân
Là use case mở rộng của Kết nối. Người dùng có thể theo dõi người dùng khác để có thể nhận các thông tin mới nhất từ họ
14 Chat Là use case mở rộng của Kết nối. Cho phép người dùng có
thể trao đổi với các người dùng khác hoặc Bot của hệ thống qua tin nhắn
15 Khám phá món
ăn
Xem và xử lý các thông tin món ăn có trong hệ thống
16 Tạo món ăn mới Là use case mở rộng của Khám phá món ăn. Người dùng
22
17 Tìm kiếm món
ăn
Là use case mở rộng của Khám phá món ăn. Cho phép người dùng tìm kiếm các món ăn
18 Lưu món ăn Là use case mở rộng của Khám phá món ăn. Cho phép
người dùng lưu món ăn vào danh sách của riêng mình
19 Đánh giá món
ăn
Là use case mở rộng của Khám phá món ăn. Người dùng có thể đánh giá và để lại bình luận cho món ăn
20 Xem danh sách
món ăn đã lưu
Là use case mở rộng của Lưu món ăn. Cho phép người dùng xem lại danh sách các món ăn đã lưu
21 Quản lý món ăn Cho phép người quản trị quản lý các thông tin món ăn có
trong hệ thống
22 Duyệt món ăn
mới
Người quản trị có thể duyệt các món ăn do người dùng tạo nhằm đảm bảo chất lượng cho kho thông tin chung
23 Quản lý user Người quản trị có quyền kiểm soát thông tin các user trong
hệ thống
24 Quản lý role Cho phép người quản trị gán các vai trò cho người dùng
(chuyên gia)
25 Tạo bài viết
khuyên dùng
Cho phép chuyên gia tạo bài viết dạng khuyên dùng
23
4.2. Phân tích thiết kế hệ thống 4.2.1. Thiết kế xử lý 4.2.1. Thiết kế xử lý
4.2.1.1. Sơ đồ tuần tự Đăng ký
Hình 4.2: Sơ đồ tuần tự Đăng ký
Mô tả: Cho phép người dùng đăng ký tài khoản trong hệ thống
- Người dùng nhập các thông tin cần thiết (tên đăng nhập, mật khẩu,...) và
gửi yêu cầu (1-2).
24
- Hệ thống kiểm tra xem tài khoản đã tồn tại hay chưa (4-5). Nếu có thì trả
về lỗi.
- Hệ thống tiến hành lưu thông tin tài khoản và thông tin người dùng vào
database (6-7).
- Hệ thống gửi email chứa mã xác thực đến email đã đăng ký của người dùng (8).
- Nếu không nhận được email, người dùng có thể yêu cầu hệ thống gửi lại
email xác thực (9-10).
- Hệ thống xác thực yêu cầu của người dùng qua access token, tiến hành
tạo lại mã xác thực (11-13).
- Hệ thống gửi lại email chứa mã xác thực cho người dùng.
- Sau khi nhận được email, người dùng nhập mã xác nhận và gửi yêu cầu
xác thực (15-16)
- Hệ thống tiến hành kiểm tra và xác thực mã mà người dùng gửi xuống (17-19)
25
4.2.1.2. Sơ đồ tuần tự Đăng nhập
Hình 4.3: Sơ đồ tuần tự Đăng Nhập
Mô tả: Người dùng sử dụng tài khoản đã đăng ký để đăng nhập vào hệ thống.
- Người dùng nhập thông tin đăng nhập và gửi yêu cầu (1-2).
- Hệ thống xác thực thông tin đăng nhập của người dùng (3).
- Hệ thống truy vấn thông tin tài khoản từ thông tin đăng nhập của người
dùng (4-5).
- Hệ thống tiến hành so khớp mật khẩu (6).
- Hệ thống tạo access token cho người dùng (7).
- Hệ thống phản hồi với access token và chuyển người dùng vào trang chủ
26
4.2.1.3. Sơ đồ tuần tự Đăng nhập với Google account
Hình 4.4: Sơ đồ tuần tự Đăng nhập với Google Account
Mô tả: Người dùng đăng nhập vào hệ thống sử dụng tài khoản của Google.
- Người dùng nhấn yêu cầu đăng nhập (1)
- Hệ thống chuyển người dùng đến trang đăng nhập của Google, người
dùng tiến hành đăng nhập và cấp các quyền cho phép hệ thống truy vấn thông tin tài khoản Google của người dùng (2-3-4).
- Máy chủ Google trả về mã truy cập (5).
- Hệ thống sử dụng mã truy cập để trao đổi access token dùng để truy vẫn
thông tin tài khoản ở máy chủ Google (6-7-8-9).
- Hệ thống sử dụng access token để truy vấn thông tin tài khoản Google của người dùng (10-11).
27
- Hệ thống tạo access token cho người dùng và phản hồi (14-15-16).
4.2.1.4. Sơ đồ tuần tự Quên mật khẩu
Hình 4.5: Sơ đồ tuần tự Quên mật khẩu
Mô tả: Hệ thống cho phép người dùng lấy lại mật khẩu thông qua email đã đăng ký trong trường hợp người dùng quên mật khẩu.
- Người dùng nhập thông tin email đã dùng để đăng ký và gửi yêu cầu (1-
2).
- Hệ thống xác thực thông tin người dùng gửi xuống (3-4-5).
28
- Hệ thống tạo link thay đổi mật khẩu chứa mã thay đổi mật khẩu và gửi
đến email của người dùng.
- Người dùng sau khi nhận email sẽ nhấn vào link, tiến hành nhập mật
khẩu mới và gửi yêu cầu (12-13-14).
- Hệ thống xác thực mã thay đổi mật khẩu đính kèm trong yêu cầu gửi
xuống (15-16-17).
- Hệ thống lưu lại mật khẩu mới (18-19).
- Hệ thống phản hồi kết quả cho người dùng (20-21).
4.2.1.5. Sơ đồ tuần tự Thay đổi mật khẩu
Hình 4.6: Sơ đồ tuần tự Thay đổi mật khẩu
Mô tả: Hệ thống cho phép người dùng thay đổi thông tin mật khẩu đăng nhập của mình.
- Người dùng nhập thông tin mật khẩu hiện tại, mật khẩu mới và gửi yêu
cầu (1-2).
29
- Hệ thống truy vấn thông tin người dùng và tiến hành so khớp mật khẩu
hiện tại (5-6-7)
- Hệ thống cập nhật mật khẩu mới cho người dùng (8-9).
- Hệ thống phản hồi kết quả cho người dùng (10).
4.2.1.6. Sơ đồ tuần tự cập nhật thông tin
Hình 4.7: Sơ đồ tuần tự Cập nhật thông tin
Mô tả: Hệ thống cho phép người dùng cập nhật các thông tin cá nhân của mình trên trang cá nhân như họ tên, tên hiển thị, ngày sinh,...
- Người dùng nhập thông tin cần cập nhật và gửi yêu cầu (1-2).
- Hệ thống định danh và xác thực thông tin người dùng gửi xuống (3).
- Hệ thống truy vấn thông tin người dùng và kiểm tra quyền của người dùng.
- Hệ thống cập nhật thông tin thay đổi cho người dùng (8-9).
30
4.2.1.7. Sơ đồ tuần tự Upload file
Hình 4.8: Sơ đồ tuần tự Upload file
Mô tả: Các bước xử lý upload file của hệ thống, dùng trong một số luồng có liên quan đến hình ảnh (tạo bài viết, tạo món ăn,...)
- Người dùng chọn file ảnh và gửi yêu cầu (1-2).
- Server định danh và xác thực yêu cầu của người dùng (3-4).
- Server truy vấn Upload presigned link của FireStorage (5-6).
- Server phản hồi cho Mobile thông tin vè Upload presigned link (7).
- Mobile sử dụng Presigned link để upload ảnh lên FireStorage (8-9).
31
4.2.1.8. Sơ đồ tuần tự Tạo bài viết
Hình 4.9: Sơ đồ tuần tự Tạo bài viết
Mô tả: Người dùng có thể tạo bài viết mới, bài viết sẽ xuất hiện trên trang tin của người dùng và những người dùng đã theo dõi họ.
- Người dùng nhập các thông tin bài viết và gửi yêu cầu (1-2-3).
- Hệ thống định danh và xác thực yêu cầu của người dùng (4-5).
- Hệ thống kiểm tra hình ảnh mà người dùng đã upload và tiến hành di chuyển hình ảnh vào địa chỉ cố định (6-7-8-9).
- Hệ thống lưu bài viết mới vào database (10-11).
- Hệ thống đẩy bài viết vào trang tin của các người dùng khác (14-15).
- Hệ thống gửi thông báo bài viết mới đến các người dùng khác (16).
32
4.2.1.9. Sơ đồ tuần tự Cập nhật bài viết
Hình 4.10: Sơ đồ tuần tự Cập nhật bài viết
Mô tả: Người dùng có thể cập nhật lại bài viết của mình sau khi đã tạo.
- Người dùng nhập các thông tin cần thay đổi và gửi yêu cầu (1-2).
- Hệ thống định danh và xác thực yêu cầu của người dùng (3-4).
- Hệ thống truy vấn thông tin bài viết cần cập nhật (5-6).
- Hệ thống tiến hành cập nhật các thông tin thay đổi (7-8).
33
4.2.1.10. Sơ đồ tuần tự Lưu bài viết
Hình 4.11: Sơ đồ tuần tự Lưu bài viết
Mô tả: Hệ thống cho phép người dùng lưu lại bài viết của người khác để có thể xem lại sau.
- Người dùng chọn lưu bài viết cần lưu trữ và gửi yêu cầu (1-2).
- Hệ thống định danh và xác thực yêu cầu của người dùng (3-4).
- Hệ thống truy vấn thông tin bài viết cần lưu (5-6).
- Hệ thống tiến hành tiến hành lưu bài viết vào danh sách lưu trữ của người
dùng (7-8).
34
4.2.1.11. Sơ đồ tuần tự Tạo món ăn
Hình 4.12: Sơ đồ tuần tự Tạo món ăn
Mô tả: Hệ thống cho phép người dùng tự tạo món ăn của bản thân và lưu vào kho thức ăn chung của hệ thống. Sau khi tạo, món ăn sẽ được đưa vào hàng chờ để đợi xét duyệt
- Người dùng nhập các thông tin món và gửi yêu cầu (1-2).
- Hệ thống định danh và xác thực yêu cầu của người dùng (3-4).
- Hệ thống kiểm tra hình ảnh mà người dùng đã upload và tiến hành di
chuyển hình ảnh vào địa chỉ cố định (6-7-8-9).
- Hệ thống tiến hành lưu trữ món ăn mới (10-11).
35
4.2.1.12. Sơ đồ tuần tự Lưu món ăn
Hình 4.13: Sơ đồ tuần tự Lưu món ăn
Mô tả: Hệ thống cho phép người dùng lưu lại món ăn để có thể xem lại sau. Người dùng có thể lưu trữ ở hai chế độ Nên ăn và Không nên ăn
- Người dùng chọn món ăn cần lưu, chế độ lưu và gửi yêu cầu (1-2).
- Hệ thống định danh và xác thực yêu cầu của người dùng (3-4).
- Hệ thống truy vấn thông tin món ăn cần lưu (5-6).
- Hệ thống tiến hành tiến hành lưu món ăn vào danh sách lưu trữ của người
dùng (7-8).
36
4.2.1.13. Sơ đồ tuần tự Đánh giá món ăn
Hình 4.14: Sơ đồ tuần tự Đánh giá món ăn
Mô tả: Hệ thống cho phép người dùng đánh giá chất lượng món ăn để người dùng khác có thể tham khảo.
- Người dùng chọn số sao đánh giá, nhập bình luận và gửi yêu cầu (1-2).
- Hệ thống định danh và xác thực yêu cầu của người dùng (3-4).
- Hệ thống truy vấn thông tin món ăn cần đánh giá (5-6).
- Hệ thống tiến hành tiến hành lưu đánh giá của người dùng vào database
(7-8).
37
4.2.1.14. Sơ đồ tuần tự Yêu thích bài viết
Hình 4.15: Sơ đồ tuần tự Yêu thích bài viết
Mô tả: Người dùng có thể tương tác với bài viết bằng cách nhấn thả yêu thích.
- Người dùng chọn nút yêu thích trên bài viết và gửi yêu cầu (1-2).
- Hệ thống định danh và xác thực yêu cầu của người dùng (3-4).