Báo cáo Đồ án 2: Xây dựng ứng dụng chia sẻ thực phẩm - ĐH CNTT

Tham khảo báo cáo đồ án 2 xây dựng ứng dụng chia sẻ thực phẩm. Tài liệu chi tiết về phân tích, thiết kế hệ thống, giao diện và cơ sở dữ liệu.

2025

88
1
0

Phí lưu trữ

30 Point

Tóm tắt

I. Tổng Quan Về Đồ Án App Chia Sẻ Thực Phẩm

Đồ án app chia sẻ thực phẩm là một dự án phần mềm được thực hiện tại Trường Đại Học Công Nghệ Thông Tin, Đại Học Quốc Gia TP. Hồ Chí Minh. Dự án này nhằm xây dựng một ứng dụng chia sẻ thực phẩm hiệu quả, kết nối các cá nhân và tổ chức trong việc chia sẻ thực phẩm thừa. Lý do chọn đề tài xuất phát từ nhu cầu giảm lãng phí thực phẩm và tạo cộng đồng hỗ trợ lẫn nhau. Mục tiêu chính của đề tài là xây dựng ứng dụng quản lý thực phẩm toàn diện với các tính năng quản lý, trao đổi và giao tiếp giữa người dùng. Nhóm thực hiện gồm hai sinh viên: Nguyễn Nguyên Khôi (21521010) và Trương Văn Hoàng Sơn (21520101), được hướng dẫn bởi giảng viên Lê Thanh Trọng.

1.1. Lý Do Chọn Đề Tài Và Mục Tiêu Dự Án

Lý do chọn đề tài này dựa trên tình trạng lãng phí thực phẩm ở các hộ gia đình và tổ chức. App chia sẻ thực phẩm giải quyết vấn đề này bằng cách tạo nền tảng kết nối giữa những người có thực phẩm thừa và những người cần. Mục tiêu của dự án là phát triển một ứng dụng quản lý đầy đủ tính năng, hỗ trợ đăng nhập, quản lý thực phẩm, nhắn tin, báo cáo người dùng và tổ chức các sự kiện chia sẻ.

1.2. Các Tính Năng Chính Của Sản Phẩm

Ứng dụng cung cấp các tính năng chính bao gồm: đăng nhập/đăng ký, quản lý thực phẩm (thêm, cập nhật, xóa), nhận thực phẩm, nhắn tin giữa người dùng, xin ủng hộ thực phẩm, báo cáo vi phạm, quản lý người dùng cho admin, và tổ chức sự kiện. Ngoài ra, hệ thống cho phép người dùng chỉnh sửa thông tin cá nhân, xem lịch sử trao đổi, và tham gia các khảo sát.

II. Kiến Trúc Hệ Thống Và Công Nghệ Sử Dụng

Kiến trúc hệ thống của app chia sẻ thực phẩm được thiết kế theo mô hình client-server hiện đại. Backend được xây dựng với các công nghệ phù hợp để xử lý logic ứng dụng, quản lý cơ sở dữ liệu và các yêu cầu từ người dùng. Frontend được tối ưu hóa để cung cấp giao diện người dùng thân thiện, dễ sử dụng trên các thiết bị khác nhau. Công nghệ sử dụng bao gồm các framework, thư viện phổ biến trong ngành công nghệ thông tin, đảm bảo hiệu năng cao, bảo mật tốt và khả năng mở rộng. Cơ sở dữ liệu được thiết kế tối ưu để lưu trữ thông tin người dùng, thực phẩm, tin nhắn và các dữ liệu khác.

2.1. Kiến Trúc Back End Và Database

Hệ thống backend chịu trách nhiệm xử lý tất cả logic ứng dụng, quản lý cơ sở dữ liệu và cung cấp API cho frontend. Thiết kế cơ sở dữ liệu bao gồm các bảng: users (người dùng), foods (thực phẩm), messages (tin nhắn), reports (báo cáo), events (sự kiện) và các bảng liên quan khác. Mỗi bảng được tối ưu hóa với các chỉ số và ràng buộc dữ liệu để đảm bảo tính toàn vẹn.

2.2. Kiến Trúc Front End Và Giao Diện Người Dùng

Frontend của ứng dụng chia sẻ được phát triển với các công nghệ tạo giao diện hiện đại, responsive và tối ưu trên di động. Giao diện người dùng bao gồm các màn hình: đăng nhập, trang chính, chi tiết thực phẩm, tạo bài chia sẻ, nhắn tin, thông tin cá nhân, báo cáo và quản lý. Mỗi màn hình được thiết kế với tính thân thiện, giúp người dùng dễ dàng thao tác.

III. Phân Tích Thiết Kế Hệ Thống Và Use Case

Phân tích thiết kế hệ thống bắt đầu từ việc xác định các use case tổng quát của ứng dụng. Use case diagram thể hiện tương tác giữa các actor (người dùng, admin, tổ chức) và các chức năng của hệ thống. Các use case chính bao gồm: đăng nhập/đăng ký, quản lý thực phẩm, nhắn tin, báo cáo người dùng, xử lý người dùng của admin, quản lý sự kiện và tạo khảo sát. Mỗi use case được mô tả chi tiết thông qua sơ đồ tuần tự, cho biết cách các thành phần hệ thống tương tác để hoàn thành một chức năng cụ thể.

3.1. Use Case Đăng Nhập Đăng Ký Và Quản Lý Tài Khoản

Use case đăng nhập cho phép người dùng xác thực danh tính thông qua tên đăng nhập và mật khẩu. Use case đăng ký cho phép tạo tài khoản mới với thông tin cá nhân. Chỉnh sửa thông tin cá nhân cho phép người dùng cập nhật hồ sơ, ảnh đại diện và các thông tin liên lạc. Các use case này đảm bảo bảo mật tài khoản và quản lý thông tin người dùng hiệu quả.

3.2. Use Case Quản Lý Thực Phẩm Và Trao Đổi

Use case quản lý thực phẩm bao gồm thêm, cập nhật và xóa bài đăng chia sẻ thực phẩm. Use case nhận thực phẩm cho phép người dùng đồng ý nhận thực phẩm từ người khác. Use case xin ủng hộ cho phép gửi yêu cầu hỗ trợ thực phẩm. Use case nhắn tin hỗ trợ giao tiếp trực tiếp giữa người dùng để thương lượng chi tiết về trao đổi.

IV. Kết Quả Thực Nghiệm Và Hướng Phát Triển

Kết quả thực nghiệm của đồ án app chia sẻ thực phẩm cho thấy ứng dụng hoạt động ổn định với đầy đủ các tính năng đã thiết kế. Hệ thống successfully xử lý các yêu cầu từ người dùng, quản lý cơ sở dữ liệu hiệu quả và cung cấp giao diện trực quan. Các bài kiểm tra cho thấy ứng dụng quản lý thực phẩm, tin nhắn và báo cáo hoạt động tốt. Tuy nhiên, dự án vẫn có những nhược điểm cần cải thiện như hiệu năng khi lượng người dùng lớn, tính năng thông báo real-time chưa hoàn thiện. Hướng phát triển bao gồm thêm tính năng AI để gợi ý thực phẩm, tích hợp thanh toán điện tử, hỗ trợ đa ngôn ngữ và phát triển ứng dụng desktop.

4.1. Kết Quả Đạt Được Và Nhược Điểm

Kết quả đạt được bao gồm giao diện hoàn chỉnh, hệ thống đăng nhập bảo mật, quản lý thực phẩm toàn diện, tính năng nhắn tin và báo cáo người dùng. Hệ thống được kiểm thử trên các trường hợp sử dụng khác nhau. Nhược điểm gồm: thông báo real-time chưa hoàn thiện, hiệu năng cần tối ưu cho lượng dữ liệu lớn, và một số tính năng phụ chưa được phát triển đầy đủ.

4.2. Hướng Phát Triển Trong Tương Lai

Hướng phát triển của ứng dụng bao gồm: thêm AI để gợi ý thực phẩm phù hợp, tích hợp thanh toán điện tử cho các dịch vụ nâng cao, hỗ trợ đa ngôn ngữ cho người dùng quốc tế, phát triển ứng dụng desktop, cải thiện hệ thống thông báo push, thêm tính năng đánh giá và xếp hạng người dùng, và tích hợp GPS cho định vị địa chỉ chia sẻ thực phẩm.

28/12/2025

Trích đoạn nội dung tài liệu

CHƯƠNG 1. TỔNG QUAN ĐỀ TÀI 1. Lý do chọn đề tài Hiện nay, vấn đề lãng phí thực phẩm trở thành một thách thức nghiêm trọng đối với xã hội. Mỗi năm, hàng triệu tấn thực phẩm được vứt bỏ, trong khi có hàng tỷ người trên thế giới vẫn phải đối mặt với đói nghèo.

Trong bối cảnh này, việc tìm ra giải pháp hiệu quả để giảm thiểu lãng phí thực phẩm và hỗ trợ những người có nhu cầu trở nên cấp bách hơn bao giờ hết. Chính vì lẽ đó, việc xây dựng một ứng dụng chia sẻ thực phẩm trở thành một sáng kiến mang tính nhân văn và giải quyết một vấn đề cấp bách. Không chỉ giúp kết nối những người có thực phẩm dư thừa với những người cần, mà ứng dụng này còn mang lại nhiều lợi ích khác như tiết kiệm tài chính, xây dựng cộng đồng, và giảm thiểu tác động tiêu cực lên môi trường. Tổng hợp lại, việc phát triển một ứng dụng chia sẻ thực phẩm không chỉ đơn giản là một dự án công nghệ mà còn là một cách hiệu quả để chung tay giải quyết một trong những vấn đề nghiêm trọng của xã hội hiện nay.

Mục tiêu của đề tài Mục tiêu đề tài: "Xây dựng một ứng dụng mạng xã hội chia sẻ thực phẩm” nhằm giảm lãng phí thực phẩm và tạo cơ hội giao lưu, kết nối giữa cộng đồng với các tính năng như sau: ● Giao diện dễ sử dụng: Tạo ra một giao diện thân thiện và dễ dàng cho người dùng, giúp họ dễ dàng tìm kiếm, đăng bài chia sẻ thực phẩm và tương tác với cộng đồng. ● Hệ thống định vị: Sử dụng công nghệ định vị để người dùng có thể tìm kiếm các món ăn gần họ nhất và dễ dàng tìm kiếm các nguồn thực phẩm chia sẻ. ● Quản lý thông tin: Xây dựng một hệ thống quản lý thông tin đáng tin cậy về thực phẩm được chia sẻ, bao gồm ngày sản xuất, hạn sử dụng và các thông tin liên quan khác. ● Bảo mật thông tin: Đảm bảo an toàn thông tin cá nhân của người dùng và thông tin về thực phẩm được chia sẻ thông qua các biện pháp bảo mật hiện đại.

● Phát triển cộng đồng: Xây dựng một cộng đồng sôi nổi, tương tác và chia sẻ thông tin, kinh nghiệm về việc giảm lãng phí thực phẩm và thúc đẩy nhận thức về vấn đề này trong xã hội. 5 Mục tiêu của dự án là tạo ra một nền tảng mạng xã hội thú vị và hữu ích, kết nối các cá nhân, tổ chức và doanh nghiệp để cùng nhau chia sẻ, giảm thiểu lãng phí thực phẩm và xây dựng một cộng đồng nhân văn và bền vững. Mô tả đề tài 1. Mô tả chung Ứng dụng chia sẻ thực phẩm được thiết kế nhằm giải quyết vấn đề lãng phí thực phẩm và hỗ trợ những người có nhu cầu.

Trong xã hội hiện nay, lượng thực phẩm bị lãng phí hàng năm là rất lớn, trong khi nhiều người vẫn phải đối mặt với tình trạng thiếu thốn thực phẩm. Do đó, việc xây dựng một ứng dụng kết nối giữa những người có thực phẩm dư thừa và những người cần đến chúng trở nên vô cùng cần thiết. Ứng dụng chia sẻ thực phẩm này cho phép người dùng đăng ký và đăng nhập dễ dàng. Người dùng có thể tạo và quản lý hồ sơ cá nhân, bao gồm thông tin cá nhân và các bài đăng chia sẻ thực phẩm.

Hệ thống tìm kiếm và lọc thực phẩm giúp người dùng nhanh chóng tìm thấy các loại thực phẩm cần thiết gần họ nhất. Người dùng có thể đăng tin về các thực phẩm muốn chia sẻ và nhận thông báo khi có người quan tâm. Một trong những tính năng nổi bật của ứng dụng là hệ thống định vị, giúp người dùng dễ dàng tìm thấy các nguồn thực phẩm gần họ. Ứng dụng còn tích hợp chức năng nhắn tin, giúp người dùng có thể trao đổi thông tin trực tiếp với nhau, từ đó nâng cao tính tương tác và xây dựng mối quan hệ trong cộng đồng.

Ngoài ra, ứng dụng cũng chú trọng đến việc bảo mật thông tin cá nhân của người dùng thông qua các biện pháp bảo mật hiện đại. Hệ thống quản lý thông tin đáng tin cậy về thực phẩm, bao gồm ngày sản xuất, hạn sử dụng và các thông tin liên quan khác, giúp người dùng yên tâm hơn khi sử dụng thực phẩm được chia sẻ. Ứng dụng này không chỉ mang lại lợi ích thiết thực trong việc giảm thiểu lãng phí thực phẩm mà còn góp phần xây dựng một cộng đồng đoàn kết và bền vững. Thông qua việc chia sẻ và giúp đỡ lẫn nhau, người dùng sẽ nhận thức rõ hơn về vấn đề lãng phí thực phẩm và cùng nhau tìm cách giảm thiểu vấn đề này, hướng tới một xã hội phát triển bền vững và nhân văn.

Các tính năng chính của sản phẩm - Hệ thống đăng kí và đăng nhập - Tạo và quản lý hồ sơ người dùng - Tìm kiếm và lọc thực phẩm - Đăng tin, thông báo chia sẻ thực phẩm - Thông báo và nhắn tin - Tìm kiếm và hiển thị vị trí - Báo cáo người dùng 1. Bảng so sánh chức năng của các ứng dụng hiện có Bảng 1. Bảng so sánh chức năng của các ứng dụng hiện có Phần mềm Chức năng FoodSharing Olio ShareMeal của nhóm Xác minh người X X X dùng Quản lý thông tin X X X X người dùng Quản lý bài đăng X X X X thực phẩm Tìm kiếm, lọc thực X X X X phẩm Nhắn tin X X X X Báo cáo người X dùng Xin ủng hộ thực X X phẩm 7 1. Công nghệ sử dụng - Ngôn ngữ, framework chính: React Native, Spring Boot, - Phân tích thiết kế hệ thống: Drawio - Quản lý tài liệu: Drive - Quản lý source code: Github - Họp bàn: Goggle Meet - Cơ sở dữ liệu: MySQL 1.

Kiến trúc hệ thống ● Back-end: Hình 1. Kiến trúc hệ thống back-end ● Frontend: 8 Hình 2. Kiến trúc hệ thống front-end 9 10 CHƯƠNG 2. PHÂN TÍCH THIẾT KẾ HỆ THỐNG 3.

Usecase tổng quát Hình 4. Usecase tổng quát 11 3. Đặc tả Usecase 3. Usecase đăng ký Bảng 10.

Đặc tả use case đăng ký Use case name Register Actor(s) Người dùng Summary Description Mô tả cách người dùng đăng ký tài khoản Priority Phải có Status Pre-Condition(s) ● Thiết bị đã được kết nối internet Post-Condition(s) ● Người dùng đăng ký tài khoản thành công ● Người dùng đăng nhập và sử dụng được dịch vụ Basic Paths 1. Người dùng truy cập vào ứng dụng 2. Người dùng nhập tài khoản, mật khẩu, nhập lại mật khẩu và nhấn nút “Register” 3. Hệ thống xác nhận thông tin đăng ký và cho phép người dùng tạo tài khoản mới Alternative Paths Exception Paths 3a.

Hệ thống xác nhận thông tin đăng ký không thành công và hiển thị thông báo USECASE DỪNG LẠI Business Rules 12 Non-Functional Requirements Hình 5. Sơ đồ hoạt động usecase đăng nhập 3. Usecase đăng nhập Bảng 11. Đặc tả use case đăng nhập Use case name Login Actor(s) Người dùng Summary Description Mô tả cách người dùng đăng nhập vào hệ thống Priority Phải có Status Pre-Condition(s) ● Thiết bị đã được kết nối internet 13 Post-Condition(s) ● Người dùng đăng nhập thành công vào hệ thống ● Nếu không đăng nhập thành công thì hệ thống vẫn giữ nguyên hiện trạng Basic Paths 1.

Người dùng truy cập vào ứng dụng 2. Người dùng nhập tài khoản, mật khẩu và nhấn nút “Login” 3. Hệ thống xác nhận thông tin đăng nhập và cho phép người dùng truy cập vào hệ thống Alternative Paths Exception Paths 3a. Hệ thống xác nhận thông tin đăng nhập không thành công và hiển thị thông báo USECASE DỪNG LẠI Business Rules Non-Functional Requirements 14 Hình 6.

Sơ đồ hoạt động usecase đăng ký 3. Usecase quản lý thực phẩm Bảng 12. Đặc tả use case quản lý thực phẩm Use case name Quản lý thực phẩm Description Người dùng có thể quản lý thông tin bài đăng thực phẩm của mình trên hệ thống. Bao gồm chia sẻ, chỉnh sửa, xóa.

Actor Người dùng Priority Phải có Pre-Condition(s) Người dùng đã đăng nhập vào tài khoản của mình. Post-Condition(s) Nếu thàng công, thông tin bài đăng được chia sẻ, xóa 15 hoặc chỉnh sửa. Hệ thống yêu cầu người dùng xác định chức năng mà họ mong muốn. Khi người dùng cung cấp yêu cầu, 1 trong các luồng con được thực thi: 2.

Chia sẻ thực phẩm 1. Người dùng nhập các thông tin bao gồm: tiêu đề, mô tả, địa chỉ, thời gian… 2. Bài đăng được lưu vào hệ thống. Chỉnh sửa thông tin bài đăng thực phẩm 1.

Người dùng chọn bài bài đăng cần chỉnh sửa. Hệ thống hiển thị thông tin chi tiết của bài đăng. Người dùng thực hiện chỉnh sửa thông tin. Hệ thống cập nhập thông tin đã chỉnh sửa.

Xóa thông tin bài đăng 1. Người dùng chọn bài đăng cần xóa. Hệ thống thông báo người dùng xác định xóa bài đăng. Người dùng xác nhận xóa.

Hệ thống xóa thông tin bài đăng. Nếu người dùng chọn hủy xóa, kết thúc quá trình. Exception Flow Lỗi kết nối cơ sở dữ liệu. Business Rule Thực phẩm chia sẻ phải đảm bảo an toàn vệ sinh thực phẩm và không vi phạm quy định pháp luật.

Non-Functional Requirement 17 Hình 7. Sơ đồ hoạt động usecase quản lý thực phẩm 18 3. Usecase chỉnh sửa thông tin cá nhân Bảng 13. Đặc tả use case chỉnh sửa thông tin cá nhân Use case name Chỉnh sửa thông tin cá nhân Description Người dùng có thể chỉnh sửa thông tin cá nhân.

Actor Người dùng Priority Phải có Pre-Condition(s) Người dùng đã đăng nhập vào tài khoản của mình. Post-Condition(s) Nếu thàng công, thông tin cá nhân của người dùng được cập nhật. Người dùng truy cập vào hồ sơ cá nhân. Chọn chỉnh sửa thông tin cá nhân.

Hệ thống hiển thị thông tin. Người dùng cập nhật thông tin mong muốn như họ tên, địa chỉ, avatar, … 5. Hệ thống xác thực dữ liệu, cập nhật hồ sơ cá nhân. Alternative Flow Nếu xác thực thông tin không hợp lệ, người dùng nhận được thông báo và quay trở lại cập nhật lại thông tin không hợp lệ.

Exception Flow Dữ liệu thống kê không chính xác do lỗi trong quá trình tính toán hoặc lưu trữ. Business Rule 19 Non-Functional Requirement Hình 8. Sơ đồ hoạt động usecase chỉnh sửa thông tin cá nhân 3. Usecase nhận thực phẩm Bảng 14.

Đặc tả use case nhận thực phẩm Use case name Nhận thực phẩm Description Người dùng có thể nhận thực phẩm từ các bài đăng chia sẻ thực phẩm. Actor Người dùng 20 Priority Phải có Pre-Condition(s) Người dùng đã đăng nhập vào tài khoản của mình. Các bài chia sẻ thực phẩm có sẵn trong hệ thống. Post-Condition(s) Người dùng đã nhận được thực phẩm từ các bài chia sẻ.

Người dùng truy cập vào mục "Danh sách bài chia sẻ thực phẩm". Hệ thống hiển thị danh sách các bài chia sẻ thực phẩm có sẵn.

Nội dung được bảo vệ bản quyền — Tải xuống đầy đủ