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

Khóa luận tốt nghiệp Kỹ thuật phần mềm: Xây dựng mạng xã hội chia sẻ khoảnh khắc cho những người yêu động vật

110 5 1
Tài liệu đã được kiểm tra trùng lặp

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

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

THÔNG TIN TÀI LIỆU

Thông tin cơ bản

Tiêu đề Xây dựng mạng xã hội chia sẻ khoảnh khắc cho những người yêu động vật
Tác giả Trần Diệu Bảo Trõn, Đoàn Thế Duy
Người hướng dẫn ThS. Nguyễn Thị Thanh Trực, TS. Nguyễn Hà Giang
Trường học Trường Đại Học Công Nghệ Thông Tin
Chuyên ngành Kỹ Thuật Phần Mềm
Thể loại Khóa luận tốt nghiệp
Năm xuất bản 2021
Thành phố TP. Hồ Chí Minh
Định dạng
Số trang 110
Dung lượng 41,49 MB

Nội dung

Mục tiêu đề tài: Xây dựng nên một mạng xã hội với đầy đủ chức năng cho người dùng.. Phạm vi và đối tượng đề tài: 3.1 Phạm vi công nghệ NodeJS Back-end EJS engine view AJAX client MongoDB

Trang 1

ĐẠI HỌC QUOC GIA TP HO CHÍ MINH

TRUONG DAI HOC CONG NGHE THONG TIN

KHOA CONG THUAT PHAN MEM

Trần Diệu Bảo Trân — 17521150

Đoàn Thế Duy - 17520391

KHÓA LUẬN TÓT NGHIỆP

Xây dựng mạng xã hội chia sé khoáng khắc cho những

người yêu động vật

Social Networking for Animal Lovers

KY SU NGANH KY THUAT PHAN MEM

GIANG VIEN HUONG DAN

ThS Nguyễn Thi Thanh Trúc

TS Nguyễn Hà Giang

TP HO CHÍ MINH, 2021

Trang 2

ĐẠI HOC QUOC GIA TP.HỎ CHÍ CONG HÒA XÃ HỘI CHỦ NGHĨA

MINH VIỆT NAM

TRƯỜNG ĐẠI HỌC Độc Lập - Tự Do - Hạnh Phúc

CÔNG NGHỆ THÔNG TIN

TP HCM, ngày 20 tháng 7 năm 2021

NHAN XÉT KHÓA LUẬN TOT NGHIỆP

(CUA CÁN BO HUONG DAN/PHAN BIEN)

Tên khóa luận:

Xây dựng mạng xã hội chia sẻ khoảng khắc cho những người yêu động vật

Social Networking for Animal Lovers

Nhóm SV thực hiện: Cán bô hướng dẫn/phản biên:

Trần Diệu Bảo Trân - 17521150 TS Nguyễn Hà Giang

Đoàn Thế Duy - 17520391 ThS Nguyễn Thị Thanh Trúc

Đánh giá Khóa luận

1 Vé cuôn báo cáo:

Số trang 89 Sốchương 5

Số bảng số liệu 0 Số hình vẽ 53

Số tài liệu tham khảo 10 Sản phẩm 1

Một số nhận xét về hình thức cuốn báo cáo:

Bố cục khóa luận trình bay cân đối phan lý thuyết và công nghệ gồm năm chương,

nội dụng ở chương 1 Mở daui: viết khá rõ ràng và chỉ tiết các nghiên cứu liên quan

và nêu rõ mục tiêu đề tài Chương 2 Cơ sở lý thuyết và công nghệ và kỹ thuật áp

Trang 3

dụng Chương 3 Phân tích yêu cầu Chương 4 Thiết kế và xây dựng ứng dụng

Chương 5 Kết luận thực nghiệm

2 Về nội dung nghiên cứu:

Khóa luận đã tìm hiểu và tích hợp các công nghệ ngăn xếp công nghệ MERN

(MERN Stack), nghiên cứu các công nghệ MongoDB, ExpressJS, EJS : JavaScript template, NodeJS, Ajax, Socket.IO, Bscript dé phát triển ứng ung, bảo mật thông

tin trong quá trình truyền tải và truy xuất dữ liệu.

3 Về chương trình ứng dụng:

Xây dựng mạng xã hội hỗ trợ người yêu thích động vật trao đổi và chia sẻ giao diện

đơn giản, dé sử dụng với nhóm đối tượng phù hợp.

« Chia sẻ những khoảng khắc của minh hoặc những bài viết lên trang chủ

+ Tao ra một sân chơi cho cộng đồng có cùng sở thích tương tác với nhau

trong nhón và theo dõi các fanpage.

« Cho phép người dùng kết bạn, tương tác và chat với đối phương.

4 Về thái độ làm việc của sinh viên:

Nhóm sinh viên chăm chỉ, chịu khó học hỏi tìm kiếm, chú ý lắng nghe các góp ý Đánh giá chung:Khóa luận đạt yêu cầu của một khóa luận tốt nghiệp kỹ sư,

Điểm từng sinh viên:

Trần Diệu Bảo Trân: 8.0/10

Đoàn Thé Duy: 8.0/10

Trang 4

Người nhận xét

(Ký và ghi rõ họ tên)

Nguyễn Thị Thanh Trúc

Trang 5

ĐẠI HỌC QUOC GIA TP HO CHÍMINH CỘNG HÒA XÃ HỘI CHỦ NGHĨA VIET NAM

TRƯỜNG ĐẠI HỌC Độc Lập - Tự Do - Hạnh Phúc

CÔNG NGHỆ THÔNG TIN

DE CƯƠNG CHI TIẾT

TÊN ĐÈ TÀI: Xây dựng mạng xã hội chia sẻ khoảng khắc cho những người yêu động

vật

Cán bộ hướng dẫn: ThS Nguyễn Thị Thanh Trúc - TS Nguyễn Hà Giang

Thời gian thực hiện: Từ ngày 15/03/2021 đến ngày 30/06/2021

Sinh viên thực hiện:

Trần Diệu Bảo Trân 17521150

Đoàn Thế Duy 17520391

Nội dung đề tài

1 Đặt vấn đề Ngày nay, mạng xã hội không còn xa lạ với chúng ta và nó ngày càng phát triển mạnh

mẽ Có thể nói nhu cầu chia sẻ, kết nối giữa người với người ngày càng tăng mang đến

cho người sử dụng các mối quan hệ và giúp ta giải tỏa cảm xúc.v.v Hiện nay Facebook

dang là một trong những mạng xã hội lớn nhất dé người sử dụng kết nối bạn bè hoặc cộng

đồng có cùng mối quan tâm Chính vì là một mạng xã hội lớn như vậy cho nên chúng ta

rất khó tìm được những người bạn thật sự có chung sở thích và tìm được các bài viết liên

quan tới những gì mà ta quan tâm Ví dụ: một người yêu thích thú cưng thì họ chỉ muốn

được hòa vào một cộng đồng những người yêu thích thú cưng như mình mà không bị chỉ

phối bằng những bài viết không liên quan khác Chính vì vậy Mạng xã hội Petpedia dành

riêng cho những người yêu thích thú cưng sẻ giúp cho ho dé dang kết nối được với những

Trang 6

người bạn có đặc điểm chung đó chính là yêu động vật.

2 Mục tiêu đề tài:

Xây dựng nên một mạng xã hội với đầy đủ chức năng cho người dùng.

Áp dụng thành công các công nghệ nghiên cứu vào việc phát triển một mạng xã

hội.

Tao ra giao diện đơn giản phù hợp xu hướng hiện đại, dễ nhìn.

Website chạy ổn định.

Có responsive cho các thiết bị di động.

Database có khả năng mở rộng, truy suất nhanh.

Phạm vi và đối tượng đề tài:

3.1 Phạm vi công nghệ NodeJS (Back-end)

EJS engine (view)

AJAX (client) MongoDB (database)

3.2 Pham vi đối tượng Người dùng ở mọi độ tuổi có máy tính và điện thoại thông minh,

Người có nhu cầu tìm kiếm những người bạn có chung sở thích hoặc tìm kiếm

những hình ảnh thú vị của thế giới động vật Phương pháp thực hiện

4.1 Công nghệ sử dụng Front-end: EJS Engine Template : một template dựa trên HTML, CSS làm giao diện; AJAX dùng trong xử lí và tương tác giữa người dùng với hệ thống.

Back-end: NodeJS

Database: MongoDB 4.2 Lựa chon công nghệ

Về phần ngôn ngữ lập trình, chúng tôi chọn các công nghệ liên quan đến Javascript nhằm tạo ra một trang web chỉ với một ngôn ngữ Javascript hiện nay là ngôn ngữ lập trình

Trang 7

chuyên về lập trình các ứng dụng web hướng người dùng, quan tâm đến tương tác, dé học

và có cộng đồng lập trình viên phong phú.

Về phan cơ sở dữ liệu, với mục đích dé ra ban dau, là ưu tiên về mặt tốc độ truy xuất và

khả năng mở rộng cực kì linh hoạt, MongoDB là sự lựa chọn của nhóm Qua tìm hiểu trên

Internet, do đáp ứng khả năng “thời gian thực” của website, việc sử dụng No-SQL là thực

sự cần thiết.

5 Kết quả mong đợi

Tao ra một trang web có giao diện gần gũi, dé sử dụng, có kha năng với đầy đủ chức năng

kết nối những người có cùng đam mê về động vật, chia sẽ, lưu giữ những khoảnh khắc đẹp đáng nhớ.

Tim hiểu các chức năng của một mạng xã hội Trần Diệu Bảo Trân

Xây dựng cấu trúc Database Đoàn Thế Duy

Dung UI Mockup Tran Diéu Bao Tran

Thiết kế Layout Sign In Screen, Sign Up | Trần Diệu Bảo Trân

Screen

Thiết kế Layout Newsfeed Page Đoàn Thế Duy

Thiết kế Layout Profile Page Trần Diệu Bảo Trân

Thiết kế Layout Left Menu, Right Menu Đoàn Thế Duy

Trang 8

Giai đoạn 2: Từ 04/2021 — 05/2021

Công việc Sinh viên thực hiện

Tìm hiểu Realtime Chat, SocketlO cho tính

nang Chat va Notification

Doan Thé Duy

Thiét ké Layout Page, group Doan Thé Duy

Tạo va kết nối database dùng MongDB

Compass và MongDB Atlas

Đoàn Thế Duy

Xây dựng chức năng CRUD bài post Trần Diệu Bảo Trân

Xây dựng chức năng Update profile cho User Trần Diệu Bảo Trân

Xây dựng chức năng quan lý Page và Group Đoàn Thế Duy

Xây dựng chức năng Kết bạn Trần Diệu Bảo Trân

Xây dựng chức năng Chat Đoàn Thế Duy

Xây dựng chức năng Notification Trần Diệu Bảo Trân

Thu thập phân tích dé liệu, tối ưu hiển thị thông

tin trên trang người dùng

Đoàn Thế Duy

Giai đoạn 3: Tir 05/2021 — 06/2021

Xây dựng chức năng Like, Comment, Share

bài post

Trần Diệu Bảo Trân

Xây dựng chức năng quản lý bạn bè Trần Diệu Bảo Trân

Xây dựng chức năng Tìm kiếm (user, page,

Trang 9

Responsive, tối ưu hiển thị thông tin trên trang

người dùng

Đoàn Thế Duy

Kiểm tra, fix lỗi, kiểm thử Trần Diệu Bảo Trân — Đoàn Thế Duy

Triển khai trên môi trường Internet Đoàn Thé Duy

Tiếp thu feedback, cải thiện website Trần Diệu Bảo Trân — Đoàn Thế Duy

Hoàn thiện trang web Trần Diệu Bao Trân — Đoàn Thế Duy Viết báo cáo Trần Diệu Bảo Trân

(Ký tên và ghi rõ họ tên)

Trần Diệu Bảo Trân

Trang 10

LỜI CÁM ƠN

Đầu tiên, chúng tôi xin gởi lời cảm ơn chân thành đến tập thé quý Thay Cô Trường Đại học Công nghệ thông tin — Đại học Quốc gia TP.HCM và quý Thay Cô

khoa Công nghệ phần mềm đã giúp cho nhóm tác gia có những kiến thức cơ bản làm

nên tang dé thực hiện đề tài này.

Đặc biệt, chúng tôi xin gửi lời cảm ơn và lòng biết ơn sâu sắc nhất tới Ths Nguyễn

Thị Thanh Trúc và Ts Nguyễn Hà Giang đã hướng dẫn, hỗ trợ nhóm hoàn thành đồ

khóa luận tốt nghiệp.

Trong thời gian một học kỳ thực hiện đề tài, chúng tôi đã vận dụng những kiến thức nền tảng đã tích lũy đồng thời kết hợp với việc học hỏi và nghiên cứu những kiến

thức mới Từ đó, nhóm vận dụng tối đa những gi đã thu thập được để hoàn thành một báo cáo đồ án tốt nhất Tuy nhiên, trong quá trình thực hiện, chúng tôi không tránh

khỏi những thiếu sót Chính vì vậy, chúng tôi giả rất mong nhận được những sự góp

ý từ phía các Thầy Cô nhằm hoàn thiện những kiến thức mà chúng tôi đã học tập và

là hành trang để nhóm tác giả thực hiện tiếp các đề tài khác trong tương lai.

Xin chân thành cảm ơn các quý Thầy Cô!

Trang 11

MỤC LỤC

Chương 1 Mở đầu

TA D&E VAN dG 2 1.2 Mục tiêu để tài -: 2222211212222211 2221221122201 e 3 1.3 Đối tượng và phạm vi nghiên cứu -:¿:::¿222222222222+2+zzrsrtrrrrrxes 3 1.3.1 Đối tượng it 22222222111 E211 ccce 3

1.3.2 Phạm vi nghiên CỨU +: c5: 1 E2, 3

1.4 Cấu trúc khóa luận -:-ccccttnnhHnnHH re 4 Chương 2 Cơ sở lý thuyết và áp dụng công nghệ : -c+2cc5scz2 5 2.1 Nền tảng NodelJ§ 0 22222222222222221212222222222rrre 5

2.1.1 — Giới thiệu chung

2.1.2 Đặc điểm nổi bật của NodeJS -: 222222222222ccccrrrrrrrrrves 5

2.1.3 Lý do sử dụng Nodel]S§ -.ccccccierieirrre 6 2.2 MongoDB tt nhớ 6

2.2.6 MongoDB Atlas cty 8

2.3 Các thư viện, package và công cụ liên quan ¿+ s+cccsxsxeccrvrxse+ 9

2.3.1 EXpress]S nhe 9

Trang 12

2.3.2 JWT (JSON Web Token) 5c S22 net 10 2.3.3 SOcket io HH uưưu 11 2.3.4 BSCTID( HH he 12 2.3.5 EIS template engine -c che 12

Chương 3 Phân tích yêu cầu

3.1 Mục đích ch HH1 21, 13

3.1.1 Phạm vi và các chức năng của ứng dụng -. -‹-‹ -+c-+¿ 13

3.2 Tổng quan để tài -::-222222222122121122222221111111 2 1222212111111 ca 15 3.2.1 Bối cảnh ìììccinnHHHhHHerue 15 3.2.2 Chức năng sản phẩm -2222222222222222222rrrrrrrrer 15

3.2.3 Phạm vi lớp người dùng 2- 255 Sccctsctrrerererrrrerree 15

3.2.4 Môi trường hoạt động - se ccccetrerrerrrrrrrrrrrree 15 3.2.5 Ràng buộc về thiết kế và triển khai -222ccc+:z+2tcrvzzxes 16

3.2.6 Các yếu tô bên ngoài cần thiẾt :::2:222222222222222rrrrrree 16

3.3 Đặc tả yêu cầu chức năng

3.3.1 Dang Kí: HH 16 3.3.2 Đăng nhập c nhhrrerrưe 16

3.3.3 Thay đổi mật khẩu -: 22-+cc2222222212112Ccccc.trrrrrke, 17

3.3.4 Cập nhật thông tin cá nhân -¿©5¿©22++c+zcrxererzrrrrer 17

3.3.5 Xem thông tin người dùng

3.3.6 KẾtbạn nhe 17

3.3.7 Chấp nhận / từ chối lời mời kết bạn -2ccc::zz+2222vzzxe+ 18

3.3.8 Danh sách bạn bề - 3 32 121212121212121111111 1E xe 18

Trang 13

3.3.9 Tìm kiếm 2222222112 22121211111 eerrrrrrrie 18

3.3.10 Đăng bài HH HH Hà HH re 18

3.3.11 Like / Bình luận / Phản hồi bình luận :-:::2:2+2zzzzzzzzzze2 19

3.3.12 Chia sẻ bài đăng c nhe eeướn 19

3.3.13 Chat

3.3.14 Tad trang cớ 19 3.3.15 Theo dõi trang -c- cớ 19 3.3.16 Tao nhóm L1 2c 12t 1212121111 10151 1111110121 11111 1101111011010 11x 20 3.3.17 Giri lời tham gia nhóm ¿5+ S92 két he, 20 3.3.18 Xác nhận tham gia nhóm ¿- 5c 5t2t‡tc+‡E‡keEerkrkrkekerrree 20

3.3/19 Để xuất ì Hee 20 3.4 Đặc tả yêu cầu phi chức năng -: -©222222222+2+++222222222111122esrte 21 3.5 Kiến trúc ứng dụng Mạng xã hội Petpedia -2222ccccccrrrrrrrre 21 3.5.1 _ Kiến trúc ứng dụng +++2222222222ttrrrrrrrrrrre 21

Trang 14

4.2.4 Newfeeds ch HH Ho ớy 40 4.2.5 Kem thông tin U§€r esse kén 41

4.2.6 U04 42

4.2.7 Cập nhật thong tin neces cence nhu 43

4.2.8 Tim kiếm thông tin

4.2.9 Đề xuất kết quả tìm kiếm -:¿¿222222222222222.2222221212222 xe 45 4.2.10 Like, comment, phản hồi commenI 22: 22s 2E 222122252221122112x52 46 4.2.11 Gửi/ Hủy lời mời kết bạn -522222222222222221222 ree 47 4.2.12 Chấp nhận/ Từ choi lời mời kết bạn -cerrrce 48 4.2.13 Thay đổi mật khẩu :c¿¿:¿22222222222222222222222221111222 xe 49

4.2.14 Tạo trang St thun 50 4.2.15 Like / Unlike trang -.-5c5ccccSccstereriererree 51 4.2.16 Gửi/ Huy lời mời tham gia nhóm -¿-5¿55¿5++5+2c>xs>+ 52

4.2.17 Chấp nhận / Từ chới lời mời tham gia nhóm - 53 4.3 Sơ đồ tuần tự -222ccc 222222221112 1 12222111 eeeerie 54

4.3.1 Đăng ký thành viên ccct th nhe 54

4.3.2 Đăng nhập Hee 55

443.3 Đăng xuẤt reo 56

43.4 Newfeed các HH 10 HH0 57 4.3.5 Xem thông tin user -5cccccscsrerieriererree 58

4.3.6 Đăng bài pOSE HH Hee 59

4.3.7 Cap nhật thông tin -5Ặ- 5c 222tr 60

4.3.8 Tìm kiếm theo keyword

Trang 15

4.3.9 Đề xuất theo kết quả tìm kiếm -222222+z++zt22222222E2xeecve+ 62

4.3.10 Like, Share, Commei( - c2 2212111 311 1111125111151 151 1xx 63

ABUL Gửi/ Hủy lời mời kết bạn -522222222222222221222 re 64 4.3.12 Chấp nhận / Từ chối lời mời kết bạn -¿-2vcsscc+c+ 65 4.3.13 Thay đổi mật khẩu.

4.3.14 Tao trang ch hon 67 4.3.15 Like / Unlike trang c-5ccccccscceterierierrree 68 4.3.16 Gui / Hủy lời mời tham gia nhóm ¿ ¿55¿5++c+2x+cs>+ 69

4.3.17 Chấp nhận / Từ chối lời mời tham gia nhóm - 70 4.4 Thiết kế cơ sở dữ liệu 222222+222211222212211112222112 2.121 71 4.4.1 Sơ đồ lớp tổng quất -¿-::2+2222222221111211222222121111122 xe 71

4.4.2 — Bảng mô tả Hàn 71 4.5 Bang ràng buỘc S222 2H HH rre 76 4.6 Giao diỆNn nh HH Hàn 76

4.6.1 Dang nhập Ă Hee 76

4.6.2 Dang ký thành viên -:-5:25-2cc2tcssrrerierieirrree 77 4.6.3 Newfeed (trang chủ) -:-7:2c-2cc2essrirerierierrrree 77

4.6.4 Đăng bài pOSE Hee 78

4.6.5 _ Thông tin chỉ tiết user -5222222222222222222222222.E.Errree 78

4.6.6 Tạo trang HH He 79

4.6.7 Danh sách page đã like ccccc cenhhheeriererey 79

4.6.8 Trang fanpage che 80 4.6.9 Tạo nhóm

Trang 16

4.6.10 Danh sách nhóm đã tham gia 5+ 2‡c‡EeS‡Etrkerkerrkerkrrx 81

Phụ lục — Hướng dẫn cài đặt 252222222 222 t2 88

Môi trường thực nghiỆm - c2 St3 21 212 1212712212112 E1 rree 88

Trang 17

DANH MỤC HÌNH

Hình 2.1 — Logo Node]JS - - + - 1 S23 121212 1212121 111101212121 010101 1n ry 5 Hình 2.2 — Logo MongolDB - 5+ 1v 2 HT HH 6

Hình 2.3 - MongoDB Atlas - 5-5 25t 212321 12 2121210111111 1 pro 8

Hình 2.4 — Cách hoạt động của ExpressJS oo cece eeseeseeeeseseeeseseseseseeesneeaeeeeee 10 Hình 2.5 — Cách hoạt động của JWTT - + Set HH2 re 11 Hình 2.6 - socket.io hoạt động trong ChatApp 5-5252 522c+c+cscscczezcsr 12

Hình 3.1 — Sơ đồ chức năng ứng dụng 2:::£222222vvvrrrrtrtrrrkrtrrrrrrrrrrrree 14 Hình 3.2 Kiến trúc ứng dụng : 2++22+++++22E+++tSEEE+rrttEExvrrrrrrrrrrrrrkrree 21

Hình 4.1 - Usecase tổng quát ứng dụng -::¿-v2c++++22222vvvrrrrrrrrrrvser 24

Hình 4.2 — Activity diagram đăng ký thành viên 37

Hình 4.3 — Activity diagram đăng nhập.

Hình 4.4— Activity diagram đăng xuất

Hình 4.5 — Activity diagram newfeed 0

Hinh 4.6 — Activity diagram xem user Al

Hình 4.7 — Activity diagram đăng bai post ee - 5c 5S 42 Hình 4.8 — Activity diagram cập nhật thông tin ¿- 5-52 25+5+zc+c+s<++ 43

Hình 4.9 — Activity diagram tìm kiếm thông tỉn - -c-:¿22ccccvcccrrrrrrrrvree 44 Hình 4.10 — Activity diagram đề xuắt -2c22cc22 22 xi 45

Hình 4.11 — Activity diagram like, comment, reply - - << +©+esecs 46 Hình 4.12 — Activity diagram gửi / hủy lời mời kết bạn -cccccc+ 47 Hình 4.13 — Activity diagram xác nhận lời mời kết bạn :cscc+ 48

Hình 4.14 — Activity diagram thay đổi mật khẩu ¿©+c++ccvsececrz 49

Hình 4.15 — Activity diagram tạo trang 5-5 ScSttterererkekerererrkerree 50 Hình 4.16 — Activity diagram like / unlike trang -¿- ¿s5 +s+s*cvxeeeeexexex 5

Hình 4.17 — Activity diagram gửi lời mời tham gia nhóm - : 52 Hình 4.18 — Activity diagram xác nhận tham gia nhóm -. -:-+-+-+ + 53

Trang 18

Hình 4.19 — Sơ đồ tuần tự đăng ký 22:c22222ct222vvrtEEEtrrrrrrrtrrerrrrrrrrer 54

Hình 4.20 — Sơ đồ tuần tự đăng nhập -2¿©+2++22EE+zt2EEEEEztrtrrkrrrrrrkrcee 55

Hình 4.21 — Sơ đồ tuần tự đăng xuất -22222 222222 E211 rrrrrree 56 Hình 4.22 — Sơ đồ tuần tự newfeed c2 x2 x22E122112112211 2211111 E.1xcxee 57

Hình 4.23 — So đồ tuần TU XOM USEL ee 58

Hình 4.24 — Sơ đồ tuần tự đăng bai post cccccsssssscsccssssssessececssssseeececesssneseeeessane 59 Hình 4.25 — Sơ đồ tuần tự cập nhật thông tin -cccc¿-+222vcvvvrcesrrrrrrrree 60 Hình 4.26 — Sơ đồ tuần tự tìm kiếm theo keywOrd -c:©c2sscceccvsvceeex 6l

Hình 4.27 - So đồ tuần tự để XuUẤT, 50c 2s E2 1112221121112 EE.eererii 62

Hình 4.28 — Sơ đồ tuần tự like, comment, SÌaT© 5 5+ £sxssxsesexsereeeessee 63 Hình 4.29 — Sơ đồ tuần tự gửi / hủy lời mời kết bạn -: .ccccccssce+ 64

Hình 4.30 — Sơ đồ tuần tự xác nhận lời mời kết bạn -:: -e 65

Hình 4.31 — Sơ đồ tuần tự thay đổi mật khẩu ÓÓ

Hình 4.32 — Sơ đồ tuần tự tạo trang 67 Hình 4.33 — So đồ tuần tự like/unlike trang 68

Hình 4.34 — Sơ đồ tuần tự gửi/hủy lời mời vào nhóm „69

Hình 4.35 — Sơ đồ tuần tự xác nhận lời mời vào nhóm 70 Hình 4.36 — Sơ đồ lớp của ứng dụng - -+¿©2++++2+v+retvvvvrsrrvsrresrr 71

Hình 4.37 — Giao diện dang nhập ¿- 552222222 re 77 Hình 4.38 — Giao diện đăng ký thành viên +55 +‡c*rvrvevrvsrrrerrerkerer T7

Hình 4.39 — Giao diện trang chủ - 5:52 +2+x‡ 2222 121111111 cree 78

Hình 4.40 — Giao diện đăng bài pOSf - ¿+ + St HH it 78 Hình 4.41— Giao diện thông tin uS€T - 5252 522EE£2Ev£zkzEeEerrrkrkrkerrrre 79 Hình 4.42 — Giao diện tao (AIE óc + kh HH TT HH it 79

Hình 4.43 — Giao diện danh sách page - ¿+5 ki 80

Hình 4.44 — Giao diện trang 5+ + 2S 321212 1212121011111 E11 re 80 Hình 4.45 — Giao diện tạo nhÓm -¿- ¿+ + x 3+ St EvEEeEekxexerrrkerrserrrrerrrrrrree 81

Hình 4.46 — Giao diện tạo danh sách nhóm -¿- ¿ eseeseseeeeesseseseseeneeeee 81

Hình 4.47 — Giao diện tạo danh sách gửi lời kết bạn cc- sec xExrkerrkrsey 82

Trang 19

Hình 4.48 — Giao diện khung chat - 5 5 5 +13 1E ng HH ng rưệt 82

Hình 4.49 — Giao diện tìm kiếm bạn bè -.¿-22-©2++22++2cvretxrrerxrerxrrrrrrrres 83

Hình 4.50 — Giao diện trang cá nhân + + + + 131v TH ng tr 84

Hình 4.51 — Giao diện thay đối mật khẩu - 2-2 5¿©+¿+£+£x++zxzrxrrxeeree 84

Trang 20

DANH MỤC BANG

Bảng 4.1 — Mô ta usecase đăng ký thành vIiÊn - - 5 + + + sssksersee 25

Bảng 4.2 — Mô ta usecase đăng nhập - - - 5à HH HH TH HH giết 25

Bang 4.3 — Mô tả usecase đăng XUẤt ¿+56 2222221221221 71211211211 26

Bảng 4.4 — Mô tả usecase neWÍ€€dS 4 «+ kg ng 26

Bảng 4.5 — Mô ta usecase xem thông tin US€T - c5 5S SE +kEsseeeeeeesreere 27

Bảng 4.6 — Mô tả usecase đăng bai pOSE - n3 2S HH ng ng re, 27

Bảng 4.7 — Mô ta usecase cập nhật thông tin 5 ni se, 28

Bảng 4.8 — Mô tả usecase đổi mật khâu 2: 2: 222S¿2++2E++£x+2zxezrxrrxesree 29

Bang 4.9 — Mô tả usecase tìm kiếm theo từ khóa -2- 2 2 x+2sz+zz+zxvrxzez 29

Bảng 4.10 — Mô tả usecase đề Xuất -s-©2+ 2622 2x2EE 221221 21E21EE1EExcrkrrree 30Bảng 4.11 — Mô tả usecase đề Xuất 2- + 52 212EE22E122122212112211221.211 21 crk 30

Bảng 4.12 — Mô tả usecase xác nhận lời mời Kết bạn ccssvcccxsxeEersxerereree 31

Bang 4.13 — Mô ta usecase like / unlike trang - s5 5s s++sesveexseeseeers 31

Bảng 4.14 — Mô ta usecase Chat eee cece 4c c1 11T HH HH HH 32 Bảng 4.15 — Mô ta usecase gửi lời mời tham gia nhóm 5 «+ «£+sx++s+ 33 Bảng 4.16 — Mô ta usecase xác nhận lời mời vào nhóm - -««++s«+++ss++ 33

Bảng 4.17 — Mô tả usecase tao fanpage -c c1 HH1 HH HH ng ng ng 34

Bảng 4.18 — Mô tả usecase tạo nhÓim + + + k1 1 HH ng re 34

Bang 4.19 — Mô tả usecase like / unlike bài DOSE 555555 s + s++sexsseeessers 35

Bang 4.20 — Mô ta usecase chia sẻ bài POSt - 5s HH Hàng ng ưet 35

Bảng 4.21 — Mô tả usecase comment bài POSt 5 «5< + se eskeree 36

Bang 4.22 — Mô ta usecase phản hồi commeni - - 5-2 2 2+s+E£x+£x+zezszsez 36

; gu ai on 72

Bang 4.24 — class notification 0P 72

Bang 4.25 — class SrOUP 0n 73

Bang 4.26 — class friend ObjeCt yUiiiD}})})Ú).- 73

Bang 4.27 — class bai DOSK - SH HH TH HH nh 74

Trang 21

Bảng 4.28 — class DA€ LH HH HH HH HH kg 74

Bảng 4.29 — class InDOX -ó- Ác nh HH Hư 74

Bảng 4.30 — class liker OJ€CCL - 5 «<< x11 TH ng tr 75

Bảng 4.31 — class share Object - - 5< + 1v TH TT HH ngư 75

Bảng 4.32 — class comment ObjeCt << 2111210113911 1119 11 91119 1 9 re 75

Bảng 4.34 — Các điều kiện ràng buộc ¿- ¿2+ ©2++2++2Ex2Extrxterxesrxerrecree 76

Trang 22

DANH MỤC TỪ VIET TAT

Viết tắt Diễn giải

JWT JSON Web Token

CO Constraint

DE Dependency

CRUD Create (Tao), Read (Đọc), Update (Cập nhật), Delete (Xóa)

Trang 23

Bên cạnh các mạng xã lớn như Facebook, 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ự đón nhậncủa cộng đồng Chính vì thay mạng xã hội ngách nay tập trung vào một nhóm đốitượng nhất định mà không bị những “ông lớn” đè nặng, chúng tôi đã xây dựng nên

mạng xã hội Petpedia dành riêng cho những người yêu thích thú cưng cũng như các

loài động vật bằng cách áp dụng nên tảng NodeJS va cơ sở dữ liệu mã nguồn mở

MongoDB Đề thực hiện tốt đề tài này, chúng tôi đã tham khảo mạng xã hội dành cho

thú cưng mang tên “DruzhOK” — nghĩa là “Người bạn nhỏ” được phát triển tại Nga

và quyết định xây dựng mạng xã hội dành cho thú cưng được tạo ra tại Việt Nam.Kết thúc đề tài, nhóm chúng tôi đã đạt được kết quả xây dựng nên được một mạng xãhội với giao diện thân thiện và đầy đủ chức năng cho phép người dùng :

* Chia sẽ, tìm kiếm các thông tin bằng cách đăng bài, hình ảnh, video

» Tao ra các tương tác giữa người với người với chức năng Like, bình luận, phản

hoi cũng như chia sẽ bài viết.

* _ Kết bạn bốn phương khi gia nhập hội nhóm và theo dõi trang

¢ Chat với nhau.

Trang 24

CHUONG 1 MỞ DAU

1.1 Dat van dé

Các trang mang xã hội là một hình thức giao tiếp của con người ngày càng mởrộng nhanh chóng Chúng được định nghĩa là “Những địa điểm ảo phục vụ cho mộtnhóm dân cư cụ thể, trong đó là những người cùng sở thích tụ tập giao tiếp, chia sẻ

và thảo luận về ý tưởng” Người ta đã đề xuất rằng sự thay đổi trong giao tiếp củacon người đã tao ra một nền van hóa kỹ thuật số, một phương pháp độc đáo dé chia

sẻ các chuẩn mực xã hội và quan lý hành vi Văn hóa này có thé có các tác động tíchcực và tiêu cực Tuy nhiên, chúng ta không thê phủ định sự độc đáo của văn hóa này

đó chính là khả năng chia sẻ của nó Một nghiên cứu cho rằng “sự hài lòng xã hội”,

“Số lượt thích”, “Bình luận” và “Chia sẻ” của một bài đăng nhận được là động lựctích cực của hoạt động chia sẻ trên mạng xã hội Điều này không có gì đáng ngạcnhiên vì hành vi của con người được trung gian mạnh mẽ bởi danh tiếng xã hội và

các tương tác Mang xã hội cung cấp cơ chế dé mọi người đánh giá những đóng góp

cho cộng đồng của họ

Khi người dùng sử dụng mạng xã hội Facebook dé ghi lai mối quan hệ của họ với

những người khác thì mạng xã hội dành cho thú cưng Petpedia được tập trung sử

dụng dé mô tả, xây dưng cộng đồng chia sẻ các khoảng khắc giữa người với thú cưng

cũng như những loại động vật khác Với xu hướng sở hữu cho mình thú cưng ngày

càng gia tăng, vật nuôi ngày càng trở nên gắn bó với đời sống của mỗi người Việc

có những bức ảnh ngộ nghĩnh đáng yêu của các giống loài trên những thiết bị và tảilên những nền tảng giải trí cũng tăng Petpedia được tạo ra để phục vụ cho nhữngngười muốn khoảng khắc sống động bên nhau mỗi ngày Facebook cho phép tạo

nhóm dé người dung theo đõi, nhưng vì đó là mang xã hội hướng tới đối tượng là mọi

người, ai cũng có thé ding mạng xã hội cho nên sẽ rất khó dé kiểm soát cho một cộngđồng ví dụ như công đồng những người yêu thích thú cưng Việc mất kiểm soát nộidung sẽ mau chóng làm cho những người thật sự yêu thích thú cưng sẽ cảm thấy đó

Trang 25

không còn là nơi lý tưởng để giao lưu Khảo sát cho thấy, đa số những người dùng

mạng xã hội tham gia vào một cộng đồng thú cưng chủ yếu là tìm kiếm những lờikhuyên, sự giúp đỡ cho thú cưng của họ thì họ cần một cộng đồng “sạch” dé tin tưởngchia sẻ Tuy nhiên, việc nhấn mạnh ở đây là chúng ta thu hẹp phạm vi người dùngtạo các bài đăng và nhận xét để mạng lại các cộng đồng đáng tin cậy

Chúng tôi là những người yêu thích thú cưng nên việc tạo ra một cộng đồng mạnglành mạnh, sạch, có cùng chung sở thích đã thúc đây động lực cho chúng tôi quyết

định xây dựng mạng xã hội thú cưng mang tên Petpedia.

1.2 Mục tiêu đề tài

+ Áp dụng các công nghệ về xây dựng web application dé tạo ra một sản phẩm hoàn

chỉnh, có khả năng sử dụng trong thực tế Nghiên cứu các khía cạnh, van dé, giải pháp

và quy trình tạo ra một mạng xã hội.

* Tạo ra một trang web kết nối những người có cùng đam mê về động vật, chia sẻ,lưu giữ những khoảnh khắc đẹp đáng nhớ, lan tỏa đam mê

¢ Tao ra các nhóm, trang dé chia sẽ kinh nghiệm các vấn đề liên quan tới chăm sóc,nuôi dưỡng hay mua bán thú cưng.

» Nghiên cứu, đề xuất các bài viết, hội nhóm phù hợp đến sở thích của người dùng

+ Tối ưu hóa trải nghiệm người dùng, hệ thống chạy nhanh ổn định, realtime chat

* Thu hút được số lượng lớn người dùng sử dụng

* Tìm hiểu các van đề về bảo mật thông tin, mã hóa dữ liệu, truyền thông tin bảo mật

giữa server với client.

1.3 Đối tượng và phạm vi nghiên cứu

1.3.1 Đối tượng

+ Tất cả các người dùng mạng xã hội, giới trẻ hiện nay

* Những người có đam mê, yêu thích động vật muốn chia sẻ, lan toa tinh thần đến

với cộng đông.

1.3.2 Phạm vỉ nghiên cứu

e Vé không gian: ở Việt Nam và các nước trên thê giới.

Trang 26

e_ Về thời gian: xu hướng thiết kế web,công nghệ, nhu cầu về mạng xã hội từ

2019- nay

e Về công nghệ:

NodeJS (Back-end) EJS engine (view) AJAX (client)

MongoDB (database)

O00 0

1.4 Cấu trúc khóa luận

Các phần còn lại của khóa luận có cấu trúc như sau:

Chương 2 : Cơ sở lý thuyết và công nghệ - trình bày nền tảng NodeJS, cơ sở dit liệu

Trang 27

Chương 2 Cơ sở lý thuyết va áp dung công nghệ

2.1 Nền tảng NodeJS

2.1.1 Giới thiệu chung

Node.js là một một môi trường thời gian thực chạy Javascript đa nền tảng, mã nguồn

mở được sử dụng để thực thi mã JavaScript bên ngoài trình duyệt web Node.js làmột khuôn khổ web hoạt động tuyệt vời cho các ứng dụng dtr liệu chuyên sâu như là

luồng và thời gian thực các ứng dụng Bên cạnh đó Node.js sẽ dễ dang cho người mớibắt đầu xây dung Back-end Node.js là một phần của một số ngăn xếp phát triển web

rất phố biến như là ngăn xếp MERN, ngăn xếp MEVN và ngăn xếp MEAN

fr `

Hình 2.1 — Logo NodeJS(Nguồn: https://tuanntblog.com/node-js-la-gi/)

2.1.2 Đặc điểm nỗi bật của NodeJS

Đặc điểm nỗi bật của Node.js là nó nhận và xử lý nhiều kết nối chỉ với một thread Điều này giúp hệ thống tốn ít RAM nhất và chạy nhanh nhất khi không phải

single-tạo thread mới cho mỗi truy vẫn giống PHP Ngoài ra, JavaScript dựa vào các tươngtác hoặc sự kiện của người dùng để chạy Trong hầu hết các trường hợp, mã được

Trang 28

chạy đông bộ Các yêu câu máy chủ và các tác vụ không đông bộ khác dựa vào hệ thông các hàm không đông bộ chờ đợi đê xử lý các dau ra, dau vào này.

2.1.3 Ly do sử dụng NodeJS

* Node.js khá dễ dàng và là sự lựa chọn phù hợp cho những người mới bắt đầu

phát triển web Ở đây có một cộng đồng hướng dan rat lớn dé hỗ trợ

* Kha năng mở rộng lớn cho các ứng dụng Node.js là một luồng, có khả năng

xử lý một số lượng lớn các kết nối đồng thời với thông lượng cao

* _ Tốc độ nhanh và hiệu qua do Node.js sử dụng cơ chế Non-blocking không

chặn thực thi các luéng.

* - Node.js hỗ trợ đa nén tang cho phép người dùng tạo các trang web SaaS, ứng

dụng dành cho máy tính và thậm chí các ứng dụng dành cho thiết bị di động

2.2 MongoDB

mongoL)B

Hình 2.2 — Logo MongoDB

(Nguồn: https://stackjava.com/mongodb/mongodb.html)

Trang 29

2.2.1 Giới thiệu

MongoDB là cơ sở dữ liệu NoSQL hướng tài liệu được sử dụng dé lưu trữ dữ liệu

khối lượng lớn Thay vì sử dụng các bảng và hàng như trong cơ sở dữ liệu quan hệ

truyền thong, MongoDB sử dụng các bộ sưu tập và tài liệu Tài liệu bao gồm các cặp

khóa-giá trị là dơn vị dữ liệu cơ bản trong MongDB Bộ sưu tập chứa các bộ tài liệu

va chức năng tương đương với các bang co sở dir liệu quan hệ.

Các tính năng của MongoDB:

» _ Cấu trúc tài liệu phù hợp hơn với các nhà phát triển xây dựng các lớp và đối

tượng trong các ngôn ngữ lập trình tương ứng của chúng Các lớp của chúng

không phải là hàng và cột mà nó là cau trúc với các cặp khóa — giá trị

» Cac hàng (hoặc tài liệu được gọi trong MongoDB) không cần phải có lược đồ

được xác định trước đó Thay vào đó, các trường có thé được tạo thành nhanh

chóng.

* M6 hình dữ liệu có sẵn trong MongoDB cho phép người dùng biểu diễn mối

quan hệ thứ bậc dé lưu trữ mảng và cấu trúc phức tạp hơn một cách dé dàng

2.2.2 Các hoạt động của MongoDB

MongoDB hoạt động dựa trên định dang lược đồ ít hơn để lưu trữ dữ liệu và định

dạng BSON để giao tiếp với khách hàng của nó Nó quản lý và lưu trữ dữ liệu mộtcách đổi mới Với sự gia tăng truy cập Internet, hướng lưu lượng truy cập lớn hơn,MongoDB có rất nhiều khả năng xử lý lưu lượng truy cập lớn cho tất cả các trang

web và ứng dụng một cách dễ dàng.

MongoDB giúp người dùng không nhất thiết phải cần thêm nhiều CPU và bộ nhớhơn với nhu cầu ngày càng tăng về sức mạnh xử lý Ở đây người dùng có thé sử dụngnhiều hơn một máy chủ đề đáp ứng nhu cầu về sức mạnh xử lý Nó tuân theo nguyêntắc của hệ thống phân tán

Sử dụng bộ nhớ trong dé lưu trữ các tập dữ liệu đang hoạt động, MongoDB cho phéptruy cập dữ liệu nhanh hơn Nó cũng tối ưu hóa lược đồ của người dùng cho các

trường hợp sử dụng thường xuyên nhất Bện cạnh đó, MongoDB có một tập hợp cáctruy vấn phong phú dé thực hiện các hoạt động nhanh chóng va dé dàng

Trang 30

Nên sử dụng MongoDB trong trường hợp sau:

- - Nếu website có tính chat “INSERT” cao bởi vì mặc định MongoDB có sẵn cơ

chế ghi với tốc độ cao và an toàn

* Website ở dạng thời gian thực nhiều, nghĩa là nhiều người thao tác với ứng

dung Nếu trong quá trình load bị lỗi tại một điểm nào đó thì nó bỏ qua phần

rece Sync lve data between

your source database and

your MongoDB Atlas

Cluster MongoDB Atlas Cluster

{yl

Hinh 2.3 - MongoDB Atlas

(Nguồn: http://crystalriverhog.com/blog/post/new-to-mongodb-atlas)

Trang 31

MongoDB Atlas là một cơ sở dữ liệu NoSQL, mã nguồn mở dựa trên đám mây, sửdụng các tài liệu JSON phục vụ như một giải pháp thay thé cho cơ sở dit liệu bảng.Atlas cung cấp tất cả các tính năng của MongoDB, đồng thời tự động hóa các tác vụquản trị cơ sở đữ liệu như cấu hình cơ sở đữ liệu, cung cấp cơ sở hạ tầng, bản vá, mởrộng sự kiện, sao lưu, v.v giúp các nhà phát triển tập trung vào những gi quan trongnhất đối với họ.

MongoDB Atlas cũng cung cấp lợi ích kép về tính linh hoạt và khả năng mở rộng.Lược đồ động cho phép người dùng thay đổi lược đồ dữ liệu của họ mà không can

sửa đổi, mang lại sự linh hoạt

2.3 Các thư viện, package và công cụ liên quan

2.3.1 ExpressJS

Express js là một framework mã nguồn mở và miễn phí cho Node.js Express.js

được sử dụng dé thiết kế và xây dựng các ứng dung web một cách nhanh chóng,

Express được sử dụng cùng với NodeJS, Angular/React, cùng với MongoDB, tạothành các chuẩn thiết kế MEAN/MERN stack phổ biến hiện nay Trong dé tài này,Express dùng để routing đến các trang khác nhau của website, hỗ trợ việc render

layout.

Trang 32

nếu người dùng cần truy xuất một số dữ liệu từ tệp hoặc cơ sở dit liệu, quá trình

như vậy có thể tốn rất nhiều thời gian Thông thường, máy chủ trung bình sẽ chặn

tất cả các yêu cầu khác cho đến khi các dữ liệu này được phân phối

Mongoose là phần bỏ trợ trình điều khiển Mongo, là trình điều khiển chuyền tat cả

dữ liệu người dùng có mà không mất thời gian vào việc điều chỉnh chúng cho môitrường lập trình MongoDB được phát triển cho các máy chủ hướng dữ liệu mởrộng,việc truy xuất dữ liệu từ chúng sẽ tiết kiệm thời gian

2.3.2 JWT (JSON Web Token)

JWT là một chuẩn mở được định nghĩa một cách nhỏ gọn và khép kín dé truyén

một cách an toàn thông tin giữa các bên dưới dạng đối tượng JSON Thông tin nay

có thé được xác minh và đáng tin cậy vì nó có chứa chữ ký số JWTs có thé được

ký bằng một thuật toán bí mật (với thuật toán HMAC) hoặc một public/private key

sử dụng mã hoá RSA.(Nguồn: techmaster.vn) Mục đích sử dụng JWT là dé đảm

bảo tính xác thực của dữ liệu như là xác thực user đăng nhập, phục vụ cho việc

routing website chính xác.

10

Trang 33

GENERATE | |

I 1

| 1 1 1 (|

|

USER :

1 1 1 1 1 1 1 1 1 1

1 JWT Le,

1 1 1 1 1 1 1 1

GET /protected-resource Authorization: Bearer < JWT >

“== -—-—-— -—-! 1 1 1 1

@) gives access to 1

protected data * VERIFY SECRET SALT/| ¡

1 1

! J 1

! 1

1 ' 1

Verifies the JWT & =}

1 1

Nhà cung cấp danh tính IdP tao JWT xác nhận danh tính người dùng và máy chủ

tài nguyên giải mã và xác minh xác thực của mã thông báo bằng cách sử dung public

key Người dùng đăng nhập băng username và mật khâu hoặc đăng nhập bằng Googlehay Facebook Máy chủ sẽ xác thực thông tin đó và cấp một JWT được ký hiệu bằngcách sử dụng private key User client sử dụng JWT để truy cập các tài nguyên được

bảo vệ bằng cách chuyên JWT trong hình thức xác thực HTTP Sau đó, máy chủ tài

nguyên sẽ xác minh tính xác thực của token bằng cách sử dụng private key

Trang 34

Một cách phô biến dé chứng minh giao tiếp hai chiều mà Socket.IO cung cấp là mộtChatApp cơ bản Với socket, khi máy chủ nhận được thông báo mới, nó sẽ gửi đếnmáy khách và thông báo cho họ, bỏ qua việc phải gửi yêu cầu giữa máy khách vàmáy chủ Một ứng dụng trò chuyện đơn giản cho thấy cách này hoạt động.

Bscript hỗ trợ tốt trong việc dùng thuật toán hash để bảo mật các thông tin như

password, tin nhắn trong quá trình truyền dữ liệu và truy xuất dữ liệu giữa user với

server.

2.3.5 EJS template engine

La một template engine phô biến, kết hợp rat tốt với expressjs, tạo nên một websitevới tính ôn định cao Hỗ trợ render phần view của ứng dụng web Kết hợp vớiexpressjs trong việc trả về layout tương ứng với API

12

Trang 35

Chương 3 Phân tích yêu cầu

3.1 Mục đích

Mục đích của của việc đặc tả yêu câu phân mêm này là cho người đọc có cái nhìn

tông quan toàn bộ các yêu câu chức năng cũng như các yêu câu phi chức năng của

một mạng xã hội dành cho những người yêu thú cưng.

3.1.1 Phạm vi và các chức năng của ứng dung

Petpedia cho phép người dùng có nhu cầu sử dụng mạng xã hội dé chia sẻ các khoảng

khắc cũng như những bài viết liên quan tới động vật nói chung và thú cưng nói riêng

cho một nhóm cộng đồng có cùng chung sở thích Mạng xã hội thú cưng này giúp

mọi người có chung sở thích duy trì mối quan hệ với nhau, chia sẻ hình ảnh, video,

và nhắn tin với nhau Bên cạnh đó, người dùng sẽ được tiếp cận với những người bạn

mới, những người mà ta chưa từng gặp trước đây.

Sơ đồ chức năng ứng dụng :

13

Trang 37

3.2 Tổng quan đề tài

3.2.1 Bối cảnh

Mạng xã hội cho phép người dùng kết nối với gia đình, bạn bè từ khắp mọi miền đất

nước Nó cung cấp nền tảng toàn cầu cho người dùng khắp các nước có thê liên kết

với nhau Người dùng dùng mang xã hội dé chia sẻ hình, video, bài blog và là phươngtiện để nhắn tin trò truyện Bên cạnh đó, mạng xã hội còn cung cấp phạm vi cho việcquảng cáo Petpedia là một sản phâm mạng xã hội độc lập và đây cũng là bản phát

hành đâu tiên của sản phâm.

3.2.2 Chức năng sản phẩm

Người dùng có thê đăng ký đề trở thành thành viên của mạng xã hội này và đăng nhậpbất cứ lúc nào Người dùng có thê tự do tạo trang cá nhân, thêm, chỉnh sửa tùy thích

các thông tin cá nhân Với mang xã hội này, người dùng có thé liên kết được với gia

đình cũng như bạn bè ở bất kì nơi đâu, bất cứ lúc nào bằng việc tương tác với nhauqua các bài viết Ngoài ra, người dùng tự do tìm kiếm bạn bè và sẽ được đề xuất kếtbạn thông qua những lần tìm kiếm các mục có liên quan tới những người bạn đó

3.2.3 Phạm vi lớp người dùng

Ứng dụng dành cho những thuộc mọi độ tuổi, quốc tịch có điều kiện sử dụng được

máy tính Bên cạnh đó, người dùng nên có kiến thức nần tảng về máy tính Giao diệnngười dùng hiện tại là tiếng Anh nên đòi hỏi người dùng có kiến thức đọc hiểu Tiếng

Anh từ mức cơ bản.

3.2.4 Môi trường hoạt động

Yêu cầu phần cứng

e RAM :4GB trở lên

Yéu cau phan mém

e Hé điều hành Windows 10 64-bit / Ubuntu 20.04 64-bit

15

Trang 38

3.2.5 Rang buộc về thiết kế và triển khai

CO-01 Website hỗ trợ nhựng trình duyệt web sau: Windows Internet

Explorer phiên bản 7,8 và 9; Firefox phiên bản 12 tới 26; Google

Chrome mọi phiên bản; Opera mọi phiên bản.

CO-02 Giao điện website hỗ trợ băng tiếng Anh

CO-03 Phiên bản đầu tiên sẽ hoạt động tốt nhất ở trình duyệt trên desktop

3.2.6 Các yếu tố bên ngoài cần thiết

DE-01 Những nơi có Internet thông qua mang Lan, 3g, 4g hoặc wifi.

DE-02 Doi hỏi người dùng có kiến thức co bản về tiếng Anh

DE-03 Người dùng cần có kiến thức chung về máy tính và Internet

DE-04 Máy chủ của hệ thông phải có khả năng xử lý đồng thời tất cả các

yêu cầu gửi đến

3.3 Đặc tả yêu câu chức năng

3.3.1 Dang kí:

Name — Đăng ký tài khoản người dùng

Mô tả: user sẽ tạo tài khoản nếu như user này chưa có tài khoản cho ứng dụng này

User cần cung cấp thông tin như họ tên, username, email, giới tính và mật khẩu Chúý: email được sử dụng dé đăng ký phải là email đã được xác thực đúng chuẩn Day

là những mục cần phải được cung cấp dé có thể tiếp tục công việc tạo tài khoản chouser User sẽ được cấp tài khoản sau khi thông tin cá nhân được xác thực

Điêu kiện trước — Không có

3.3.2 Đăng nhập

Name — Đăng nhập

Mô tả: user phải được cấp tài khoản mới có thê thực hiện đăng nhập User nhập email

và password dé đăng nhập vào Mật khẩu được nhập vào phải trùng với mật khẩuđược lưu trên tập dữ liệu của hệ thống

16

Trang 39

Điều kiện trước: Người dùng phải có tài khoản đã được tạo

3.3.3 Thay đối mật khẩu

Name — Thay đôi mật khâu

Mô tả: Đề thay đôi mật khâu, người dùng hãy nhập mật khẩu hiện tại, mật khâu mới

và xác nhận mật khâu mới Mật khâu hiện tại phải trùng với mật khẩu đang được lưu

ở tập dữ liệu của hệ thống Mật khâu mới và xác nhận mật khẩu mới phải trùng nhau.Sau khi thay đổi thành công, mật khẩu mới sẽ được cập nhật vào tập dữ liệu của hệthống

Điều kiện trước — Người dùng phải đăng nhập

3.3.4 Cập nhật thông tin cá nhân

Name — Cập nhật thông tin cá nhân

Mô tả: Đây là một phần của việc dựng nên trang cá nhân của user User cập nhậtnhững thông tin chỉ tiết như họ tên, email, nghề nghiệp, năm sinh, thành phố đangsinh sống và hỉnh ảnh avatar Người dùng có thê cập nhật thông tin thú cưng của mình

với những thông tin như tên, mô tả và avatar thú cưng Trong đó thông tin hộ tên và

email là những buộc bắt buộc nhập trong khi đó các mục còn lại thì tùy ý người dùng.Điều kiện trước - Người dùng phải đăng nhập

3.3.5 Xem thông tin người dùng

Name — Xem thông tin người dùng

Mô tả : Bat cứ user nào cũng có thé thấy được thông tin các user khác

Điều kiện trước — Người dùng phải có tài khoản đã được tạo, người dùng phải đăng

nhập

3.3.6 Kết bạn

Name - Kết bạn

Mô tả: Các user có thê gửi lời mời kết bạn tới mọi user khác hoặc hủy lời mời kết

bạn Sau khi gửi lời mời, đối phương sẽ nhận được yêu cầu và lựa chọn kết bạn với

nguoi gui.

Điều kiện trước — Người dùng phải có tài khoản đã được tao

17

Trang 40

3.3.7 Chấp nhận / từ chối lời mời kết ban

Name — Xác nhận lời mời kết bạn

Mô tả: Nếu người dùng nhận được lời mời kết bạn từ đối phương thì người dùng sẽnhận được sự lựa chọn là chấp nhận hoặc từ chối lời mời Khi chấp nhận lời mời,người dùng và đối phương sẽ trở thành bạn bè và username sẽ được thêm vào danhsách bạn bè Ngược lại, người gửi sẽ vẫn tiếp tục nhìn thay trang thái “Da gửi” và lờimời này bị xóa khỏi danh sách lời mời kết bạn của người nhận

Điều kiện trước — Người dùng gửi lời kết bạn

3.3.8 Danh sách bạn bè

Name - Hiển thị danh sách bạn bè

Mô tả: Người dùng có nhiều bạn bè, danh sách bạn bè sẽ tự động hiển thị khi ngườingười cứ liên tục kéo xuống

Điều kiện trước — Người dùng phải có tài khoản đã được tạo, người dùng phải đăngnhập, người dùng gửi lời kết bạn, người dùng chấp nhận lời mời kết bạn

3.3.9 Tìm kiếm

Name — Tìm kiếm

Mô tả: User sẽ tìm kiếm được thông tin mà người bạn của user đã đăng ký thành công

vào ứng dụng các hội nhóm cũng như các trang User sẽ nhập từ khóa và nhắn Search

(tìm kiếm), kết quả sẽ trả về đanh sách những người dùng, hội nhóm, trang có từ khóanam trong tên của họ Số lượng người dùng trong danh sách tăng khi người dùng tiếptục scroll xuống dưới

Điều kiện trước — Người dùng phải đăng nhập

3.3.10 Đăng bài

Name — Đăng bài

Mô ta: Người dùng có thé đăng bài viết của mình lên trang dé có thé chia sẽ khoảng

khắc, thông tin cho những người bạn Người dùng nhập bài đăng trên khung nhập vànhấn nút Post (đăng) Bài đăng sẽ được hiển thi cho người dùng và bạn bè

Điều kiện trước — Người dùng phải đăng nhập

18

Ngày đăng: 04/10/2024, 22:44

TỪ KHÓA LIÊN QUAN

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

  • Đang cập nhật ...

TÀI LIỆU LIÊN QUAN