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

Xây dựng hệ thống tìm kiếm gia sư trực tuyến

Bạn đang xem bản rút gọn của tài liệu. Xem và tải ngay bản đầy đủ của tài liệu tại đây (5.45 MB, 174 trang )

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

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

NGUYỄN TRỌNG KHANH - 17520627
PHAN ANH TÚ - 17521204

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

XÂY DỰNG HỆ THỐNG GIA SƯ TRỰC TUYẾN
Building Online Tutor Application

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

TP. HỒ CHÍ MINH, 2021


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

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

NGUYỄN TRỌNG KHANH - 17520627
PHAN ANH TÚ - 17521204

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

XÂY DỰNG HỆ THỐNG GIA SƯ TRỰC TUYẾN
Building Online Tutor Application


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

GIẢNG VIÊN HƯỚNG DẪN
Tiến sĩ. Trần Sơn Hải
Thạc sĩ. Huỳnh Nguyễn Khắc Huy

TP. HỒ CHÍ MINH, 2021


DANH SÁCH HỘI ĐỒNG BẢO VỆ KHÓA LUẬN

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.
1.

…………………………………………. – Chủ tịch.

2.

…………………………………………. – Thư ký.

3.

…………………………………………. – Ủy viên.

4.

…………………………………………. – Ủy viên.



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

CỘNG HỊA XÃ HỘI CHỦ NGHĨA 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…..tháng…..năm 2021

NHẬN XÉT KHĨA LUẬN TỐT NGHIỆP

(CỦA CÁN BỘ HƯỚNG DẪN)

Tên khóa luận:
XÂY DỰNG HỆ THỐNG GIA SƯ TRỰC TUYẾN
(Tên tiếng Anh: BUILDING ONLINE TUTOR APPLICATION)
Nhóm SV thực hiện:

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

NGUYỄN TRỌNG KHANH

17520627

TS. TRẦN SƠN HẢI

PHAN ANH TÚ


17521204

ThS. HUỲNH NGUYỄN KHẮC HUY

Đánh giá Khóa luận
1. Về cuốn báo cáo:
Số trang

154 ____

Số chương

4 ______

Số bảng số liệu

53 _____

Số hình vẽ

29 _____

Số tài liệu tham khảo

11 _____

Sản phẩm

1 ______


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:
……………………………………………………………………………………………………...................
……………………………………………………………………………………………………...................


……………………………………………………………………………………………………...................
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:
……………………………………………………………………………………………………...................
……………………………………………………………………………………………………...................
……………………………………………………………………………………………………...................
Điểm từng sinh viên:
Nguyễn Trọng Khanh:………../10
Phan Anh Tú:………../10

Người nhận xét
(Ký tên và ghi rõ họ tên)



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

CỘNG HỊA XÃ HỘI CHỦ NGHĨA 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…..tháng…..năm 2021

NHẬN XÉT KHĨA LUẬN TỐT NGHIỆP

(CỦA CÁN BỘ PHẢN BIỆN)

Tên khóa luận:
XÂY DỰNG HỆ THỐNG GIA SƯ TRỰC TUYẾN
(Tên tiếng Anh: BUILDING ONLINE TUTOR APPLICATION)
Nhóm SV thực hiện:

Cán bộ phản biện:

NGUYỄN TRỌNG KHANH

17520627

TS. TRẦN SƠN HẢI

PHAN ANH TÚ


17521204

ThS. HUỲNH NGUYỄN KHẮC HUY

Đánh giá Khóa luận
5. Về cuốn báo cáo:
Số trang

154 ____

Số chương

4 ______

Số bảng số liệu

53 _____

Số hình vẽ

29 _____

Số tài liệu tham khảo

11 _____

Sản phẩm

1 ______


Một số nhận xét về hình thức cuốn báo cáo:
……………………………………………………………………………………………………...................
……………………………………………………………………………………………………...................
……………………………………………………………………………………………………...................
6. Về nội dung nghiên cứu:
……………………………………………………………………………………………………...................
……………………………………………………………………………………………………...................


……………………………………………………………………………………………………...................
7. Về chương trình ứng dụng:
……………………………………………………………………………………………………...................
……………………………………………………………………………………………………...................
……………………………………………………………………………………………………...................
8. Về thái độ làm việc của sinh viên:
……………………………………………………………………………………………………...................
……………………………………………………………………………………………………...................
……………………………………………………………………………………………………...................
Đánh giá chung:
……………………………………………………………………………………………………...................
……………………………………………………………………………………………………...................
……………………………………………………………………………………………………...................
Điểm từng sinh viên:
Nguyễn Trọng Khanh:………../10
Phan Anh Tú:………../10

Người nhận xét
(Ký tên và ghi rõ họ tên)



LỜI CẢM ƠN
Sau quá trình học tập và rèn luyện tại khoa Công nghệ phần mềm trường Đại học
Công nghệ Thông tin – ĐHQG TP.HCM chúng em đã được trang bị các kiến thức cơ
bản, các kỹ năng thực tế để có thể hồn thành Khóa luận tốt nghiệp của mình.
Để hồn thành khóa luận này, chúng em xin gửi lời cảm ơn chân thành đến:
Ban Giám hiệu trường Đại học Cơng nghệ Thơng tin – ĐHQG TP.HCM vì đã tạo
điều kiện về cơ sở vật chất với hệ thống thư viện hiện đại, đa dạng các loại sách, tài
liệu thuận lợi cho việc tìm kiếm, nghiên cứu thơng tin.
Chúng em xin gửi lời cảm ơn chân thành đến thầy Trần Sơn Hải và thầy Huỳnh
Nguyễn Khắc Huy đã tận tình giúp đỡ, định hướng cách tư duy và cách làm việc
khoa học. Đó là những góp ý hết sức q báu khơng chỉ trong q trình thực hiện
luận văn này mà còn là hành trang tiếp bước cho chúng em trong quá trình học tập và
lập nghiệp sau này.
Và cuối cùng, chúng em xin gửi lời cảm ơn đến gia đình, tất cả thầy cơ trong khoa,
bạn bè là những người luôn sẵn sàng sẻ chia và giúp đỡ trong học tập và cuộc sống.
Mong rằng, chúng ta sẽ mãi mãi gắn bó với nhau.
Trong q trình làm khóa luận này chúng em không tránh khỏi được những sai sót,
chúng em kính mong nhận được sự chỉ dẫn và góp ý của q thầy cơ để khóa luận
được hồn thiện hơn.
Chúng em xin chân thành cảm ơn. Xin chúc những điều tốt đẹp nhất sẽ luôn đồng
hành cùng mọi người.

Thành phố Hồ Chí Minh, tháng năm 2021
Sinh viên

NGUYỄN TRỌNG KHANH

PHAN ANH TÚ



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

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

TRƯỜNG ĐẠI HỌC

Độc Lập - Tự Do - Hạnh Phúc

CÔNG NGHỆ THÔNG TIN
ĐỀ CƯƠNG CHI TIẾT

TÊN ĐỀ TÀI: Xây dựng hệ thống tìm kiếm gia sư trực tuyến
Cán bộ hướng dẫn: TS. Trần Sơn Hải, ThS. Huỳnh Nguyễn Khắc Huy
Thời gian thực hiện:Từ ngày…01/03/2021…………..đến ngày…26/06/2021…………
Sinh viên thực hiện:
Nguyễn Trọng Khanh - 175206271
Phan Anh Tú – 17521204
Nội dung đề tài:(Mô tả chi tiết mục tiêu, phạm vi, đối tượng, phương pháp thực hiện,
kết quả mong đợi của đề tài)
1. Lý do chọn đề tài
Trong thời đại cách mạng 4.0 hiện nay, internet phát triển một cách mạnh mẽ và
ảnh hưởng lớn đến mọi hoạt động của con người. Ngoài ra trong xã hội phát triển,
các bậc phụ huynh khơng có nhiều thời gian và những kiến thức đổi mới liên tục
để giúp đỡ con họ trong học tập, nên dịch vụ gia sư ngày càng được đông đảo các
phụ huynh, học sinh lựa chọn nhằm giúp con em mình đạt được những mục tiêu
nhất định trong học tập. Hệ thống tìm kiếm gia sư trực tuyến ra đời giúp các phụ
huynh, học sinh tìm kiếm gia sư trực tuyến dễ dàng, giúp tiết kiệm thời gian đến
trực tiếp các trung tâm để tìm kiếm gia sư. Đồng thời, các bạn sinh viên, người có
bằng cấp, chun mơn trong giảng dạy có nhu cầu trở thành một gia sư có thể đăng
ký trở thành ga sư.

2. Phạm vi
Phạm vi của đề tài gồm:
- Xây dựng website quản lý hệ thống dành cho admin.
- Xây dựng website dành cho người dùng có nhu cầu tìm kiếm gia sư và người
muốn trở thành gia sư.
2.1 Các tính năng chính
- Dành cho Web Admin quản lý hệ thống


3.

4.

5.

6.

7.

• Quản lý danh sách gia sư.
• Duyệt yêu cầu đăng ký làm gia sư.
• Thống kế tìm kiếm, tin đăng, lĩnh vực, mơn học.
• Quản lý tin đăng.
- Dành cho người dùng
Người tìm gia sư:
• Tìm kiếm gia sư.
• Đăng tin tìm gia sư.
• Xem thơng tin gia sư.
• Chat trao đổi trực tuyến với gia sư.
Gia sư:

• Đăng tin ứng tuyển.
• Tìm kiếm tin đăng tìm gia sư.
• Chat trao đổi trực tuyến với người tìm.
2.2 Các tính năng nổi bật
Xây dựng cơng cụ tìm kiếm bằng cách áp dụng máy học để tối ưu hóa kết quả
tìm kiếm. Giúp việc tìm kiếm của người dùng dễ dàng hơn.
Đối tượng
Đối tượng sử dụng :
- Phụ huynh, học sinh,.. có nhu cầu thuê gia sư dạy kèm trong học tập.
- Sinh viên, người có bằng cấp, chun mơn trong giảng dạy có nhu cầu trở thành
một gia sư.
Mục tiêu
- Hiểu rõ quy trình làm việc để tạo ra một ứng dụng công nghệ thông tin.
- Hiểu và áp dụng được Máy học vào ứng dụng.
- Tạo ra 1 ứng dụng sau cùng có thể sử dụng được và đáp ứng cho nhu cầu đề ra.
- Thực hiện được những tính năng đã đề ra ban đầu.
Phương pháp thực hiện
- Các thành viên nhóm lập kế hoạch thực hiện.
- Trao đổi thường xuyên với giảng viên hướng dẫn.
- Khảo sát nhu cầu tìm kiếm gia sư trên các mạng xã hội, các website tìm kiếm
việc làm, tìm kiếm gia sư.
- Phân tích thiết kế hệ thống, thiết kế giao diện, database.
- Xây dựng ứng dụng.
- Tìm hiểu nghiên cứu máy học, các kỹ thuật, thuật toán áp dụng vào việc tìm
kiếm, gợi ý, sàng lọc xếp loại gia sư.
Cơng nghệ nghiên cứu
- Frontend : ReactJS
- Backend : Flask
- Database : PostgreSql
- Máy học, thuật tốn áp dụng vào việc tìm kiếm, gợi ý, sàng lọc xếp loại gia sư

Kết quả mong muốn
- Xây dựng được ứng dụng với những tính năng đã đề ra ban đầu.
- Ứng dụng có tính thực tiễn cao.


-

Website có giao diện đẹp, thân thiện, dễ sử dụng.
Hiểu được kiến thức về máy học.
Áp dụng máy học thành cơng vào ứng dụng, giúp việc tìm kiếm, phân loại gia
sư hiệu quả.

Kế hoạch thực hiện:(Mô tả kế hoạch làm việc và phân công công việc cho từng sinh
viên tham gia)

Nội dung
cơng việc
1. Phân tích
u cầu, xác
định bài
tốn.

Thời gian thực
hiện

01/03/2021

2. Lựa chọn
công nghệ
để phát triển

dự án trên
nền tảng
web.

8/03/2021
21/03/2021

3. Xây dựng
ứng dụng

22/03/2021
01/05/2021

Mô tả

-

Lựa chọn đề tài
Khảo sát ứng dụng tương tự
Lựa chọn cơng nghệ và tìm
hiểu, nghiên cứu sử dụng

-

Phân tích, xác định, đặc tả chức
năng chính của hệ thống
Vẽ các lưu đồ, các luồng xử lý
Thiết kế CSDL, API - Thiết kế
UI
Nghiên cứu công nghệ, xây

dựng base source

-

-

4. Nghiên
cứu và xây
dựng tính
năng nổi
bật

02/05/2021
27/05/2021

-

Xây dựng ứng dụng ở nền tảng
web, backend , web admin
Liên tục nghiệm thu, kiểm thử
và sửa lỗi
Nghiên cứu về các hướng tiếp
cận đã có cho bài tốn tính
năng nổi bật
Lựa chọn và thử thực hiện hố
các giải pháp
Tích hợp giải pháp cuối cùng
vào ứng dụng

Phân cơng


Tú, Khanh

Tú, Khanh

Tú, Khanh

Tú, Khanh


5. Kiểm
thử, sửa lỗi
và deploy
ứng dụng

28/05/2021
10/06/2021

-

6. Hoàn
thiện báo
cáo và
chuẩn bị
phản biện
và bảo vệ

11/06/2021
20/06/2021


-

Xác nhận của CBHD

Thực hiện kiểm thử các luồng
chức năng
Tiến hành sửa các lỗi được tìm ra
Thực hiện kiểm thử trên mơi
trường production
Hồn thiện ứng dụng

Hồn thiện báo cáo, chuẩn bị
slide, nội dung demo
Chuẩn bị danh sách các câu hỏi
cho phản biện và bảo vệ
Tiếp thu và sửa chửa báo cáo
cũng như sản phẩm

Tú, Khanh

Tú, Khanh

TP. HCM, ngày 10 tháng 3 năm 2021

(Ký tên và ghi rõ họ tên)
Sinh viên 1
(Ký tên và ghi rõ họ tên)
TS. Trần Sơn Hải
Nguyễn Trọng Khanh


ThS. Huỳnh Nguyễn Khắc Huy

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

Phan Anh Tú


MỤC LỤC
CHƯƠNG 1.

GIỚI THIỆU CHUNG..................................................................1

1.1.

Lý do chọn đề tài ...........................................................................................1

1.2.

Tính năng nổi bật về chức năng của đề tài. ................................................1

1.3.

Đối tượng nghiên cứu: ..................................................................................1

1.4.

Phạm vi thực hiện..........................................................................................2

1.5.


Phương pháp nghiên cứu..............................................................................2

CHƯƠNG 2.

KIẾN THỨC NỀN TẢNG ............................................................3

2.1.

Kiến trúc hệ thống .........................................................................................3

2.2.

Tổng quan về mơ hình MVC ........................................................................4

2.2.1. Khái niệm ...................................................................................................4
2.2.2. Các thành phần trong mơ hình MVC .....................................................4
2.2.3. Ưu điểm MVC ...........................................................................................5
2.2.4. Nhược điểm ................................................................................................5
2.3.

Tổng quan về Flask .......................................................................................5

2.3.1. Khái niệm ...................................................................................................5
2.3.2. Tạo sao chọn Flask để phát triển server .................................................5
2.4.

Hệ quản trị cơ sở dữ liệu PostgreSQL ........................................................7

2.5.


Tổng quan về ReactJs ...................................................................................8

2.5.1. Giới thiệu nền tảng ReactJs .....................................................................8
2.5.2. Tại sao chọn ReactJs .................................................................................8
2.6.

Google maps Api ...........................................................................................9


2.6.1. Khái niệm ...................................................................................................9
2.6.2. Cách lấy Google Maps Api key ................................................................9
2.7.

ElasticSearch ...............................................................................................11

2.7.1. Khái niệm .................................................................................................11
2.7.2. Cách thức hoạt động ...............................................................................12
2.7.3. Ưu điểm ....................................................................................................12
2.7.4. Nhược điểm ..............................................................................................12
2.7.5. Các khái niệm cơ bản trong Elasticsearch............................................13
2.7.6. Cài đặt trên hệ điều hành Ubuntu .........................................................14
2.7.7. Sử dụng Elasticsearch trên Flask ..........................................................16
CHƯƠNG 3.
3.1.

XÂY DỰNG HỆ THỐNG ..........................................................18

Xây dựng kiến trúc hệ thống ......................................................................18


3.1.1. Xác định yêu cầu hệ thống .....................................................................18
3.1.2. Phân tích yêu cầu hệ thống .....................................................................19
3.2.

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

3.2.1

Sơ đồ Use Case .........................................................................................22

3.2.2

Sơ đồ hoạt động. ......................................................................................62

3.2.3

Sơ đồ tuần tự ..........................................................................................100

3.2.4

Sơ đồ lớp .................................................................................................124

3.2.5

Phân tích và thiết kế CSDL ..................................................................125

3.3 Thiết kế giao diện ..........................................................................................134
CHƯƠNG 4.

KẾT LUẬN, HƯỚNG PHÁT TRIỂN .....................................152


4.1 Ưu điểm ..........................................................................................................152
4.2 Nhược điểm ....................................................................................................152


4.3 Về mặt kiến thức tổng quát ..........................................................................152
4.4 Về mặt công nghệ ..........................................................................................152
4.5 Hướng phát triển ...........................................................................................153


DANH MỤC HÌNH
Hình 2-1.Kiến trúc hệ thống........................................................................................3
Hình 2-2. Mơ hình MVC .............................................................................................4
Hình 3-1. Quy trình của TutorOnline ........................................................................18
Hình 3-2. UseCase Tổng Quát ..................................................................................23
Hình 3-3 Biểu đồ lớp ...............................................................................................124
Hình 3-4 Giao diện trang chủ ..................................................................................135
Hình 3-5. Giao diện trang chủ (gia sư nổi bật trong tuần) ......................................135
Hình 3-6. Giao diện danh sách bài đăng tìm học viên ............................................136
Hình 3-7. Giao diện tìm kiếm bài đăng qua trên bản đồ .........................................136
Hình 3-8. Giao diện danh sách bài đăng tìm gia sư ................................................137
Hình 3-9. Giao diện tìm kiếm bài đăng bàng bản đồ ..............................................138
Hình 3-10. Giao diện danh sách gia sư ...................................................................138
Hình 3-11 Giao diện tìm gia sư bằng bản đồ ..........................................................139
Hình 3-12 Giao diện Thơng tin bài viết ..................................................................139
Hình 3-13 Giao diện Đăng ký tài khoản .................................................................140
Hình 3-14 Giao diện đăng bài viết ..........................................................................141
Hình 3-15 Giao diện thơng tin người dùng .............................................................142
Hình 3-16 Giao diện danh sách bài viết của bạn.....................................................143
Hình 3-17. Giao diện danh sách bài viết bạn đã theo dõi .......................................143

Hình 3-18. Giao diện danh sách bài viết đã đăng kí ...............................................144
Hình 3-19. Giao diện danh sách các lớp bạn đã tham gia .......................................145
Hình 3-20Giao diện quản lí lớp người dùng đăng kí bạn .......................................145
Hình 3-21. Giao diện theo dõi đanh giá người dùng...............................................146
Hình 3-22. Giao diện mời gia sư dạy ......................................................................146
Hình 3-23. Giao diện chỉnh sửa thơng tin cá nhân..................................................147
Hình 3-24. Giao diện đăng kí làm gia sư ................................................................148
Hình 3-25 Giao diện chỉnh sửa thơng tin gia sư .....................................................149
Hình 3-26 Giao diện đăng bài tìm kiếm học viên của gia sư ..................................150


Hình 3-27 Giao diện thơng tin gia sư ......................................................................151

DANH MỤC BẢNG
Bảng 3-1. Danh sách các Actor .................................................................................22
Bảng 3-2. Danh sách các use case .............................................................................25
Bảng 3-3. Phân rã use case đăng nhập ......................................................................27
Bảng 3-4. Phân rã use case quên mật khẩu ...............................................................27
Bảng 3-5. Phân rã use case thay đổi mật khẩu ..........................................................28
Bảng 3-6. Phân rã use case thay đổi thông tin người dùng .......................................29
Bảng 3-7. Phân rã use case xem chi tiết profile ........................................................30
Bảng 3-8. Phân rã use case đăng ký gia sư ...............................................................30
Bảng 3-9. Phân rã use case đăng bài viết tìm kiếm gia sư ........................................32
Bảng 3-10. Phân rã use case đăng bài viết tìm học viên ...........................................33
Bảng 3-11. Phân rã use case sửa thông tin bài viết ...................................................34
Bảng 3-12. Phân rã use case hiển thị danh sách bài viết đã đăng .............................34
Bảng 3-13. Phân rã use case tìm kiếm bài viết tìm gia sư ........................................36
Bảng 3-14. Phân rã use case tìm kiếm bài viết tìm học viên ....................................37
Bảng 3-15. Phân rã use case tìm kiếm gia sư ............................................................38
Bảng 3-16. Phân rã use case hiển thị vị trí bài viết tìm kiếm gia sư trên bản đồ ......39

Bảng 3-17. Phân rã use case xem chi tiết thông tin bài viết .....................................41
Bảng 3-18. Phân rã use case xem chi tiết thông tin gia sư ........................................42
Bảng 3-19. Phân rã use case xem chi tiết thông tin học viên ....................................43
Bảng 3-20. Phân rã use case đăng ký dạy trong bài viết tìm gia sư ..........................44
Bảng 3-21. Phân rã use case hiển thị danh sách chờ duyệt .......................................45
Bảng 3-22. Phân rã use case hiển thị danh sách đã yêu cầu .....................................45
Bảng 3-23. Phân rã use case hủy đăng ký bài viết ....................................................46
Bảng 3-24. Phân rã use case chấp nhận yêu cầu .......................................................47
Bảng 3-25. Phân rã use case từ chối yêu cầu ............................................................48


Bảng 3-26. Phân rã use case danh sách lớp đã dạy ...................................................49
Bảng 3-27. Phân rã use case đăng ký lớp học trong bài viết tìm học viên ...............50
Bảng 3-28. Phân rã use case hiển thị danh sách chờ duyệt .......................................51
Bảng 3-29. Phân rã use case hiển thị danh sách đã yêu cầu .....................................52
Bảng 3-30. Phân rã use case hủy đăng ký yêu cầu ...................................................52
Bảng 3-31. Phân rã use case chấp nhận yêu cầu .......................................................53
Bảng 3-32. Phân rã use case từ chối yêu cầu ............................................................54
Bảng 3-33. Phân rã use case hiện thị danh sách lớp đã học ......................................55
Bảng 3-34. Phân rã use case mời gia sư ....................................................................55
Bảng 3-35. Phân rã use case đánh giá .......................................................................57
Bảng 3-36. Phân rã use case xóa đánh giá ................................................................58
Bảng 3-37. Phân rã use case sửa đánh giá ................................................................59
Bảng 3-38. Phân rã use case xem đánh giá của học viên ..........................................59
Bảng 3-39. Phân rã use case theo dõi bài viết ...........................................................61
Bảng 3-40. Phân rã use case xem danh sách bài viết đang theo dõi .........................61
Bảng 3-41. Danh sách các sơ đồ hoạt động ..............................................................63
Bảng 3-42. Danh sách các sơ đồ tuần tự .................................................................101
Bảng 3-43. Các lớp của sơ đổ lớp ...........................................................................125
Bảng 3-44. Các đối tượng và thuộc tính của đối tượng ..........................................126

Bảng 3-45. Bảng User .............................................................................................127
Bảng 3-46. Bảng Tutor ............................................................................................129
Bảng 3-47. Bảng Post ..............................................................................................130
Bảng 3-48. Bảng Schedule ......................................................................................131
Bảng 3-49. Bảng Follow .........................................................................................131
Bảng 3-50. Bảng Registration .................................................................................132
Bảng 3-51. Bảng Class ............................................................................................133
Bảng 3-52. Bảng Rate .............................................................................................133
Bảng 3-53. Bảng Image...........................................................................................134


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

Từ viết

Từ đầy đủ

Giải thích

tắt
CSDL

Cơ sở dữ liệu

Là tập hợp các dữ liệu của hệ
thống

API

Application Programming Interface


Phương thức trung gian kết
nối các ứng dụng và thư viện
khác nhau.

SMTP

Simple Mail Transfer Protocol

Giao thức truyền tải thư tín
đơn giản hóa.

HTML

Hypertext Markup Language

HTML được sử dụng để tạo
và cấu trúc các thành phần trong
trang web hoặc ứng dụng, phân
chia các đoạn văn, heading,
titles, blockquotes…


TĨM TẮT KHĨA LUẬN
Khóa luận “XÂY DỰNG HỆ THỐNG GIA SƯ TRỰC TUYẾN” gồm 04 chương:
Chương 1: Giới thiệu về đề tài, đưa ra các điểm nổi bật so với các hệ thống trước.
Tiếp đến là đề xuất các giải pháp để giải quyết các vấn đề đã đặt ra. Ngoài ra, chương
1 cũng đề cập đến đối tượng nghiên cứu, phạm vi đề tài, phương pháp nghiên cứu.
Chương 2: Trình bày các kiến thức nền tảng, các cơng nghệ được sử dụng để xây
dựng ứng dụng gia sư.

Chương 3: Trình bày chi tiết quy trình xây dựng hệ thống, từ xác định và phân tích
u cầu bài tốn cho đến xây dựng CSDL, cuối cùng là xây dựng giao diện cho
website.
Chương 4: Kết luận, rút ra được các ưu nhược điểm của hệ thống và hướng phát triển
trong tương lai.


Chương 1. GIỚI THIỆU CHUNG
1.1. Lý do chọn đề tài
Trong thời đại cách mạng 4.0 hiện nay, internet phát triển một cách mạnh mẽ và
ảnh hưởng lớn đến mọi hoạt động của con người. Ngoài ra trong xã hội phát triển,
các bậc phụ huynh khơng có nhiều thời gian và những kiến thức đổi mới liên tục
để giúp đỡ con họ trong học tập, nên dịch vụ gia sư ngày càng được đông đảo các
phụ huynh, học sinh lựa chọn nhằm giúp con em mình đạt được những mục tiêu
nhất định trong học tập. Hệ thống tìm kiếm gia sư trực tuyến ra đời giúp các phụ
huynh, học sinh tìm kiếm gia sư trực tuyến dễ dàng, giúp tiết kiệm thời gian đến
trực tiếp các trung tâm để tìm kiếm gia sư. Đồng thời, các bạn sinh viên, người có
bằng cấp, chun mơn trong giảng dạy có nhu cầu trở thành một gia sư có thể
đăng ký trở thành ga sư.

1.2. Tính năng nổi bật về chức năng của đề tài.
-

-

Tìm kiếm bài viết bằng google map
• Có thể tìm kiếm bài viết của người dung khác một cách trực quan hơn
bằng các điểm đã được định vị trên bản đồ, có thể phân loại dễ dàng
hơn ngay trên bản đồ.
Tài khoản

• Gia sư và học viên có thể đăng bài viết tìm kiếm
• Quản lý bài viết mình đã đăng kí, theo dõi, và dễ dàng quản lí người
dùng đăng kí của bạn

1.3. Đối tượng nghiên cứu:
Khố luận này hướng đến nghiên cứu các đối tượng sau:
-

Các cơng nghệ:
• Flask

1


• ReactJs
• PostgreSql
• ElasticSearch
• Google maps Api
• Visual studio code
• Pycharm
-

Cơng cụ tìm kiếm: ElasticSearch.
Đối tượng trong phạm vị đề tài hướng đến:
• Người tìm kiếm gia sư
• Gia sư

1.4. Phạm vi thực hiện
-


Lập trình Website xây dựng bằng Framework React (ngôn ngữ Javascript).
Backend service được xây dựng bằng Framework Flask (ngơn ngữ Python).
Sử dụng Google maps Api.
Tìm hiểu và sử dụng ElasticSearch.

1.5. Phương pháp nghiên cứu
Nhóm đã sử dụng các phương pháp nghiên cứu:
-

Phương pháp đọc tài liệu

-

Phương pháp phân tích các website tìm kiếm gia sư hiện có

-

Phương pháp thực nghiệm

2


Chương 2. KIẾN THỨC NỀN TẢNG
2.1.

Kiến trúc hệ thống

Hình 2-1.Kiến trúc hệ thống

3



2.2.

Tổng quan về mơ hình MVC

2.2.1. Khái niệm

Hình 2-2. Mơ hình MVC
MVC là từ viết tắt của 'Model View Controller'. Nó đại diện cho các nhà phát triển
kiến trúc áp dụng khi xây dựng các ứng dụng. Với kiến trúc MVC, chúng ta xem
xét cấu trúc ứng dụng liên quan đến cách luồng dữ liệu của ứng dụng của chúng ta
hoạt động như thế nào.
2.2.2. Các thành phần trong mô hình MVC
Mơ hình MVC được chia làm 3 lớp xử lý gồm Model – View – Controller :
-

-

Model : là nơi chứa những nghiệp vụ tương tác với dữ liệu hoặc hệ quản trị
cơ sở dữ liệu (mysql, mssql… ); nó sẽ bao gồm các class/function xử lý nhiều
nghiệp vụ như kết nối database, truy vấn dữ liệu, thêm – xóa – sửa dữ liệu…
View : là nới chứa những giao diện như một nút bấm, khung nhập, menu, hình
ảnh… nó đảm nhiệm nhiệm vụ hiển thị dữ liệu và giúp người dùng tương tác
với hệ thống.

4


-


-

Controller : là nới tiếp nhận những yêu cầu xử lý được gửi từ người dùng, nó
sẽ gồm những class/ function xử lý nhiều nghiệp vụ logic giúp lấy đúng dữ
liệu thông tin cần thiết nhờ các nghiệp vụ lớp Model cung cấp và hiển thị dữ
liệu đó ra cho người dùng nhờ lớp View.
Sự tương tác giữa các thành phần:
Controller tương tác với qua lại với View
Controller tương tác qua lại với Model
Model và View khơng có sự tương tác với nhau mà nó tương tác với nhau
thơng qua Controller.
2.2.3. Ưu điểm MVC

-

-

Trình tự xử lý rất rõ ràng
Mơ hình MVC quy hoạch các class/function vào các thành phần riêng biêt
Controller - Model - View, việc đó làm cho quá trình phát triển - quản lý - vận
hành - bảo trì web diễn ra thuận lợi hơn, tạo ra được các chức năng chuyên
biệt hoá đồng thời kiểm soát được luồng xử lý.
Tạo mơ hình chuẩn cho dự án, khi người có chun mơn ngồi dự án tiếp cận
với dự án dễ dàng hơn.
Mơ hình đơn giản, dễ hiểu, xử lý những nghiệp vụ đơn giản, và dễ dàng triển
khai với các dự án nhỏ.
2.2.4. Nhược điểm

-


Đối với các dự án có tính phức tạp cao thì mơ hình MVC trở nên không khả
dụng.

2.3.

Tổng quan về Flask

2.3.1. Khái niệm
-

Flask là một web frameworks, nó thuộc loại micro-framework được xây dựng
bằng ngơn ngữ lập trình Python. Flask cho phép bạn xây dựng các ứng dụng
web từ đơn giản tới phức tạp. Nó có thể xây dựng các api nhỏ, ứng dụng web
chẳng hạn như các trang web, blog, trang wiki hoặc một website dựa theo thời
gian hay thậm chí là một trang web thương mại. Flask cung cấp cho bạn công
cụ, các thư viện và các công nghệ hỗ trợ bạn làm những công việc trên.
2.3.2. Tạo sao chọn Flask để phát triển server

-

Là một micro web framework:
• Flask là môt micro web framework được viết bằng Python, không
yêu cầu tool hay thư viện cụ thể nào. Flask cung cấp chức năng “súc

5


×