ĐẶT VẤN ĐỀ Trong bối cảnh hiện nay, tình hình dịch bệnh COVID-19 còn diễn biến phức tạp, khó lường. Nhiều trường học đã phải ngưng cho học sinh, sinh viên đến trường để đảm bảo an toàn và giảm thiểu lây lan dịch bệnh. Chính vì thế, việc đổi mới phương pháp dạy học trực tiếp tại trường thay vào đó là hình thức dạy học trực tuyến hiện nay là một lựa chọn phù hợp và được quan tâm nhất của đội ngũ nhà giáo. Trong đó, phải kể đến vấn đề kiểm tra và thi cử.
Đây là bài toán được đặt ra trong công tác quản lý giáo dục đối với nền giáo dục hiện nay. Từ những lý do trên đã cho thấy việc áp dụng công nghệ thông tin vào việc hỗ trợ kiểm tra và thi cử là hết sức quan trọng và điều cần làm là xây dựng một ứng dụng hỗ trợ kiểm tra và thi trực tuyến.2 LỊCH SỬ GIẢI QUYẾT VẤN ĐỀ Trong thời gian gần đây, do nắm bắt tình hình khó khăn trong việc kiểm tra và thi cử do dịch COVID-19 hoành hành, Trường đại học An Giang đã thành công xây dựng “Phần mềm thi trực tuyến” giúp việc thi cử trở nên thuận tiện hơn. Đặc biệt là tiết kiệm thời gian, chi phí. Phần mềm giảm thời gian tổ chức kiểm tra đề, thời gian phát đề, cũng như thu bài của thí sinh.
Tuy nhiên, phần mềm của trường cũng tồn tại một số vấn đề chưa giải quyết như: - Mỗi lần nộp bài sinh viên chỉ có thể chọn 1 file. - Giám thị muốn xem các bài nộp của sinh viên thì phải tải file về máy. - Lưu trữ bài thi của từng phòng và từng thí sinh chưa được tối ưu hoá. Do vậy, với đề tài “Xây dựng ứng dụng hỗ trợ kiểm tra và thi trực tuyến” tôi mong muốn đề tài của mình có thể khắc phục được hạn chế trên và giúp công tác quản lý kiểm tra và thi trực tuyến đạt được hiệu quả cao.3 PHẠM VI CỦA ĐỀ TÀI Nghiên cứu qui trình cũng như các quy định, văn bản, biểu mẫu về tổ chức kiểm tra và thi trực tuyến theo hình thức tự luận tại Trường đại học An Giang.4 PHƯƠNG PHÁP NGHIÊN CỨU Đề tài này sẽ kết hợp hai phương pháp nghiên cứu, đó là: - Phương pháp nghiên cứu lý thuyết: + Tìm hiểu lý thuyết về hình thức tổ chức kiểm tra và thi tự luận.
+ Nghiên cứu tài liệu, văn bản, qui trình và công nghệ liên quan. 3 + Tổng hợp các tài liệu. + Phân tích và thiết kế hệ thống thông tin theo quy trình xây dựng ứng dụng phần mềm. - Phương pháp nghiên cứu thực nghiệm: + Khảo sát và phân tích nhu cầu thực tế của Trường đại học An Giang.
+ Phân tích yêu cầu thực tế của bài toán và xây dựng các bước phân tích hệ thống để hỗ trợ việc xây dựng ứng dụng. + Đánh giá kết quả đạt được.1 Mô hình MVC Mô hình MVC (Model - View - Controller) là một kiến trúc phần mềm hay mô hình thiết kế được sử dụng trong xây dựng phần mềm. Nó giúp cho người phát triển tách ứng dụng của họ ra 3 thành phần khác nhau Model, View và Controller. Mỗi thành phần có một nhiệm vụ riêng biệt và độc lập với các thành phần khác.
Mô hình này được dùng khá rộng rãi và đặc biệt là trong các dự án web. Trong PHP có khá nhiều framework (Laravel, Symfony, CodeIgniter,…) và tất cả đều sử dụng mô hình MVC. Các thành phần của mô hình MVC: Model: Có nhiệm vụ thao tác với cơ sở dữ liệu, nghĩa là nó sẽ chứa tất cả các thuộc tính và phương thức truy vấn trực tiếp với dữ liệu. View: Có nhiệm vụ tiếp nhận dữ liệu từ Controller và hiển thị nội dung ra trình duyệt dưới dạng HTML.
Controller: Đóng vai trò trung gian giữa Model và View. Nó có nhiệm vụ tiếp nhận request từ client, gọi các phương thức tương ứng từ Model và gửi dữ liệu qua View tương ứng. MVC làm việc như thế nào? Đây là một cách đơn giản để mô tả lại luồng sự kiện được xử lý trong MVC: Khi user tương tác với View bằng cách click vào button, user gửi yêu cầu đi. Controller nhận và điều hướng chúng đến bằng phương thức xử lý ở Model.
Modal nhận thông tin và thực thi các yêu cầu. Khi Model hoàn tất việc xử lý, View sẽ nhận kết quả và hiển thị lại cho người dùng. 4 Ưu điểm: Thể hiện tính chuyên nghiệp trong lập trình, phân tích thiết kế. Hệ thống chia thành các thành phần độc lập nên giúp phát triển ứng dụng nhanh, đơn giản, dễ bảo trì.
Nhược điểm: Đối với dự án nhỏ việc áp dụng mô hình MVC gây cồng kềnh, tốn thời gian trong quá trình phát triển. Tốn thời gian trung chuyển dữ liệu của các thành phần.2 Laravel Framework Được phát triển dựa trên mô hình MVC, Laravel là một PHP Framework mã nguồn mở miễn phí với cú pháp rõ ràng, mạch lạc. Vốn là một .NET developer, khoảng năm 2010 - 2011, khi bắt đầu tiếp xúc với PHP, Taylor Otwell đã chọn CodeIgniter với những tính năng thịnh hành “vượt mặt” cả “anh lớn” Symfony. Trong suốt thời gian làm việc với CodeIgniter, anh sớm nhận ra những hạn chế nhất định.
Nhằm khắc phục những hạn chế này, đồng thời phát huy khả năng xuất sắc về design-pattern của mình, Taylor quyết định tạo ra một Framework mới. Tiêu chí anh đặt ra là đơn giản, dễ hiểu, hỗ trợ developer thực hiện ý tưởng nhanh nhất bằng nhiều tính năng hỗ trợ. Tháng 6/2011, Taylor Otwell đã “trình làng” Laravel như một giải pháp thay thế cho CodeIgniter. Với giải pháp này, lập trình viên (developer) đã được hỗ trợ nhiều tính năng mới mẻ với thao tác vô cùng đơn giản.
Eloquent ORM mạnh mẽ, xác thực đơn giản, phân trang hiệu quả,…là những tính năng thu hút sự chú ý của đông đảo người dùng của phiên bản đầu tiên này. Những ưu điểm vượt trội đó đã giúp Laravel nhanh chóng chiếm được chỗ đứng trên thị trường và phát triển mạnh mẽ. Laravel hiện được phát hành theo giấy phép MIT, với source code được lưu trữ tại Github. Tính đến thời điểm hiện tại, Laravel đã phát triển đến phiên bản 9 với nhiều cải tiến.
Riêng với ứng dụng của tôi, tôi đã sử dụng phiên bản Laravel 8. Những tính năng nổi bật của Laravel: Nâng cấp, cài đặt, … với Composer. Thao tác với cú pháp đẹp mắt và đơn giản với Eloquent ORM. Hỗ trợ biến Laravel thành một web service API với Restful API.
Cung cấp các lệnh cần thiết để phát triển ứng dụng với Artisan. 5 Hỗ trợ tạo các trường trong cơ sở dữ liệu, thêm các cột trong bảng, tạo mối quan hệ giữa các bảng với Migrations. Cung cấp sẵn các tính năng đăng nhập, đăng ký, quên mật khẩu,… với Authentication. Hỗ trợ test lỗi để sửa chữa với Unit Testing.3 Hệ quản trị cơ sở dữ liệu MySQL MySQL là một phần mềm mã nguồn mở ưa chuộng hoàn toàn miễn phí và phổ biến nhất thế giới.
MySQL được phát triển, phân phối và hỗ trợ bởi Oracle Corporation. MySQL có thể được cài đặt trên nhiều nền tảng hệ điều hành khác nhau như Windows, Linux và Mac OS X. Ngoài MySQL ra, còn một số Database Management System khác cũng khá phổ biến trên thị trường như: Oracle, PostgreSQL, SQLite,… Lợi ích của MySQL server: - Là cơ sở dữ liệu tốc độ cao, ổn định. - Độ bảo mật thông tin cao.
- Dễ sử dụng và có tính khả chuyển: tuy có tính năng cao nhưng thực sự, MySQL là một hệ thống cơ sở dữ liệu rất đơn giản và ít phức tạp. - Có thể hoạt động trên nhiều hệ điều hành với lượng lớn các hàm tiện ích: MySQL rất thích hợp cho các ứng dụng có truy cập cơ sở dữ liệu trên Internet. MySQL có nhiều phiên bản cho các hệ điều hành khác nhau: phiên bản Win32 cho các hệ điều hành dòng Windows, Linux, Mac OS X, Unix, FreeBSD, NetBSD, Novell NetWare, SGI Irix, Solaris, SunOS,… - Hoàn toàn miễn phí: Là một mã nguồn mở, MySQL sử dụng GNU General Public License nên hoàn toàn miễn phí. Tuy nhiên,trong trường hợp bạn cần được hỗ trợ từ MySQL, bạn vẫn phải trả phí.
- Cộng đồng hỗ trợ: Vì lượng người dùng MySQL vô cùng lớn nên sự hỗ trợ từ cộng đồng này cũng lớn theo. Khi trở thành một thành viên của cộng đồng người dùng, bạn sẽ được mọi người trong cộng đồng tư vấn giải pháp họ biết cho vấn đề bạn gặp phải.4 Ngôn ngữ lập trình PHP Ngôn ngữ lập trình PHP (viết tắt của từ PHP: Hypertext Preprocessor) là ngôn ngữ lập trình đa mục đích được phát triển từ đầu năm 1994. PHP là một ngôn ngữ kịch bản với mã nguồn mở, chạy ở bên Server và được dùng để tạo ra các ứng dụng phát triển Web. Cho đến ngày nay, ngôn ngữ PHP đã được nhiều người sử dụng để phát triển các ứng dụng phần mềm thông qua lập trình Web 6 đặc điểm của ngôn ngữ PHP là sử dụng mã nguồn mở, dễ dàng nhúng vào HTML để lập trình ra được một Web.
PHP là loại ngôn ngữ lập trình phổ biến nhất được dùng để phát triển các ứng dụng Web. Bởi đây là ngôn ngữ cực kỳ thân thiện và có độ tương thích cao với rất nhiều loại ngôn ngữ và trình duyệt web. Ngôn ngữ PHP được sử dụng miễn phí nên được rất nhiều doanh nghiệp sử dụng để tiết kiệm được chi phí. Bởi vì lý do là tiết kiệm chi phí nên ngôn ngữ lập trình PHP là sự lựa chọn tối ưu cho các doanh nghiệp vừa và nhỏ khi muốn thiết kế và phát triển web cho chính doanh nghiệp của mình.
Ưu điểm ngôn ngữ lập trình PHP: Mã nguồn mở: Việc cài đặt và sử dụng ngôn ngữ lập trình PHP cực kỳ dễ dàng và hoàn toàn miễn phí dành riêng cho tất cả mọi người. Chính vì lý do đó nên ngôn ngữ này luôn được cài đặt rất nhiều trên các Web Server như Apache, Nginx, IIS. Tính cộng đồng cao: Do là một mã nguồn mở và dễ dàng sử dụng nên ngôn ngữ PHP được sự ưa chuộng từ cộng đồng lập trình viên. Cộng đồng ngôn ngữ này rất rộng rãi và chất lượng trên toàn thế giới.
Đã có nhiều blog, diễn đàn, website trong và ngoài nước giải thích về ngôn ngữ này nên khả năng tiếp cận của mọi người sẽ nhanh chóng và dễ dàng hơn. Thư viện phong phú: Do được nhiều người sử dụng nên thư viện của ngôn ngữ PHP ngày càng được phát triển và mở rộng. Với thư viện Code, Hàm phong phú sẽ giúp cho việc học tập hay viết các ứng dụng PHP sẽ trở nên dễ dàng và nhanh chóng. Bởi vì vậy đây là đặc điểm giúp ngôn ngữ này trở nên vô cùng nổi bật.