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 3dụ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 4Ngườ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 6ngườ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 7chuyê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 8Giai đ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 9Responsive, 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 10LỜ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 11MỤ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 122.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 133.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 144.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 154.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 164.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 17DANH 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 18Hì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 19Hì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 20DANH 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 21Bả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 22DANH 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 23Bê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 24CHUONG 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 25khô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 26e_ 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 27Chươ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 28chạ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 292.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 30Nê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 31MongoDB 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 32nế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 33GENERATE | |
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 34Mộ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 35Chươ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 373.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 383.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 403.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