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

Xây dựng ứng dụng luyện thi đại học (khóa luận tốt nghiệp)

99 5 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 99
Dung lượng 3,22 MB

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

Nội dung

Trong đó có các tính năng chính: - Luyện tập với các bài tập có phân cấp độ, theo chương, môn học cùng với sự đánh giá khả năng hoàn thành bài tập đó - Thi thử trực tuyến với hệ thống tự

Trang 1

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

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

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

LÊ XUÂN TÙNG NGUYỄN THANH TUẤN

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

XÂY DỰNG ỨNG DỤNG LUYỆN THI ĐẠI HỌC

Building an application practicing exam preparation for university

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

TP HỒ CHÍ MINH, 2022

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

LÊ XUÂN TÙNG – 18521616 NGUYỄN THANH TUẤN - 18521604

KHÓA LUẬN TỐT NGHIỆP XÂY DỰNG ỨNG DỤNG LUYỆN THI ĐẠI HỌC

Building an application practicing exam preparation for university

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

GIẢNG VIÊN HƯỚNG DẪN ThS HUỲNH HỒ THỊ MỘNG TRINH

TP HỒ CHÍ MINH, 2022

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

1 – Chủ tịch

2 – Thư ký

3 – Uỷ viên

4 – Uỷ viên

Trang 4

LỜI CẢM ƠN

Khóa luận tốt nghiệp với đề tài “XÂY DỰNG ỨNG DỤNG LUYỆN THI ĐẠI HỌC”

là minh chứng cho quá trình cố gắng không ngừng nghỉ trong việc tìm tòi, học hỏi trong suốt 4 năm học tập tại trường Đại học Công nghệ Thông tin của nhóm chúng em Các thầy cô trường Đại học Công nghệ Thông Tin nói chung và các thầy cô trong Khoa Công nghệ Phần mềm nói riêng đã tận tình truyền đạt rất nhiều kiến thức bổ ích và vô cùng cần thiết tới chúng em để chúng em có được một nền tảng chuyên môn vững chắc trong tương lai Thông qua khoá luận này, chúng em đã thể hiện những gì đã được học và kết hợp lại để cố gắng tạo nên một sản phẩm có tính ứng dụng thực tế cao, bước đầu là quy

mô vừa và nhỏ, dần dần hướng đến một sản phẩm hoàn chỉnh với quy mô lớn hơn Chúng em xin gửi lời cảm ơn chân thành đến quý thầy cô trường Đại học Công nghệ Thông tin nói chung, và quý thầy cô khoa Công nghệ Phần mềm nói riêng, đặc biệt là cô Huỳnh Hồ Thị Mộng Trinh đã chu đáo và tận tình hướng dẫn chúng em, giúp chúng em

có điều kiện tốt nhất để hoàn thành khoá luận với chất lượng cao nhất

Cảm ơn giảng viên phản biện và các thầy cô trong hội đồng chấm khoá luận với những lời khuyên, góp ý quý báu và bổ ích Từ đó khoá luận tốt nghiệp của chúng em đã trở nên hoàn thiện hơn

Bên cạnh đó, nhóm chúng em cũng xin gửi lời cảm ơn tới gia đình, bạn bè đã luôn bên cạnh, động viên và đóng góp ý kiến trong quá trình chúng em hoàn thành khóa luận này Trong suốt quá trình thực hiện khóa luận, do quy mô của sản phẩm là khá lớn so với các

đồ án thông thường khác, với thời gian và vốn kiến thức vẫn còn nhiều hạn chế, chắc chắn nhóm khó tránh khỏi những sai sót không mong muốn Chúng em rất mong nhận được sự góp ý chân thành từ phía thầy cô và các bạn

Thành phố Hồ Chí Minh, tháng 06 năm 2022

Lê Xuân Tùng

Trang 5

MỤC LỤC

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

Chương 1 TỔNG QUAN 2

1.1 Giới thiệu đề tài 2

1.2 Mục tiêu 7

1.3 Phạm vi 8

1.4 Phương pháp thực hiện 8

1.5 Ý nghĩa thực tiễn 8

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

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

2.1 Thu thập dữ liệu về ma trận đề thi 10

2.2 Thiết kế thuật toán để giải quyết bài toán gợi ý lộ trình luyện thi 15

2.3 Thiết kế thuật toán để giải quyết bài toán nhận diện thẻ giáo viên 16

Chương 3 TỔNG QUAN CÔNG NGHỆ 18

3.1 ReactJS 18

3.2 NodeJS 19

3.3 MongoDB 20

3.4 Express 20

3.5 TesseractJS 21

Chương 4 XÂY DỰNG HỆ THỐNG LUYỆN THI ĐẠI HỌC 22

4.1 Phân tích yêu cầu hệ thống 22

Trang 6

4.1.1 Phân tích yêu cầu chức năng 22

4.1.2 Yêu cầu tính năng 22

4.1.3 Phân tích yêu cầu phi chức năng 22

4.1.4 Sơ đồ use case 23

4.1.5 Một số use case của hệ thống 26

4.2 Thiết kế hệ thống 32

4.2.1 Sơ đồ tuần tự thao tác thi thử 32

4.2.2 Sơ đồ tuần tự thao tác làm khảo sát - nhận gợi ý lộ trình luyện thi 35

4.2.3 Sơ đồ tuần tự thao tác làm bài tập 36

4.2.4 Sơ đồ tuần tự thao tác tham khảo tài liệu luyện thi 37

4.3 Thiết kế cơ sở dữ liệu 40

4.3.1 Sơ đồ cơ sở dữ liệu 40

4.3.2 Mô tả các bảng dữ liệu 42

4.4 Thiết kế kiến trúc hệ thống 50

4.4.1 Kiến trúc tổng thể 50

4.4.2 Kiến trúc ứng dụng web 52

4.4.3 Sơ đồ thành phần 53

4.4.4 Sơ đồ triển khai 54

4.5 Thiết kế giao diện 55

4.5.1 Danh sách màn hình 55

4.5.2 Một số màn hình của ứng dụng 61

Chương 5 KẾT LUẬN VÀ HƯỚNG PHÁT TRIỂN 83

Trang 7

5.1 Kết quả đạt được 83

5.2 Thuận lợi và khó khăn 84

5.2.1 Thuận lợi 84

5.2.2 Khó khăn 84

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

TÀI LIỆU THAM KHẢO 86

Trang 8

DANH MỤC HÌNH

Hình 1-1 Tỷ lệ sử dụng website luyện thi đại học 2

Hình 1-2 Số lượng người dùng ở các website luyện thi đại học 3

Hình 1-3 Tỷ lệ đánh giá việc luyện thi online 4

Hình 1-4 Tỷ lệ mong muốn sử dụng website luyện thi đại học 4

Hình 2-1 Sơ đồ thuật toán nhận diện thẻ giáo viên 16

Hình 2-2 Giải thuật diện hình ảnh của TerractJs 16

Hình 4-1 Sơ đồ Use case tổng quan 23

Hình 4-2 Sơ đồ use-case thi thử 26

Hình 4-3 Sơ đồ use-case làm khảo sát – nhận lộ trình luyện thi 28

Hình 4-4 Sơ đồ use-case làm bài tập 29

Hình 4-5 Sơ đồ use-case tham khảo tài liệu luyện thi 30

Hình 4-6 Sơ đồ tuần tự thao tác thi thử 32

Hình 4-7 Sơ đồ tuần tự thao tác xem lại và thảo luận đề thi 33

Hình 4-8 Sơ đồ tuần tự thao tác xem bảng xếp hạng 34

Hình 4-9 Sơ đồ tuần tự thao tác khảo sát - nhận gợi ý lộ trình luyện thi 35

Hình 4-10 Sơ đồ tuần tự thao tác làm bài tập 36

Hình 4-11 Sơ đồ tuần tự thao tác xem đề thi tham khảo 37

Hình 4-12 Sơ đồ tuần tự thao tác xem tài liệu tham khảo 38

Hình 4-13 Sơ đồ thao tác xem bài chia sẻ 39

Hình 4-14 Sơ đồ cơ sở dữ liệu 40

Hình 4-15 Mô hình MERN stack 51

Hình 4-16 Kiến trúc ứng dụng web 52

Hình 4-17 Sơ đồ thành phần của hệ thống 53

Hình 4-18 Sơ đồ triển khai ứng dụng 54

Hình 4-19 Danh sách liên kết màn hình phía người dùng 55

Trang 9

Hình 4-20 Danh sách liên kết màn hình phía quản trị 58

Hình 4-21 Màn hình đăng ký thi thử 61

Hình 4-22 Màn hình Thi thử 62

Hình 4-23 Màn hình xem lại kết quả bài thi đã làm 64

Hình 4-24 Màn hình bình luận 65

Hình 4-25 Màn hình chọn lựa những môn học user sẽ thi 66

Hình 4-26 Màn hình điều hướng user làm bài đánh giá năng lực 67

Hình 4-27 Màn hình lựa chọn mục tiêu điểm số của user mong muốn 68

Hình 4-28 Màn hình lộ trình luyện thi 69

Hình 4-29 Màn hình danh sách các môn học 70

Hình 4-30 Màn hình danh sách chương 71

Hình 4-31 Màn hình làm bài tập 72

Hình 4-32 Màn hình tham khảo tài liệu luyện thi 73

Hình 4-33 Màn hình danh sách đề thi thử tham khảo 74

Hình 4-34 Màn hình xem tài liệu tham khảo 75

Hình 4-35 Màn hình tra cứu 76

Hình 4-36 Màn hình trang cá nhân 77

Hình 4-37 Màn hình đổi mật khẩu 78

Hình 4-38 Màn hình sửa thông tin cá nhân 79

Hình 4-39 Màn hình danh sách bài chia sẻ 80

Hình 4-40 Màn hình bài chia sẻ 81

Hình 4-41 Màn hình quản lý người dùng 82

Trang 10

DANH MỤC BẢNG

Bảng 1-1 Tiêu chí đánh giá của một số website luyện thi đại học nổi tiếng 5

Bảng 2-1 Ma trận đề thi môn Toán năm 2021 11

Bảng 2-2 Ma trận đề thi môn Vật lý năm 2021 11

Bảng 2-3 Ma trận đề thi môn Địa lý năm 2021 12

Bảng 2-4 Ma trận đề thi môn Toán năm 2020 13

Bảng 2-5 Ma trận đề thi môn Vật lý năm 2020 13

Bảng 2-6 Ma trận đề thi môn Địa lý năm 2020 14

Bảng 4-1 Danh sách các actor 24

Bảng 4-2 Danh sách các use-case 24

Bảng 4-3 Đặc tả use-case thi thử 27

Bảng 4-4 Đặc tả use-case làm khảo sát – nhận lộ trình luyện thi 28

Bảng 4-5 Đặc tả use-case làm bài tập 29

Bảng 4-6 Đặc tả use-case tham khảo tài liệu luyện thi 30

Bảng 4-7 Danh sách các bảng dữ liệu 41

Bảng 4-8 Bảng đơn vị/trường 42

Bảng 4-9 Bảng chương học 42

Bảng 4-10 Bảng danh sách bài tập đã hoàn thành 43

Bảng 4-11 Bảng danh sách đề thi đã hoàn thành 43

Bảng 4-12 Bảng danh sách bài tập 43

Bảng 4-13 Bảng danh sách tài liệu tham khảo 44

Bảng 4-14 Bảng danh sách đề thi tham khảo 45

Bảng 4-15 Bảng phân quyền 45

Bảng 4-16 Bảng danh sách bài chia sẻ 46

Bảng 4-17 Bảng danh sách môn học 46

Bảng 4-18 Bảng danh sách đề thi 47

Trang 11

Bảng 4-19 Bảng danh sách trường đại học 47

Bảng 4-20 Bảng danh sách người dùng 48

Bảng 4-21 Bảng danh sách tài khoản giáo viên yêu cầu duyệt 48

Bảng 4-22 Bảng danh sách gợi ý lộ trình 49

Bảng 4-23 Bảng danh sách môn học gợi ý 49

Bảng 4-24 Bảng danh sách bình luận đề thi 50

Bảng 4-25 Bảng danh sách bài tập đã nộp 50

Bảng 4-26 Danh sách màn hình phía người dùng 55

Bảng 4-27 Danh sách màn hình phía quản trị 59

Bảng 4-28 Mô tả màn hình đăng ký thi thử 61

Bảng 4-29 Mô tả màn hình thi thử 63

Bảng 4-30 Mô tả màn hình xem lại kết quả bài thi đã làm 64

Bảng 4-31 Mô tả màn hình bình luận 65

Bảng 4-32 Mô tả màn hình chọn lựa những môn học user sẽ thi 66

Bảng 4-33 Mô tả màn hình điều hướng user làm bài đánh giá năng lực 67

Bảng 4-34 Mô tả màn hình lựa chọn mục tiêu điểm số của user mong muốn 68

Bảng 4-35 Mô tả màn hình lộ trình luyện thi 69

Bảng 4-36 Mô tả màn hình danh sách các môn học 70

Bảng 4-37 Mô tả màn hình làm bài tập 71

Bảng 4-38 Mô tả màn hình làm bài tập 72

Bảng 4-39 Mô tả màn hình tham khảo tài liệu luyện thi 73

Bảng 4-40 Mô tả danh sách đề thi thử tham khảo 74

Bảng 4-41 Mô tả màn hình xem tài liệu tham khảo 76

Bảng 4-42 Mô tả màn hình tra cứu 77

Bảng 4-43 Mô tả màn hình trang cá nhân 77

Bảng 4-44 Mô tả màn hình đổi mật khẩu 78

Bảng 4-45 Mô tả màn hình sửa thông tin cá nhân 79

Trang 12

Bảng 4-46 Mô tả màn hình danh sách bài chia sẻ 80 Bảng 4-47 Mô tả màn hình bài chia sẻ 81 Bảng 4-48 Mô tả màn hình quản lý người dùng 82

Trang 13

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

STT Từ viết tắt Từ đầy đủ Ý nghĩa

1 THPT Trung học phổ thông Trung học phổ phông

2 UIT University of Information

Technology

Trường Đại học Công nghệ Thông tin – Đại học Quốc gia

Tp Hồ Chí Minh

Trang 14

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

Hiện nay, các bạn học sinh đặc biệt là học sinh cấp 3 được tiếp cận Internet từ khá sớm,

và dần dần việc ôn luyện chuẩn bị cho kỳ thi THPT Quốc gia trên các trang web luyện thi ngày càng phổ biến Có khá nhiều trang web ôn thi THPT Quốc gia ở thời điểm hiện tại, tuy nhiên điểm chung của những trang web này là: dạy học qua video và bán khoá học online đó, và chỉ những học sinh đã đăng ký khoá học mới có thể tiếp cận được nguồn đề thi đó Và không phải học sinh nào cũng đủ điều kiện để mua những khoá học online này bởi vì tiền mua 1 khoá học online trên mạng không hề rẻ đối với 1 học sinh THPT (thường dao động từ 600.000 - 1.000.000 VND)

Nhằm cung cấp cho các bạn học sinh có một môi trường để luyện tập, thử sức cùng các

đề thi thử và hướng tới kỳ thi đại học Trong đó có các tính năng chính:

- Luyện tập với các bài tập có phân cấp độ, theo chương, môn học cùng với sự đánh giá khả năng hoàn thành bài tập đó

- Thi thử trực tuyến với hệ thống tự động chấm bài trắc nghiệm

- Xem lại và trao đổi sau mỗi đề thi

- Tra cứu thông tin tuyển sinh đại học

- Tham khảo tài liệu, đề thi mới nhất trên cả nước, các bài chia sẻ hữu ích về việc

ôn thi đại học

- Ngoài ra còn các tính năng khác như khảo sát và đưa ra gợi ý lộ trình luyện thi, tính năng quản trị và quyền truy cập giáo viên

Kết quả cuối cùng của khoá luận: Nhóm đã xây dựng một ứng dụng luyện thi đại học với các tính năng chính nêu trên

Trang 15

Chương 1 TỔNG QUAN

1.1 Giới thiệu đề tài

Theo khảo sát khoảng 194 học sinh THPT (đa phần tại tỉnh Quảng Bình và tỉnh Quảng Ngãi), là đại diện cho những học sinh từ những tỉnh nhỏ lẻ trên cả nước, thì có kết quả:

- 78.9% học sinh chưa từng luyện thi đại học trên các website trực tuyến Một số

lý do được chia sẻ là:

Hình 1-1 Tỷ lệ sử dụng website luyện thi đại học

● “Học phí mỗi khoá học khá cao so với thu nhập tại địa phương”

● “Để luyện thi trên những trang web này đều phải đăng ký mua khoá học, nhưng vì giá mua khá cao so với điều kiện kinh tế của gia đình nên không mua được”

● “Không quen sử dụng máy tính và truy cập các website luyện thi”

- “hocmai.vn”, “tuyensinh247.com”, “moon.vn”: là 3 trang web được tin dùng

từ các bạn học sinh

Trang 16

Hình 1-2 Số lượng người dùng ở các website luyện thi đại học

- Hơn 90%: các bạn học sinh đều cảm thấy thích thú với việc luyện thi online trên

những trang web Cụ thể là:

● 37.1%: cảm thấy việc luyện thi online “Rất cần thiết”

● 58.2%: cảm thấy việc luyện thi online “Cũng hay”

Trang 17

Hình 1-3 Tỷ lệ đánh giá việc luyện thi online

- Gần 100%: mọi người đều rất mong đợi được trải nghiệm 1 website luyện thi đại

học hoàn toàn miễn phí từ việc thi thử đến việc tra cứu tài liệu ôn thi, đề thi cũng như thông tin tuyển sinh

Hình 1-4 Tỷ lệ mong muốn sử dụng website luyện thi đại học

Trang 18

Bảng so sánh các tính năng của các hệ thống chia sẻ tài liệu đang trên thị trường và hệ thống đề xuất:

Bảng 1-1 Tiêu chí đánh giá của một số website luyện thi đại học nổi tiếng

Tiêu chí

đánh giá hocmai.vn tuyensinh247.com moon.vn

Hệ thống đề xuất

Trang 19

Tài liệu tham

thực tự động Không Không Không Có

- Từ những con số thống kê trên đã cho ta thấy rằng, nhu cầu được luyện thi đại học trên 1 website không tốn bất kỳ loại phí nào của các bạn học sinh là rất lớn, đặc biệt là các bạn học sinh ở những tỉnh thành nhỏ lẻ, còn gặp nhiều khó khăn

về mặt kinh tế Hơn thế nữa, việc không thuần thục các thao tác với máy tính cũng như truy cập Internet cũng là rào cản không hề nhỏ cho các bạn học sinh Và về lâu dài, việc ngày càng kéo dài điều này sẽ dẫn đến sự thua thiệt không đáng có, khiến các bạn học sinh khó có thể tiếp cận được nguồn tài liệu có chọn lọc và tham gia thử thách mình ở những bài thi thử đầy thử thách

- Hệ thống luyện thi đại học là một website sẽ giúp cho các bạn học sinh có thể trực tiếp luyện tập làm những bài tập theo từng chủ đề khác nhau, cũng như là trải nghiệm thi thử Ngoài ra, còn có 1 kho tài liệu để mọi người có thể tham khảo và nhiều tính năng hỗ trợ cho các bạn học sinh có 1 trải nghiệm ôn thi với những thao tác cực kỳ đơn giản mà ai cũng sẽ làm quen được ngay trong lần đầu trải nghiệm

Trang 20

- Cả 2 thành viên trong nhóm em đều đã từng trải qua giai đoạn luyện thi Trung học phổ thông Quốc gia cực kỳ quan trọng trong đời mình Hơn ai hết, chính chúng em hiểu rất rõ sự lo lắng cũng như những khó khăn mà mỗi bạn học sinh trong giai đoạn này phải đối mặt Nếu như không phải gặp khó khăn trong việc

sử dụng Internet để tìm kiếm tài liệu ôn tập thì cũng gặp không ít khó khăn từ việc phải đi góp nhặt từng đề thi thử một về để tổng hợp lại mới có thể làm, ngoài ra còn phải đi tìm lời giải cho những câu hỏi chưa làm được trong những bộ đề thi này Việc này tuy là vẫn khả thi nhưng đòi hỏi các bạn học sinh phải khá thông thạo trong việc sử dụng máy tính cũng như biết cách tra cứu trên Internet, ngoài

ra cũng gây tốn không ít thời gian tìm kiếm nguồn tài liệu này Từ đó, dưới góc nhìn của những người đã từng trải qua những khó khăn này mà nhóm chúng em muốn cùng nhau xây dựng 1 hệ thống tổng hợp nguồn đề chất lượng cũng như là không gian ôn tập, luyện thi và cung cấp những thông tin tuyển sinh bổ ích cho các bạn học sinh để các bạn có thể “toàn tâm toàn lực” chuẩn bị thật tốt cho công cuộc chinh phục cuộc thi có thể nói là “bước ngoặt” trong chính cuộc đời của chính các bạn

- Đề tài này cũng là một sự tâm huyết của giảng viên hỗ trợ ThS Huỳnh Hồ Thị Mộng Trinh Cô đã góp ý và đưa ra ý tưởng sơ khai cho nhóm, sau nhiều lần trao đổi giữa cô và nhóm chúng em thì cuối cùng cô và nhóm chúng em đã đi đến quyết định sẽ lựa chọn đề tài này

1.2 Mục tiêu

- Xây dựng một ứng dụng giúp cho các bạn học sinh trong quá trình ôn thi đại học

có thể tiếp cận dễ dàng hơn với nguồn tài liệu, đề thi có chọn lọc

- Các bạn học sinh có thể theo dõi những thành tích mình đạt được quá trình ôn tập, làm đề thi của mình để có thể có những thay đổi phù hợp hơn

Trang 21

- Tạo ra một không gian làm đề thi thử có tính giờ theo chuẩn của Bộ giáo dục để các bạn học sinh làm quen với áp lực thời gian làm bài

- Xây dựng trang quản trị để quản lý tài nguyên của website

- Phân quyền cho giáo viên có thể đóng góp đề thi cho hệ thống

- Đưa ra gợi ý lộ trình ôn luyện thi cho các bạn học sinh

- Kiểm duyệt tự động khi đăng ký quyền giáo viên

1.3 Phạm vi

- Đề tài tập trung vào xây dựng hệ thống trên nền tảng website hướng tới đối tượng

sử dụng chính là các bạn học sinh THPT chuẩn bị cho kì thi Đại học Ngoài ra, các quý thầy, cô giáo là giáo viên giảng dạy bậc THPT

- Các bạn học sinh có thể sử máy tính cá nhân hoặc smartphone để truy cập website bởi vì website có hỗ trợ responsive

- Các thầy, cô giáo có thể đóng góp dữ liệu cho hệ thống (tài liệu tham khảo, bài tập, bài chia sẻ, …)

- Các bạn học sinh sẽ có một nơi luyện thi mới thú vị hơn và có một nguồn đề mới

có chọn lọc theo chuẩn của Bộ giáo dục để có thể chuẩn bị tốt nhất cho kỳ thi Đại học sắp tới

Trang 22

- Các bạn học sinh có thể theo dõi những thành tích mình đạt được quá trình ôn tập, làm đề thi của mình để có thể có những thay đổi phù hợp hơn

- Có không gian trao đổi, bình luận dưới mỗi đề thi “đã làm” để các bạn có thể nhờ mọi người trả lời những thắc mắc của mình gặp phải khi làm đề thi đó

- Các bạn học sinh có thể chủ động tra cứu thông tin tuyển sinh từ đa số các trường Đại học trên cả nước trong các năm gần đây ngay trên website

1.6 Kết quả dự kiến

- Hiểu rõ hơn các công nghệ mới:

● Front - end: ReactJS

● Back - end: NodeJS, MongoDB, Express

- Hoàn thành sản phẩm với các chức năng đã đề ra trước đó

- Giao diện thân thiện, dễ sử dụng ngay cả với những bạn học sinh ít sử dụng máy tính

- Tạo ra những giá trị thiết thực của mục tiêu hướng tới

Trang 23

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

2.1 Thu thập dữ liệu về ma trận đề thi

Trong quá trình ôn thi Đại học, luôn có một vấn đề mà khá nhiều học sinh vướng mắc

đó chính là không biết phải ôn luyện từ đâu, khi lượng kiến thức học được trong 12 năm ngồi trên ghế nhà trường chỉ gói gọn trong 1 đề thi chỉ có 40 hoặc 50 câu hỏi Nên việc lựa chọn và sắp xếp độ ưu tiên kiến thức trong giai đoạn ôn thi là rất quan trọng và sẽ ảnh hưởng khá lớn đến điểm số đạt được của các bạn học sinh trong kỳ thi này

Sau đây, nhóm đã tiến hành thu thập số liệu, nghiên cứu về ma trận đề thi các môn trong

kỳ thi THPT Quốc gia qua các năm Và nhóm đã rút ra được rằng, ma trận đề thi của các môn trong kỳ thi THPT Quốc gia đa phần sẽ có phổ điểm dựa vào 2 tiêu chí là: độ khó câu hỏi và phạm vi kiến thức (theo chương) của câu hỏi Đối với từng chương sẽ chiếm một số lượng câu hỏi nhất định đi kèm với nhiều mức độ khó khác nhau trong đề thi THPT Quốc gia

Vì vậy, Nhóm đã quyết định đưa ra những gợi ý ôn thi cho người dùng bằng phương pháp dựa trên “điểm số kỳ vọng” so với “điểm số hiện tại” của người dùng theo từng môn học để có thể đưa ra những gợi ý tốt nhất có thể

- Điểm số hiện tại: Nhóm sẽ cho các bạn học sinh làm đề thi chuẩn của Bộ Giáo dục và Đào tạo tương ứng với từng môn học mà học sinh đã lựa chọn

- Điểm số kỳ vọng: Nhóm sẽ cho các bạn học sinh lựa chọn mức điểm kỳ vọng trong kỳ thi THPT Quốc gia sắp tới

Tương ứng với từng điểm số kỳ vọng của các bạn so với điểm số hiện tại mà các bạn học sinh đã làm được trong bài kiểm tra, các bạn học sinh sẽ nhận được từng lộ trình tương ứng

Trang 24

Sau đây là các ma trận đề thi của một số môn học trong những năm gần đây

- Năm 2021:

+ Toán học:

Bảng 2-1 Ma trận đề thi môn Toán năm 2021

Nhận biết

Thông hiểu

Vận dụng

Vận dụng cao

Tổng

số câu Chương 1: Đạo hàm và

Thông hiểu

Vận dụng

Vận dụng cao

Tổng

số câu Chương 1: Dao động cơ 2 1 1 2 6

Trang 25

Thông hiểu

Vận dụng

Vận dụng cao

Tổng

số câu Chương 1: Địa lý tự

Trang 26

Thông hiểu

Vận dụng

Vận dụng cao

Tổng

số câu Chương 1: Đạo hàm và

Thông hiểu

Vận dụng

Vận dụng cao

Tổng

số câu Chương 1: Dao động cơ 3 2 3 0 8

Trang 27

Thông hiểu

Vận dụng

Vận dụng cao

Tổng

số câu Chương 1: Địa lý tự

Trang 28

Chương 5 Thực hành kĩ

năng địa lý

2.2 Thiết kế thuật toán để giải quyết bài toán gợi ý lộ trình luyện thi

Theo như những dữ liệu mà nhóm thu thập được về ma trận đề thi, thì nhóm đã xây dựng được giải pháp nhằm đưa ra gợi ý lộ trình luyện thi cho các bạn học sinh dựa trên 2 yếu

tố chính là: số điểm làm bài kiểm tra của hệ thống dành cho học sinh (Dựa theo ma trận chuẩn từ Bộ Giáo dục và Đào tạo) và số điểm mục tiêu mà bạn học sinh mong muốn

T = (( f∘g ) (X, Y)) Trong đó, T là lộ trình luyện thi của học sinh, f là lộ trình theo điểm mục tiêu từ hệ thống, g là lộ trình theo điểm số làm bài từ hệ thống, X là số điểm thi từ bài kiểm tra đầu vào mà học sinh làm được, Y là số điểm mục tiêu của học sinh Như chúng ta thấy, tùy thuộc vào số điểm làm bài từ bài kiểm tra đầu vào mà học sinh làm trên hệ thống khi làm khảo sát (X) và số điểm mục tiêu mà học sinh mong muốn (Y), thì hệ thống sẽ xử lý tích hợp số điểm đó vào hàm ( f∘g ) để lọc ra một bộ lộ trình phù hợp với bạn học sinh đó Như vậy, khi X, Y có sự chênh lệch càng lớn, tức số điểm hiện tại và số điểm mục tiêu của bạn học sinh chênh lệch càng lớn thì T sẽ có sự biến thiên giá trị càng nhiều

Trang 29

2.3 Thiết kế thuật toán để giải quyết bài toán nhận diện thẻ giáo viên

Hình 2-1 Sơ đồ thuật toán nhận diện thẻ giáo viên

Hình 2-2 Giải thuật diện hình ảnh của TerractJs

Việc nhận diện thẻ giáo viên sẽ diễn ra trong 3 bước chính:

- Quét thông tin để đọc được các trường cơ bản của thẻ

- Phân tích các trường đã đọc được và tính tỷ lệ khớp so với các trường thông tin

đã nhập lúc đăng ký

Trang 30

- Đối chiếu tỷ lệ và có cách xử lý riêng cho từng mức

Công thức tính tỷ lệ với từng trường thông tin cơ bản:

𝑀𝑎𝑡𝑐ℎ = ∑ 𝐶ℎ𝑎𝑟𝑎𝑐𝑡𝑒𝑟 𝑚𝑎𝑡𝑐ℎ

𝐹𝑖𝑒𝑙𝑑 𝑙𝑒𝑛𝑔𝑡ℎ 𝑖=1

𝐹𝑖𝑒𝑙𝑑 𝑙𝑒𝑛𝑔𝑡ℎTrong đó: Match là tỷ lệ, Field length là độ dài của trường, Character match là tỷ lệ khớp theo từng ký tự

Sau khi có được tỷ lệ từng trường, tính tỷ lệ trung bình bằng cách:

𝑆 =∑ 𝑀𝑎𝑡𝑐ℎ𝑖

𝑛 𝑖=1

𝑛Trong đó: S là tỷ lệ trung bình, n là tổng số trường, 𝑀𝑎𝑡𝑐ℎ𝑖 là tỷ lệ của trường thứ i

Trang 31

Chương 3 TỔNG QUAN CÔNG NGHỆ

3.1 ReactJS

Ứng dụng sử dụng ReactJS trong việc xây dựng front-end

- Xây dựng các UI Components

- Gọi API, xử lý dữ liệu gửi và nhận

- Xử lý lỗi ở phía người dùng

Các định nghĩa cơ bản về ReactJS:

- React là một thư viện JavaScript để xây dựng giao diện người dùng Nó được phát triển bởi Facebook và có một cộng đồng lớn gồm các nhà phát triển và công ty cá nhân

- React có thể được sử dụng làm cơ sở trong việc phát triển các ứng dụng một trang hoặc di động

- ReactJS cho phép Developer viết ứng dụng trực tiếp trên JavaScript Không chỉ vậy, ReactJS còn sử dụng JSX – một sự pha trộn tuyệt vời của JavaScript và HTML làm rõ toàn bộ quá trình viết cấu trúc trang web Developer giờ đây có thể tạo nên một tính năng mới và có thể xem nó xuất hiện ngay trong thời gian thực, giúp Developer có thể được đưa trực tiếp các đoạn HTML vào JavaScript

- Cho phép Developer chia nhỏ những cấu trúc UI phức tạp thành những component độc lập Developer sẽ không phải lo lắng về tổng thể ứng dụng web bởi giờ đây, họ đã có thể dễ dàng chia nhỏ các cấu trúc UI/UX phức tạp thành từng component đơn giản hơn

- Thông qua Props, các component có thể kết nối với nhau bằng cách sử dụng data tùy biến Điều này giúp chuyển các dữ liệu đã được tùy biến đến một UI component cụ thể

- Tính năng State trong ReactJS giúp điều chỉnh trạng thái cho các component (child) nhận data từ một component nguồn (parent) Developer có thể thay đổi

Trang 32

trạng thái cho nhiều component (child) trên ứng dụng nhưng không ảnh hưởng tới component gốc (parent) đang ở trạng thái Stateful

- React cung cấp nhiều công cụ out-of-the-box: Khi bạn bắt đầu những chuyến phiêu lưu với React, đừng quên cài đặt extension chính thức của React Chrome,

nó giúp debug app nhanh hơn

3.2 NodeJS

Ứng dụng sử dụng NodeJS trong việc xây dựng back-end

- Xây dựng các model và liên kết với hệ quản trị cơ sở dữ liệu

- Quản lý API

- Xây dựng các controller

Các khái niệm cơ bản trong NodeJS:

- NodeJS là một nền tảng (Platform) phát triển độc lập được xây dựng ở trên Javascript Runtime của Chrome mà chúng ta có thể xây dựng được các ứng dụng mạng một cách nhanh chóng và dễ dàng mở rộng

- NodeJS được xây dựng và phát triển từ năm 2009, bảo trợ bởi công ty Joyent, trụ

sở tại California, Hoa Kỳ Phần Core bên dưới của NodeJS được viết hầu hết bằng C++ nên cho tốc độ xử lý và hiệu năng khá cao

- NodeJS thường được áp dụng cho các sản phẩm có lượng truy cập lớn, cần mở rộng nhanh, cần đổi mới công nghệ, hoặc tạo ra các dự án Startup nhanh nhất có thể

- Những đặc điểm làm nên lợi thế của NodeJS là:

+ Các ứng dụng NodeJS được viết bằng javascript, ngôn ngữ này là một ngôn ngữ khá thông dụng

+ NodeJS chạy đa nền tảng phía Server, sử dụng kiến trúc hướng sự kiện driven, cơ chế non-blocking I/O làm cho nó nhẹ và hiệu quả

Trang 33

Event-+ Có thể chạy ứng dụng NodeJS ở bất kỳ đâu trên máy Mac – Window – Linux, hơn nữa cộng đồng NodeJS rất lớn và hoàn toàn miễn phí Cộng đồng NodeJS là rất lớn và các package đều hoàn toàn free

+ Các ứng dụng NodeJS đáp ứng tốt thời gian thực và chạy đa nền tảng, đa thiết

bị

3.3 MongoDB

Ứng dụng sử dụng MongoDB làm hệ quản trị cơ sở dữ liệu

- MongoDB là một hệ quản trị cơ sở dữ liệu mã nguồn mở, là CSDL thuộc NoSql

và được hàng triệu người sử dụng

- MongoDB là một database hướng tài liệu (document), các dữ liệu được lưu trữ trong document kiểu JSON thay vì dạng bảng như CSDL quan hệ nên truy vấn sẽ nhanh hơn

- Với CSDL quan hệ chúng ta có khái niệm bảng, các cơ sở dữ liệu quan hệ (như MySQL hay SQL Server ) sử dụng các bảng để lưu dữ liệu thì với MongoDB chúng ta sẽ dùng khái niệm là collection thay vì bảng Các collection trong MongoDB được cấu trúc rất linh hoạt, cho phép các dữ liệu lưu trữ không cần tuân theo một cấu trúc nhất định

3.4 Express

Ứng dụng sử dụng Express trong việc hỗ trợ xây dựng API ở back-end

- Khởi tạo server và tiếp nhận các request từ phía người dùng

- Phân chia các route thuộc các API

Express là một framework nhỏ gọn và linh hoạt dành cho NodeJS, cung cấp một bộ tính năng mạnh mẽ cho các ứng dụng web và di động Express hỗ trợ các phương thức HTTP

và middleware tạo ra một API vô cùng mạnh mẽ và dễ sử dụng Một số chức năng chính của express như sau:

- Thiết lập các lớp trung gian để trả về các HTTP request

Trang 34

- Định nghĩa router cho phép sử dụng với các hành động khác nhau dựa trên phương thức HTTP và URL

- Cho phép trả về các trang HTML dựa vào các tham số

Tesseract có chứa sẵn bộ dữ liệu đa ngôn ngữ phục vụ cho việc training nhận diện hình ảnh

Một số điểm nổi bật ở thư viện TesseractJS

Mã nguồn mẫu thể hiện ứng dụng của TesseractJS:

import Tesseract from 'tesseract.js';

Tesseract.recognize(<image_url>, 'vie').then(({ data: { text } }) => {

// Xử lý text sau khi đã nhận diện

});

Sau khi có được dữ liệu từ thẻ, phần text sẽ tiếp tục được so sánh với những thông tin

mà người dùng cung cấp khi đăng ký tài khoản Dựa theo tỷ lệ trùng khớp ở các text

mà có kết quả trả về phù hợp cho người dùng

Trang 35

Chương 4 XÂY DỰNG HỆ THỐNG LUYỆN THI ĐẠI HỌC

4.1 Phân tích yêu cầu hệ thống

4.1.1 Phân tích yêu cầu chức năng

Cơ sở dữ liệu NoSQL

Việc chọn hệ quản trị cơ sở dữ liệu rất quan trọng trong việc phát triển ứng dụng

và tính cải tiến sau này

- Dễ dàng bổ sung các trường dữ liệu cần thiết

- Tốc độ truy xuất nhanh hơn

4.1.2 Yêu cầu tính năng

Hệ thống chạy trên nền tảng website, có khả năng truy cập ở tất cả mọi vị trí, thời điểm có kết nối internet Một vài yêu cầu mà hệ thống cần đáp ứng:

- Chức năng truy vấn: Đáp ứng yêu cầu truy vấn của người dùng như tìm kiếm, xem lại tài liệu,

- Chức năng cập nhật: Chức năng cập nhật luôn được thực hiện và giảm thiểu tối đa sai sót của người dùng

- Chức năng tải lên: Hỗ trợ lưu trữ hình ảnh đại diện, ảnh trong các đề thi, bài thi và nhập thông tin hàng loạt

4.1.3 Phân tích yêu cầu phi chức năng

- Ứng dụng sử dụng tiếng Việt, hoạt động ổn định trên nền tảng website

- Để thu hút được sinh viên hứng thú sử dụng, các thao tác trên ứng dụng phải thật đơn giản Giao diện thân thiện, giúp học sinh nhận thức được giá trị nhận lại khi sử dụng hệ thống

- Tận dụng các tài nguyên đã có tại trường như dữ liệu người dùng, dữ liệu môn học

- Các thông tin của người dùng được bảo mật và bảo đảm chỉ có những người có thẩm quyền mới có thể truy cập vào các tài nguyên cụ thể

Trang 36

4.1.4 Sơ đồ use case

Hình 4-1 Sơ đồ Use case tổng quan

Trang 37

- Danh sách các Actor:

Bảng 4-1 Danh sách các actor

STT Tên Actor Ý nghĩa/Ghi chú

1 Admin Quản lý tài liệu, đề thi, đề thi tham khảo, người

dùng, dữ liệu của toàn hệ thống

2 User Tương tác thông qua việc xem các tài liệu, đề thi, bài

chia sẻ hoặc tham gia thi thử, làm bài tập và tra cứu thông tin

3 Teacher Đóng góp đề thi tham khảo, bài chia sẻ, bài tập và tài

liệu tham khảo

- Danh sách các Use case:

Bảng 4-2 Danh sách các use-case

STT Tên Use-case Ý nghĩa/ghi chú

1 Đăng ký tài

khoản

Cho phép người dùng đăng ký tài khoản thông thường

2 Đăng nhập Cho phép người dùng, quản trị viên đăng nhập vào hệ

thống bằng cách thông thường hoặc bằng các tài khoản khác (Facebook, Google)

3 Đổi mật khẩu Cho phép người dùng, quản trị viên đổi mật khẩu

4 Đăng xuất Cho phép người dùng, quản trị viên đăng xuất khỏi hệ

thống

Trang 38

5 Thi thử Người dùng tiến hành làm bài thi dựa trên thông tin đã

Người dùng có thể chỉnh sửa thông tin cá nhân

8 Tra cứu điểm

chuẩn, thông tin tuyển sinh

và trường đại học

Tra cứu điểm chuẩn của mỗi ngành ở mỗi năm của mỗi trường đại học, tra cứu thông tin tuyển sinh mới nhất của các trường đại học và tìm kiếm tất cả các trường đại học có đào tạo ngành mong muốn

9 Tham khảo tài

liệu luyện thi

Cho phép người dùng tham khảo các loại tài liệu tham khảo có trên hệ thống bao gồm: đề thi tham khảo, tài liệu tham khảo, các bài chia sẻ Đồng thời, cho phép người dung có thể tải các tài liệu này về máy

Trang 39

Quản lý danh sách các tài liệu tham khảo có trên hệ thống

Làm bài khảo sát môn học để nhận lộ trình luyện thi phù hợp

Trang 40

Bảng 4-3 Đặc tả use-case thi thử

Tên use-case Thi thử

Mô tả User làm bài thi trắc nghiệm giống thi đại học, có bộ

đếm thời gian và tự động nộp bài khi hết giờ Kết quả bài thi hiện ngay sau khi nộp bài và có thể xem lại ở mục đăng ký

Tiền điều kiện User đã đăng nhập và đã thực hiện điền thông tin

đăng ký thi thử trước đó

Hậu điều kiện User hoặc hệ thống (nếu hết giờ) nộp bài thi thành

- Hệ thống thông báo kết quả bài thi

Usecase mở rộng - Xem bảng xếp hạng: Xem bảng xếp hạng

tương ứng với đề thi được chọn trên hệ thống

- Xem kết quả: Xem kết quả và đáp án bài thi được chọn

- Bình luận: User có thể bình luận bên dưới bài kiểm tra để trao đổi với mọi người

Ngày đăng: 17/08/2022, 21:14

Nguồn tham khảo

Tài liệu tham khảo Loại Chi tiết
[1] Viblo, “Nền tảng chia sẻ kiến thức Công nghệ”. [Trực tuyến] https://viblo.asia/ [Truy cập 22/04/2022].Tài liệu Tiếng Anh Sách, tạp chí
Tiêu đề: Nền tảng chia sẻ kiến thức Công nghệ
[1] ReactJS, “A JavaScript library for building user interfaces”. [Trực tuyến] https://reactjs.org/ [Truy cập 22/04/2022] Sách, tạp chí
Tiêu đề: A JavaScript library for building user interfaces
[2] Stackoverflow, “Find the best answer to your technical question, help others answer theirs”. [Trực tuyến] https://stackoverflow.com/ [Truy cập 22/04/2022] Sách, tạp chí
Tiêu đề: Find the best answer to your technical question, help others answer theirs
[3] Medium, “Discover stories, thinking, and expertise from writers on any topic.”. [Trực tuyến] https://medium.com/ [Truy cập 17/05/2022] Sách, tạp chí
Tiêu đề: Discover stories, thinking, and expertise from writers on any topic
[4] Tesseract, “The OCR engine in Javascript”. [Trực tuyến] https://tesseract- ocr.github.io/ [Truy cập 22/04/2022] Sách, tạp chí
Tiêu đề: The OCR engine in Javascript
[5] MongoDB, “The NoSQL database”. [Trực tuyến] https://www.mongodb.com/ [Truy cập 26/03/2022] Sách, tạp chí
Tiêu đề: The NoSQL database
[6] ExpressJS, “Fast, unopinionated, minimalist web framework for Node.js”. [Trực tuyến] https://expressjs.com/ [Truy cập 26/03/2022] Sách, tạp chí
Tiêu đề: Fast, unopinionated, minimalist web framework for Node.js
[7] NodeJS, “a JavaScript runtime built on Chrome's V8 JavaScript engine”. [Trực tuyến] https://nodejs.org/en/ [Truy cập 26/03/2022] Sách, tạp chí
Tiêu đề: a JavaScript runtime built on Chrome's V8 JavaScript engine
[8] Tailwind, “Rapidly build modern websites without ever leaving your HTML”. Open CSS library. [Trực tuyến] https://tailwindcss.com/ [Truy cập 22/04/2021] Sách, tạp chí
Tiêu đề: Rapidly build modern websites without ever leaving your HTML

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