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

Khóa luận tốt nghiệp mạng xã hội hẹn hò

96 9 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

Định dạng
Số trang 96
Dung lượng 3,47 MB

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

Nội dung

Xây dựng các chức năng chính của một mạng xã hội hẹn hò như: Nhắn tin, call, đăng bài, bình luận, theo dõi người dùng, tìm kiếm, lọc đối tượng hẹn hò, gợi ý hẹn hò, báo cáo người dùng… +

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 NGHỆ PHẦN MỀM

NGÔ ĐỨC QUANG HOÀNG THÙY TRANG

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

MẠNG XÃ HỘI HẸN HÒ SOCIAL NETWORKING FOR DATING

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

TP HỒ CHÍ MINH, 2021

Trang 2

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

KHOA CÔNG NGHỆ PHẦN MỀM

NGÔ ĐỨC QUANG – 16520995 HOÀNG THÙY TRANG – 16521277

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

MẠNG XÃ HỘI HẸN HÒ SOCIAL NETWORKING FOR DATING

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

GIẢNG VIÊN HƯỚNG DẪN ThS HUỲNH NGUYỄN KHẮC HUY

TP HỒ CHÍ MINH, 2021

Trang 3

THÔNG TIN HỘI ĐỒNG CHẤM KHÓA LUẬN TỐT NGHIỆP

Hội đồng chấm khóa luận tốt nghiệp, thành lập theo Quyết định số

……… ngày ……… của Hiệu trưởng Trường Đại học Công nghệ Thông tin

Trang 4

LỜI CẢM ƠN

Sau hơn 4 năm học tập và rèn luyện tại Trường Đại học Công nghệ Thông tin, được

sự tận tình giảng dạy và giúp đỡ của quý thầy cô, đặc biệt là quý thầy cô của khoa Công nghệ Phần mềm, chúng em đã gặt hái được rất nhiều kiến thức nền tảng bổ ích,

có thể áp dụng vào luận văn cũng như áp dụng trong những chặng đường tiếp theo sau này

Chúng em xin chân thành cảm ơn quý thầy cô của trường Đại học Công nghệ Thông tin nói chung, quý thầy cô của khoa Công nghệ Phần mềm nói riêng, và đặc biệt là thầy Huỳnh Nguyễn Khắc Huy đã tận tình hướng dẫn và đóng góp ý kiến để chúng

em có thể hoàn thành khóa luận này một cách tốt nhất

Bên cạnh đó, nhóm xin gửi lời cảm ơn đến các bạn cùng lớp đã có những lời góp ý, động viên để nhóm có thêm động lực thực hiện khóa luận trong khoảng thời gian khó khăn này

Trong quá trình thực hiện đề tài Chúng em đã sử dụng kiến thức nền tảng đã tích lũy được từ việc học trên trường đồng thời kết hợp với quá trình học hỏi và nghiên cứu những kiến thức mới nhằm hoàn thành khóa luận tốt nghiệp một cách tốt nhất Tuy nhiên, trong quá trình thực hiện chúng em vẫn không thể tránh khỏi những thiếu sót

Vì vậy, chúng em rất mong nhận được những đóng góp quý báu từ quý Thầy Cô nhằm hoàn thiện kiến thức mà chúng em đã học tập trong suốt những năm đại học Đó cũng

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

Sau cùng, nhóm em xin kính chúc quý Thầy/ Cô thật dồi dào sức khỏe, niềm tin để tiếp tục thực hiện sứ mệnh cao đẹp của mình là truyền đạt kiến thức cho thế hệ mai sau

Thành phố Hồ Chí Minh, ngày 15 tháng 01 năm 2021

Ngô Đức Quang Hoàng Thùy Trang

Trang 5

ĐỀ CƯƠNG CHI TIẾT

ĐẠI HỌC QUỐC GIA THÀNH PHỐ HỒ CHÍ MINH

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

Thời gian thực hiện: Từ ngày 07/09/2020 đến ngày 15/01/2021

Sinh viên thực hiện: Ngô Đức Quang - 16520995, Hoàng Thùy Trang - 16521277 Nội dung đề tài:

Hiện nay với sự phát triển của internet và mạng xã hội, con người có thêm những phương tiện để giao tiếp, trao đổi, chia sẻ thông tin, hình ảnh video mọi lúc mọi nơi

mà không bị cản trở bởi yếu tố không gian địa lý Bên cạnh đó hẹn hò trực tuyến nổi lên đã giúp cho việc tìm kiếm người yêu trở lên thuận tiện hơn lúc nào hết, hẹn hò trực tuyến giúp tiết kiệm thời gian và công sức, gặp gỡ những người hoàn toàn mới, đây cũng là 1 cách để tìm hiểu trước về đối phương xem có hợp với bản thân không Trong phạm vi đề tài nhóm chúng em quyết định xây dựng mạng xã hội cho giới trẻ nhằm hỗ trợ người dùng kết nối, kết đôi với nhau

Phương pháp:

Làm việc theo nhóm, bám theo kế hoạch đã đặt ra, họp nhóm 2 lần 1 tuần, báo cáo hàng tuần

Kết quả mong đợi:

Xây dựng thành công mạng xã hội cho giới trẻ với các tính năng như:

Người dùng có thể dễ dàng tìm kiếm theo dõi người dùng, một người bạn đời, bạn tình, một cuộc hẹn bình thường, đối tượng hẹn hò phù hợp với mình

Trang 6

Người dùng có thể bắt đầu tìm kiếm và kết nối với nhiều đối tượng phù hợp gần khu vực bạn sống hoặc ở bất cứ nơi đâu, họ chỉ cần chọn khoảng cách và giới hạn độ tuổi những người mình muốn kết bạn

Người dùng có thể nhắn tin, call, đăng bài, bình luận, chia sẻ thông tin, theo dõi người dùng

3

Phân tích, thiết kế, lên kế hoạch:

Phân tích bài toán, thiết kế giao diện, cơ sở dữ liệu

21/09/2020 – 05/10/2020

4

Xây dựng:

- Xây dựng cơ sở dữ liệu: mysql

- Back-end: GraphQL, Python/Django, Rust, Golang

- Front-end: Reactjs + Redux + Typescript

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

06/10/2020 – 30/11/2020

Trang 7

- Xây dựng modules CRM (Customer Relationship

Management) quản lý các nghiệp vụ của người dùng trên

mạng xã hội cơ bản

- Xây dựng modules Chat management quản lý tương tác

trò chuyện giữa người dùng trực tuyến

- Xây dựng modules Dating quản lý các nghiệp vụ match

user theo yêu cầu kết bạn của người dùng

27/12/2020

7 Viết báo cáo: Tổng kết hoàn thiện toàn bộ nội dung cho

báo cáo cuối kỳ

28/12/2021 – 15/01/2021

Ngô Đức Quang

SV2

Hoàng Thùy Trang

Trang 8

MỤC LỤC

TÓM TẮT KHÓA LUẬN 1

CHƯƠNG 1: MỞ ĐẦU 2

1.1 Dẫn nhập 2

1.2 Mục tiêu 2

1.3 Đối tượng 3

1.4 Nội dung thực hiện 3

1.5 Phạm vi hệ thống 3

1.6 Kết quả dự kiến 4

CHƯƠNG 2: CƠ SỞ LÝ THUYẾT 5

2.1 FrontEnd 5

2.1.1 NextJS 5

2.1.2 ReactJS 5

2.1.3 TypeScript 8

2.2 BackEnd 9

2.1.4 Python Django 9

2.1.5 ExpressJS 10

2.3 Kiến trúc Microservice 11

CHƯƠNG 3: PHÂN TÍCH THIẾT KẾ HỆ 15

3.1 Phân tích thiết kế hệ thống 15

3.1.1 Các tác nhân hệ thống 15

3.1.2 Các Chức năng hệ thống 16

3.1.3 Biểu đồ usecase 22

Trang 9

a) Biểu đồ usecase toàn hệ thống 22

b) Biểu đồ usecase user 23

c) Biểu đồ usecase admin 24

d) Đặc tả usecase 24

3.1.4 Biểu đồ sequence 33

a) Biểu đồ sequence đăng nhập 33

b) Biểu đồ sequence đăng ký 34

c) Biểu đồ sequence Thay đổi mật khẩu 35

d) Biểu đồ sequence quên mật khẩu 36

e) Biểu đồ sequence Story 37

f) Biểu đồ sequence bài đăng 38

g) Biểu đồ sequence tương tác bài đăng 39

h) Biểu đồ sequence theo dõi người dùng 39

i) Biểu đồ sequence trò chuyện 40

j) Biểu đồ sequence gọi thoại 41

k) Biểu đồ sequence hẹn hò 42

l) Biểu đồ sequence chỉnh sửa thông tin cá nhân 43

3.2 Thiết kế cơ sở dữ liệu 44

3.2.1 Tổng quan cơ sở dữ liệu 45

3.3 Thiết kế giao diện 54

3.3.1 Thiết kế giao diện trên figma 54

3.3.2 Danh sách các màn hình 55

3.3.3 Mô tả chi tiết mỗi màn hình 56

a) Giao diện đăng ký 56

Trang 10

b) Giao diện quên mật khẩu 58

c) Giao diện đăng nhập 59

d) Giao diện trang chủ 60

e) Giao diện Chi tiết bài đăng 63

f) Giao diện thông tin cá nhân 65

g) Giao diện thông báo 70

h) Giao diện trò chuyện 71

i) Giao diện tìm kiếm cuộc trò chuyện 73

j) Giao diện story 74

k) Giao diện hẹn hò 75

l) Giao diện smart chat 76

m) Giao diện matching 77

n) Giao diện xem thông tin tài khoản gợi ý hẹn hò 78

CHƯƠNG 4: XÂY DỰNG VÀ CÀI ĐẶT CHƯƠNG TRÌNH 79

4.1 Cài đặt môi trường 79

- Yêu cầu: 79

4.2 Cài đặt cơ sở dữ liệu 79

4.3 Cài đặt backend 79

4.4 Cài đặt frontend 79

CHƯƠNG 5: ĐÁNH GIÁ, KẾT LUẬN VÀ HƯỚNG PHÁT TRIỂN 80

5.1 Nhận xét và Đánh giá 80

5.2 Tổng kết 81

5.3 Hướng phát triển 81

TÀI LIỆU THAM KHẢO 82

Trang 11

DANH MỤC HÌNH

Hình 2.1: Cơ chế render của ReactJS 6

Hình 2.2: ReactJS data binding một chiều 7

Hình 2.3: Vòng đời của ReactJS 8

Hình 2.4: Kiến trúc Microservice 11

Hình 2.5: API Gateway 14

Hình 3.1: Biểu đồ usecase toàn hệ thống 22

Hình 3.2: Biểu đồ usecase user 23

Hình 3.3: Biểu đồ usecase admin 24

Hình 3.4: Biểu đồ sequence đăng nhập 33

Hình 3.5: Biểu đồ sequence đăng ký 34

Hình 3.6: Biểu đồ sequence thay đổi mật khẩu 35

Hình 3.7: Biểu đồ sequence đăng ký 36

Hình 3.8: Biểu đồ sequence đăng ký 37

Hình 3.9: Biểu đồ sequence bài đăng 38

Hình 3.10: Biểu đồ sequence tương tác bài đăng 39

Hình 3.11: Biểu đồ sequence theo dõi người dùng 39

Hình 3.12: Biểu đồ sequence trò chuyện 40

Hình 3.13: Biểu đồ sequence gọi thoại 41

Hình 3.14: Biểu đồ sequence hẹn hò 42

Hình 3.15: Biểu đồ sequence chỉnh sửa thông tin cá nhân 43

Hình 3.16: Thiết kế cơ sở dữ liệu 45

Hình 3.17: Thiết kế giao diện trên figma 54

Hình 3.18: Giao diện đăng ký 57

Hình 3.19: Giao diện quên mật khẩu 58

Hình 3.20: Giao diện đăng nhập 59

Hình 3.21: Giao diện trang chủ 61

Hình 3.22: Giao diện chi tiết bài đăng 64

Trang 12

Hình 3.23: Giao diện thông tin cá nhân 66

Hình 3.24: Giao diện cài đặt thiết lập tài khoản 67

Hình 3.25: Giao diện thay đổi mật khẩu 69

Hình 3.26: Giao diện hiển thị thông báo 70

Hình 3.27: Giao diện trò chuyện 71

Hình 3.28: Giao diện chi tiết cuộc trò chuyện 72

Hình 3.29: Giao diện tìm kiếm cuộc trò chuyện 73

Hình 3.30: Giao diện story 74

Hình 3.31: Giao diện hẹn hò 75

Hình 3.32: Giao diện smart chat 76

Hình 3.33: Giao diện matching 77

Hình 3.34: Giao diện xem thông tin tài khoản gợi ý hẹn hò 78

Trang 13

DANH MỤC BẢNG

Bảng 3.1: Các tác nhân hệ thống 16

Bảng 3.2: Các chức năng hệ thống 21

Bảng 3.3: Tổng quan cơ sở dữ liệu 53

Bảng 3.4: Danh sách màn hình 56

Trang 14

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

1 CRM Customer Relationship Management

2 CTV Cộng tác viên

3 DSF Django Software Foundation

4 HMR Hot Module Replacement

5 SPA single page application

6 STT Số thức tự

Trang 15

Chương 2: CƠ SỞ LÝ THUYẾT

Trình bày cơ sở lí thuyết, lí luận, giả thiết khoa học và phương pháp nghiên cứu đã được sử dụng trong khoá luận

Chương 3: PHÂN TÍCH THIẾT KẾ HỆ THỐNG

Phân tích thiết kế toàn bộ hệ thống, trình bày sơ đồ kiến trúc hệ thống, thiết kế

cơ sở dữ liệu, mô tả chức năng, thiết kế xây dựng giao diện Đưa ra được cái nhìn tổng quan về hệ thống và triển khai một cách linh hoạt

Chương 4: XÂY DỰNG VÀ CÀI ĐẶT CHƯƠNG TRÌNH

Hướng dẫn và cài đặt theo từng bước Hướng dẫn cài đặt chương trình cũng như cách triển khai dự án lên máy chủ

Chương 5: ĐÁNH GIÁ, KẾT LUẬN VÀ HƯỚNG PHÁT TRIỂN

Trình bày những kết quả đạt được, những đóng góp mới và những đề xuất mới, nhận xét ưu nhược điểm của đề tài

Đưa ra kết luận đồng thời đưa ra hướng phát triển đề tài trong tương lai TÀI LIỆU THAM KHẢO

Tài liệu được sử dụng trong quá trình thực hiện đề tài

Đưa ra kết luận đồng thời đưa ra hướng phát triển đề tài trong tương lai

Trang 16

dễ dàng Đặc biệt mạng xã hội còn được xem là một kênh truyền thông hiệu quả, chia

sẻ thông tin rộng rãi hỗ trợ phòng chống dịch Covid-19

Tổ chức Y tế thế giới và chính phủ nhiều nước trên thế giới cũng đã tận dụng mạng

xã hội để chia sẻ thông tin, kiến thức cần thiết tới người dân để cùng chung tay phòng chống dịch bệnh Bên cạnh đó mạng xã hội kết nối những tấm lòng nhân ái để nhân dân cùng tương trợ nhau vượt qua khó khăn dịch bệnh, thiên tai…

Hiện nay với sự phát triển của internet và mạng xã hội, con người có thêm những phương tiện để giao tiếp, trao đổi, chia sẻ thông tin, hình ảnh video mọi lúc mọi nơi

mà không bị cản trở bởi yếu tố không gian địa lý Bên cạnh đó hẹn hò trực tuyến nổi lên đã giúp cho việc tìm kiếm người yêu trở lên thuận tiện hơn lúc nào hết, hẹn hò trực tuyến giúp tiết kiệm thời gian và công sức, gặp gỡ những người hoàn toàn mới, đây cũng là 1 cách để tìm hiểu trước về đối phương xem có hợp với bản thân không Trong phạm vi đề tài nhóm chúng em quyết định xây dựng một mạng xã hội hẹn hò cho giới trẻ nhằm hỗ trợ người dùng kết nối, kết đôi, trò chuyện và chia sẻ thông tin

1.2 Mục tiêu

Xây dựng thành công mạng xã hội cho giới trẻ với các tính năng như:

Người dùng có thể dễ dàng tìm kiếm được theo dõi người dùng, một người bạn đời, bạn tình, một cuộc hẹn bình thường, đối tượng hẹn hò phù hợp với mình

Người dùng có thể bắt đầu tìm kiếm và kết nối với nhiều đối tượng phù hợp gần khu vực bạn sống hoặc ở bất cứ nơi đâu, họ chỉ cần chọn khoảng cách và giới hạn độ tuổi những người mình muốn kết bạn

Trang 17

1.4 Nội dung thực hiện

Xây dựng ứng dụng di động đa nền tảng (android và ios), dễ dàng quản lý trên nhiều thiết bị

Xây dựng các chức năng chính của một mạng xã hội hẹn hò như: Nhắn tin, call, đăng bài, bình luận, theo dõi người dùng, tìm kiếm, lọc đối tượng hẹn hò, gợi ý hẹn hò, báo cáo người dùng…

+ Gợi ý hẹn hò: Xem danh sách người đang sẵn sàng hẹn hò, Xem danh sách gợi ý hẹn hò

+ Thiết lập, tùy chọn gợi ý hẹn hò (khu vực, độ tuổi, giới tính)

Trang 18

4

+ Yêu thích người dùng + Nhắn tin, gọi thoại + Theo dõi người dùng + Báo cáo người dùng + Đăng bài, xem, sửa, xóa bài đăng + Bình luận bài đăng

+ Yêu thích bài đăng + Đăng nhập, đăng xuất + Đăng ký

+ Quên mật khẩu + Chỉnh sửa thông tin cá nhân (bao gồm mật khẩu) + Xác minh tài khoản

- Hoàn thành các chức năng nổi bật của mạng xã hội (nhắn tin, gọi thoại, theo dõi người dùng, đăng bài, xem, sửa, xóa bài đăng, bình luận, yêu thích bài đăng, báo cáo người dùng, đăng ký, đăng nhập, đăng xuất, quên mật khẩu, chỉnh sửa thông tin cá nhân, chỉnh sửa mật khẩu, xác minh tài khoản)

Trang 19

Một số tính năng nổi bật của NextJS

- Mặc định đã được render phía server

- Tự động split code để load page nhanh hơn

- Đơn giản hóa routing phía client (page based)

- Môi trường dev với webpack-based hỗ trợ Hot Module Replacement (HMR)

- Có thể implement với Express hoặc những Node.js HTTP server khác

- Dễ dàng customize với Babel và Webpack config

2.1.2 ReactJS

React là một thư viện Javascript mã nguồn mở để xây dựng các thành phần giao diện

có thể tái sử dụng Nó được tạo ra bởi Jordan Walke, một kỹ sư phần mềm tại Facebook Người bị ảnh hưởng bởi XHP (Một nền tảng thành phần HTML cho PHP) React lần đầu tiên được triển khai cho ứng dụng Newsfeed của Facebook năm 2011, sau đó được triển khai cho Instagram.com năm 2012 Nó được mở mã nguồn (open-sourced) tại JSConf US tháng 5 năm 2013

Một trong những điểm hấp dẫn của React là thư viện này không chỉ hoạt động trên phía client, mà còn được render trên server và có thể kết nối với nhau React so sánh

sự thay đổi giữa các giá trị của lần render này với lần render trước và cập nhật ít thay đổi nhất trên DOM

Ưu điểm reactJS:

Trang 20

6

3 Công nghệ DOM ảo giúp tăng hiệu năng cho ứng dụng Việc chỉ node gốc

mới có trạng thái và khi nó thay đổi sẽ tái cấu trúc lại toàn bộ, đồng nghĩa

với việc DOM tree cũng sẽ phải thay đổi một phần, điều này sẽ ảnh hưởng

đến tốc độ xử lý ReactJS sử dụng Virtual DOM (DOM ảo) để cải thiện vấn

đề này Virtual DOM là một object Javascript, mỗi object chứa đầy đủ thông

tin cần thiết để tạo ra một DOM, khi dữ liệu thay đổi nó sẽ tính toán sự thay

đổi giữa object và tree thật, điều này sẽ giúp tối ưu hoá việc re-render DOM

tree thật

Hình 2.1: Cơ chế render của ReactJS React sử dụng cơ chế one-way data binding – luồng dữ liệu 1 chiều Dữ liệu

được truyền từ parent đến child thông qua props Luồng dữ liệu đơn giản giúp

chúng ta dễ dàng kiểm soát cũng như sửa lỗi

Trang 21

7

Hình 2.2: ReactJS data binding một chiều

4 Reactjs giúp việc viết các đoạn code JS dễ dàng hơn Nó dùng cú pháp đặc

biệt là JSX (Javascript mở rộng) cho phép ta trộn giữa code HTML và

Javascript Ta có thể thêm vào các đoạn HTML vào trong hàm render mà

không cần phải nối chuỗi Đây là đặc tính thú vị của Reactjs Nó sẽ chuyển

đổi các đoạn HTML thành các hàm khởi tạo đối tượng HTML bằng bộ biến

đổi JSX

Trang 22

8

Hình 2.3: Vòng đời của ReactJS Tại sao nên sử dụng ReactJS:

5 Xu hướng hiện nay làm web là SPA (single page application) ReactJS là

một thư viện dễ học, phổ biến, được cộng đồng hỗ trợ nhiều

6 Chúng tôi đã có kinh nghiệm làm ReactJS với các môn học như: Đồ án mã

nguồn mở, Lập trình trên thiết bị di động, giao tiếp người máy…

7 Hiệu năng cao, mang lại trải nghiệm tốt cho người dùng

để phát triển các ứng dụng chạy ở client-side (Angular2) và server-side (NodeJS) Tại sao nên sử dụng TypeScript:

Trang 23

9

- Dễ phát triển dự án lớn: Với việc sử dụng các kỹ thuật mới nhất và lập trình hướng đối tượng nên TypeScript giúp chúng ta phát triển các dự án lớn một cách dễ dàng

- Nhiều Framework lựa chọn: Hiện nay các Javascript Framework đã dần khuyến khích nên sử dụng TypeScript để phát triển, ví dụ như AngularJS 2.0

và Ionic 2.0

- Hỗ trợ các tính năng của Javascript phiên bản mới nhất: TypeScript luôn đảm bảo việc sử dụng đầy đủ các kỹ thuật mới nhất của Javascript, ví dụ như version hiện tại là ECMAScript 2015 (ES6)

- Là mã nguồn mở: TypeScript là một mã nguồn mở nên bạn hoàn toàn có thể

sử dụng mà không mất phí, bên cạnh đó còn được cộng đồng hỗ trợ

- TypeScript là Javscript: Bản chất của TypeScript là biên dịch tạo ra các đoạn

mã javascript nên bạn có thể chạy bất kỳ ở đâu miễn ở đó có hỗ trợ biên dịch Javascript Ngoài ra bạn có thể sử dụng trộn lẫn cú pháp của Javascript vào bên trong TypeScript, điều này giúp các lập trình viên tiếp cận TypeScript dễ dàng hơn

2.2 BackEnd

2.1.4 Python Django

Django là 1 web framework khá nổi tiếng được viết hoàn toàn bằng ngôn ngữ Python

Nó là 1 framework với đầy đủ các thư viện, module hỗ trợ các web-developer Django

sử dụng mô hình MVC và được phát triển bởi Django Software Foundation (DSF một

tổ chức phi lợi nhuận độc lập) Mục tiêu chính của Django là đơn giản hóa việc tạo các website phức tạp có sử dụng cơ sở dữ liệu Django tập trung vào tính năng “có thể tái sử dụng” và “có thể tự chạy” của các component, tính năng phát triển nhanh, không làm lại những gì đã làm Một số website phổ biến được xây dựng từ Django là Pinterest, Instagram, Mozilla, và Bitbucket

Tại sao nên dùng Diango:

Trang 24

- Khả năng mở rộng tốt: Django có thể đáp ứng lượng traffic lớn, nghĩa là bạn không cần phải lo lắng về khả năng scale sản phẩm của mình nữa

- Tính linh động: Django được viết bằng Python, nó có thể chạy đa nền tảng

Nó có nghĩa rằng bạn không ràng buộc một platform server cụ thể Django được hỗ trợ tốt ở nhiều nhà cung cấp hosting, họ sẽ cung cấp hạ tầng và tài liệu cụ thể cho hosting web Django

2.1.5 ExpressJS

Express là một framework web Node.js phổ biến nhất và là thư viện cơ bản cho một

số framework Node.js phổ biến khác Express cung cấp các tính năng mạnh mẽ để phát triển web server như:

- Viết trình xử lý cho các yêu cầu (request) với các phương thức HTTP khác nhau tại các đường dẫn URL khác nhau (router)

- Tích hợp công cụ hiển thị “view” để tạo các phản hồi bằng cách chèn dữ liệu vào các view

- Thêm các yêu cầu xử lý trung gian “middleware” tại bất kỳ điểm nào luồng

xử lý yêu cầu

- Các Framework nổi tiếng của NodeJS hiện nay đều sử dụng ExpressJS như một core function, chẳng hạn: SailsJS, MEAN

Trang 26

- Phân phối liên tục: Cho phép phát hành phần mềm thường xuyên, thông qua

tự động hóa có hệ thống về tạo, kiểm tra và phê duyệt phần mềm

- Trách nhiệm: Dịch vụ vi mô không tập trung vào các ứng dụng như dự án Thay vào đó, họ coi các ứng dụng là sản phẩm mà họ chịu trách nhiệm

- Quản trị phi tập trung: Trọng tâm là sử dụng đúng công cụ cho đúng công việc Điều đó có nghĩa là không có mẫu chuẩn hóa hoặc bất kỳ mẫu công nghệ nào Các nhà phát triển có quyền tự do lựa chọn các công cụ hữu ích tốt nhất để giải quyết vấn đề của họ

- Agility: Microservice hỗ trợ phát triển nhanh Bất kỳ tính năng mới nào cũng

có thể được phát triển và loại bỏ một lần nữa

Ưu điểm của microservice:

- Phát triển độc lập: Tất cả các dịch vụ siêu nhỏ có thể được phát triển dễ dàng dựa trên chức năng cá nhân của họ

- Triển khai độc lập: Dựa trên các dịch vụ của họ, chúng có thể được triển khai riêng lẻ trong bất kỳ ứng dụng nào

- Cách ly lỗi: Ngay cả khi một dịch vụ của ứng dụng không hoạt động, hệ thống vẫn tiếp tục hoạt động

- Ngăn xếp công nghệ hỗn hợp: Các ngôn ngữ và công nghệ khác nhau có thể được sử dụng để xây dựng các dịch vụ khác nhau của cùng một ứng dụng

- Chia tỷ lệ chi tiết: Các thành phần riêng lẻ có thể chia tỷ lệ theo nhu cầu, không cần phải chia tỷ lệ tất cả các thành phần lại với nhau

Trang 27

13

API Gateway:

Về lý thuyết, một thực thể client có thể thực hiện một request trực tiếp đến một microservice thông qua một endpoint công khai đã được định sẵn Tuy nhiên, điều này sẽ xảy ra các trường hợp client phải thực hiện nhiều request riêng biệt, gây ra Về

lý thuyết, một thực thể client có thể thực hiện một request trực tiếp đến một microservice thông qua một endpoint công khai đã được định sẵn Tuy nhiên, điều này sẽ xảy ra các trường hợp client phải thực hiện nhiều request riêng biệt, gây ra độ trễ không mong muốn Đồng thời cách tiếp cận này cũng sẽ khiến việc triển khai phía client trở nên phức tạp Mặt khác, phương pháp nêu trên sẽ gây ra nhiều khó khăn khi tái cấu trúc hoặc mở rộng hệ thống, khi ta muốn chia nhỏ hoặc kết hợp các microservice

Từ những khó khăn trên, cách tiếp cận tốt hơn là sử dụng API gateway như một điểm đầu vào duy nhất của hệ thống Tất cả các request từ client sẽ đi qua API gate- way, sau đó sẽ được phân phối tới microservice thích hợp API gateway đóng gói hệ thống nội bộ và cung cấp API được thiết kế riêng cho từng microservice, nó có thể đảm nhiệm các tác vụ như xác thực (authentication), giám sát (monitoring), cân bằng tải (load balancing), bộ nhớ đệm (cache), phân phối request (request shaping and management) và xử lý phản hồi các tệp tĩnh (static response handling)

Trang 28

14 Hình 2.5: API Gateway

Trang 29

15

CHƯƠNG 3: PHÂN TÍCH THIẾT KẾ HỆ

3.1 Phân tích thiết kế hệ thống

3.1.1 Các tác nhân hệ thống

STT Tác nhân Ý nghĩa nghiệp vụ

1 Admin Admin là tác nhân giữ vai trò quản trị của hệ thống, là

người điều hành, quản lý và theo dõi mọi hoạt động của

hệ thống Admin có thể thực hiện tất cả chức năng trong

hệ thống như: Đăng nhập, quản lý quyền, quản lý người dùng, quản lý bài đăng, quản lý phản hồi người dùng, quản lý báo cáo người dùng, …

2 Cộng tác

viên (CTV)

Cộng tác viên (CTV) là tác nhân có vai trò hỗ trợ Admin quản trị hệ thống Cộng tác viên có thể thực hiện tất cả các chức năng trong hệ thống ngoại trừ chức năng quản

lý quyền như: Đăng nhập, quản lý người dùng, quản lý bài đăng, quản lý phản hồi người dùng, quản lý báo cáo người dùng, …

3 User User là tác nhân thực hiện các chức năng chính của hệ

thống như: Đăng ký, xác minh tài khoản, đăng nhập, thay đổi mật khẩu, xem trang cá nhân, tạo, sửa, xóa bài đăng, yêu thích, bình luận bài đăng, xem và chỉnh sửa thông tin

cá nhân, tìm kiếm, tạo story, xem story, theo dõi người dùng, báo cáo người dùng, nhắn tin, gọi thoại, yêu thích người dùng, thiết lập tùy chọn gợi ý người dùng, ghép đôi ngẫu nhiên(xác nhận mối quan hệ, hủy bỏ ghép đôi, báo cáo người dùng) …

Trang 30

16

Bảng 3.1: Các tác nhân hệ thống

3.1.2 Các Chức năng hệ thống

STT Tên chức năng Mô tả

1 Đăng ký tài khoản Người dùng đăng ký tài khoản bằng cách chọn

đăng ký và nhập thông tin đăng ký bao gồm: …

2 Xác minh tài khoản Khi người dùng muốn xác minh thông tin tài khoản

hệ thống sẽ yêu cầu người dùng cung cấp hình ảnh chứng minh hoặc hộ chiếu, thông tin này được …

3 Quên mật khẩu Khi người dùng sử dụng chức năng quên mật khẩu

hệ thống sẽ gửi một email về mail đăng ký tài khoản với nội dung là một đường link kèm theo mã

đã được mã hóa dùng để nhập lại mật khẩu mới Sau khi người dùng nhập mật khẩu mới hệ thống

sẽ yêu cầu người dùng nhập lại mật khẩu này để đăng nhập vào hệ thống

4 Đăng nhập Để sử dụng hệ thống người dùng bắt buộc phải

đăng nhập vào hệ thống Dựa vào mail và mật khẩu của tài khoản người dùng có thể đăng nhập vào hệ thống thành công

5 Thay đổi mật khẩu Khi người dùng sử dụng chức năng thay đổi mật

khẩu hệ thống sẽ yêu cầu người dùng nhập lại mật khẩu hiện tại, mật khẩu mới và xác minh mật khẩu mới để thay đổi mật khẩu

Trang 31

- Story: Nơi người dùng có thể quay video ngắn hoặc chụp ảnh để chia sẻ những khoảnh khắc đáng nhớ trong ngày Và mỗi nội dung người dùng đăng lên Story sẽ bị hủy trong vòng 24 giờ kể từ khi đăng lên

- Bài đăng: Là những chia sẻ dạng văn bản, hình ảnh, video, … của người dùng trên trang cá nhân, mỗi bài đăng của tài khoản sẽ được hiển thị ở trang chủ của những người

đã theo dõi tài khoản đó Mỗi bài đăng bao gồm các chức năng như yêu thích, hiển thị danh sách người yêu thích, bình luận và trả lời bình luận

- Yêu thích: Người dùng sẽ được yêu thích mỗi bài đăng một lần Và có thể hủy bỏ lượt yêu thích đối với bài đăng đó

- Bình luận: Người dùng có thể bình luận bài viết của người mình theo dõi Bình luận được chia làm hai cấp: Bình luận cho bài viết và bình luận trả lời bình luận

Lượt yêu thích: Người dùng có thể xem số lượng yêu thích và danh sách những người đã yêu thích bài đăng

Trang 32

18

7 Xem trang cá nhân Trang cá nhân sẽ hiển thị thông tin cá nhân người

dùng, các bài đăng từng đăng Ở trang cá nhân người dùng có thể chỉnh sửa, cập nhật thông tin cá nhân, tạo bài đăng mới, xem, sửa, xóa bài đăng, xem lượt thích, danh sách người thích, bình luận và trả lời bình luận

8 Cập nhật thông tin cá

nhân

Người dùng có thể thay đổi, cập nhật thông tin cá nhân như: avatar, tên người dùng, ngày tháng năm sinh, …

9 Tạo bài đăng cá nhân Người dùng tạo bài đăng có thể bao gồm chữ, hình

sách người dùng thích

bài đăng

Người dùng truy cập vào trang cá nhân để xem danh sách bài đăng cá nhân, với mỗi bài đăng người dùng có thể xem lượt tích, danh sách lượt thích, xem và trả lời bình luận Người dùng có thể xóa sửa bài đăng đã đăng

11 Xem thông báo Người xem thông báo (thông báo lượt thích, bình

luận bài đăng …) Khi bấm vào thông báo sẽ dẫn tới bài đăng

Trang 33

13 Báo cáo người dùng Khi người dùng đăng những thông tin vi phạm

pháp luật, vi phạm đạo đức hoặc giả mạo danh tính của người khác thì bạn có thể báo cáo người dùng Admin hoặc cộng tác viên sẽ kiểm tra lại thông tin nếu đúng thì tài khoản đó sẽ bị khóa

14 Xem danh sách gợi ý

theo dõi người dùng:

Theo dõi người dùng

15 Theo dõi người dùng Sau khi người dùng theo dõi một tài khoản khác thì

người dùng có thể gửi tin nhắn chờ tới tài khoản, xem được các bài đăng từ tài khoản đó, khi tài khoản đó trả lời lại tin nhắn hoặc theo dõi ngược lại thì hai tài khoản có thể nhắn tin, gọi thoại với nhau

16 Nhắn tin:

Nhắn tin

- Xem tin nhắn

chờ Gửi tin nhắn chờ

Người dùng có thể nhắn tin, gửi hình ảnh, video,

… qua lại khi cả hai tài khoản đã theo dõi nhau Nếu tài khoản theo dõi tài khoản khác thì có thể gửi tin nhắn chờ Nếu tài khoản nhận được một tin nhắn chờ, đọc và trả lời tin nhắn thì tài khoản đó sẽ tự

Trang 34

- Xem danh sách

gợi ý hẹn hò Thiết lập tùy chỉnh gợi

ý hẹn hò

Khu vực hẹn hò là nơi hiển thị thông tin danh sách người sẵn sàng hẹn hò, gợi ý người hẹn hò, người dùng có thể tìm kiếm đối tượng hẹn hò bằng các tùy chỉnh độ tuổi, khu vực và giới tính

18 Ghép đôi ngẫu nhiên:

- Xác nhận ghép

đôi

- Báo cáo người

dùng Hủy bỏ ghép đôi

Chức năng ghép đôi ngẫu nhiên sẽ kết nối ngẫu nhiên 2 người sẵn sàng hẹn hò lại với nhau Mỗi lần ghép đôi người dùng sẽ có 3 phút để xác nhận mối quan hệ, trong thời gian này người dùng có thể nhắn tin, chia sẻ thông tin với đối phương giúp họ

có cái nhìn tổng quan dễ dàng đưa ra quyết định có tiếp tục trò chuyện tìm hiểu thêm hay không Nếu đối phương gửi thông tin, tin nhắn với các nội dung sai trái, vi phạm đạo đức và pháp luật thì người dùng có thể báo cáo người dùng hoặc có thể hủy bỏ lần ghép đôi đó

19 Quản lý người dùng Chức năng quản lý người dùng giúp admin và cộng

tác viên quản lý thông tin, xác định danh tính người dùng

Trang 35

21

20 Quản lý bài đăng Chức năng quản lý bài đăng giúp admin và cộng

tác viên quản lý bài đăng của tất cả người dùng, người quản lý có thể xem xét nội dung và báo cáo

vi phạm cho bất kỳ bài viết nào

21 Quản lý báo cáo người

22 Quản lý quyền Chức năng quản lý quyền giúp admin cấp quyền,

hủy bỏ quyền cho các tài khoản

23 Đăng xuất Người dùng đăng xuất ra khỏi hệ thống

Bảng 3.2: Các chức năng hệ thống

Trang 36

22

3.1.3 Biểu đồ usecase

a) Biểu đồ usecase toàn hệ thống

Hình 3.1: Biểu đồ usecase toàn hệ thống

Trang 37

23

b) Biểu đồ usecase user

Hình 3.2: Biểu đồ usecase user

Trang 38

24

c) Biểu đồ usecase admin

Hình 3.3: Biểu đồ usecase admin

2 Cung cấp thông tin đăng ký

3 Kiểm tra thông tin hợp lệ

Trang 39

25

4 Xác nhận mã OTP

5 Lưu thông tin đăng ký

6 kết thúc

- Dòng sự kiện phụ: thông tin đăng ký không hợp lệ

- Tiền điều kiện:

- Hậu điều kiện: Có thể thực hiện các tác vụ

- Quên mật khẩu

-Tóm tắt: Người dùng chọn chức năng quên mật khẩu

-Dòng sự kiện chính:

1 Chọn quên mật khẩu

2 Nhập thông tin số điện thoại để lấy lại mật khẩu

3 Kiểm tra thông tin có hợp lệ không

4 Gửi mã OTP về số điện thoại

5 Người dùng dùng mã OTP để lấy lại mật khẩu mới cho tài khoản

4 Kiểm tra thông tin có hợp lệ không, lưu thông tin xuống database

5 kết thúc

- Dòng sự kiện phụ: Thông tin số điện thoại không hợp lệ

- Tiền điều kiện: Đã đăng ký tài khoản

- Hậu điều kiện: Lấy lại mật khẩu mới cho tài khoản

- Đăng nhập

-Tóm tắt: người dùng chọn chức năng đăng nhập hệ thống

Trang 40

26

-Dòng sự kiện chính:

1 Chọn đăng nhập

2 Nhập thông tin đăng nhập

3 Kiểm tra thông tin đăng nhập có hợp lệ không

4 Đăng nhập vào hệ thống

5 kết thúc

- Dòng sự kiện phụ: thông tin đăng nhập không hợp lệ

- Tiền điều kiện:

- Hậu điều kiện: Có thể thực hiện các tác vụ

- Thay đổi mật khẩu

-Tóm tắt: Người dùng chọn chức năng thay đổi mật khẩu

-Dòng sự kiện chính:

1 Chọn chức năng thay đổi mật khẩu

2 Nhập mật khẩu cũ, mật khẩu mới và xác nhận mật khẩu mới

3 Chọn lưu lại mật khẩu mới

4 Kiểm tra và lưu thông tin vào database

5 Trả ra dữ liệu và thông báo đổi mật khẩu thành công

6 Kết thúc

- Dòng sự kiện phụ:

- Tiền điều kiện: Phải đăng nhập vào hệ thống

- Hậu điều kiện: Thay đổi thành công mật khẩu

Ngày đăng: 05/09/2021, 20:50

TỪ KHÓA LIÊN QUAN

TRÍCH ĐOẠN

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