1. Trang chủ
  2. » Giáo Dục - Đào Tạo

Đồ án ứng dụng kết nối cộng đồng thiện nguyện

57 22 0

Đ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 đề Ứng Dụng Kết Nối Cộng Đồng Thiện Nguyện
Tác giả Vũ Ngọc Thạch, Huỳnh Thị Minh Nhực
Người hướng dẫn Huỳnh Hồ Thị Mộng Trinh
Trường học Đại học Quốc gia TP. Hồ Chí Minh
Chuyên ngành Công nghệ thông tin
Thể loại Đồ án
Năm xuất bản 2021
Thành phố Thành phố Hồ Chí Minh
Định dạng
Số trang 57
Dung lượng 1,15 MB

Cấu trúc

  • CHƯƠNG I: GIỚI THIỆU CHUNG (8)
    • 1. Đề tài (8)
    • 2. Lý do chọn đề tài (8)
    • 3. Tóm tắt đề tài (8)
    • 4. Mục tiêu đề tài (9)
    • 5. Phương pháp nghiên cứu (9)
    • 6. Ý nghĩa và hướng của đề tài (9)
      • 6.1. Về mặt tài liệu (9)
      • 6.2. Về mặt sản phẩm (9)
  • CHƯƠNG II: CÔNG NGHỆ LIÊN QUAN (10)
    • 1. Flutter (10)
      • 1.1. Giới thiệu (10)
      • 1.2. Lý do sử dụng (10)
    • 2. Firebase (11)
      • 2.1. Giới thiệu (11)
      • 2.2. Lý do sử dụng Firebase (12)
  • CHƯƠNG III: MÔ HÌNH USE-CASE (13)
    • 1. Sơ đồ Use-case mức tổng quát (13)
    • 2. Danh sách Use-case (13)
    • 3. Đặc tả Use-case (14)
      • 3.1. Đặc tả Use-case “Create Account” (14)
      • 3.2. Đặc tả Use-case “Login” (15)
      • 3.3. Đặc tả Use-case “Follow User” (16)
      • 3.4. Đặc tả Use-case “Change Information Account” (17)
      • 3.5. Đặc tả Use-case “Create Event” (18)
      • 3.6. Đặc tả Use-case “Update Event” (19)
      • 3.7. Đặc tả Use-case “Delete Event” (20)
      • 3.8. Đặc tả Use-case “Create Post” (21)
      • 3.9. Đặc tả Use-case “Update Post” (22)
      • 3.10. Đặc tả Use-case “Delete Post” (23)
      • 3.11. Đặc tả Use-case “Comment Post” (23)
      • 3.12. Đặc tả Use-case “Like Post” (24)
      • 3.13. Đặc tả Use-case “Joint Event” (25)
      • 3.14. Đặc tả Use-case “Search” (26)
      • 3.15. Đặc tả Use-case “Search Tag” (26)
      • 3.16. Đặc tả Use-case “Search Location” (27)
  • CHƯƠNG IV: PHÂN TÍCH HỆ THỐNG (28)
    • 1. Sơ đồ lớp (28)
      • 1.1. Sơ đồ lớp mức phân tích (28)
      • 1.2. Danh sách các lớp đối tượng (28)
      • 1.3. Mô tả từng lớp đối tượng (29)
    • 2. Sơ đồ dữ liệu (33)
      • 2.1. Bảng USER (33)
      • 2.2. Bảng IMAGE (34)
      • 2.3. Bảng FOLLOW_USER (34)
      • 2.4. Bảng EVENT (35)
      • 2.5. Bảng FORM_REGISTER (36)
      • 2.6. Bảng STATUS_FORM_REGISTER (36)
      • 2.7. Bảng FOLLOW_EVENT (37)
      • 2.8. Bảng POST (37)
      • 2.9. Bảng TAG (38)
      • 2.10. Bảng LIKE_POST (38)
      • 2.11. Bảng POST_TAG (38)
      • 2.12. Bảng IMAGE_POST (39)
      • 2.13. Bảng COMMENT_POST (39)
  • CHƯƠNG V: THIẾT KẾ GIAO DIỆN (40)
    • 1. Màn hình giới thiệu (40)
    • 2. Màn hình đăng nhập (41)
    • 3. Màn hình chính (42)
    • 4. Màn hình Trang chủ (43)
    • 5. Màn hình chi tiết sự kiện (44)
    • 6. Màn hình Form đăng ký (45)
    • 7. Màn hình Tìm kiếm (46)
    • 8. Màn hình Lịch (47)
    • 9. Màn hình Tạo sự kiện (48)
    • 10. Màn hình Tạo bài viết (49)
    • 11. Màn hình Bạn bè (50)
    • 12. Màn hình Hồ sơ người dùng (51)
  • CHƯƠNG VI: TỔNG KẾT (53)
    • 1. Công nghệ sử dụng (53)
    • 2. Độ hoàn thiện chức năng (53)
    • 3. Kết quả đạt được và hướng phát triển (53)
      • 3.1. Kết quả đạt được (53)
      • 3.2. Hướng phát triển (54)
  • CHƯƠNG VII: BẢNG PHÂN CÔNG CÔNG VIỆC (55)
  • CHƯƠNG VIII: TÀI LIỆU THAM KHẢO (57)

Nội dung

GIỚI THIỆU CHUNG

Đề tài

- Tên đề tài: Xây dựng ứng dụng kết nối tình nguyện viên

- Công nghệ sử dụng: Flutter

- Cơ sở dữ liệu sử dụng: Firebase

Lý do chọn đề tài

Đại dịch Covid-19 đã ảnh hưởng nặng nề đến cuộc sống người dân, đặc biệt ở những tỉnh thực hiện giãn cách xã hội, khiến nhiều gia đình rơi vào hoàn cảnh khó khăn và cần sự hỗ trợ khẩn cấp Tuy nhiên, nhiều chiến dịch từ thiện lại thiếu truyền thông hiệu quả, dẫn đến việc ít người biết đến và tham gia đóng góp Những tình nguyện viên mong muốn hỗ trợ gặp khó khăn trong việc tìm kiếm thông tin cụ thể về các chương trình, cũng như sự thiếu minh bạch từ các tổ chức quyên góp Để giải quyết vấn đề này, nhóm đã phát triển ứng dụng “Thiện nguyện”, nhằm kết nối những tấm lòng hảo tâm với những người cần giúp đỡ, cung cấp thông tin đáng tin cậy và minh bạch, đồng thời tạo điều kiện cho các tình nguyện viên tham gia các chiến dịch hỗ trợ cộng đồng một cách hiệu quả.

Tóm tắt đề tài

Trong thời kỳ đại dịch hiện nay, nhiều hoạt động tình nguyện được tổ chức nhưng thông tin vẫn chưa được phổ biến rộng rãi Để giải quyết vấn đề này, cần có một ứng dụng kết nối mọi người, giúp tìm kiếm các nhóm tình nguyện trong khu vực cụ thể Ứng dụng sẽ cung cấp thông tin chi tiết về các hoạt động tình nguyện, giúp người tham gia dễ dàng theo dõi và tham gia, từ đó xây dựng một cộng đồng thiện nguyện mạnh mẽ hơn.

Mục tiêu đề tài

Xây dựng một ứng dụng Thiện nguyện với tính năng tạo và theo dõi chương trình tình nguyện, quản lý các bài đăng sự kiện, và theo dõi hoạt động của bạn bè Ứng dụng giúp người tham gia nhanh chóng tìm kiếm các chương trình tình nguyện hiện có, thời gian và địa điểm tổ chức, với thông tin rõ ràng và đáng tin cậy.

- Tìm hiểu được công nghệ thích hợp xây dựng ứng dụng

- Hoàn thành được báo cáo môn học.

Phương pháp nghiên cứu

- Nghiên cứu các ứng dụng có sẵn trên thị trường, nhận xét được ưu khuyết điểm của các ứng dụng đó

- Nghiên cứu các tài liệu đặc tả về các phần mềm tương tự như quản lý bán hàng, chat app,

- Tìm hiểu các công nghệ mới trên thị trường, nhận xét và chọn ra phần mềm thích hợp nhất.

Ý nghĩa và hướng của đề tài

- Sử dụng nguồn tài liệu tham khảo Flutter, Firebase

- Có tài liệu đặc tả use-case, sơ đồ lớp, tuần tự, mô hình thiết kế giao diện

- Tạo ra ứng dụng Thiện nguyện có khả năng kết nối trực tuyến

- Xử lý các vấn đề về hiệu suất của ứng dụng 1 cách hiệu quả

- Chức năng phù hợp với tình hình thực tế và dễ sử dụng.

CÔNG NGHỆ LIÊN QUAN

Flutter

Flutter là nền tảng phát triển ứng dụng đa nền tảng do Google phát triển, cho phép tạo ra các ứng dụng gốc cho cả iOS và Android.

Flutter gồm 2 thành phần quan trọng:

SDK (Bộ công cụ phát triển phần mềm) là tập hợp các công cụ hỗ trợ việc phát triển ứng dụng, bao gồm các công cụ biên dịch mã nguồn thành mã máy gốc cho các nền tảng iOS và Android.

A UI framework is a collection of reusable user interface components, such as buttons, text inputs, and sliders, that allows for customization based on individual needs.

Tính năng nổi bật của Flutter:

- Flutter hiện đã và đang là một react framework

- Sử dụng ngôn ngữ lập trình Dart đơn giản và dễ học

- Phát triển ứng dụng nhanh

- Giao diện người dùng rất đẹp và linh hoạt

- Hỗ trợ rất nhiều widget khác nhau

- Thể hiện cùng một UI trên nhiều nền tảng

- Ứng dụng có hiệu năng cao

Phát triển ứng dụng nhanh chóng với tính năng hot reload cho phép bạn dễ dàng thử nghiệm và xây dựng giao diện người dùng, cũng như thêm tính năng và sửa lỗi một cách hiệu quả Trải nghiệm tải lại tức thì, không mất trạng thái, trên emulator, simulator và thiết bị cho cả iOS và Android.

Giao diện người dùng hấp dẫn và trực quan: Đáp ứng nhu cầu của người dùng với các widget tích hợp đẹp mắt của Flutter theo tiêu chuẩn Material Design và Cupertino (phiên bản iOS), cùng với các API chuyển động phong phú, mang lại trải nghiệm cuộn tự nhiên và mượt mà, tự động nhận diện nền tảng.

Khám phá framework hiện đại của Flutter, cho phép bạn dễ dàng tạo giao diện người dùng với bộ công cụ phong phú gồm các platform, layout và widget Giải quyết mọi thách thức về giao diện người dùng với các API mạnh mẽ và linh hoạt, hỗ trợ 2D, animation, gesture, hiệu ứng và nhiều tính năng khác.

Firebase

Firebase là nền tảng phát triển ứng dụng di động và web, cung cấp các API mạnh mẽ mà không cần backend hay server Ra đời vào năm 2012 như một dịch vụ Backend-as-a-Service với tính năng thời gian thực, Firebase đã nhanh chóng phát triển sau khi được Google mua lại vào năm 2014 Hiện nay, nền tảng này kết hợp giữa cloud và hệ thống máy chủ của Google, phục vụ cho việc phát triển ứng dụng đa năng.

- Develop & test your app: phát triển và thử nghiệm các ứng dụng được thiết kế

- Grow & engage your audience: phân tích dữ liệu và tối ưu hóa trải nghiệm với người dùng

Tính năng nổi bật của Firebase:

- Tạo tài khoản và sử dụng dễ dàng

- Nhiều dịch vụ trong một nền tảng, có thể sử dụng cùng với 1 số phần mềm như

- Được cung cấp bởi Google, được nhiều người sử dụng, nhiều API tích hợp

- Tập trung vào phát triển giao diện người dùng

- Firebase không có máy chủ, không tốn tiền để mua

- Tạo lưu lượng truy cập

- Theo dõi lỗi, sao lưu

2.2 Lý do sử dụng Firebase

Có thể kể ra 1 số lợi ích khi sử dụng Firebase như sau:

- Firebase giúp các lập trình viên rút ngắn thời gian triển khai và mở rộng quy mô của ứng dụng mà họ đang phát triển

- Giúp người dùng lập trình ứng dụng bằng cách đơn giản hóa các thao tác với cơ sở dữ liệu

- Dịch vụ đa năng và bảo mật cực tốt

- Firebase hỗ trợ cả hai nền tảng Android và IOS

- Triển khai ứng dụng nhanh chóng

- Bảo mật và ổn định.

MÔ HÌNH USE-CASE

Danh sách Use-case

STT Tên Usecase Ý nghĩa / ghi chú

1 Create Account Tạo tài khoản cá nhân cho app

2 Login Đăng nhập vào ứng dụng

3 Follow User Theo dõi người dùng khác

4 Change Information Account Thay đổi thông tin tài khoản cá nhân

5 Create Event Tạo sự kiện gây quỹ

6 Update Event Cập nhật thông tin sự kiện

7 Delete Event Xóa sự kiện gây quỹ

8 Create Post Tạo bài đăng của sự kiện

9 Update Post Cập nhật thông tin bài đăng

10 Delete Post Xóa bài đăng

11 Comment Post Bình luận bài đăng

12 Like Post Tương tác thích bài đăng

13 Joint Event Tham gia sự kiện

14 Search Tìm kiếm sự kiện, bài đăng, người dùng

15 Search Tag Tìm kiếm theo Tag

16 Search Location Tìm kiếm về sự kiện theo địa chỉ

Đặc tả Use-case

3.1 Đặc tả Use-case “Create Account”

Mô tả Người dùng tạo tài khoản mới để sử dụng app

Hành vi của tác nhân Hành vi của hệ thống

1 - Người dùng mở ứng dụng lên

2 - Chọn vào nút Đăng ký tài khoản

3 - Điền đầy đủ thông tin cá nhân được yêu cầu

4 - Nhấn vào nút Đăng ký

5 - Phần mềm kiểm tra thông tin tài khoản

6 - Nếu thông tin hợp lệ, hiện thông báo tạo tài khoản thành công, tự động đăng nhập vào ứng dụng

Thông tin điền vào bị thiếu hoặc sai cú pháp:

1 - Phần mềm hiện thông báo lỗi thông tin

2 - Người dùng nhập lại thông tin bị sai hoặc thiếu

3 - Tiếp tục thực hiện bước 4 ở dòng sự kiện chính

Số điện thoại/email sử dụng đã được đăng ký:

1 - Phần mềm báo Tài khoản đã được đăng ký

2 - Người dùng nhập lại thông tin tài khoản khác

3 - Tiếp tục thực hiện bước 4 ở dòng sự kiện chính Điều kiện trước Điện thoại phải có kết nối mạng

Kết nối thành công với database Điều kiện sau

- Thông tin tài khoản khách hàng mới được lưu vào CSDL

- Lưu lại thông tin đăng nhập cho lần đăng nhập kế tiếp

3.2 Đặc tả Use-case “Login”

Mô tả Người dùng đăng nhập vào app

Hành vi của tác nhân Hành vi của hệ thống

1 - Người dùng mở ứng dụng lên

2 - Chọn cách thức đăng nhập (Đăng nhập tài khoản cũ, Đăng nhập tài khoản khác)

3 - Nếu hình thức đăng nhập là Tài khoản cũ, phần mềm kiểm tra thông tin về người dùng trong hệ thống

4 - Nếu thông tin hợp lệ, chuyển tiếp vào trang chủ của ứng dụng

Người dùng chọn hình thức đăng nhập tài khoản khác:

1 - Người dùng nhập thông tin về tài khoản và mật khẩu

2 - Nhấn vào nút Đăng nhập

3 - Phần mềm kiểm tra thông tin người dùng có trong hệ thống

4 - Tiếp tục bước 4 ở dòng sự kiện chính Thông tin đăng nhập không hợp lệ:

1 - Phần mềm hiện thông báo lỗi

2 - Người dùng đăng nhập lại bằng thông tin khác

3 - Tiếp tục thực hiện bước 3 ở dòng sự kiện phụ: đăng nhập bằng tài khoản Điều kiện trước Điện thoại phải có kết nối mạng

Kết nối thành công với database Điều kiện sau Không đổi

3.3 Đặc tả Use-case “Follow User”

Mô tả Người dùng muốn theo dõi thông tin của 1 người khác

Hành vi của tác nhân Hành vi của hệ thống

1 - Người dùng thực hiện Usecase đăng nhập vào hệ thống

2 - Người dùng mở trang cá nhân của người muốn theo dõi

3 - Bấm vào nút Theo dõi

4 - Hệ thống hiển thị thông báo đã theo dõi thành công

Luồng thay thế Không Điều kiện trước Điện thoại phải có kết nối mạng

Kết nối thành công với database Điều kiện sau Cập nhật thông tin về việc theo dõi người dùng lên CSDL

3.4 Đặc tả Use-case “Change Information Account”

Mô tả Người dùng muốn thay đổi thông tin cá nhân

Hành vi của tác nhân Hành vi của hệ thống

1 - Người dùng thực hiện Usecase Đăng nhập

2 - Người dùng mở tab Trang cá nhân lên

3 - Người dùng chọn nút Thay đổi thông tin

4 - Nhập thông tin mới của bản thân

6 - Phần mềm kiểm tra thông tin mới cập nhật

7 - Nếu thông tin hợp lệ, phần mềm hiện thông báo Xác nhận thay đổi hay không?

8 - Người dùng bấm xác nhận thay đổi

9 phần mềm hiển thị thông báo đã thay đổi thành công

10 - Trở về màn hình Thông tin cá nhân

Thông tin thay đổi không hợp lệ:

1 - Phần mềm trở về màn hình thay đổi thông tin cá nhân

2 - Người dùng nhập lại thông tin không hợp lệ

3 - Tiếp tục thực hiện bước 5 ở dòng sự kiện chính Không xác nhận thay đổi thông tin cá nhân:

1 - Phần mềm trở về màn hình thay đổi thông tin cá nhân

2 - Người dùng nhập lại thông tin mới hoặc Hủy bỏ thay đổi

3 - Nếu nhập lại thông tin mới thì tiếp bước 1 ở dòng sự kiện phụ: Thông tin không hợp lệ

4 - Nếu Hủy thì tiếp bước 1 ở dòng sự kiện phụ: Hủy bỏ thay đổi Hủy bỏ các thay đổi:

1 - Hệ thống xác nhận có muốn Hủy không

2 - Nếu đồng ý thì quay về tab trang cá nhân, nếu không quay trở lại màn hình chỉnh sửa Điều kiện trước Điện thoại phải có kết nối mạng

Kết nối thành công với database Điều kiện sau Thông tin cá nhân của người dùng được chỉnh sửa lên cơ sở dữ liệu

3.5 Đặc tả Use-case “Create Event”

Mô tả Người dùng muốn tạo 1 sự kiện gây quỹ

Hành vi của tác nhân Hành vi của hệ thống

1 - Người dùng thực hiện Usecase Đăng nhập

2 - Người dùng mở tab Trang cá nhân lên

3 - Người dùng chọn nút Tạo sự kiện gây quỹ

4 - Nhập thông tin về sự kiện

6 - Hệ thống thực hiện tạo Sự kiện mới lên CSDL

7 - Màn hình hiển thị sự kiện được tạo thành công

Luồng thay thế Không có Điều kiện trước Điện thoại phải có kết nối mạng

Kết nối thành công với database Điều kiện sau Hệ thống tạo thêm sự kiện mới trong CSDL

3.6 Đặc tả Use-case “Update Event”

Mô tả Người dùng muốn thay đổi thông tin chi tiết của sự kiện

Hành vi của tác nhân Hành vi của hệ thống

1 - Người dùng thực hiện Usecase Đăng nhập

2 - Người dùng mở tab Trang cá nhân lên

3 - Chọn sự kiện muốn cập nhật thông tin

4 - Bấm vào nút Thay đổi thông tin

5 - Nhập thông tin mới của sự kiện

6 - Bấm vào nút Cập nhật

7 - Hệ thống cập nhật thông tin mới

8 - Trở về màn hình Thông tin sự kiện

Luồng thay thế Không có Điều kiện trước Điện thoại phải có kết nối mạng

Kết nối thành công với database Điều kiện sau Thông tin về sự kiện được thay đổi trong CSDL

3.7 Đặc tả Use-case “Delete Event”

Mô tả Người dùng muốn thay đổi thông tin chi tiết của sự kiện

Hành vi của tác nhân Hành vi của hệ thống

1 - Người dùng thực hiện Usecase Đăng nhập

2 - Người dùng mở tab Trang cá nhân lên

3 - Chọn sự kiện muốn cập nhật thông tin

4 - Bấm vào nút Xóa sự kiện

5 - Hệ thống hỏi lại có Đồng ý xóa hay không?

6 - Chọn nút xác nhận xóa

7 - Hệ thống xóa thông tin sự kiện

8 - Trở về màn hình Thông tin sự kiện

Luồng thay thế Không đồng ý xóa:

1 - Hệ thống quay lại màn hình sự kiện Điều kiện trước Điện thoại phải có kết nối mạng

Kết nối thành công với database Điều kiện sau Sự kiện, bài viết và bình luận liên quan được xóa khỏi CSDL

3.8 Đặc tả Use-case “Create Post”

Mô tả Người dùng muốn tạo 1 sự kiện gây quỹ

Hành vi của tác nhân Hành vi của hệ thống

1 - Người dùng thực hiện Usecase Đăng nhập

2 - Người dùng mở tab Trang cá nhân lên

3 - Bấm vào nút Tạo bài viết

4 - Chọn sự kiện muốn đăng bài viết

5 - Nhập thông tin về bài viết

6 - Bấm nút Tạo bài viết

6 - Hệ thống thực hiện tạo Bài viết mới lên CSDL

7 - Màn hình hiển thị sự kiện được tạo thành công

8 - Quay về màn hình thông tin Sự kiện

Luồng thay thế Không có Điều kiện trước Điện thoại phải có kết nối mạng

Kết nối thành công với database Điều kiện sau Hệ thống tạo bài viết trong sự kiện

3.9 Đặc tả Use-case “Update Post”

Mô tả Người dùng muốn cập nhật thông tin bài viết

Hành vi của tác nhân Hành vi của hệ thống

1 - Người dùng thực hiện Usecase Đăng nhập

2 - Người dùng mở tab Trang cá nhân lên

3 - Chọn bài viết muốn cập nhật thông tin

4 - Bấm vào nút Thay đổi thông tin

5 - Nhập thông tin mới của bài viết

6 - Bấm vào nút Cập nhật

7 - Hệ thống cập nhật thông tin mới

8 - Trở về màn hình Thông tin sự kiện

Luồng thay thế Không có Điều kiện trước Điện thoại phải có kết nối mạng

Kết nối thành công với database Điều kiện sau Hệ thống cập nhật bài viết trong sự kiện

3.10 Đặc tả Use-case “Delete Post”

Mô tả Người dùng muốn thay đổi thông tin chi tiết của sự kiện

Hành vi của tác nhân Hành vi của hệ thống

1 - Người dùng thực hiện Usecase Đăng nhập

2 - Người dùng mở tab Trang cá nhân lên

3 - Chọn bài viết muốn cập nhật thông tin

4 - Bấm vào nút Xóa bài viết

5 - Hệ thống hỏi lại có Đồng ý xóa hay không?

6 - Chọn nút xác nhận xóa

7 - Hệ thống xóa thông tin bài viết

8 - Trở về màn hình Thông tin sự kiện

Luồng thay thế Không đồng ý xóa:

1 - Hệ thống quay lại màn hình sự kiện Điều kiện trước Điện thoại phải có kết nối mạng

Kết nối thành công với database Điều kiện sau Bài viết và bình luận liên quan được xóa khỏi CSDL

3.11 Đặc tả Use-case “Comment Post”

Mô tả Người dùng bình luận bài viết

Hành vi của tác nhân Hành vi của hệ thống

1 - Người dùng thực hiện Usecase Đăng nhập

2 - Người dùng mở sự kiện muốn bình luận

3 - Nhấn vào nút Bình luận

6 - Hệ thống lưu trữ bình luận

7 - Bình luận hiển thị trên bài viết

Luồng thay thế Không có Điều kiện trước Điện thoại phải có kết nối mạng

Kết nối thành công với database Điều kiện sau Bình luận liên quan được lưu lên CSDL

3.12 Đặc tả Use-case “Like Post”

Mô tả Người dùng bày tỏ yêu thích đối với bài viết

Hành vi của tác nhân Hành vi của hệ thống

1 - Người dùng thực hiện Usecase Đăng nhập

2 - Người dùng chọn bài viết muốn bày tỏ

4 - Hệ thống lưu trữ lượt Like

5 - Hiển thị bài viết đã được Like thành công

Luồng thay thế Không có Điều kiện trước Điện thoại phải có kết nối mạng

Kết nối thành công với database Điều kiện sau Lượt thích được cập nhật lên bài viết ở CSDL

3.13 Đặc tả Use-case “Joint Event”

Mô tả Người dùng muốn theo dõi, tham gia 1 sự kiện

Hành vi của tác nhân Hành vi của hệ thống

1 - Người dùng thực hiện Usecase Đăng nhập

2 - Người dùng chọn sự kiện muốn tham gia

3 - Người dùng bấm nút Tham gia

4 - Đợi chủ sự kiện chấp nhận, nếu có, người tham gia trở thành thành viên của sự kiện

5 - Tạo thông tin người dùng trong Sự kiện đó

6 - Phần mềm hiển thị sự kiện đã theo dõi thành công

Luồng thay thế Chủ sự kiện không chấp nhận sự tham gia của người dùng:

5 - Phần mềm hiển thị bị từ chối tham gia Điều kiện trước Điện thoại phải có kết nối mạng

Kết nối thành công với database Điều kiện sau Thành công: Thông tin người tham gia được lưu trên CSDL

Thất bại: CSDL không đổi

3.14 Đặc tả Use-case “Search”

Mô tả Người dùng muốn tìm kiếm thông tin về sự kiện, bài viết, hoặc người dùng khác

Hành vi của tác nhân Hành vi của hệ thống

1 - Người dùng thực hiện Usecase Đăng nhập

2 - Nhấn vào thanh Tìm kiếm

3 - Nhập thông tin cần tìm

4 - Phần mềm lọc thông tin, hiển thị ra màn hình Tìm kiếm

Luồng thay thế Không có Điều kiện trước Điện thoại phải có kết nối mạng

Kết nối thành công với database Điều kiện sau CSDL không đổi

3.15 Đặc tả Use-case “Search Tag”

Mô tả Người dùng muốn tìm kiếm 1 sự kiện được gán nhãn đặc biệt

Luồng chính Hành vi của tác nhân Hành vi của hệ thống

1 - Người dùng thực hiện Usecase Đăng nhập

2 - Bấm vào nút Tìm kiếm

3 - Chọn Tìm kiếm theo Tag

4 - Phần mềm hiển thị thông tin sự kiện trong màn hình Tìm kiếm

Luồng thay thế Không có Điều kiện trước Điện thoại phải có kết nối mạng

Kết nối thành công với database Điều kiện sau CSDL không đổi

3.16 Đặc tả Use-case “Search Location”

Mô tả Người dùng muốn tìm kiếm sự kiện thông qua địa chỉ

Hành vi của tác nhân Hành vi của hệ thống

1 - Người dùng thực hiện Usecase Đăng nhập

2 - Bấm vào nút Tìm kiếm

3 - Chọn Tìm kiếm theo Địa chỉ

4 - Phần mềm hiển thị thông tin sự kiện trong màn hình Tìm kiếm

Luồng thay thế Không có Điều kiện trước Điện thoại phải có kết nối mạng

Kết nối thành công với database Điều kiện sau CSDL không đổi

PHÂN TÍCH HỆ THỐNG

Sơ đồ lớp

1.1 Sơ đồ lớp mức phân tích

1.2 Danh sách các lớp đối tượng

STT Tên lớp/quan hệ Loại Ý nghĩa/Ghi chú

1 Lớp Interaction Lớp thuần ảo Lớp tương tác giữa người dùng và bài viết

2 Lớp Comment Lớp bình thường

Lớp tương tác bình luận giữa người dùng với bài viết, kế thừa từ lớp Interaction

3 Lớp Like Lớp bình thường

Lớp tương tác thích giữa người dùng với bài viết, kế thừa từ lớp Interaction

4 Lớp Post Lớp bình thường Lớp bài viết

5 Lớp Event Lớp bình thường Lớp sự kiện

6 Lớp user Lớp bình thường Lớp người dùng

7 Lớp EventDetail Lớp bình thường Lớp chi tiết sự kiện

1.3 Mô tả từng lớp đối tượng

Kiểu dữ liệu Loại Ràng buộc Ý nghĩa/ghi chú

1 User User Private Khóa ngoại Khóa ngoại đến người dùng

2 Post Post Private Khóa ngoại Khóa ngoại đến bài viết

3 Time datetime Private Not null Thời gian xảy ra tương tác

STT Tên thuộc tính Loại Ràng buộc Ý nghĩa/ghi chú

1 Content Private Nội dung bình luận

STT Tên phương thức Loại Ý nghĩa/ghi chú

1 Delete() Public Xóa bình luận

STT Tên phương thức Loại Ý nghĩa/ghi chú

1 Unlike() Public Bỏ yêu thích bài viết

STT Tên thuộc tính Kiểu dữ liệu Loại Ràng buộc Ý nghĩa/ghi chú

1 Title String Private Tiêu đề bài viết

2 Content String Private Nội dung bài viết

3 Time Datetime Private Thời gian tạo bài viết

4 IsPublic Bool Private Chế độ công khai hay riêng tư

STT Tên phương thức Loại Ý nghĩa/ghi chú

1 Create() Public Tạo bài viết

2 Delete() Public Xóa bài viết

3 Update() Public Cập nhật bài viết

4 SearchPos() Stattic Tìm kiếm bài viết

5 Like() Public Thích bài viết

6 Comment() Public Bình luận bài viết

STT Tên thuộc tính Kiểu dữ liệu Loại Ràng buộc Ý nghĩa/ghi chú

1 Name String Private Tên bài sự kiện

2 CreateDay DateTime Private Ngày tạo sự kiện

3 OrganizeDay DateTime Private Ngày diễn ra sự kiện

4 Content String Private Nội dung sự kiện

5 Image Bitmap private Hình ảnh của sự kiện

6 Location string private Địa điểm diễn ra sự kiện

7 Tag array[] private Chủ đề của sự kiện

STT Tên phương thức Loại Ý nghĩa/ghi chú

1 Create() Public Tạo sự kiện mới

2 Delete() Public Xóa sự kiện

3 Update() Public Cập nhật sự kiện

4 SearchEvent() Public static Tìm kiếm sự kiện

5 GetPost() Public Lấy bài viết thuộc sự kiện

STT Tên thuộc tính Kiểu dữ liệu Loại Ràng buộc Ý nghĩa/ghi chú

1 Name String Private Not null Tên

2 Birth Datetime Private Not null Ngày sinh

3 Address string Private Not null Địa chỉ

4 Phone string Private Not null, khóa chính Số điện thoại

6 Gender Bool Private Not null Giới tính

7 Avatar Bitmap Private Ảnh đại diện

STT Tên phương thức Loại Ý nghĩa/ghi chú

1 Create() Public Tạo người dùng mới

2 Delete() Public Xóa thông tin người dùng

3 Update() Public Cập nhật thông tin người dùng

4 SearchEvent() Public static Tìm kiếm người dùng

5 FollowUser() Public Theo dõi người dùng

6 UnfollowUser() Public Bỏ theo dõi người dùng

STT Tên thuộc tính Kiểu dữ liệu Loại Ràng buộc Ý nghĩa/ghi chú

1 Time Datetime Private Ngày người dùng tham gia sự kiện

2 Joinner User Private Not null Người tham gia sự kiện

3 Event Event Private Not null Sự kiện người dùng tham gia

Sơ đồ dữ liệu

STT Tên thuộc tính Kiểu Ràng buộc Ý nghĩa/ghi chú

1 Id int PK Mã của bảng USER

2 Name nvarchar NotNull Tên của người dùng

3 Birthday datetime Ngày sinh của người dùng

4 Gender int NotNull Giới tính của người dùng

5 ImageId int FK Khóa ngoại trỏ đến bảng

IMAGE, thể hiện ảnh người dùng

6 Phone varchar SĐT người dùng

7 Email varchar NotNull Email dùng để đăng nhập của người dùng

8 Password varchar NotNull Mật khẩu của tài khoản người dùng

9 TimeCreate datetime NotNull Thời gian tạo tài khoản

10 IsDeleted boolean NotNull Người dùng còn tồn tại hay không

STT Tên thuộc tính Kiểu Ràng buộc Ý nghĩa/ghi chú

1 Id int PK Mã của bảng IMAGE

2 Data binary NotNull Dữ liệu của ảnh đại diện

3 TimeCreate datetime NotNull Thời điểm tạo hình ảnh

STT Tên thuộc tính Kiểu Ràng buộc Ý nghĩa/ghi chú

1 UserIdFollow int PK, FK1 Khóa ngoại trỏ đến bảng

USER, thể hiện thông tin người thực hiện theo dõi

2 UserIdFollowed int PK, FK2 Khóa ngoại trỏ đến bảng

USER, thể hiện thông tin người bị theo dõi

3 TimeFollow datetime NotNull Thời gian thực hiện theo dõi

STT Tên thuộc tính Kiểu Ràng buộc Ý nghĩa/ghi chú

1 Id int PK Mã của bảng EVENT

2 Name nvarchar NotNull Tên của sự kiện

3 CreatorId int NotNull Người tạo sự kiện

4 TimeCreate datetime NotNull Thời gian tạo sự kiện

5 TimeStart datetime Thời gian bắt đầu sự kiện

6 Location varchar Địa điểm tổ chức sự kiện

7 Description varchar Mô tả về sự kiện

Khóa ngoại trỏ đến bảng IMAGE, thể hiện hình đại diện của sự kiện

9 BackgroundId int FK Khóa ngoại trỏ đến bảng

IMAGE, thể hiện hình background của sự kiện

10 IsDeleted boolean NotNull Sự kiện còn tồn tại hay không

STT Tên thuộc tính Kiểu Ràng buộc Ý nghĩa/ghi chú

1 Id int PK Mã của bảng IMAGE_EVENT

Khóa ngoại trỏ đến bảng USER, thể hiện thông tin người đăng ký tham gia sự kiện

Khóa ngoại trỏ đến bảng EVENT, thể hiện hình ảnh chứa trong EVENT

4 TimeCreate datetime NotNull Thời điểm tạo form đăng ký

5 TimeReview datetime NotNull Thời điểm chủ sự kiện chấp nhận hoặc từ chối sự kiện

Khóa ngoại trỏ đến bảng STATUS_FROM_REGISTER , thể hiện tình trạng của form

STT Tên thuộc tính Kiểu Ràng buộc Ý nghĩa/ghi chú

1 Id int PK Mã của bảng

2 Name varchar NotNull Tên của tình trạng

STT Tên thuộc tính Kiểu Ràng buộc Ý nghĩa/ghi chú

1 UserId int PK, FK Khóa ngoại trỏ đến bảng

USER, thể hiện thông tin người thực hiện theo dõi sự kiện

2 EventId int PK, FK Khóa ngoại trỏ đến bảng

EVENT, thể hiện thông tin của sự kiện được theo dõi

3 TimeFollow datetime NotNull Thời gian thực hiện theo dõi

STT Tên thuộc tính Kiểu Ràng buộc Ý nghĩa/ghi chú

1 Id int PK Mã của bảng POST

Khóa ngoại trỏ đến bảng EVENT, thể hiện bài đăng thuộc về sự kiện nào

Khóa ngoại trỏ đến bảng USER, thể hiện người thực hiện đăng bài

4 Content nvarchar NotNull Nội dung bài đăng

5 TimeCreate datetime NotNull Thời gian tạo bài viết

6 IsDeleted boolean NotNull Bài viết có bị xóa hay chưa

STT Tên thuộc tính Kiểu Ràng buộc Ý nghĩa/ghi chú

1 Id int PK Mã của bảng TAG

2 Name nvarchar NotNull Tên của TAG

STT Tên thuộc tính Kiểu Ràng buộc Ý nghĩa/ghi chú

1 UserId int PK, FK Khóa ngoại trỏ đến bảng

USER, thể hiện thông tin người thực hiện like bài viết

2 PostId int PK, FK Khóa ngoại trỏ đến bảng

POST, thể hiện thông tin bài viết được like

3 TimeLike datetime NotNull Thời gian thực hiện Like

STT Tên thuộc tính Kiểu Ràng buộc Ý nghĩa/ghi chú

1 PostId int PK, FK Khóa ngoại trỏ đến bảng

POST, thể hiện thông tin bài viết gắn TAG

2 TagId int PK, FK Khóa ngoại trỏ đến bảng

TAG, thể hiện nội dung

STT Tên thuộc tính Kiểu Ràng buộc Ý nghĩa/ghi chú

1 Id int PK Mã của bảng

Khóa ngoại trỏ đến bảng POST, thể hiện thông tin sự kiện lưu ảnh

3 Data binary NotNull Dữ liệu của hình ảnh

STT Tên thuộc tính Kiểu Ràng buộc Ý nghĩa/ghi chú

1 Id int PK Mã của bảng

Khóa ngoại trỏ đến bảng POST, thể hiện thông tin bài viết của bình luận

3 UserId int NotNull Khóa ngoại trỏ đến bảng

USER, thể hiện thông tin người thực hiện bình luận bài viết

4 Content nvarchar NotNull Nội dung bình luận

5 TimeCreate datetime NotNull Thời gian tạo bình luận

THIẾT KẾ GIAO DIỆN

Màn hình giới thiệu

* Mô tả chung và xử lý các sự kiện trên màn hình:

Khi mở app lần đầu tiên màn hình giới thiệu sẽ hiển thị

- Hình ảnh và text giới thiệu phần mềm Meer

- Button “Bắt đầu”: điều hướng đến màn hình Login

Màn hình đăng nhập

* Mô tả chung và xử lý các sự kiện trên màn hình:

Màn hình được điều hướng khi click button “Bắt đầu” ở màn hình splash trong lần đầu sử dụng app, hoặc mặc định hiển thị trong những lần sau

- Textfield phone và password: cho phép người dùng nhập

- Text button Quên mật khẩu điều hướng sang màn hình Quên mật khẩu

- Hai button đăng nhập cho phép người dùng đăng nhập bằng facebook, google

- Button Đăng nhập điều hướng sang màn hình chính

- Text button Đăng ký điều hướng sang màn hình đăng ký.

Màn hình chính

* Mô tả chung và xử lý các sự kiện trên màn hình:

Màn hình được hiển thị sau khi đăng nhập thành công, mặc định màn hình chính khi hiển thị là tab Trang chủ

- Thanh bottomTabbar cho phép điều hướng đến 5 màn hình của app: Trang chủ, Lịch, Tạo mới, Bạn bè, Hồ sơ

- View hiển thị full screen hiển thị chi tiết màn hình, mở mặc định ở màn hình Trang chủ.

Màn hình Trang chủ

* Mô tả chung và xử lý các sự kiện trên màn hình:

Màn hình được hiển thị sau khi đăng nhập thành công, mặc định màn hình chính khi hiển thị là tab Trang chủ

- Listview danh sách người dùng hoạt động thường xuyên, cho phép cuộn ngang và click chọn xem trang cá nhân người dùng

Danh sách các sự kiện mà người dùng theo dõi hoặc tổ chức được hiển thị dưới dạng listview theo chiều dọc Người dùng có thể cuộn xuống để xem thêm và click chọn để xem chi tiết từng sự kiện.

- AppBar hiển thị tên app Meer, 2 button Tìm kiếm, Thông báo cho phép tìm kiếm và xem các thông báo

Màn hình chi tiết sự kiện

* Mô tả chung và xử lý các sự kiện trên màn hình:

Khi click chọn sự kiện trên NewFeed, màn hình sẽ tự động điều hướng đến trang

- Background image, Avatar image hiển thị ảnh bìa, ảnh đại diện của sự kiện

- Text hiển thị tên sự kiện

- Button Hủy tham gia cho phép hủy tham gia (chỉ hiển thị đối với sự kiện người dùng đã tham gia)

- Tabbar điều hướng đến 3 màn hình con của trang Sự kiện: Trang chủ, giới thiệu, hình ảnh(mặc định ở Trang chủ)

+ Listview hiển thị các bài post của sự kiện, listview cho phép cuộn dọc

- Các text hiển thị các thông tin chung của bài post

- Gridview 3*n hiển thị hình ảnh của sự kiện.

Màn hình Form đăng ký

* Mô tả chung và xử lý các sự kiện trên màn hình:

Màn hình được hiển thị sau khi người dùng click vào Button “Tham gia” ở trang sự kiện

- Các textFormField cho phép người dùng nhập thông tin

- Button Gửi cho phép người dùng gửi form đăng ký cho chủ sự kiện

- AppBar chứa button Back cho phép trở về trang Sự kiện.

Màn hình Tìm kiếm

* Mô tả chung và xử lý các sự kiện trên màn hình:

Màn hình được hiển thị sau khi người dùng click vào Button “Tham gia” ở trang sự kiện

- Thanh search cho phép nhập nội dung tìm kiếm

- Listview các Tag sự kiện, cho phép cuộn ngang, nhấn chọn Tag

- Listview chứa kết quả tìm kiếm.

Màn hình Lịch

* Mô tả chung và xử lý các sự kiện trên màn hình:

Màn hình được hiển thị khi người dùng click vào tab Lịch trên thanh Bottomtabbar của màn hình chính

- Thanh Search cho phép nhập nội dung tìm kiếm

- Calendar cho phép tìm kiếm sự kiện theo ngày

- Tabbar điều hướng đến 3 loại sự kiện: đã tham gia, tổ chức, đang chờ duyệt.

Màn hình Tạo sự kiện

* Mô tả chung và xử lý các sự kiện trên màn hình:

Màn hình được hiển thị khi người dùng click vào button NewEvent

- Appbar chứa button Đăng cho phép người dùng đăng sự kiện lên NewFeed

- Bốn TextformField cho phép người dùng nhập tên sự kiện, thời gian, địa điểm tổ chức, thông tin chung sự kiện

- Hai ImageButton cho phép chọn ảnh bìa, ảnh đại diện của sự kiện

- IconButton Tag cho phép chọn tag cho sự kiện.

Màn hình Tạo bài viết

* Mô tả chung và xử lý các sự kiện trên màn hình:

Màn hình được hiển thị khi người dùng click vào button NewPost

- Appbar chứa button Đăng cho phép người dùng đăng bài viết lên Trang sự kiện

- Button Chọn sự kiện điều hướng sang màn hình chọn sự kiện

- TextformField cho phép người dùng nhập nội dung bài viết

- Hai ImageButton cho phép chọn ảnh bìa, ảnh đại diện của sự kiện.

Màn hình Bạn bè

* Mô tả chung và xử lý các sự kiện trên màn hình:

Màn hình được hiển thị khi người dùng click vào tab Bạn bè trên màn hình chính Các component:

- Thanh search cho phép nhập nội dung tìm kiếm

- Listview hiển thị nội dung tìm kiếm, mặc định là tất cả bạn bè.

Màn hình Hồ sơ người dùng

* Mô tả chung và xử lý các sự kiện trên màn hình:

Màn hình được hiển thị khi người dùng click vào tab Hồ sơ trên màn hình chính Các component:

- Các text hiển thị một số thông tin cơ bản của người dùng

- Button Chỉnh sửa hồ sơ điều hướng sang màn hình Chỉnh sửa hồ sơ thực hiện những thay đổi về thông tin cá nhân

- Listview danh sách các sự kiện người dùng đã tạo hoặc tham gia, listview cho phép cuộn dọc, click chọn xem chi tiết sự kiện.

TỔNG KẾT

Công nghệ sử dụng

- Công nghệ Flutter lập trình dựa trên ngôn ngữ Dart

Độ hoàn thiện chức năng

STT Tên chức năng Mức độ hoàn thành Ghi chú

2 Quản lý, theo dõi sự kiện 50%

5 Tạo bài viết, tạo sự kiện mới 100%

6 Quản lý, tùy chỉnh hồ sơ người dùng 100%

Kết quả đạt được và hướng phát triển

- Tìm hiểu và nắm được cơ bản về quy trình xây dựng một ứng dụng mạng xã hội

Tìm hiểu và áp dụng kiến thức về phương pháp phát triển phần mềm hướng đối tượng cùng quy trình phát triển phần mềm là rất quan trọng trong việc xây dựng ứng dụng hiệu quả Những kiến thức này không chỉ giúp tối ưu hóa quy trình phát triển mà còn nâng cao chất lượng sản phẩm cuối cùng Việc vận dụng đúng các phương pháp sẽ tạo ra ứng dụng linh hoạt, dễ bảo trì và mở rộng trong tương lai.

- Tìm hiểu và áp dụng firebase Cloud vào ứng dụng

- Ngoài ra, nhóm đã tìm hiểu và nắm được cách sử dụng một số framework hữu ích như Entity Framework,

- Phát triển và hoàn thiện kỹ năng sử dụng các công cụ hỗ trợ lập trình viên như: GitHub, Trello, excel, figma…

- Học tập phát triển kỹ năng làm việc nhóm, kỹ năng phân chia điều phối công việc, kỹ năng sắp xếp thời gian

- Phần mềm đạt được những chức năng cơ bản cần có của một mạng xã hội tình nguyện trong thời gian quy định

- Giao diện thân thiện, dễ sử dụng

Tiếp tục phát triển, hoàn thiện những chức năng chính của phần mềm như: đọc, theo dõi sự kiện, tìm kiếm bạn bè, tạo mới sự kiện, bài viết

Chúng tôi đang phát triển thêm các chức năng hỗ trợ nhằm tối ưu hóa hoạt động bán hàng cho người dùng Một số tính năng dự kiến sẽ được triển khai trong thời gian tới để nâng cao hiệu quả kinh doanh.

- Phân quyền: Admin, người dùng

- Hỗ trợ tìm kiếm, hiển thị địa điểm sự kiện trên GoogleMap

- Tính năng xem video quyên góp cho sự kiện

- Gợi ý các sự kiện dựa trên lịch sử tham gia của người dùng

- Đưa phần mềm lên nền tảng web giúp người dùng dễ dàng truy cập ở bất kì đâu.

BẢNG PHÂN CÔNG CÔNG VIỆC

STT Nội dung công việc Ngày bắt đầu

Người đảm nhận Trạng thái

1 Chọn đề tài 01/09/2021 03/09/2021 Ngọc Thạch

2 Phân tích yêu cầu 03/09/2021 08/09/2021 Ngọc Thạch

Thiết lập các actor, các chức năng cơ bản

4 Vẽ sơ đồ Use case, đặc tả Usecase 13/09/2021 15/09/2021 Ngọc Thạch Hoàn thành

5 Viết SRD 13/09/2021 15/09/2021 Ngọc Thạch Hoàn thành

Viết phân tích sơ đồ lớp mức phân tích

7 Học Flutter, Dart, firebase 03/09/2021 25/10/2021 Ngọc Thạch

8 Thiết kế giao diện trên Figma 20/09/2021 30/09/2021 Minh Nhực Hoàn thành

9 Thiết kế CSDL 20/09/2021 28/09/2021 Ngọc Thạch Hoàn thành

12 Xây dựng các màn hình trên Flutter 05/10/2021 15/11/2021 Ngọc Thạch

13 Xử lý các sự kiện

14 Xử lý dữ liệu 01/12/2021 28/12/2021 Ngọc Thạch

15 Kiểm thử ứng dụng 28/12/2021 31/12/2021 Ngọc Thạch

16 Viết báo cáo 1/12/2021 5/12/2021 Ngọc Thạch

Ngày đăng: 15/01/2022, 21:44

HÌNH ẢNH LIÊN QUAN

1. Sơ đồ Use-case mức tổng quát - Đồ án ứng dụng kết nối cộng đồng thiện nguyện
1. Sơ đồ Use-case mức tổng quát (Trang 13)
1. Sơ đồ lớp - Đồ án ứng dụng kết nối cộng đồng thiện nguyện
1. Sơ đồ lớp (Trang 28)
2. Sơ đồ dữ liệu - Đồ án ứng dụng kết nối cộng đồng thiện nguyện
2. Sơ đồ dữ liệu (Trang 33)
2.2. Bảng IMAGE - Đồ án ứng dụng kết nối cộng đồng thiện nguyện
2.2. Bảng IMAGE (Trang 34)
2.4. Bảng EVENT - Đồ án ứng dụng kết nối cộng đồng thiện nguyện
2.4. Bảng EVENT (Trang 35)
2.5. Bảng FORM_REGISTER - Đồ án ứng dụng kết nối cộng đồng thiện nguyện
2.5. Bảng FORM_REGISTER (Trang 36)
2.7. Bảng FOLLOW_EVENT - Đồ án ứng dụng kết nối cộng đồng thiện nguyện
2.7. Bảng FOLLOW_EVENT (Trang 37)
2.8. Bảng POST - Đồ án ứng dụng kết nối cộng đồng thiện nguyện
2.8. Bảng POST (Trang 37)
2.10. Bảng LIKE_POST - Đồ án ứng dụng kết nối cộng đồng thiện nguyện
2.10. Bảng LIKE_POST (Trang 38)
2.9. Bảng TAG - Đồ án ứng dụng kết nối cộng đồng thiện nguyện
2.9. Bảng TAG (Trang 38)
2.12. Bảng IMAGE_POST - Đồ án ứng dụng kết nối cộng đồng thiện nguyện
2.12. Bảng IMAGE_POST (Trang 39)
2.13. Bảng COMMENT_POST - Đồ án ứng dụng kết nối cộng đồng thiện nguyện
2.13. Bảng COMMENT_POST (Trang 39)
Hình trên Flutter   05/10/2021   15/11/2021   Ngọc Thạch - Đồ án ứng dụng kết nối cộng đồng thiện nguyện
Hình tr ên Flutter 05/10/2021 15/11/2021 Ngọc Thạch (Trang 56)

TỪ KHÓA LIÊN QUAN

w