Phân tích yêu cầu hệ thống

Một phần của tài liệu Xây dựng ứng dụng mạng xã hội chia sẻ phương pháp nấu ăn dinh dưỡng (khóa luận tốt nghiệp) (Trang 31)

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).

Một phần của tài liệu Xây dựng ứng dụng mạng xã hội chia sẻ phương pháp nấu ăn dinh dưỡng (khóa luận tốt nghiệp) (Trang 31)