1. Trang chủ
  2. » Luận Văn - Báo Cáo

đồ án 2 xây dựng ứng dụng fastfood kết hợp tính năng gợi ý người dùng

52 2 0
Tài liệu đã được kiểm tra trùng lặp

Đang tải... (xem toàn văn)

Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống

THÔNG TIN TÀI LIỆU

Thông tin cơ bản

Tiêu đề Xây dựng ứng dụng fastfood kết hợp tính năng gợi ý người dùng
Tác giả Võ Đặng Thiện Khải, Nguyễn Duy Linh
Người hướng dẫn ThS. Nguyễn Thị Thanh Trúc
Trường học Trường Đại học Công nghệ Thông tin
Chuyên ngành Công nghệ Phần mềm
Thể loại Đồ án 2
Năm xuất bản 2023
Thành phố Thành phố Hồ Chí Minh
Định dạng
Số trang 52
Dung lượng 6,81 MB

Nội dung

Hệ thống có chức năng chính là giúp cho người dùng có thể lập trình ứng dụng thông qua cách đơn giản hóa những thao tác với các cơ sở dữ liệu.. Cấu trúc Firebase ○ Ưu điểm của Firebase -

Trang 1

TRƯỜNG ĐẠI HỌC CÔNG NGHỆ THÔNG TIN

Trang 2

TP HỒ CHÍ MINH, THÁNG 12 NĂM 2023

Trang 3

LỜI CẢM ƠNLời đầu tiên, chúng em xin cảm ơn ThS Nguyễn Thị Thanh Trúc đã tạo

điều kiện tốt nhất và cung cấp những kiến thức cần thiết để hoàn thành môn Đồ

Án 2

Chúng em cũng xin gửi lời cảm ơn sâu sắc đến ThS Nguyễn Thị Thanh

Trúc, người đã hỗ trợ, hướng dẫn nhóm và tạo điều kiện tốt nhất để nhóm hoàn

thành đề tài nghiên cứu này Với sự hỗ trợ nhiệt tình của cô, cuối cùng nhóm

chúng em cũng đã hoàn thiện những kiến thức cần thiết thông qua việc nghiên cứu và học hỏi những kiến thức mới Chúng em sẽ cố gắng ngày càng hoàn thiệnmình hơn trong tương lai và tiếp tục học tập chăm chỉ để đạt được kết quả tốt nhất

Chúng em xin gửi lời cảm ơn đến gia đình, tất cả thầy cô trong khoa, bạn bè,tập thể lớp PMCL2020 là những người luôn sẵn sàng sẻ chia và giúp đỡ trong học tập

và cuộc sống Mong rằng, chúng ta sẽ mãi mãi gắn bó với nhau

Trong quá trình làm Đồ án này chúng em không tránh khỏi được những saisót, chúng em kính mong nhận được sự chỉ dẫn và góp ý của quý thầy cô để hoànthiện và phát triển các đồ án trong tương lai tốt hơn

Cuối cùng, xin kính chúc các thầy cô giảng viên bộ môn Công nghệ Phần

mềm và cô Nguyễn Thị Thanh Trúc luôn có sức khỏe dồi dào, cuộc sống hạnh

phúc, tiếp tục hoàn thành sứ mệnh cao cả là truyền thụ tri thức cho thế hệ mai sau

Chúng em xin chân thành cảm ơn Xin chúc những điều tốt đẹp nhất sẽ luôn đồng hành cùng mọi người

Thành phố Hồ Chí Minh, tháng 12 năm 2023

Trang 4

NHẬN XÉT

(Của giáo viên hướng dẫn)

………

………

………

………

………

………

………

………

………

………

………

………

………

………

………

………

………

………

………

………

Trang 6

3.3.7 Use-case “Nutrition Chat Room” 30

Trang 7

CHƯƠNG 1: GIỚI THIỆU CHUNG1.1 Tổng quan đề tài

● Tên ứng dụng: Healthy Fastfood

● Chủ đề chính: Website gợi ý món ăn fastfood phù hợp tích hợp với các hệ thống hỗ trợ người dùng trở nên healthy hơn khi dùng thức ăn nhanh

● Nền tảng phát triển: Web application

● Hệ thống gợi ý: OpenAI & Google api

1.2 Lý do chọn đề tài

Ngày nay khi công nghệ ngày càng phát triển, con người ngày càng bận rộn thì việc sử dụng thức ăn nhanh (fastfood) ngày càng tăng Tuy nhiên việc sử dụng fastfood là không tốt, và là nguyên nhân chính của nhiều căn bệnh nghiêm trọng Trước tình hình đó, con

người hiện đại đã tìm đến nhiều giải pháp để có thể dùng fastfood một cách healthy hơn Nắm bắt tình hình đó, nhóm chúng tôi đã đề xuất về một website có thể hỗ trợ người dùng tìm kiếm về thức ăn nhanh và nơi mua gần nhất, đồng thời tích hợp các tiện ích hỗ trợ

người dùng trở nên healthy hơn

Website của nhóm sẽ tập trung vào các tính năng chính như sau: hỗ trợ người dùng tìm kiếm các nhà hàng thức ăn fastfood gần đó; Tiến hành gợi ý cho người dùng về món ăn fast food healthy hơn dựa trên sở thích, cũng như thời tiết; hỗ trợ người dùng chat với open ai

để có thể dễ dàng gợi ý món ăn hơn; cung cấp thông tin về dinh dưỡng, công thức nấu ăn của các món ăn; đồng thời cung cấp các bài tập thể dục nhằm nâng cao sức khoẻ của người tiêu dùng

Website của nhóm sẽ được xây dựng dựa trên nền tảng kết hợp với OpenAi nhằm tận dụng sự phát triển của công nghệ, cũng như nâng cao trải nghiệm của người dùng và hiệu suất của trang web

Trang 8

● Hỗ trợ chat với OpenAI trong việc gợi ý thức ăn

● Hỗ trợ tìm kiếm nhà hàng gần kề có bán thức ăn mong muốn

● Cung cấp cho người dùng các thông tin một cách đầy đủ về fastfood: hình ảnh, lượng calories và các thành phần dinh dưỡng có trong món ăn

● Cung cấp công thức hướng dẫn nấu ăn cho người dùng nếu cần

● Cung cấp cho người dùng các bài tập thể dục nhằm hỗ trợ giảm cân và cải thiện vóc dáng

1.5 Công cụ áp dụng

● Công cụ phát triển: Visual Studio Code

● Công cụ dùng để phân tích, thiết kế: Figma

● Công cụ quản lý dự án: Github, Messenger

● Công cụ trao đổi thông tin giữa thành viên nhóm: Messenger, Teams

● Công cụ soạn thảo báo cáo: Microsoft Word

Trang 10

VueJS được đánh giá là framework hàng đầu trong xây dựng, phát triển giao diện ngườidùng (UI) Ngoài ra, lập trình viên cũng có thể tạo các trang SPA - Single Page Application

có độ phức tạp cao nếu kết hợp VueJS với SFC và thư viện hỗ trợ

Các ứng dụng được phát triển bởi VueJS cũng có tốc độ tải trang, xử lý rất nhanh

Ưu điểm:

● Hiệu suất vô cùng cao: Là một framework linh động với nhiều tính năng được kế

thừa từ đối thủ và khả năng mở rộng cao, VueJS mang lại hiệu suất vô cùng caotrong các dự án phát triển Lập trình viên chỉ cần dùng một framework duy nhất

để tạo ra các app

● Tốc độ đáng gờm: Một trong những đặc điểm nổi bật của VueJS là chỉ giữ core.

Điều này khiến cho dung lượng tải của framework tương đối thấp, giúp tốc độtải trang nhanh hơn hẳn

● Đơn giản và dễ học: VueJS rất đơn giản, dễ học và dễ áp dụng vào trong các dự

án, dù là một newbie thì bận cũng không cần lo lắng quá nhiều khi sử dụngframework này

Nhược điểm:

● Không hỗ trợ SEO

● Rào cản ngôn ngữ và cộng đồng bị hạn chế (chủ yếu là Trung Quốc)

● Buông lỏng việc tích hợp dẫn đến cái gì cũng có thể sử dụng, gây ra lỗi

● Thiếu hỗ trợ tài chính cho các dự án quy mô lớn do vị thế chưa thể bằng Angularhay React

● Nguồn tài nguyên giới hạn do còn non trẻ

Trang 11

Ưu điểm:

● Code được viết bằng Typescript sẽ dễ dự đoán và debug hơn nhiều với static typing

● Tất cả mọi thông số, số liệu của bạn sẽ dễ dàng được lấy nhờ sự hỗ trợ của IDE và cáctrình biên dịch

● Giúp bạn tiết kiệm lượng lớn thời gian, công sức trong việc kiểm tra code và làm giảmtối đa phần trăm va chạm lỗi trong quá trình vận hành mà không cần thông qua bất kỳ

Trang 12

một đối tượng nào khác.

● Mọi thao tác của Typescript không những đơn giản, nhanh chóng và tiết kiệm mà lạicòn đem lại cho bạn những hiệu quả bất ngờ trong việc khắc phục lỗi và dễ đọc hơnnhiều

● Typescript giúp bạn tái cấu trúc phù hợp với nhu cầu tìm kiếm khi bạn muốn nâng cấp

hệ thống của mình mà không gây náo loạn cho hệ thống

● Khả năng cảnh báo lỗi ngay trong khi viết code mà tỉ lệ mắc lỗi khi sử dụng Typescripttrong hệ thống là rất thấp

Trang 13

và dễ dàng hơn rất nhiều Ngoài ra, Nodejs còn được biết tới là một mã nguồn mở và là một môi trường cho các máy chủ và ứng dụng mạng.

Ưu điểm:

● Có tốc độ xử lý nhanh nhờ cơ chế xử lý bất đồng bộ (non-blocking) Bạn có thể

dễ dàng xử lý hàng ngàn kết nối trong khoảng thời gian ngắn nhất

● Giúp bạn dễ dàng mở rộng khi có nhu cầu phát triển website

● Nhận và xử lý nhiều kết nối chỉ với một single-thread Nhờ đó, hệ thống xử lý sẽ

sử dụng ít lượng RAM nhất và giúp quá trình xử Nodejs lý nhanh hơn rất nhiều

● Có khả năng xử lý nhiều Request/s cùng một lúc trong thời gian ngắn nhất

● Có khả năng xử lý hàng ngàn Process cho hiệu suất đạt mức tối ưu nhất

● Phù hợp để xây dựng những ứng dụng thời gian thực như các ứng dụng chat, mạng xã hội …

Nhược điểm:

● Đa luồng kém: Node.js sử dụng mô hình đơn luồng (single-threaded), điều này

có nghĩa rằng nếu một phần của mã gặp lỗi, toàn bộ ứng dụng có thể bị tắcnghẽn Tuy nhiên, có thể sử dụng cụm (cluster) để giải quyết vấn đề này

● Không phù hợp cho các ứng dụng CPU-bound: Node.js thường tốt cho các ứng

dụng I/O-bound, nhưng nó không thích hợp cho các ứng dụng CPU-bound (cần

xử lý tính toán nặng)

● Khả năng bảo mật yếu: Mặc dù Node.js có nhiều cải tiến về bảo mật, nhưng việc

xử lý các vấn đề bảo mật đòi hỏi kiến thức sâu về cách làm việc của nó

● Hạn chế trong việc sử dụng một số thư viện cần kiến thức phức tạp hơn về bấtđồng bộ (asynchronous) và callback

2.3 Hệ quản trị cơ sở dữ liệu Firebase

2.1 Firebase là gì?

Firebase chính là một dịch vụ cơ sở dữ liệu được hoạt động ở trên nền tảng đám mây (Cloud)

Đi kèm với đó là một hệ thống máy chủ mạnh mẽ của Google Hệ thống có chức năng chính là giúp cho người dùng có thể lập trình ứng dụng thông qua cách đơn giản hóa những thao tác với các cơ sở dữ liệu

2.2 Firestore database

Firestore là một dịch vụ cơ sở dữ liệu của Firebase, được phát triển để lưu trữ và quản lý dữ liệu cho các ứng dụng di động, web và máy chủ Firestore sử dụng cấu trúc bộ sưu tập và tài liệu để tổ chức dữ liệu

Firebase Authentication

Hoạt động nổi trội nhất của Firebase chính là xây dựng những bước xác dụng người dùng

Trang 14

thông qua Email, Facebook, Twitter, GitHub hay Google Ngoài ra, hoạt động Firebase

Authentication cũng hỗ trợ xác thực nặc danh cho những ứng dụng Hoạt động xác thực của Firebase có thể giúp cho thông tin cá nhân của những người sử dụng được an toàn hơn Điều này cũng đảm bảo tài khoản và các thông tin cá nhân của người dùng không bị đánh cắp

Hình 3 Cấu trúc Firebase

Ưu điểm của Firebase

- Tốc độ cao: Firebase hỗ trợ phát triển ứng dụng với tốc độ nhanh chóng, giảm bớt thời gian phát triển và tiếp thị ứng dụng

- Đơn giản, dễ dàng trong sử dụng: Người dùng có thể tạo tài khoản Firebase bằng tài khoản Google và cũng như sử dụng nền tảng này trong phát triển ứng dụng một cách

dễ dàng

Trang 15

- Một nền tảng, đa dịch vụ: Firebase cung cấp đầy đủ các dịch vụ hỗ trợ phát triển web, bạn có thể chọn database Firestore hoặc Realtime theo ý muốn

- Là một phần của Google: Firebase đã được mua lại và hiện tại đang là một phần của Google Nó khai thác triệt để sức mạnh và các dịch vụ sẵn có của Google

- Tập trung phát triển chủ yếu về giao diện người dùng: Firebase cho phép lập trình viên tập trung chủ yếu vào phát triển phần giao diện người dùng nhờ kho Backend mẫu phong phú đa dạng

- Không có máy chủ: Điều này giúp Firebase có khả năng tối ưu hóa về hiệu suất làm việc thông qua mở rộng cụm database

- Học máy: Firebase cung cấp học máy cho lập trình viên, hỗ trợ tối đa cho việc phát triểnứng dụng

- Tạo ra lưu lượng truy cập: Với khả năng hỗ trợ tạo lập các chỉ mục, Firebase giúp nâng cao thứ hạng của ứng dụng trên bảng xếp hạng Google, từ đó tăng lượt traffic

- Theo dõi lỗi: Firebase là công cụ phát triển, khắc phục lỗi tuyệt vời

- Sao lưu: Firebase sao lưu thường xuyên, giúp đảm bảo tính sẵn có và bảo mật thông tincho dữ liệu

Nhược điểm của Firebase

- Không phải mã nguồn mở

- Chỉ hoạt động trên CSDL NoSQL

- Lập trình viên không được truy cập vào mã nguồn

- Truy vấn chậm

- Phạm vi hoạt động bị hạn chế ở một vài quốc gia

- Một vài dịch vụ cần trả phí, chi phí dành cho Firebase tương đối lớn và không ổn định

- Thiếu Dedicated Servers và cả hợp đồng doanh nghiệp

Trang 16

2.5 Bootsrap

Tailwind CSS là một framework CSS được phát triển bởi Adam Wathan, Jonathan Reinink,David Hemphill và Steve Schoger Nó được thiết kế để giúp phát triển giao diện người dùnglinh hoạt và tùy chỉnh một cách dễ dàng hơn

Ưu điểm:

● Tùy chỉnh cao cấp: Tailwind CSS cho phép bạn tùy chỉnh giao diện của mình một

cách tối đa thông qua việc sử dụng các lớp CSS có thể tùy chỉnh và tổ hợp chúng

để đạt được giao diện mong muốn

● Kích thước nhỏ: So với Bootstrap, Tailwind CSS có kích thước nhỏ hơn nhiều do

nó chỉ tạo ra các lớp CSS cần thiết, giảm thiểu lượng mã không sử dụng

● Khả năng tương tác tốt: Tailwind không tích hợp sẵn các thành phần JavaScript,

điều này giúp tránh được việc thừa mãn khi chỉ sử dụng một số thành phần cụ thể

● Khả năng linh hoạt cao: Tailwind không giữ chặt các quy tắc thiết kế cụ thể, giúp

bạn có được sự linh hoạt cao trong việc thiết kế theo ý muốn của mình

Nhược điểm:

● Học ngưỡng ban đầu cao: Tailwind có một số lớp CSS và thuộc tính, điều này có

thể làm tăng độ khó khi học và sử dụng nếu bạn không quen với cách tiếp cận này

● Giao diện không được thiết kế sẵn: So với Bootstrap, Tailwind không cung cấp

các thành phần giao diện đã được thiết kế sẵn như nút, biểu đồ, v.v Điều này có

Trang 17

thể đòi hỏi người phát triển phải xây dựng từ đầu hoặc sử dụng thư viện khác đểđạt được giao diện mong muốn.

● Tùy chỉnh có thể tốn thêm công sức: Mặc dù Tailwind rất linh hoạt, nhưng để

tạo ra một giao diện hoàn toàn độc đáo và phù hợp với thương hiệu, bạn có thể cần phải tùy chỉnh nhiều hơn so với việc sử dụng Bootstrap

2.6 OpenAI - Chat GPT

OpenAI là một tổ chức nghiên cứu khoa học máy tính, được thành lập năm 2015 bởi Elon Musk, Sam Altman, Greg Brockman, Ilya Sutskever, Wojciech Zaremba và John Schulman Nhiệm vụ chính của OpenAI là nghiên cứu và phát triển công nghệ trí tuệ nhân tạo để giải quyết các vấn đề khoa học và xã hội, và hỗ trợ cho việc sử dụng trí tuệ nhân tạo cho tốt nhất ChatGPT là một trong nhiều dự án đang được phát triển bởi OpenAI

CƠ CHẾ HOẠT ĐỘNG CỦA CHATGPT

ChatGPT hoạt động theo cơ chế Transformer, là một mô hình deep learning cho phép tự động học từ dữ liệu và sử dụng kiến thức đã học để trả lời câu hỏi hoặc hoàn thành các tác vụ.Trong sự hoạt động của nó, ChatGPT nhận một đầu vào (ví dụ, câu hỏi) và sử dụng mạng neural để tìm kiếm trong bộ dữ liệu của nó để tìm câu trả lời phù hợp Mô hình sử dụng một tập dữ liệu lớn được gọi là corpus để học cách tương tác với ngôn ngữ

Sau khi nhận đầu vào, mô hình sẽ sử dụng các layer của mình để xử lý và chuyển đổi dữ liệu vào một dạng mà nó có thể sử dụng để tìm kiếm trong bộ dữ liệu của nó Sau đó, mô hình sẽ

Trang 18

tìm kiếm trong corpus để tìm một câu trả lời phù hợp và trả lời cho người dùng.

Trong tổng thể ChatGPT là gì? Câu trả lời là: ChatGPT là một mô hình nhận dạng ngôn ngữ tự động được xây dựng để trả lời câu hỏi và hoàn thành các tác vụ liên quan đến ngôn ngữ

Ưu điểm:

● Trả lời nhanh chóng và khá chính xác: ChatGPT sử dụng mạng neural

Transformer để học và trả lời câu hỏi Do đó, các câu trả lời của nó luôn chính xác và đáp ứng nhanh yêu cầu của người dùng

● Hiểu biết sâu sắc về nhiều lĩnh vực: ChatGPT được huấn luyện trên một lượng

dữ liệu lớn về nhiều lĩnh vực khác nhau, chẳng hạn như tài chính, khoa học, lịch

sử, văn hóa và nhiều hơn nữa Nó có thể trả lời câu hỏi về bất kỳ lĩnh vực nào

mà người dùng muốn

● Tương tác tự nhiên: ChatGPT có thể tương tác với người dùng một cách tự

nhiên, giống như một người bạn thật Điều này giúp cho người dùng cảm thấy

dễ chịu và dễ dàng trò chuyện với ChatGPT

● Mở rộng kiến thức: Vì ChatGPT được huấn luyện trên nhiều nguồn dữ liệu, nó

có thể giúp người dùng mở rộng kiến thức của mình trên nhiều lĩnh vực khác nhau

Nhược điểm:

● Độ chính xác thông tin: ChatGPT được huấn luyện trên một lượng lớn dữ liệu,

nhưng có thể còn bị sai sót hoặc cập nhật thông tin sai lệch

● Giới hạn chủ đề: Mặc dù ChatGPT có thể trả lời rất nhiều câu hỏi trên nhiều chủ

đề khác nhau, nhưng vẫn còn giới hạn trong một số chủ đề đòi hỏi sự tự nhiên

và sáng tạo

● Trách nhiệm: ChatGPT không có trách nhiệm với các thông tin mà nó trả lời và

người dùng cần kiểm tra chính xác thông tin trước khi sử dụng

● Tính mạng máy: ChatGPT chỉ hoạt động khi có kết nối internet và có thể bị gián

đoạn hoặc chậm trễ do sự cố mạng

● ChatGPT không cung cấp dịch vụ tại Việt Nam.

2.7 Cơ sở lý thuyết thuật toán

- Thuật toán mạng nơ ron:

1 Xác định Kiến Trúc Mạng Nơ-ron:

- Mô Hình Kiến Trúc: Chọn kiến trúc mạng nơ-ron phù hợp với vấn đề cụ thể Các lựa chọn phổ biến bao gồm mạng nơ-ron tiếp tục (feedforward), mạng nơ-ron hồi quy (recurrent), và mạng nơ-ron sâu (deep neural network)

2 Xác định Dữ Liệu Huấn Luyện:

- Thu Thập Dữ Liệu: Chuẩn bị dữ liệu huấn luyện, bao gồm cả đầu vào (ví dụ: hình

Trang 19

ảnh, văn bản) và đầu ra mong đợi (nhãn, nhãn dự đoán).

7 Chọn Thuật Toán Tối Ưu Hóa:

- Thuật Toán Tối Ưu Hóa: Chọn thuật toán tối ưu hóa để điều chỉnh trọng số của

mô hình dựa trên độ dốc của hàm mất mát

8 Quá Trình Học (Forward và Backward Propagation):

- Forward Propagation: Đưa dữ liệu qua mạng nơ-ron để tạo dự đoán

- Backward Propagation: Tính toán độ dốc của hàm mất mát và cập nhật trọng số ngược lại dựa trên độ dốc

9 Đào Tạo Mô Hình:

- Lặp: Lặp lại quá trình forward và backward propagation trên tập dữ liệu huấn luyện để điều chỉnh trọng số và giảm giá trị hàm mất mát

10 Kiểm Tra và Đánh Giá:

- Kiểm Tra Mô Hình: Sử dụng tập dữ liệu kiểm tra để đánh giá hiệu suất của mô hình

11 Fine-Tuning và Tinh chỉnh:

- Fine-Tuning: Tùy chỉnh mô hình dựa trên kết quả đánh giá, có thể bao gồm việc tinh chỉnh siêu tham số

12 Triển Khai Mô Hình:

- Triển Khai: Áp dụng mô hình đã đào tạo vào các ứng dụng thực tế

Trang 20

CHƯƠNG 3 THIẾT KẾ HỆ THỐNG3.1 Sơ đồ use-case

3.2 Danh sách use-case

Trang 21

1 Log In Dùng tài khoản đã đăng ký để đăng nhập

vào trang web với thông tin tương ứng

2 Register Cho phép người dùng đăng ký một tài

khoản để truy cập vào ứng dụng

3 Log Out Đăng xuất ra khỏi phiên hoạt động hiện tại

4 Profile Người dùng có thể xem thông tin profile

của mình trong trang web

5 Manage Meal Người dùng quản lý các bữa ăn của mình

thông qua việc cập nhật các bữa ăn để dễdàng quản lý

6 Food Detection Người dùng có thể đăng ảnh bữa ăn của

mình để có thể phân tích lượng dinh dưỡng

và calories của món ăn

7 Nutrition Chat Room Phòng chat giúp người dùng chat với

chuyên gia dinh dưỡng của open AI

8 Exercise Chat Room Phòng chat giúp người dùng chat với

chuyên gia fitness của open AI để tạo ra cácbài tập thể dục phù hợp

9 Random Meal Hệ thống sẽ gợi ý cho người dùng một vài

món ăn nhất định và người dùng có thểxem chi tiết

10 Search Meal Người dùng có thể search các món ăn có

sẵn trong data của hệ thống

11 Search By Ingredient Người dùng có thể search các món ăn có

sẵn trong data của hệ thống theo nguyênliệu của món ăn

3.3 Đặc tả use-case

3.3.1 Use-case “Log In”

Trang 22

Tóm tắt Chức năng đăng nhập vào hệ thống

Điều kiện kích hoạt Người dùng nhấn chọn “Đăng nhập”

Điều kiện thực hiện

Trạng thái hệ thống sau

khi thực hiện use-case

Người dùng đăng nhập thành công vào hệ thống,được điều hướng đến màn hình “Random Meal”

Dòng sự kiện chính

1 Hệ thống hiển thị form đăng nhập

2 Người dùng nhập email và mật khẩu (cả 2 trườngnày đều bắt buộc nhập) và nhấn “Đăng nhập”

3 Hệ thống kiểm tra thông tin đăng nhập

Dòng sự kiện thay thế Không

Điều kiện kích hoạt Người dùng nhấn chọn “Register”

Điều kiện thực hiện

Trạng thái hệ thống sau Người dùng đăng ký thành công vào hệ thống, được

Trang 23

khi thực hiện use-case điều hướng đến màn hình “Log In”

Dòng sự kiện chính

1 Hệ thống hiển thị form đăng ký

2 Người dùng nhập các thông tin: tên, email, mậtkhẩu, xác thực mật khẩu, ngày tháng năm sinh, giớitính, vai trò sử dụng ứng dụng(các trường bắt buộc),

số điện thoại(trường không bắt buộc) và nhấn “Đăngký”

3 Hệ thống tạo mới tài khoản

Dòng sự kiện thay thế Không

3.3.3 Use-case “Log Out”

Tóm tắt Chức năng đăng xuất khỏi hệ thống

Điều kiện kích hoạt Người dùng nhấn chọn “Log Out”

Điều kiện thực hiện

use-case

Tài khoản đang được đăng nhập vào ứng dụngThiết bị được cung cấp đầy đủ yêu cầu khi sử dụngứng dụng

Trạng thái hệ thống sau

khi thực hiện use-case

Người dùng đăng xuất khỏi hệ thống và điều hướng vềtrang đăng nhập

Dòng sự kiện chính 1 Người dùng nhấn “Đăng xuất”

Trang 24

Dòng sự kiện thay thế Không

Dòng sự kiện ngoại lệ Không

3.3.4 Use-case “Profile”

Tóm tắt Chức năng cho phép người dùng xem thông tin profile

của mình

Điều kiện kích hoạt Người dùng nhấn chọn “Profile”

Điều kiện thực hiện

use-case

Tài khoản đang được đăng nhập vào ứng dụngPhiên hoạt động của tài khoản còn hoạt động

Trạng thái hệ thống sau

khi thực hiện use-case

Các thông tin về profile của người dùng sẽ được hiểnthị trong trang “Profile”

Dòng sự kiện chính

1 Người dùng vào trang “Profile”

2 Các thông tin về profile của người dùng sẽ đượchiển thị

Dòng sự kiện thay thế Không

Dòng sự kiện ngoại lệ Không

3.3.5 Use-case “Manage Meal”

Tóm tắt Chức năng cho phép người dùng quản lý thông tin bữa

ăn của mình

Điều kiện kích hoạt Người dùng ấn chọn “Manage Meal”

Trang 25

Điều kiện thực hiện

use-case

Tài khoản đang được đăng nhập vào ứng dụngPhiên hoạt động của tài khoản còn hoạt động

Trạng thái hệ thống sau

khi thực hiện use-case

Các thông tin về bữa ăn của người dùng sẽ được hiểnthị

Dòng sự kiện chính

1 Người dùng vào trang “Manage Meal”

2 Các thông tin về bữa ăn của người dùng sẽ đượchiển thị

Dòng sự kiện thay thế Không

Dòng sự kiện ngoại lệ Không

3.3.6 Use-case “Food Detection”

Tên chức năng Food Detection

Tóm tắt

Chức năng cho phép người dùng phân tích món ăn màmình đang ăn theo thành phần dinh dưỡng và lượngcalories của nó

Điều kiện kích hoạt Người dùng ấn chọn “Food Detection”

Điều kiện thực hiện

Trạng thái hệ thống sau

khi thực hiện use-case

Các chỉ số của món ăn được đưa vào hệ thống đượchiển thị đầy đủ và rõ ràng cùng với các món ăn kháctương tự cho người dùng có thể tham khảo

Dòng sự kiện chính

1 Người dùng vào trang “Food Detection”

2 Người dùng nhập ảnh món ăn vào input

3 Các thông tin dinh dưỡng của món ăn được hiển thịcùng với các món ăn tương tự

Dòng sự kiện thay thế Không

Dòng sự kiện ngoại lệ Không

Trang 26

3.3.7 Use-case “Nutrition Chat Room”

Tên chức năng Nutrition Chat Room

Tóm tắt Chức năng cho phép người dùng chat với chuyên gia

dinh dưỡng được phát triển bởi openAI

Điều kiện kích hoạt Người dùng ấn chọn “Nutrition Chat Room”

Điều kiện thực hiện

Trạng thái hệ thống sau

khi thực hiện use-case Các câu hỏi của người dùng sẽ được trả lời.

Dòng sự kiện chính

1 Người dùng vào trang “Nutrition Chat Room”

2 Người dùng nhập câu hỏi muốn hỏi và nhấn gửi

3 OpenAI trả lời lại câu hỏi của người dùng

Dòng sự kiện thay thế Không

Dòng sự kiện ngoại lệ Không

3.3.8 Use-case “Exercises Chat Room”

Tên chức năng Exercises Chat Room

Tóm tắt Chức năng cho phép người dùng chat với chuyên gia

fitness được phát triển bởi openAI

Điều kiện kích hoạt Người dùng ấn chọn “Exercises Chat Room”

Điều kiện thực hiện

Ngày đăng: 15/05/2024, 09:26

HÌNH ẢNH LIÊN QUAN

Hình 3. Cấu trúc Firebase - đồ án 2 xây dựng ứng dụng fastfood kết hợp tính năng gợi ý người dùng
Hình 3. Cấu trúc Firebase (Trang 14)

TÀI LIỆU CÙNG NGƯỜI DÙNG

TÀI LIỆU LIÊN QUAN

w