Tải bản đầy đủ (.pdf) (61 trang)

KHÓA LUẬN TỐT NGHIỆP XÂY DỰNG MẠNG XÃ HỘI KẾT NỐI TÌNH NGUYỆN

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 (1.89 MB, 61 trang )

ĐẠI HỌC QUỐC GIA TP. HỒ CHÍ MINH

TRƯỜNG ĐẠI HỌC CƠNG NGHỆ THƠNG TIN
KHOA CƠNG NGHỆ PHẦN MỀM

PHAN THANH HỒNG
TRẦN ĐÌNH THIỆN

KHĨA LUẬN TỐT NGHIỆP

XÂY DỰNG MẠNG XÃ HỘI KẾT NỐI
TÌNH NGUYỆN
BUILDING A SOCIAL NETWORK CONNECTS
VOLUNTEERS

KỸ SƯ NGÀNH KỸ THUẬT PHẦN MỀM

1

TP. HỒ CHÍ MINH, 2021


ĐẠI HỌC QUỐC GIA TP. HỒ CHÍ MINH

TRƯỜNG ĐẠI HỌC CƠNG NGHỆ THƠNG TIN
KHOA CƠNG NGHỆ PHẦN MỀM

TP. HỒ CHÍ MINH, 2021

PHAN THANH HỒNG
TRẦN ĐÌNH THIỆN



KHĨA LUẬN TỐT NGHIỆP

XÂY DỰNG MẠNG XÃ HỘI KẾT NỐI
TÌNH NGUYỆN
BUILDING A SOCIAL NETWORK CONNECTS
VOLUNTEERS

KỸ SƯ NGÀNH KỸ THUẬT PHẦN MỀM

GIẢNG VIÊN HƯỚNG DẪN

TS. ĐỖ THỊ THANH TUYỀN
ThS. HUỲNH HỒ THỊ MỘNG TRINH

TP. HỒ CHÍ MINH, 2021


THƠNG TIN HỘI ĐỒNG CHẤM KHĨA LUẬN TỐT NGHIỆP
Hội đồng chấm khóa luận tốt nghiệp, thành lập theo Quyết định số ……………………
ngày ………………….. của Hiệu trưởng Trường Đại học Công nghệ Thơng tin.





…………………………………………. – Chủ tịch.
…………………………………………. – Thư ký.
…………………………………………. – Ủy viên.
…………………………………………. – Ủy viên



LỜI CẢM ƠN
Để có thể hồn thành khóa luận một cách hồn chỉnh, nhóm em đã nhận được rất nhiều
sự hướng dẫn nhiệt tình của q Thầy Cơ. Vì vậy, nhóm xin phép được gửi những lời
cảm ơn chân thành nhất.
Đầu tiên, nhóm em xin chân thành cảm ơn và bày tỏ lòng biết ơn sâu sắc nhất đến TS
Đỗ Thị Thanh Tuyền, ThS Huỳnh Hồ Thị Mộng Trinh, cô đã tận tình chỉ bảo, hướng
dẫn, truyền đạt những kinh nghiệm, kiến thức chuyên môn và các tài liệu liên quan để
nhóm có thể hồn thanh khóa luận tốt nhất. Nhóm xin gởi đến cơ những lời tri ân đối với
những điều mà cơ đã dành cho nhóm.
Nhóm cũng xin chân thành cảm ơn tồn thể q thầy cơ trong khoa Cơng Nghệ Phần
Mềm và tồn thể q thầy cơ của Trường Đại Học Công Nghệ Thông Tin TP.HCM. Quý
thầy cơ đã ln tận tình truyền đạt những kiến thức, kinh nghiệm quý báu cũng như tạo
mọi điều kiện thuận lợi nhất cho nhóm trong suốt q trình học tập tại trường và đặc biệt
hơn là trong suốt quá trình thực hiện khóa luận này.
Sau cùng, nhóm xin kính chúc tồn thể q thầy cơ trong khoa Cơng Nghệ Phần Mềm,
TS Đỗ Thị Thanh Tuyền, ThS Huỳnh Hồ Thị Mộng Trinh luôn dồi dào sức khỏe, sự
nhiệt huyết và thành công trong cuộc sống cũng như trong sứ mệnh truyền đạt kiến thức
cho các thế hệ trẻ mai sau.
TP. Hồ Chí Minh, ngày 25 tháng 12 năm 2021

Sinh viên 1

Sinh viên 2

Phan Thanh Hồng

Trần Đình Thiện



MỤC LỤC
Chương 1. TỔNG QUAN .............................................................................................. 2
1.1. Đặt vấn đề .............................................................................................................. 2
1.2. Các ứng dụng hiện có ............................................................................................ 3
1.2.1.

Group Facebook “Tặng đồ từ thiện - kết nối yêu thương” .......................... 3

1.2.2.

“Zalo Connect” của ứng dụng Zalo ............................................................. 4

1.2.3.

Hiến máu ...................................................................................................... 4

1.2.4.

Be My Eyes - Helping the blind .................................................................. 5

1.2.5.

“Ví nhân ái” của ứng dụng MoMo .............................................................. 5

1.2.6.

Web Wishare................................................................................................ 5

1.3. Tóm lược ................................................................................................................ 6

1.4. Mục tiêu ................................................................................................................. 6
1.5. Phạm vi ứng dụng .................................................................................................. 7
Chương 2. TỔNG QUAN CÔNG NGHỆ ..................................................................... 8
2.1. React Native, Redux Toolkit, Redux-Saga ............................................................ 8
2.2.1.

React native .................................................................................................. 8

2.2.2.

Redux Toolkit .............................................................................................. 9

2.2.3.

Redux-Saga .................................................................................................. 9

2.2. NestJs và MongoDB ............................................................................................ 10
2.2.1.

NestJs ......................................................................................................... 10

2.2.2.

MongoDB .................................................................................................. 10

2.3. Firebase Cloud Messaging và SocketIO .............................................................. 10
2.3.1.

Firebase Cloud Messaging ......................................................................... 10


2.3.2.

SocketIO .................................................................................................... 11

Chương 3. PHÂN TÍCH THIẾT KẾ ỨNG DỤNG ..................................................... 12
3.1. Phân tích ứng dụng .............................................................................................. 12
3.1.1.

Danh sách yêu cầu của hệ thống và Use case ............................................ 12

3.1.2.

Sơ đồ hoạt động chức năng ........................................................................ 22

3.2. Thiết kế ứng dụng ................................................................................................ 29


3.2.1.

Thiết kế cơ sở dữ liệu ................................................................................ 29

3.2.2.

Thiết kế giao diện. ..................................................................................... 37

3.2.3.

Thiết kế kiến trúc hệ thống ........................................................................ 39

Chương 4. Kết luận ...................................................................................................... 39

4.1. Kết quả đạt được .................................................................................................. 39
4.2. Thuận lợi, khó khăn và hướng phát triển ............................................................. 50
4.2.1.

Thuận lợi .................................................................................................... 50

4.2.2.

Khó khăn thách thức .................................................................................. 50

4.2.3.

Hướng phát triển ........................................................................................ 50


DANH MỤC HÌNH
Hình 1.1: Hình ảnh thống kê của “We are social Hootsuite” .......................................... 3
Hình 2.1: Logo ứng dụng React Native ........................................................................... 8
Hình 2.2: Cách hoạt động của Redux Toolkit .................................................................. 9
Hình 2.3: Cách hoạt động của Redux-Saga ..................................................................... 9
Hình 2.4: Các tính năng chính của Firebase .................................................................. 10
Hình 3.1: Sơ đồ màn hình liên kết ................................................................................. 37
Hình 3.2: Kiến trúc hệ thống .......................................................................................... 39
Hình 3.3: Kiến trúc tầng API ......................................................................................... 39
Hình 3.4: Kiến trúc React Native ................................................................................... 39
Hình 4.1: Màn hình trang chủ ........................................................................................ 40
Hình 4.2: Màn hình tạo mới chiến dịch bước 1 ............................................................. 40
Hình 4.3: Màn hình tạo mới chiến dịch bước 2 ............................................................. 41
Hình 4.4: Màn hình tạo mới chiến dịch bước 3 ............................................................. 41
Hình 4.5: Màn hình tìm kiếm ......................................................................................... 42

Hình 4.6: Màn hình tìm kiếm người dùng ..................................................................... 42
Hình 4.7: Màn hình bản tin ............................................................................................ 43
Hình 4.8: Màn hình tạo mới bài đăng ............................................................................ 43
Hình 4.9: Màn hình chiến dịch tham gia ........................................................................ 44
Hình 4.10: Màn hình thơng báo ..................................................................................... 44
Hình 4.11: Màn hình thơng báo kết bạn......................................................................... 45
Hình 4.12: Màn hình kết bạn.......................................................................................... 45
Hình 4.13: Màn hình nhóm của chiến dịch .................................................................... 46
Hình 4.14: Màn hình thành viên trong nhóm ................................................................. 46
Hình 4.15: Màn hình hiển thị chiến dịch chi tiết ........................................................... 47
Hình 4.16: Màn hình hiển thị chi tiết bài đăng .............................................................. 47
Hình 4.17: Màn hình hiển thị thời gian biểu của chiến dịch .......................................... 48
Hình 4.18: Màn hình danh sách tin nhắn ....................................................................... 48
Hình 4.19: Màn hình cuộc trị chuyện............................................................................ 49
Hình 4.20: Trang cá nhân ............................................................................................... 49
Hình 4.21: Tạo thời gian biểu cho chiến dịch ................................................................ 50


DANH MỤC BẢNG
Bảng 1.1: Bảng so sánh chức năng của các ứng dụng thiện nguyện ............................... 6
Bảng 3.1: Danh sách yêu cầu ứng dụng ......................................................................... 12
Bảng 3.2: Bảng danh sách Use case ............................................................................... 14
Bảng 3.3: Đặc tả chức năng đăng nhập .......................................................................... 15
Bảng 3.4: Bảng đặc tả chức năng tạo chiến dịch ........................................................... 16
Bảng 3.5: Đặc tả chức năng xem danh sách chiến dịch ................................................. 16
Bảng 3.6: Đặc tả chức năng xuất Excel ......................................................................... 17
Bảng 3.7: Đặc tả chức năng trao đổi trực tuyến ............................................................. 18
Bảng 3.8: Đặc tả chức năng đánh giá ............................................................................. 19
Bảng 3.9: Đặc tả chức năng quản lý chiến dịch ............................................................. 20
Bảng 3.10: Đặc tả chức năng kết nối ............................................................................. 20

Bảng 3.11: Đặc tả chức năng tham gia chiến dịch ......................................................... 21
Bảng 3.12: Danh sách bảng ............................................................................................ 30
Bảng 3.13: Danh sách thuộc tính bảng User .................................................................. 30
Bảng 3.14: Danh sách thuộc tính bảng User Friend ...................................................... 31
Bảng 3.15: Danh sách thuộc tính bảng User Participate ................................................ 32
Bảng 3.16: Danh sách thuộc tính bảng Notification ...................................................... 32
Bảng 3.17: Danh sách thuộc tính bảng Conversation .................................................... 33
Bảng 3.18: Danh sách thuộc tính bảng Message ........................................................... 33
Bảng 3.19: Danh sách thuộc tính bảng Group ............................................................... 34
Bảng 3.20: Danh sách thuộc tính bảng Member ............................................................ 34
Bảng 3.21: Danh sách thuộc tính bảng Activity ............................................................ 34
Bảng 3.22: Danh sách thuộc tính bảng Post................................................................... 35
Bảng 3.23: Danh sách thuộc tính bảng Comment .......................................................... 36
Bảng 3.24: Bảng danh sách các màn hình với quyền của người dùng hệ thống. .......... 38
Bảng 3.25: Bảng thành phần kiến trúc tầng API............................................................ 39
Bảng 3.26: Bảng mô tả kiến trúc tầng React Native ...................................................... 39


DANH MỤC SƠ ĐỒ
Sơ đồ 3.1: Sơ đồ Use case .............................................................................................. 13
Sơ đồ 3.2: Sơ đồ hoạt động mô tả chức năng tạo nhóm ................................................ 22
Sơ đồ 3.3: Sơ đồ hoạt động chức năng tham gia nhóm ................................................. 23
Sơ đồ 3.4: Sơ đồ hoạt động chức năng tạo chiến dịch ................................................... 23
Sơ đồ 3.5: Sơ đồ hoạt động chức năng tham gia chiến dịch .......................................... 24
Sơ đồ 3.6: Sơ đồ hoạt động chức năng mời tham gia chiến dịch................................... 24
Sơ đồ 3.7: Sơ đồ hoạt động chức năng thêm tình nguyện viên vào ban tổ chức ........... 25
Sơ đồ 3.8: Sơ đồ hoạt động chức năng đánh giá người tham gia .................................. 25
Sơ đồ 3.9: Sơ đồ hoạt động chức năng xét duyệt người tham gia ................................. 26
Sơ đồ 3.10: Sơ đồ hoạt động chức năng tạo bài đăng trong chiến dịch ......................... 26
Sơ đồ 3.11: Sơ đồ hoạt động chức năng tạo bài đăng trong nhóm ................................ 27

Sơ đồ 3.12: Sơ đồ hoạt động chức năng xuất excel hoạt động tham gia ....................... 27
Sơ đồ 3.13: Sơ đồ thiết kế cơ sở dữ liệu ........................................................................ 29


TÓM TẮT KHÓA LUẬN
Ngày nay mạng xã hội trở nên vô cùng phổ biến và được sử dụng bởi một cộng đồng
lớn. Mạng xã hội có nhiều chức năng khác nhau, nhưng mục đích cốt lõi là chia sẻ những
khoảng khắc đẹp, ý nghĩa về một câu chuyện mà người dùng muốn cho mọi người cùng
hưởng ứng. Với những năm gần đây, việc một vấn đề nào đó trở thành xu hướng nhanh
chóng (trending), đồng thời mạng xã hội là cơng cụ nhanh chóng nhất để truyền đạt tin
tức đó.
Mạng xã hội cũng được chia thành nhiều loại với nhiều mục đích khác nhau. Facebook
là đại diện cho mạng xã hội tin tức, Instagram cũng là một biến thể của mạng xã hội tin
tức, nhưng dữ liệu chính là hình ảnh. Youtube, Tiktok là đại diện cho mạng xã hội video
kèm theo tính năng xu hướng (trend). Theo đó, bên cạnh các mạng xã lớn như trên, có
tồn tại các mạng xã hội ngách tập trung vào một số lượng nhỏ người dùng có chung sở
thích nhận được khơng ít sự quan tâm của cộng đồng. Chính vì thấy mạng xã hội nghách
này tập trung vào một nhóm đối tượng nhất định mà không bị những “ông lớn” đè nặng,
chúng em đã xây dựng nên mạng xã hội kết nối tình nguyện viên trên ứng dụng di động
dành riêng cho những cá nhân, tổ chức yêu thích các hoạt động tình nguyện, thiện nguyện
bằng cách áp dụng Nodejs và cơ sở dữ liệu mã nguồn mở MongoDB. Để thực hiện tốt
đề tài này, chúng em đã tham khảo các ứng dụng tình nguyện và các trang mạng xã hội
để xây dựng mạng xã hội kết nối tình nguyện viên dành riêng tại thị trường Việt Nam.
Kết thúc đề tài, nhóm chúng em đã đạt được kết quả:
- Học và sử dụng thành thạo nền tảng NodeJS.
- Học được sử dụng các bên thứ 3 (third party) như SocketIO, Firebase Cloud
Messaging, Cloud Store.
- Xây dựng được một ứng dụng kết nối tình nguyện viên trên thiết bị di động.

1



Chương 1. TỔNG QUAN
1.1. Đặt vấn đề
Hoạt động từ thiện và thiện nguyện tại Việt Nam thời gian qua đã có những bước
phát triển nhất định. Nhiều hoạt động được tổ chức thành cơng, đem lại những lợi ích
nhất định cho cộng đồng và được xã hội ghi nhận. Về phần các tình nguyện viên,
việc tìm kiếm các tổ chức và các hoạt động tình nguyện cũng có phần khó khăn khi
tìm kiếm trên Google. Các kết quả trả về từ Google đa số là từ các diễn đàn, hoặc
những thông tin chỉ liên quan đến dự án thiện nguyện và thiếu thơng tin tuyển tình
nguyện viên. Các thơng tin và mục đích của hoạt động cũng khơng được phân loại rõ
ràng để các tình nguyện viên dễ dàng tìm kiếm. Các bài đăng cũng như thông tin về
hoạt động đa số sẽ được chia sẻ trên các trang mạng xã hội hiện nay như Facebook,
Tiktok, …Và với một trang mạng xã hội đa thơng tin như vậy thì việc những bài đăng
về hoạt động tình nguyện dễ dàng bị che lấp bởi những bài đăng khác. Nhận thấy
được khó khăn này, ý tưởng giúp các tình nguyện viên và các tổ chức tình nguyện có
thể dễ dàng kết nối, trao đổi với nhau. Vì vậy việc ứng dụng cơng nghệ vào việc xây
dựng một mạng xã hội để có thể kết nối các tình nguyện viên, tổ chức tình nguyện và
các nhà hảo tâm có thể hỗ trợ khắc phục được các nhược điểm hiện có của các hoạt
động từ thiện tại Việt Nam.
Hiện nay, có rất nhiều những hồn cảnh đặc biệt khó khăn, những nơi cần tình nguyện
viên và đặc biệt cũng có rất nhiều người muốn tham gia vào cơng việc tình nguyện
để góp sức cho cộng đồng và xã hội.
Khó khăn đầu tiên dành cho những tổ chức tình nguyện, họ rất cần sự tham gia của
tình nguyện viên, của các nhà hảo tâm, càng nhiều sự đóng góp từ cộng đồng, thì
chiến dịch của tổ chức càng thành cơng, và uy tín hơn với người dân.
Khó khăn thứ hai dành cho các nhà hảo tâm và các tình nguyện viên, họ mong muốn
được đóng góp cơng sức, tài sản cho cộng đồng, cho hồn cảnh khó khăn nhưng
khơng biết phải tin tưởng ở tổ chức hay cá nhân nào, vì hiện nay có rất nhiều tổ chức,
cá nhân lợi dụng việc từ thiện để thu lời cho cá nhân.

Khi mạng xã hội đang phát triển, việc từ thiện qua mạng ngày càng nhiều và là một
vấn đề đáng được quan tâm. Việt Nam hiện nay, có hơn 70 triệu người đang sử dụng
các trang mạng xã hội (Theo báo cáo của Hootsuite tháng 1 năm 2021).

2


Hình 1.1: Hình ảnh thống kê của “We are social Hootsuite”
Từ những dữ kiện trên, nhóm chung em đã quyết định thực hiện đề tài mạng xã hội
kết nối tình nguyện viên với tên gọi spVolunteer, mang sứ mệnh là một ứng dụng
dành riêng cho các hoạt động xã hội, phục vụ tốt cho cộng đồng trong việc gây quỹ,
tìm kiếm tình nguyện viên… người có nhu cầu đăng thơng tin lên ứng dụng để “kêu
gọi” người ủng hộ quyên góp. Điểm mới là ứng dụng tạo sẵn cơng cụ giúp các đơn
vị từ thiện tổ chức kêu gọi, quản lý cũng như cơng bố minh bạch hóa khoản thu-chi
với những nhà hảo tâm, một cách dễ dàng, hoàn toàn miễn phí. Khác với những ứng
dụng khác như facebook, hiến máu, s4lie, dotosave.
1.2. Các ứng dụng hiện có
1.2.1. Group Facebook “Tặng đồ từ thiện - kết nối yêu thương”
Là Group từ thiện có quy mơ lớn (hơn 50.000 thành viên) dùng để kêu gọi quyên
góp cũng như chia sẻ đồ đã qua sử dụng nhưng vẫn còn dùng được
Người dùng đến group này để xin hỗ trợ trong tình trạng khó khăn hoặc đăng bài
để chia sẻ quần áo, giày dép cho những người thiếu thốn.
Liên kết group: Go Volunteer
Ưu điểm:
- Group đáp ứng được nhu cầu kết nối việc thiện nguyện với mọi người.
- Cập nhật nhanh chóng thơng tin nhờ tính năng notification của facebook.

3



- Dễ dàng tham gia group và dễ sử dụng.
- Có thể nhắn tin trao đổi trực tiếp với nhau.
Nhược điểm:
- Vì những bài đăng là tự do nên các bài đăng khơng có cấu trúc rõ ràng.
- Khơng thể xác thực được độ uy tín của người đứng ra tổ chức dự án thiện
nguyện.
- Thiên về mảng chia sẻ là chính, chưa hỗ trợ đầy đủ cho việc thiện nguyện
1.2.2. “Zalo Connect” của ứng dụng Zalo
Là tính năng của Zalo hỗ trợ người dùng trong việc xin sự giúp đỡ hoặc giúp đỡ
người khác trong phạm vi khu vực gần mình nhất.
Ưu điểm:







Dễ sử dụng.
Có thể gửi u cầu giúp đỡ để mọi người gần bạn thấy và hỗ trợ.
Có thể nhắn tin trực tiếp người người cần hỗ trợ hoặc người hỗ trợ.
Vị trí hiển thị chính xác trên bản đồ.
Hiển thị trạng thái của người được hỗ trợ.
Phân loại các danh mục cần hỗ trợ như:
• Hỗ trợ nhu yếu phẩm.
• Hỗ trợ lương thực.
• Hỗ trợ vật dụng y tế
Nhược điểm:
− Khó tìm thấy tính năng này.
1.2.3. Hiến máu

Ứng dụng tra cứu thông tin của người hiến máu, địa điểm hiến máu, trò chuyện
trên ứng dụng
Ưu điểm:
− Tra cứu thông tin người Hiến máu.
− Tra cứu địa điểm hiến máu.
− Trò chuyện trên ứng dụng.
Nhược điểm:
− Hiện tại app chỉ hướng đến việc hiến máu.

4


1.2.4. Be My Eyes - Helping the blind
Hỗ trợ người mù thông qua kết nối video trực tiếp hoặc được hỗ trợ thông qua
mạng lưới người dùng khiếm thị
Ưu điểm:
− Kết nối trò chuyện video trực tiếp giữa người mù và những tình nguyện
viên.
− Hỗ trợ đa ngơn ngữ.
Nhược điểm:
− Tình nguyện viên chưa thể chọn khung giờ nhận cuộc gọi.
− Chất lượng video có thể chưa được cao.
1.2.5. “Ví nhân ái” của ứng dụng MoMo
Đây là tính năng của MoMo dành cho người dùng. Người dùng có thể xem các
bài đăng về việc quyên góp cũng như tiến độ của việc qun góp. Các bài đăng
nêu rõ mục đích quyên góp và chi tiết tổ chức đứng ra nhận qun góp.
Ưu điểm:
− Dễ dàng qun góp tiền thơng qua giao dịch trên ví MoMo.
− Giao diện rõ ràng, dễ sử dụng.
− Nhờ việc hiển thị rõ ràng tên cũng như thông tin của tổ chức từ thiện nên

khá uy tín.
Nhược điểm:
− Vì là 1 tính năng của app MoMo nên khi người dùng chỉ sử dụng giao dịch
có thể sẽ không để ý cũng như không biết đến các hoạt động thiện nguyện.
1.2.6. Web Wishare
Là nền tảng gây quỹ và quản trị hoạt động thiện nguyện. Có đa dạng các bài đăng
như Gây quỹ, sự kiện và các hoạt động khác liên quan tới cơng việc tình nguyện.
Các hoạt động thiện nguyện cũng được chia ra từng danh mục riêng như:
− Xóa nghèo.
− Xóa đói.
− Khí hậu.
− Tài ngun đất.
Ưu điểm:
− Giao diện rõ ràng, dễ sử dụng.
− Dễ dàng tạo bài đăng.

5


− Người dùng có thể tự tạo hoạt động gây quỹ và các sự kiện.
− Các bài đăng đều có tag mục đích để dễ dàng theo dõi bài đăng có mục
đích gì.
1.3. Tóm lược
Sau khi sử dụng các ứng dụng về việc thiện nguyện trên thị trường hiện nay, ta có
thể đưa ra bảng so sánh tổng quan các chức năng hiện có của các ứng dụng như sau:
Bảng 1.1: Bảng so sánh chức năng của các ứng dụng thiện nguyện
Group Be My
Hiến

Web

Zalo
SP
FB
Eyes
máu
nhân ái Wishare Connect Volunteer
Tự tạo chiến
x
x
x
x



dịch
Tham gia vào
x
x
x




chiến dịch
Quyên góp
x
x
x





trực tuyến
Trao đổi trực
x






tuyến
Quản lý chiến
x
x
x
x



dịch
Đánh giá tình
x
x
x
x
x
x

nguyện viên

Xác thực độ
tin cậy người
x
x
x




dùng
1.4. Mục tiêu
Sau khi nguyên cứu, phân tích cũng như tham khảo nhiều ứng dụng thực tế và khảo
sát, em đã học hỏi những tính năng hay và cũng bổ sung thêm nhiều tính năng hữu
ích khác để tạo ra một mạng xã hội có thể kết nối được những tình nguyện viên một
cách hiệu quả:





Hỗ trợ qun góp trực tiếp tới hồn cảnh khó khăn.
Xác thực các tổ chức, cá nhân thành lập hoạt động tình nguyện
Hiển thị tiến độ dự án.
Hiển thị phạm vi vùng miền được hỗ trợ với hoạt động, chiến dịch.

6


− Phân loại danh mục tác động của chiến dịch thiện nguyện (mơi trường, giáo
dục, văn hóa, sức khỏe)

− Phân loại mục đích bài đăng chiến dịch thiện nguyện (Quyên góp tiền, tìm
kiếm tình nguyện viên, tìm kiếm người hiến máu, quyên góp những vật phẩm
cũ như sách, quần áo)
− Tạo chiến dịch tình nguyện (tạo hoạt động tình nguyện).
− Tham gia chiến dịch tình nguyện (đóng góp tài sản, quyên góp vật phẩm như
sách, quần áo).
− Theo dõi các sự kiện, chiến dịch đang và sắp diễn ra.
− Gửi tin nhắn, nhận tin nhắn.
− Tìm kiếm mọi người.
− Đăng bài viết lên trang các nhân.
− Người dùng đăng nhập và đăng ký tài khoản.
1.5. Phạm vi ứng dụng
Sản phẩm mạng xã hội dành cho việc thiện nguyện bao gồm ứng dụng chạy trên môi
trường Android.
Đối với những người đứng ra tổ chức sản phẩm sẽ cung cấp các phương thức kết nối
với những tình nguyện viên, quản lý thời gian diễn ra những hoạt động thiện nguyện
và số lượng tình nguyện viên tham gia hoạt động. Đồng thời hỗ trợ trao đổi trực tiếp
với những tình nguyện viên.
Đối với các tình nguyện viên sản phẩm sẽ kết nối các tình nguyện viên đến với các
hoạt động thiện nguyện được tạo bởi các nhà hảo tâm. Các bạn tình nguyện có thể
được tham gia vào ban quản trị của hoạt động để giúp đỡ việc quản lý các hoạt động
thiện nguyện diễn ra trong chiến dịch.
Các chức năng chính của sản phẩm hướng đến việc kết nối các bạn tình nguyện viên
với những ban tổ chức và những nhà hảo tâm. Thêm vào đó là chức năng trao đổi
trực tiếp thông qua việc chat online.

7


Chương 2. TỔNG QUAN CÔNG NGHỆ

2.1. React Native, Redux Toolkit, Redux-Saga
2.2.1. React native
React Native được phát triển bởi Facebook với mục đính ban đầu là áp dụng vào
mạng xã hội. Do đặc tính cơng nghệ của mạng xã hội, nên React Native được định
hướng là một framework hướng đến phát triển ứng dụng di động đa nền tảng.
React Native hiện tại chỉ hỗ trợ phát triển ứng dụng di động hệ điều hành Android
và iOS, ít hơn so với Ionic (Android, iOS, Windows Phone). Một số ứng dụng nổi
tiếng được sử dụng bằng React Native: Facebook, Instagram, Skype.
Đặc điểm nổi bật của React Native:
− React native có lượng người dùng là lập trình viên rất đơng, vì vậy các vấn
đề sẽ được giải quyết một cách nhanh chóng.

Hình 2.1: Logo ứng dụng React Native
− Khả năng tái sử dụng các đoạn mã, và các thành phần được phát triển sẵn.
− React native có khả năng chạy trên cả 2 mơi trường hệ điều hành là
Android và IOS.
Nhược điểm:
− Vẫn đòi hỏi native code.
− Hiệu năng sẽ thấp hơn với app thuần native code.
− Bảo mật không cao do dựa trên JavaScripts.
− Quản lý bộ nhớ.
− Khả năng tùy biến cũng không thực sự tốt đối với một vài module.

8


2.2.2. Redux Toolkit
Redux là một thư viện JavaScript giúp tạo ra thành một lớp quản lý trạng thái của
ứng dụng. Được dựa trên nền tảng tư tưởng của kiến trúc Flux do Facebook giới
thiệu, do vậy Redux thường là bộ đơi kết hợp hồn hảo với React (React Js và

React Native).
Redux Toolkit là một thư viện giúp mình viết Redux tốt hơn, dễ hơn và gọn gàng
hơn.

Hình 2.2: Cách hoạt động của Redux Toolkit
2.2.3. Redux-Saga
Redux-Saga là một thư viện redux middleware, giúp quản lý những side effect
trong ứng dụng redux trở nên đơn giản hơn. Bằng việc sử dụng tối đa tính
năng Generators (function*) của ES6, nó cho phép ta viết chương trình “bất đồng
bộ” nhìn giống như là “đồng bộ”.
Redux-Saga đơn giản được dùng để xử lý tất cả những vấn đề bất đồng bộ xảy ra
ở reducer, hay đọc dữ liệu từ bộ nhớ, …

Hình 2.3: Cách hoạt động của Redux-Saga

9


2.2. NestJs và MongoDB
2.2.1. NestJs
NestJs là framework để xây dựng ứng dụng phía máy chủ NodeJs. Sử dựng
JavaScript, được xây dựng, hỗ trợ đầy đủ TypeScript và kết hợp các yếu tố của
OOP. Nest cung cấp mức độ trừu tượng cao hơn những NodeJs framework khác
như Express/Fastify, nhưng cũng hiển thị trực tiếp các API cho nhà phát triển.
Điều này cho phép các nhà phát triển tự do sử dụng các module của bên thứ 3 có
sẵn.
2.2.2. MongoDB
MongoDB là cơ sở dữ liệu hướng tài liệu. Được phan loại là cơ sở dữ liệu NoSQL,
MongoDB sử dụng các tài liệu giống JSON. Vì mongoDB là cơ sở dữ liệu kiểu
NoSQL làm cho mongoDB rất linh hoạt và thích ứng với các u cầu của đề tài.

Ngồi ra mongoDB cịn hỗ trợ Indexing có thể cải thiện hiệu suất tìm kiếm trong
mongoDB
2.3. Firebase Cloud Messaging và SocketIO
2.3.1. Firebase Cloud Messaging
Firebase là một nền tảng cơ sở dữ liệu đám mây do Google phát triển để tạo các
ứng dụng website và di động. Ban đầu nó là một cơng ty độc lập được thành lập
vào năm 2011. Vào năm 2014, Google đã mua lại nền tảng này và hiện nó là sản
phẩm chủ lực của họ để phát triển ứng dụng. Chức năng chính là giúp cho người
lập trình đơn giản hóa các thao tác với cơ sở dữ liệu.

Hình 2.4: Các tính năng chính của Firebase
Firebase Cloud Messaging là một trong những chức năng chính của Firebase dùng
để gửi notification kèm theo dữ liệu từ server đến app người dùng.

10


2.3.2. SocketIO
SocketIO là 1 module NodeJS giúp cho việc giao tiếp giữa Server và Client diễn
ra tức khắc và chiếm ít tài nguyên nhất.
Ưu điểm:
− Bảo mật cao.
− Kết nối tự động đến server.
− Cho phép tạo kênh và phòng.
− Client và Server giao tiếp ngay tức khắc.

11


Chương 3. PHÂN TÍCH THIẾT KẾ ỨNG DỤNG

3.1. Phân tích ứng dụng
3.1.1. Danh sách yêu cầu của hệ thống và Use case
Bảng 3.1: Danh sách yêu cầu ứng dụng
STT

Tên yêu cầu

Ghi chú

Đăng nhập, đăng ký

Được xây dựng trên nền tảng Android.

2

Tạo chiến dịch thiện nguyện

Được xây dựng trên nền tảng Android. Ban tổ
chức có thể tạo chiến dịch để tìm kiếm tình
nguyện viên.

3

Được xây dựng trên nền tảng Android. Các tình
Tham gia chiến dịch thiện
nguyện viên sẽ tham gia vào các hoạt động phù
nguyện
hợp.

1


4

Quản lý chiến dịch

Được xây dựng trên nền tảng Android. Ban tổ
chức có thể kiểm sốt đc số lượng người tham gia,
số lượng các nhóm trong chiến dịch.

5

Trao đổi trực tuyến

Được xây dựng trên nền tảng Android. Giúp mọi
người trong chiến dịch có thể trao đổi trực tuyến
với nhau.

Đánh giá tình nguyện viên

Được xây dựng trên nền tảng Android. Đánh giá
mức độ tham gia chiến dịch của những tình
nguyện viên.

6

12


Sơ đồ 3.1: Sơ đồ Use case


13


Bảng 3.2: Bảng danh sách Use case
STT

Tên Use case

Ghi chú

1

Đăng nhập, đăng kí

Cho phép người dùng đăng nhập, đăng kí vào hệ
thống

2

Tạo chiến dịch

Khởi tạo chiến dịch thiện nguyện.
Nghiệp vụ xây dựng dành cho ban tổ chức chiến
dịch để quản lý số lượng tình nguyện viên, thời
gian diễn ra chiến dịch, và các nhóm có trong
chiến dịch.
Cho phép xem các thơng tin cơ bản của tình
nguyện viên và mức độ tin cậy của tình nguyện
viên.


3

Quản lý chiến dịch

4

Xem thơng tin tình nguyện viên

5

Đánh giá tình nguyện viên

Thực hiện đánh giá tình nguyện viên thơng qua
độ tích cực khi tham gia chiến dịch.

6

Kết bạn

Kết nối với những người tham gia hệ thống.

7

Xem danh sách những chiến dịch đã
tham gia

Hỗ trợ xuất danh sách, thống kê lại số lượng
chiến dịch đã tham gia.

8


Tìm kiếm chiến dịch

Nghiệp vụ xây dựng dành cho tình nguyện viên
để các tình nguyện viên có thể tìm kiếm các
chiến dịch phù hợp với bản thân.

9

Theo dõi chiến dịch

Theo dõi những hoạt động đã và đang xảy ra
trong chiến dịch.

10

Đánh giá

Đánh giá mức độ hỗ trợ của ban tổ chức đối với
các tình nguyện viên.

11

Tham gia chiến dịch

Trở thành thành viên trong chiến dịch.

14



Bảng 3.3: Đặc tả chức năng đăng nhập
Đăng nhập
Tên Use case

Đăng nhập

Mô tả

Đăng nhập tài khoản của người dùng

Người thực hiện

Người dùng

Điều kiện trước xử lý

Hệ thống khởi động thành công

Sau xử lý

Đăng nhập thành công: Cho phép người
dùng truy cập vào hệ thống và hiển thị
các chức năng.
Đăng nhập thất bại: Thông báo sai tài
khoản, mật khẩu và hiển thị lại trang
đăng nhập
Chương 3. Bật ứng dụng, hiển thị màn
hình đăng nhập cho người dùng.
Chương 4. Người dụng nhập tên tài
khoản và mật khẩu.

Chương 5. Ấn nút “Đăng nhập”
Chương 6. Hiển thị kết quả đăng nhập.
Nếu thành công sẽ vào trang chủ của
ứng dụng.
Hiển thị màn hình đăng nhập.
Người dùng nhập tên đăng nhập và mật
khẩu
Nhấn chọn “Đăng nhập”
Hệ thống kiểm tra xem tài khoản có trong
cơ sở dữ liệu hay không.
Nếu sai thông tin đăng nhập sẽ báo lại
cho người dùng.
Yêu cầu nhập lại thông tin đăng nhập.
Tài khoản người dùng phải được xác
thực số điện thoại và email đăng nhập.

Các bước thực hiện

Dịng sự kiện chính

Dịng sự kiện khác

Yêu cầu đặc biệt
Phi chức năng
Ghi chú và vấn đề

Thực hiên trên nền tảng di động

15



Bảng 3.4: Bảng đặc tả chức năng tạo chiến dịch
Tạo chiến dịch
Tên Use case

Tạo chiến dịch

Mô tả

Khởi tạo chiến dịch thiện nguyện

Người thực hiện

Người dùng

Điều kiện trước xử lý

Đăng nhập thành công vào ứng dụng

Sau xử lý

Thành công: chiến dịch được tạo ra và
hiển thị ở trang chủ của ứng dụng.
Thất bại: thông báo tạo chiến dịch thất
bại.
1. Sau khi đăng nhập thành công người
dùng sẽ được chuyển đến giao diện
trang chủ, ở đây sẽ có nút để khởi tạo
chiến dịch.
2. Ấn nút khởi tạo chiến dịch.

3. Điền thông tin cho chiến dịch (ngày
bắt đầu, ngày kết thúc, địa điểm bắt
đầu, địa điểm kết thúc, số lượng tình
nguyện viên tham gia mong muốn)
Hiển thị màn hình tạo chiến dịch.
Điền đầy đủ thông tin chiến dịch.
Chiến dịch vừa được tạo sẽ hiển thị trên
trang chủ.

Các bước thực hiện

Dịng sự kiện chính

Dịng sự kiện khác
Yêu cầu đặc biệt
Phi chức năng
Ghi chú và vấn đề

Thực hiên trên nền tảng di động

Bảng 3.5: Đặc tả chức năng xem danh sách chiến dịch
Xem danh sách chiến dịch
Tên Use case

Xem danh sách chiến dịch đã tham gia

16



×