Tải bản đầy đủ (.docx) (52 trang)

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

Bạn đang xem bản rút gọn của tài liệu. Xem và tải ngay bản đầy đủ của tài liệu tại đây (2.05 MB, 52 trang )

<span class="text_page_counter">Trang 1</span><div class="page_container" data-page="1">

<b>TRƯỜNG ĐẠI HỌC CÔNG NGHỆ THÔNG TINKHOA CÔNG NGHỆ PHẦN MỀM</b>

</div><span class="text_page_counter">Trang 2</span><div class="page_container" data-page="2">

<b>TP. HỒ CHÍ MINH, THÁNG 12 NĂM 2023</b>

</div><span class="text_page_counter">Trang 3</span><div class="page_container" data-page="3">

<b>LỜI CẢM ƠN</b>

<b>Lời đầu tiên, chúng em xin cảm ơn ThS. Nguyễn Thị Thanh Trúc đã tạo </b>

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

<b>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 hồn</b>

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 đã hồ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 hồ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ậpvà cuộc sống. Mong rằng, chúng ta sẽ mãi mãi gắn bó với nhau.

Trong q 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 q thầy cơ để hồ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 ln 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.

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

</div><span class="text_page_counter">Trang 6</span><div class="page_container" data-page="6">

3.3.7 Use-case “Nutrition Chat Room” 30

</div><span class="text_page_counter">Trang 7</span><div class="page_container" data-page="7">

<b>CHƯƠNG 1: GIỚI THIỆU CHUNG</b>

<b>1.1 Tổng quan đề tài</b>

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

<b>1.2 Lý do chọn đề tài</b>

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.

</div><span class="text_page_counter">Trang 8</span><div class="page_container" data-page="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

<b>1.5 Cơng cụ áp dụng</b>

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

<b>1.6 Nền tảng công nghệ</b>

● Back-end:○ NodeJS○ MongoDB○ Google api○ OpenAI api

</div><span class="text_page_counter">Trang 9</span><div class="page_container" data-page="9">

○ Food api○ Recipe api○ Exercise api○ Nutritions api● Front-end

○ VueJS○ TypeScripts○ Bootstrap

<b>CHƯƠNG 2. CƠ SỞ LÝ THUYẾT VÀ CÔNG NGHỆ</b>

<b>2.1 VueJS</b>

VueJS là một loại framework linh động được tạo bởi Javascript, hoạt động theo mơ hìnhMVVM và hỗ trợ phát triển ứng dụng theo trình tự từng bước một.

VueJS mạnh về View, nó cung cấp thư viện lõi để hỗ trợ các nhà phát triển xây dựng viewlayer.

</div><span class="text_page_counter">Trang 10</span><div class="page_container" data-page="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 Applicationcó độ 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.

<b>Ưu điểm:</b>

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

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.

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

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

<b>● Đơ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ự</b>

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

</div><span class="text_page_counter">Trang 11</span><div class="page_container" data-page="11">

<b>2.2 Typescript</b>

TypeScript là gì? – Là một ngôn ngữ được Microsoft tặng free cho chúng ta, nền tảng của TypeScript ít nhiều cũng có sự liên quan đến JavaScript vì nó là một ngơn ngữ mã nguồn mở của JavaScript. Vai trò của TypeScript là dùng để thiết kế và xây dựng các dự án ứng dụng quy mơ lớn mang tính chất phức tạp.

Khác với sự đơn giản của JavaScript, du TypeScript cũng đồng thời kế thừa nhiều định nghĩa, khái niệm của đa dạng các ngơn ngữ C#, Java,… nhưng TypeScript lại có u cầu cao về trật tự rõ ràng.

TypeScript được xem là một phiên bản nâng cao hơn của JavaScript vì nó được thiết kế thêm nhiều chức năng tiện lợi hơn, cải tiến hơn từ những điểm yếu của JavaScript như các lớp hướng đối tượng và Static Structural typing, bên cạnh đó TypeScript cịn có thể hoạt động rộng rãi cho các ứng dụng của ngôn ngữ Angular2 và Nodej<small>s.</small>

</div><span class="text_page_counter">Trang 12</span><div class="page_container" data-page="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ấphệ 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.

</div><span class="text_page_counter">Trang 13</span><div class="page_container" data-page="13">

và dễ dàng hơn rất nhiều. Ngồ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.

<b> Ưu điểm:</b>

● 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 …

<b>Nhược điểm:</b>

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

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.

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

dụng I/O-bound, nhưng nó khơng thích hợp cho các ứng dụng CPU-bound (cầnxử lý tính tốn nặng).

<b>● 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</b>

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.

<b>2.3. Hệ quản trị cơ sở dữ liệu Firebase2.1 Firebase là gì?</b>

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.

<b>2.2 Firestore database</b>

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.

<b>○</b>

<b>Firebase Authentication</b>

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

</div><span class="text_page_counter">Trang 14</span><div class="page_container" data-page="14">

thơng qua Email, Facebook, Twitter, GitHub hay Google. Ngồ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.

<i>Hình 3. Cấu trúc Firebase</i>

<b>○</b>

<b>Ưu điểm của Firebase</b>

-

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

</div><span class="text_page_counter">Trang 15</span><div class="page_container" data-page="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 xun, giúp đảm bảo tính sẵn có và bảo mật thông tincho dữ liệu

<b>○</b>

<b>Nhược điểm của Firebase</b>

-

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

-

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

-

<sub>Lập trình viên khơng được truy cập vào mã nguồn</sub>

-

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

</div><span class="text_page_counter">Trang 16</span><div class="page_container" data-page="16">

<b>2.5 Bootsrap</b>

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.

<b>Ưu điểm:</b>

<b>● 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 </b>

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.

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

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.

<b>● 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, </b>

đ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ể.

<b>● 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>

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

<b>Nhược điểm:</b>

<b>● 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ó </b>

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.

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

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ó

</div><span class="text_page_counter">Trang 17</span><div class="page_container" data-page="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.

<b>● 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 để </b>

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.

<b>2.6 OpenAI - Chat GPT</b>

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.

<b>CƠ CHẾ HOẠT ĐỘNG CỦA CHATGPT</b>

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ẽ

</div><span class="text_page_counter">Trang 18</span><div class="page_container" data-page="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ữ

<b>Ưu điểm:</b>

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

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

<b>● 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 </b>

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.

<b>● 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ự </b>

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.

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

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

<b>Nhược điểm:</b>

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

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

<b>● 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ủ </b>

đề 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.

<b>● 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à </b>

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

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

<b>2. Xác định Dữ Liệu Huấn Luyện:</b>

- 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

</div><span class="text_page_counter">Trang 19</span><div class="page_container" data-page="19">

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

<b>7. Chọn Thuật Tốn Tối Ưu Hóa:</b>

- Thuật Tốn Tối Ưu Hóa: Chọn thuật tố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.

<b>8. Quá Trình Học (Forward và Backward Propagation):</b>

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

- Backward Propagation: Tính tố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.

<b>9. Đào Tạo Mô Hình:</b>

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

<b>10. Kiểm Tra và Đánh Giá:</b>

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

<b>11. Fine-Tuning và Tinh chỉnh:</b>

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

<b>12. Triển Khai Mô Hình:</b>

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

</div><span class="text_page_counter">Trang 20</span><div class="page_container" data-page="20">

<b>CHƯƠNG 3. THIẾT KẾ HỆ THỐNG</b>

<b>3.1 Sơ đồ use-case</b>

<b>3.2 Danh sách use-case</b>

</div><span class="text_page_counter">Trang 21</span><div class="page_container" data-page="21">

1 Log In Dùng tài khoản đã đăng ký để đăng nhậpvà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àikhoả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ại4 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ìnhthơ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ủamình để có thể phân tích lượng dinh dưỡngvà calories của món ăn

7 Nutrition Chat Room Phịng chat giúp người dùng chat vớichuyên gia dinh dưỡng của open AI

8 Exercise Chat Room Phòng chat giúp người dùng chat vớichuyê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àimó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

<b>3.3 Đặc tả use-case</b>

<i><b>3.3.1 Use-case “Log In”</b></i>

</div><span class="text_page_counter">Trang 22</span><div class="page_container" data-page="22">

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

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

<b>Điều kiện thực hiện </b>

<b>Trạng thái hệ thống sau khi thực hiện use-case</b>

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”

<b>Dịng sự kiện chính</b>

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

<b>Dịng sự kiện thay thế</b> Khơng

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

<b>Điều kiện thực hiện </b>

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

</div><span class="text_page_counter">Trang 23</span><div class="page_container" data-page="23">

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

<b>Dịng sự kiện chính</b>

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

<b>Dòng sự kiện thay thế</b> Không

3a2. Người dùng nhập vào email khác, UC tiếp tục từbước 2.

<i><b>3.3.3 Use-case “Log Out”</b></i>

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

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

<b>Điều kiện thực hiện case</b>

use-Tài khoản đang được đăng nhập vào ứng dụng

Thiết bị được cung cấp đầy đủ yêu cầu khi sử dụngứng dụng

<b>Trạng thái hệ thống sau khi thực hiện use-case</b>

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

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

</div><span class="text_page_counter">Trang 24</span><div class="page_container" data-page="24">

<b>Dịng sự kiện thay thế</b> Khơng

<b>Dịng sự kiện ngoại lệ</b> Khơng

<i><b>3.3.4 Use-case “Profile”</b></i>

<b>Tóm tắt</b> <sup>Chức năng cho phép người dùng xem thơng tin profile</sup>

của mình

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

<b>Điều kiện thực hiện case</b>

use-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

<b>Trạng thái hệ thống sau khi thực hiện use-case</b>

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

<b>Dịng sự kiện chính</b>

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ị

<b>Dịng sự kiện thay thế</b> Khơng

<b>Dịng sự kiện ngoại lệ</b> Khơng

<i><b>3.3.5 Use-case “Manage Meal”</b></i>

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

ăn của mình

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

</div><span class="text_page_counter">Trang 25</span><div class="page_container" data-page="25">

<b>Điều kiện thực hiện case</b>

use-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

<b>Trạng thái hệ thống sau khi thực hiện use-case</b>

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

<b>Dịng sự kiện chính</b>

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ị

<b>Dòng sự kiện thay thế</b> Khơng

<b>Dịng sự kiện ngoại lệ</b> Khơng

<i><b>3.3.6 Use-case “Food Detection”</b></i>

<b>Tên chức năng</b> Food Detection

<b>Tóm tắt</b>

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ó

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

<b>Điều kiện thực hiện </b>

<b>Trạng thái hệ thống sau khi thực hiện use-case</b>

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

<b>Dịng sự kiện thay thế</b> Khơng

<b>Dịng sự kiện ngoại lệ</b> Khơng

</div><span class="text_page_counter">Trang 26</span><div class="page_container" data-page="26">

<i><b>3.3.7 Use-case “Nutrition Chat Room”</b></i>

<b>Tên chức năng</b> Nutrition Chat Room

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

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

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

<b>Điều kiện thực hiện </b>

<b>Dịng sự kiện thay thế</b> Khơng

<b>Dịng sự kiện ngoại lệ</b> Khơng

<i><b>3.3.8 Use-case “Exercises Chat Room”</b></i>

<b>Tên chức năng</b> Exercises Chat Room

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

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

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

<b>Điều kiện thực hiện </b>

</div>

×