1. Trang chủ
  2. » Công Nghệ Thông Tin

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

113 8 0

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

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

THÔNG TIN TÀI LIỆU

Thông tin cơ bản

Tiêu đề 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
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 Đại Học Quốc Gia TP. Hồ Chí Minh
Chuyên ngành Kỹ Sư 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 113
Dung lượng 8,18 MB

Các công cụ chuyển đổi và chỉnh sửa cho tài liệu này

Nội dung

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 tang 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… Hiện nay Facebook đang là một trong

Trang 1

ĐẠI HỌC QUỐC GIA TP HỒ CHÍ MINH TRƯỜNG ĐẠI HỌC CÔNG NGHỆ THÔNG TIN

KHOA CÔNG THUẬT PHẦN MỀM

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

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

GIẢNG VIÊN HƯỚNG DẪN ThS Nguyễn Thị Thanh Trúc

TS Nguyễn Hà Giang

Trang 2

NHẬN XÉT KHÓA LUẬN TỐT NGHIỆP (CỦA CÁN BỘ HƯỚNG DẪN/PHẢN BIỆN)

Tên khóa luận:

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

Đánh giá Khóa luận:

1 Về cuốn báo cáo:

Số trang _ Số chương _

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

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

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

-

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

-

ĐẠI HỌC QUỐC GIA TP.HCM

TRƯỜNG ĐẠI HỌC CÔNG NGHỆ

THÔNG TIN

CỘNG HÒA XÃ HỘI CHỦ NGHĨ VIỆT NAM

Độc lập – Tự do – Hạnh phúc

Trang 3

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

-

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

-Đánh giá chung: Khóa luận đạt/không đạt yêu cầu của một khóa luận tốt nghiệp kỹ

sư/, xếp loại Giỏi/ Khá/ Trung bình

Trang 4

ĐỀ CƯƠNG CHI TIẾT

Tên đề tài:

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

Cán bộ hướng dẫn :

ThS Nguyễn Thị Thanh Trúc - TS Nguyễn Hà Giang

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 tang 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… Hiện nay Facebook đang là một trong những mạng xã

hội lớn nhất để 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

ĐẠI HỌC QUỐC GIA TP.HCM

TRƯỜNG ĐẠI HỌC CÔNG NGHỆ

THÔNG TIN

CỘNG HÒA XÃ HỘI CHỦ NGHĨ VIỆT NAM

Độc lập – Tự do – Hạnh phúc

Trang 5

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íchthú cưng thì họ chỉ muốn được hòa vào một cộng đồng những người yêuthích thú cưng như mình mà không bị chi phối bằng những bài viết khôngliên quan khác Chính vì vậy Mạng xã hội Petlove dành riêng cho nhữngngười yêu thích thú cưng sẽ giúp cho họ dễ dàng kết nối được với nhữngngười bạn có đặc điểm chung đó chính là yêu động vật

2.2 Phạm 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, 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 dộng vật

3 Mô tả yêu cầu đề tài

3.1 Các yêu cầu về mặc chức năng:

● Đăng kí tài khoản để sử dụng mạng xã hội

● Đăng nhập

● Thay đổi mật khẩu

● Cập nhật trang cá nhân (thông tin cá nhân, avatar, ảnh bìa)

● Viết bài

● Like bài, comment, share bài

● Kết bạn (gửi yêu cầu, hủy yêu cầu, chấp nhận, từ chối, hủy kết bạn)

● Chat với bạn bè

Trang 6

● Tìm kiếm người dùng, page, group

● Gợi ý các bạn bè, page mới, group mới

● Tạo group thảo luận, bàn bạc

● Giao diện thân thiện, dể sử dụng

● Thiết kế hợp xu hướng (trendy)

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

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

4 Nội dung 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

Về phần cơ sở dữ liệu, với mục đích đề ra ban đầu, là ưu tiên về mặttố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

Trang 7

“thời gian thực” của website, việc sử dụng No-SQL là thực sự cầnthiết.

5 Kết quả mong đợ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ớ

Kế hoạch thực hiện:

Phân tích đề tài, yêu cầu, đề xuất danh sách chức năng

3 Xây dựng cấu trúc Database 15/03/2021 - 1/4/2021

4 Tìm hiểu các chức năng của một mạng xã

hội 15/03/2021 - 1/4/2021

5 Dựng UI Mockup 15/03/2021 - 1/4/2021

6 Tìm hiểu Realtime Chat, SocketIO cho

tính năng Chat và Notification

8/4/2021 - 5/5/2021

7 Thiết kế giao diện trang wed người dùng 8/4/2021 - 5/5/2021

8 Thiết kế giao diện web Admin 8/4/2021 - 5/5/2021

9 Tạo và kết nối database dùng MongDB

Compass và MongDB Atlas

8/4/2021 - 5/5/2021

10 Hiện thực backend và viết API cho trang

11 Gắn backend vào layout cho các tính năng 8/4/2021 - 5/5/2021

12 Responsive, optimize performance 8/4/2021 - 5/5/2021

Trang 8

13 Kiểm tra, fix lỗi, kiểm thử 8/4/2021 - 5/5/2021

14 Triển khai trên môi trường Internet 8/4/2021 - 5/5/2021

15 Tiếp thu feedback, cải thiện website 8/4/2021 - 5/5/2021

16 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 15/03/2021 - 1/4/2021

Xác nhận của CBHD

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

TP.HCM, ngày….tháng ….năm

2021 Sinh viên

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

LỜI CẢM ƠN

Đầu tiên, chúng em xin gởi lời cảm ơn chân thành đến tập thể quý Thầy Cô Trường Đại học Công nghệ thông tin – Đại học Quốc gia TP.HCM và quý Thầy Cô khoa Công nghệ phần mềm đã giúp cho nhóm tác giả có những kiến thức cơ bản làm nền tảng để thực hiện đề tài này

Đặc biệt, chúng em 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

Trang 9

Trong thời gian một học kỳ thực hiện đề tài, nhóm tác giả đã 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 gì đã 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 em không tránh khỏi những thiếu sót Chính vì vậy, chúng em 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

em đã 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 10

Chương 2 Cơ sở lý thuyết và áp dụng công nghệ 5

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

Trang 11

2.3.3 Socket io 13

3.3.4 Cập nhật thông tin cá nhân 203.3.5 Xem thông tin người dùng 21

Trang 12

3.3.11 Like / Bình luận / Phản hồi bình luận 22

Trang 13

4.2.7 Cập nhật thông tin 51

4.2.9 Đề xuất kết quả tìm kiếm 534.2.10 Like, comment, phản hồi comment 544.2.11 Gửi / Hủy lời mời kết bạn 554.2.12 Chấp nhận / Từ chới lời mời kết bạn 56

4.2.15 Like / Unlike trang 594.2.16 Gửi / Hủy lời mời tham gia nhóm 604.2.17 Chấp nhận / Từ chới lời mời tham gia nhóm 61

4.3.7 Cập nhật thông tin 684.3.8 Tìm kiếm theo keyword 694.3.9 Đề xuất theo kết quả tìm kiếm 704.3.10 Like, Share, Comment 714.3.11 Gửi / Hủy lời mời kết bạn 724.3.12 Chấp nhận / Từ chối lời mời kết bạn 73

Trang 14

4.3.13 Thay đổi mật khẩu 74

4.3.15 Like / Unlike trang 764.3.16 Gửi / Hủy lời mời tham gia nhóm 774.3.17 Chấp nhận / Từ chối lời mời tham gia nhóm 784.4 Thiết kế cơ sở dữ liệu 794.4.1 Class Diagram tổng quát 79

5.2.5 Thông tin chi tiết user 88

Trang 15

5.2.13 Tìm kiếm bạn bè 93

Kết luận và định hướng phát triển 95

Trang 16

Hình 3.1 – Sơ đồ chức năng ứng dụng 17

Hình 4.1 - Usecase tổng quát ứng dụng 29Hình 4.2 – Activity diagram đăng ký thành viên 45Hình 4.3 – Activity diagram đăng nhập 46Hình 4.4 – Activity diagram đăng xuất 47Hình 4.5 – Activity diagram newfeed 48Hình 4.6 – Activity diagram xem user 49Hình 4.7 – Activity diagram đăng bài post 50Hình 4.8 – Activity diagram cập nhật thông tin 51Hình 4.9 – Activity diagram tìm kiếm thông tin 52Hình 4.10 – Activity diagram đề xuất 53Hình 4.11 – Activity diagram like, comment, reply 54Hình 4.12 – Activity diagram gửi / hủy lời mời kết bạn 55

Trang 17

Hình 4.13 – Activity diagram xác nhận lời mời kết bạn 56Hình 4.14 – Activity diagram thay đổi mật khẩu 57Hình 4.15 – Activity diagram tạo trang 58Hình 4.16 – Activity diagram like / unlike trang 59Hình 4.17 – Activity diagram gửi lời mời tham gia nhóm 60Hình 4.18 – Activity diagram xác nhận tham gia nhóm 61Hình 4.20 – Sequence diagram đăng ký 62Hình 4.21 – Sequence diagram đăng nhập 63Hình 4.22 – Sequence diagram đăng xuất 64Hình 4.23 – Sequence diagram newfeed 65Hình 4.24 – Sequence diagram xem user 66Hình 4.25 – Sequence diagram đăng bài post 67Hình 4.26 – Sequence diagram cập nhật thông tin 68Hình 4.27 – Sequence diagram tìm kiếm theo keyword 69Hình 4.28 – Sequence diagram đề xuất 70Hình 4.29 – Sequence diagram like, comment, share 71Hình 4.30 – Sequence diagram gửi / hủy lời mời kết bạn 72Hình 4.31 – Sequence diagram xác nhận lời mời kết bạn 73Hình 4.32 – Sequence diagram thay đổi mật khẩu 74Hình 4.33 – Sequence diagram tạo trang 75Hình 4.34 – Sequence diagram like/unlike trang 76Hình 4.35 – Sequence diagram gửi/hủy lời mời vào nhóm 77Hình 4.36 – Sequence diagram xác nhận lời mời vào nhóm 78Hình 4.19 – Class diagram của ứng dụng 79

Hình 5.1 – Giao diện đăng nhập 86Hình 5 2 – Giao diện đăng ký thành viên 87Hình 5.3 – Giao diện trang chủ 87Hình 5.4 – Giao diện đăng bài post 88

Trang 18

Hình 5.5 – Giao diện thông tin user 89Hình 5.6 – Giao diện tạo trang 89Hình 5.7 – Giao diện danh sách page 90

Hình 5.9 – Giao diện tạo danh sách nhóm 91Hình 5.10 – Giao diện tạo danh sách gửi lời kết bạn 92Hình 5.11 – Giao diện khung chat 93Hình 5.12 – Giao diện tìm kiếm bạn bè 93Hình 5.13 – Giao diện trang cá nhân 94Hình 5.14 – Giao diện thay đổi mật khẩu 95

DANH MỤC BẢNG

Bảng 4.1 – Mô tả usecase đăng ký thành viên 30Bảng 4.2 – Mô tả usecase đăng nhập 31Bảng 4.3 – Mô tả usecase đăng xuất 31Bảng 4.4 – Mô tả usecase newfeeds 32Bảng 4.5 – Mô tả usecase xem thông tin user 33Bảng 4.6 – Mô tả usecase đăng bài post 33Bảng 4.7 – Mô tả usecase cập nhật thông tin 34Bảng 4.8 – Mô tả usecase đổi mật khẩu 35Bảng 4.9 – Mô tả usecase tìm kiếm theo từ khóa 35Bảng 4.10 – Mô tả usecase đề xuất 36Bảng 4.11 – Mô tả usecase đề xuất 37Bảng 4.12 – Mô tả usecase xác nhận lời mời kết bạn 37Bảng 4.13 – Mô tả usecase like / unlike trang 38Bảng 4.14 – Mô tả usecase chat 39Bảng 4.15 – Mô tả usecase gửi lời mời tham gia nhóm 39Bảng 4.16 – Mô tả usecase xác nhận lời mời vào nhóm 40Bảng 4.17 – Mô tả usecase tạo fanpage 41

Trang 19

Bảng 4.18 – Mô tả usecase tạo nhóm 42Bảng 4.19 – Mô tả usecase like / unlike bài post 42Bảng 4.20 – Mô tả usecase chia sẽ bài post 43Bảng 4.21 – Mô tả usecase comment bài post 44Bảng 4.22 – Mô tả usecase phản hồi comment 44

Bảng 4.24 – class notification 81

Bảng 4.26 – class friend object 81

Bảng 4.30 – class liker object 83Bảng 4.31 – class share object 83Bảng 4.32 – class comment object 83Bảng 4.33 – class reply object 84Bảng 4.34 – Các điều kiện ràng buộc 84

Trang 20

DANH MỤC TỪ VIẾT TẮT

JWT JSON Web Token

CO Constraint

DE Dependency

Trang 21

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ở nên 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ácmạ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ự đón nhận của cộng đồng Chính vì thấy mạng xã hội ngá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 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ậtbằng cách áp dụng nền tả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 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 tại 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

● Xây dựng được một ứng dụng mạng xã hội

Trang 22

CHƯƠNG 1 MỞ ĐẦU

1.1 Đặt vấn đề

Các trang mạng 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ột nhó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ủa con người đã tạo ra một nền vắn hóa kỹ thuật số, một phương pháp độc đáo để chia

sẽ các chuẩn mực xã hội và quản lý hành vi Văn hóa này có thể có các tác động tích cự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ực tí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ạc nhiê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 Mạng xã hội cung cấp cơ chế để 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 để ghi lại mối quan hệ của họ vớinhữ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 để 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ải lên những nền tảng giải trí cũng tang Petpedia được tạo ra để phục vụ cho những người muốn khoảng khắc sống động bên nhau mỗi ngày Facebook cho phéptạo nhóm để người dung theo dõi, nhưng vì đó là mạng xã hội hướng tới đối tượng

là mọi người, ai cũng có thể dùng mạng xã hội cho nên sẽ rất khó để 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ội dung sẽ mau chóng làm cho những người thật sự yêu thích thú cưng

Trang 23

sẽ cảm thấy đó 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ời khuyên, sự giúp đỡ cho thú cưng của họ thì họ cần một cộng đồng “sạch” để tin tưởng chia sẽ Tuy nhiên, việc nhấn mạnh ở đây là chúng ta thu hẹp phạm vi người dùng tạo các bài đăng và nhận xét để mạng lại các cộng đồng đáng tin cậy.

Bản thân nhóm chúng em 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ạng lành mạnh, sạch, có cùng chung sở thích đã thúc đẩy động lựccho chúng em 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 để tạo ra một sản phẩm hoànchỉnh, có khả năng sử dụng trong thực tế Nghiên cứu các khía cạnh, vấn đề, 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ê

• Tạo ra các nhóm, trang để 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 vấn đề 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

Trang 24

1.3.2 Phạm vi nghiên cứu

● Về không gian: ở Việt Nam và trên thế giới

● 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

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ở dữ

liệu mã nguồn mở MongoDB

Chương 3: Phân tích yêu cầu – chương này sẽ phân tích các ứng dụng như đặc tả

yêu cầu, kiến trúc ứng dụng

Chương 4: Thiết kế và xây dựng ứng dụng – chương này sẽ có các thiết kế của ứng

dụng như: cơ sở dữ liệu và các biểu đồ

Chương 5: Kết quả

Kết luận và định hướng phát triển

Trang 25

Chương 2 Cơ sở lý thuyết và áp dụng công nghệ

2.1 Nền tảng NodeJS 2.1.1 Giới thiệu chung

Node.js là một mã nguồn mở, một môi trường cho các máy chủ và ứng dụng mạng Node.js sử dụng Google V8 JavaScript engine để thực thi mã, và một tỷ lệ lớn các mô-đun cơ bản được viết bằng JavaScript Các ứng dụng node.js thì được viết bằng JavaScript phục vụ cho việc viết các ứng dụng trên Internet có khả năng mở rộng đặc biệt là ứng dụng web Node.js chứa một thư viện built-in cho phép các ứng dụng hoạt động như một Webserver mà không cần phần mềm như Nginx, Apache HTTP Server hoặc IIS.Mọi hàm trong Node.js là không đồng bộ (asynchronous)

Do đó, các tác , vụ đều được xử lý và thực thi ở chế độ nền (background

processing)

Hình 2.1 - NodeJS (Nguồn: https://jobpro.vn/bai-viet/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 single-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 tạo thread mới cho mỗi truy vấn giống PHP Ngoài ra, tận dụng ưu điểmnon-blocking I/O của Javascript mà Node.js tận dụng tối đa tài nguyên của server

mà không tạo ra độ trễ như PHP

Trang 26

Shelling tools unix NodeJS sẽ tận dụng tối đa Unix để hoạt động Tức làNodeJS có thể xử lý hàng nghìn Process và trả ra 1 luồng khiến cho hiệu xuấthoạt động đạt mức tối đa nhất và tuyệt vời nhất Streamming Data (Luồng dữliệu) Các web thông thường gửi HTTP request và nhận phản hồi lại (Luồng dữliệu) Giả xử sẽ cần xử lý 1 luồng giữ liệu cực lớn, NodeJS sẽ xây dựng cácProxy phân vùng các luồng dữ liệu để đảm bảo tối đa hoạt động cho các luồngdữ liệu khác.

Ứng dụng Web thời gian thực Với sự ra đời của các ứng dụng di động &HTML 5 nên Node.js rất hiệu quả khi xây dựng những ứng dụng thời gian thực(real-time applications) như ứng dụng chat, các dịch vụ mạng xã hội

2.1.3 Lý do sử dụng NodeJS

NodeJS được viết bằng ngôn ngữ Jacascript nên việc xử lý JSON dễ dàng hơn.NodeJS hỗ trợ giao thức TCP vì vậy chúng ta dễ dàng xây dựng bất kỳ một

phương thức custom nào

Ứng dụng thời gian thực (Realtime) Đó là một trong những ưu điểm tốt nhất của NodeJS trong việc giao tiếp giữa máy chủ và máy khách Thay vì phải tiếp nhận và

xử lý thông tin thay đổi một cách tuần tự của máy chủ, NodeJS sẽ xử lý sự thay đổi

đó ngay lập tức và gửi thông tin đó đến các máy khách khác

Máy chủ hướng sự kiện (Event-driven server) thường có một luồng duy nhất quản

lý tất cả các kết nối đến máy chủ Luồng sử dụng lệnh gọi hệ thống select () để đồngthời đợi các sự kiện trên các kết nối này

Khi một lệnh gọi select () trả về, vòng lặp chính của máy chủ sẽ gọi các trình xử lý sự kiện cho từng bộ mô tả sẵn sàng Các trình xử lý này thực hiện nhiều tác vụ khác nhau tùy thuộc vào bản chất của sự kiện cụ thể Ví dụ: khi một socket được sử dụng để lắng nghe các kết nối mới sẵn sàng, trình xử lý tương ứng gọi accept () để trả về một bộ mô tả tệp cho kết nối mới Các trình

xử lý được gọi khi một kết nối sẵn sàng để đọc hoặc ghi, thực hiện đọc hoặc

Trang 27

ghi thực tế vào bộ mô tả thích hợp Việc thực thi các trình xử lý có thể gây raviệc thêm hoặc xóa các bộ mô tả khỏi tập hợp do máy chủ quản lý.

Máy chủ hướng sự kiện nhanh vì chúng không có khóa hoặc chi phí chuyểnđổi ngữ cảnh Cùng một luồng quản lý tất cả các kết nối và tất cả các trình xử

lý được thực thi đồng bộ giúp việc xử lý nhiều kết nối khác nhau một cách dễdàng hơn Tuy nhiên, một máy chủ đơn luồng không thể khai thác bất kỳ sự đồng thời thực sự nào trong luồng tác vụ Do đó, trên các hệ thống đa xử lý, máy chủ hướng sự kiện có nhiều luồng như bộ xử lý

Hình 2.2– Event-driven

2.2 MongoDB 2.2.1 Giới thiệu

MongoDB là một cơ sở dữ liệu mã nguồn mở và là cơ sở dữ liệu NoSQL(*) hàng đầu, được hàng triệu người sử dụng MongoDB được viết bằng C++

Ngoài ra, MongoDB là một cơ sở dữ liệu đa nền tảng, hoạt động trên các khái niệm

Trang 28

mở rộng dễ dàng MongoDB đã trở thành một trong những NoSQL database nổi trội nhất bấy giờ, được dùng làm backend cho rất nhiều website như eBay,

SourceForge và The New York Times

Các feature của MongoDB gồm có:

• Các ad hoc query: hỗ trợ search bằng field, các phép search thông thường, regular expression searches, và range queries

• Indexing: bất kì field nào trong BSON document cũng có thể được index

•Replication: có ý nghĩa là “nhân bản”, là có một phiên bản giống hệt phiên bản đang tồn tại, đang sử dụng Với cơ sở dữ liệu, nhu cầu lưu trữ lớn, đòi hỏi cơ sởdữ liệu toàn vẹn, không bị mất mát trước những sự cố ngoài dự đoán là rất cao Vì vậy, người ta nghĩ ra khái niệm “nhân bản”, tạo một phiên bản cơ sở dữ liệu giống hệt cơ sở dữ liệu đang tồn tại, và lưu trữ ở một nơi khác, đề phòng có sự cố

• Aggregation: Các Aggregation operation xử lý các bản ghi dữ liệu và trả vềkết quả đã được tính toán Các phép toán tập hợp nhóm các giá trị từ nhiều

Document lại với nhau, và có thể thực hiện nhiều phép toán đa dạng trên dữ liệu đã được nhóm đó để trả về một kết quả duy nhất Trong SQL, count(*) và GROUP BY

là tương đương với Aggregation trong MongoDB

• Lưu trữ file: MongoDB được dùng như một hệ thống file tận dụng những function trên và hoạt động như một cách phân phối qua sharding

Trang 29

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

Hình 2.3 – Cách hoạt động của mongoDBMongoDB hoạt động dưới một tiến trình ngầm service, luôn mở một cổng (Cổng mặc định là 27017) để lắng nghe các yêu cầu truy vấn, thao tác từ các ứng dụng gửi vào sau đó mới tiến hành xử lý Mỗi một bản ghi của MongoDB được tự động gắn thêm một field có tên “_id” thuộc kiểu dữ liệu ObjectId mà nó quy định để xác địnhđược tính duy nhất của bản ghi này so với bản ghi khác, cũng như phục vụ các thao tác tìm kiếm và truy vấn thông tin về sau Trường dữ liệu “_id” luôn được tự động đánh index (chỉ mục) để tốc độ truy vấn thông tin đạt hiệu suất cao nhất

Mỗi khi có một truy vấn dữ liệu, bản ghi được cache (ghi đệm) lên bộ nhớ Ram,

để phục vụ lượt truy vấn sau diễn ra nhanh hơn mà không cần phải đọc từ ổ cứng.Khi có yêu cầu thêm/sửa/xóa bản ghi, để đảm bảo hiệu suất của ứng dụng mặc định MongoDB sẽ chưa cập nhật xuống ổ cứng ngay, mà sau 60 giây MongoDB mới thực hiện ghi toàn bộ dữ liệu thay đổi từ RAM xuống ổ cứng

Trang 30

• Không có cơ chế transaction (giao dịch) để phục vụ các ứng dụng ngân hàng.

• Dữ liệu lấy RAM làm trọng tâm hoạt động vì vậy khi hoạt động yêu cầu một bộ nhớ RAM lớn

• Mọi thay đổi về dữ liệu mặc định đều chưa được ghi xuống ổ cứng ngay lập tức

vì vậy khả năng bị mất dữ liệu từ nguyên nhân mất điện đột xuất là rất cao

2.2.5 Trường hợp sử dụng

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

Nếu website của bạn có tính chất 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 của bạn ở 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ó sẽ bỏ qua phần đó nên sẽ an toàn

Website bạn có nhiều dữ liệu quá Giả sử web bạn có đến 10 triệu records thì đó làcơn ác mộng với MYSQL Bởi vì MongoDB có khả năng tìm kiến thông tin liên quan cũng khá nhanh nên trường hợp này nên dùng nó

Máy chủ không có hệ quản trị CSDL Trường hợp này thường bạn sẽ sử dụng SQLITE hoặc là MongoDB

2.2.6 MongoDB Atlas

Mongodb Atlas là một giải pháp phần mềm Database as a Service Provider có chức năng và chi phí hoàn toàn phù hợp cho mọi doanh nghiệp từ nhỏ đến vừa và đến lớn Khi đó, phần mềm MongoDB Atlas sẽ được đánh giá bởi tất cả các người

Trang 31

dùng lẫn với chuyên gia trong các lĩnh vực Database Software Giai3 pháp này hộ trợ trong việc đồng bộ data giữa các thành viên trong quá trình xây dựng web.

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 để thiết kế và xây dựng các ứng dụng 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ạo thành các chuẩn thiết kế MEAN/MERN stack phổ biến hiện nay Trong đề tài Express dùng để routing đến các trang khác nhau của website, hỗ trợ việc render layout

Hình 2.4 – Cách hoạt động của ExpressJS

Có thể thấy từ hình trên, khi yêu cầu đi vào máy chủ, Express sẽ xử lý nó thành lệnh gọi lại mà không chặn ngăn xếp chính Nếu tưởng tượng rằng người dùng cần truy xuất một số dữ liệu từ tệp hoặc cơ sở dữ liệu, quá trình như vậy có thể tốn rất nhiều thời gian 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, hoàn toàn phù hợp với hệ sinh thái Express Ưu điểm chính của MongoDB là nó được định hướng

Trang 32

JavaScript Nó có nghĩa là trình điều khiển chuyển tất 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ôi trườ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

Mỗi yêu cầu trong MongoDB được xử lý theo cách tương tự như trong lệnh gọi lại Nó có nghĩa là máy chủ không phải đợi (chặn) cho đến khi dữ liệu nhất định được chuyển và xử lý đồng thời các yêu cầu khác Điều này cực kì quan trọng bởi vì cơ sở dữ liệu mở rộng quy mô có thể đươc đặt trên một hoặc một số máy chủ từ xa, cho nên việc truy xuất dữ liệu từ chúng sẽ tiết kiệm thời gian.Tóm lại, Server nhận yêu cầu và đăng ký xử lý dữ liệu sự kiện Sau đó, sự kiện sẽ gửi yêu cầu đến máy chủ Mongo từ xa Sau khi hoàn tất, cần một khoảng thời gian để dữ liệu quay lại và đồng thời máy chủ xử lý yêu cầu khác Khi dữ liệu đến, trình điều khiển Mongo gọi trình xử lý yêu cầu đến người dùng Trình

xử lý yêu cầu người dùng cung cấp dữ liệu trở lại máy khách

2.3.2 JWT (JSON Web Token)

JWT là một chuẩn mở (RFC 7519) định nghĩa một cách nhỏ gọn và khép kín

để 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 này 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 không phải để ẩn dữ liệu mà để d9am4 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

Trang 33

Hình 2.5 – Cách hoạt động của JWTNhà cung cấp danh tính IdP tạo 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ử dụng public key Người dùng đăng nhập bằng username và mật khẩu hoặc đăng nhập bằng Google hay Facebook Máy chủ sẽ xác thực thông tin đó và cấp một JWT được ký hiệu bằng cá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ằngcách sử dụng private key.

2.3.3 Socket io

Socket.IO được tạo ra vào năm 2010 Nó được phát triển để sử dụng các kết nối

mở để tạo điều kiện giao tiếp thời gian thực

Socket.IO cho phép giao tiếp hai chiều giữa máy khách và máy chủ Truyền thônghai chiều được bật khi máy khách có Socket.IO trong trình duyệt và máy chủ cũng

Trang 34

đã tích hợp gói Socket.IO Mặc dù dữ liệu có thể được gửi ở một số dạng, nhưng JSON là đơn giản nhất.

Hình 2.6 – Sự tương tác của socket.ioSocket.IO gợi nhớ đến WebSockets WebSockets cũng là một triển khai trình duyệt cho phép giao tiếp hai chiều, tuy nhiên, Socket.IO không sử dụng điều này làm tiêu chuẩn Đầu tiên, Socket.IO tạo một kết nối thăm dò dài hạn bằng cách sử dụng xhr-polling Sau đó, khi điều này được thiết lập, nó sẽ nâng cấp lên phương thức kết nối tốt nhất hiện có Trong hầu hết các trường hợp, điều này sẽ dẫn đến kết nối WebSocket

Một cách phổ biến để chứng minh giao tiếp hai chiều mà Socket.IO cung cấp là một ChatApp cơ bản Với socket, khi máy chủ nhận được thông báo mới, nó sẽ gửi đến má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

Trang 35

Hình 2.7 socket.io hoạt động trong ChatApp

2.3.5 EJS template engine

● Là một template engine phổ biến, kết hợp rất tốt với expressjs, tạo nên một website với tính ổn định cao

● Hỗ trợ render phần view của ứng dụng web

● Kết hợp với expressjs trong việc trả về layout tương ứng với API

Trang 36

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 dụng

Petpedia cho phép người dùng có nhu cầu sử dụng mạng xã hội để 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 :

Trang 37

Hình 3.1 – Sơ đồ chức năng ứng dụng

Trang 38

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 mạng xã hội để chia sẽ hình, video, bài blog và là phương tiện để nhắn tin trò truyện Bên cạnh đó, mạng xã hội còn cung cấp phạm vicho việc quả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ập bấ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ùythích các thông tin cá nhân Với mạng 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 Ngoài ra, người dùng tự do tìm kiếm bạn bè và sẽ được đề xuất kết bạn thông qua những lần tìm kiếm cácmụ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 giới tính, độ 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ện ngườ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

● RAM :4GB trở lên

Yêu cầu phần mềm

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

● Ngôn ngữ lập trình :

● Công nghệ Web:

● Back-End

● Web Server

Trang 39

3.2.5 Ràng 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 diệ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 mạng Lan, 3g, 4g hoặc wifi.DE-02 Đòi hỏi người dùng có kiến thức cơ 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à InternetDE-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 Đăng 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 để đăng ký phải là email đã được xác thực đúng chuẩn Đây là những mục cần phải được cung cấp để có thể tiếp tục công việc tạo tài khoảncho user 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 để đă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

Trang 40

Đ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ật những thông tin chi tiết như họ tên, email, nghề nghiệp, năm sinh, thành phố đang sinh sống và hỉnh ảnh avatar 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ả : Bất 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 đăngnhậ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 người gửi

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

Ngày đăng: 18/12/2021, 22:06

HÌNH ẢNH LIÊN QUAN

Hình 4.2 – Activity diagram đăng ký thành viê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
Hình 4.2 – Activity diagram đăng ký thành viên (Trang 111)
Hình 4.7 – Activity diagram đăng bài post - 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
Hình 4.7 – Activity diagram đăng bài post (Trang 116)
Hình 4.9 – Activity diagram tìm kiếm thông tin - 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
Hình 4.9 – Activity diagram tìm kiếm thông tin (Trang 118)
Hình 4.11 – Activity diagram like, comment, reply - 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
Hình 4.11 – Activity diagram like, comment, reply (Trang 121)
Hình 4.17 – Activity diagram gửi lời mời tham gia nhóm - 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
Hình 4.17 – Activity diagram gửi lời mời tham gia nhóm (Trang 127)
Hình 4.18 – Activity diagram xác nhận tham gia nhóm - 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
Hình 4.18 – Activity diagram xác nhận tham gia nhóm (Trang 128)
Hình 4.21 – Sequence diagram đăng xuất - 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
Hình 4.21 – Sequence diagram đăng xuất (Trang 131)
Hình 4.22 – Sequence diagram newfeed - 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
Hình 4.22 – Sequence diagram newfeed (Trang 132)
Hình 4.23 – Sequence diagram xem user - 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
Hình 4.23 – Sequence diagram xem user (Trang 133)

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

TÀI LIỆU LIÊN QUAN

🧩 Sản phẩm bạn có thể quan tâm

w