Bối cảnh và vấn đề nghiên cứu
Đồ án tốt nghiệp này được thực hiện bởi nhóm ba sinh viên ngành Công nghệ thông tin, Khoa Đào tạo Chất lượng cao, Trường Đại học Sư phạm Kỹ thuật Thành phố Hồ Chí Minh, dưới sự hướng dẫn của ThS. Hoàng Công Trình, trong giai đoạn từ tháng 2 đến tháng 5 năm 2023.
Bối cảnh thực tiễn: Nhóm tác giả xuất phát từ thực trạng học sinh Việt Nam không hứng thú với môn Lịch sử, dẫn đến kết quả thi thấp. Theo số liệu của Bộ Giáo dục và Đào tạo được dẫn trực tiếp trong văn bản, tại kỳ thi tốt nghiệp THPT năm 2021, Lịch sử là môn có kết quả thi thấp nhất trong tất cả các môn, với 52,03% số thí sinh có điểm thi dưới trung bình. Bên cạnh đó, học sinh tiếp thu kiến thức lịch sử thiếu chọn lọc qua phim ảnh và mạng xã hội, dẫn đến tình trạng học vẹt, không hệ thống hóa được sự kiện. Các trang web lịch sử hiện có như nguoikesu.com, nghiencuulichsu.com và Wikipedia đều thiếu một số tính năng quan trọng như đăng nhập người dùng, kiểm tra kiến thức, và khả năng tra cứu chuyên sâu theo nhân vật hoặc di tích.
Mục tiêu đề tài:
- Xây dựng website tra cứu thông tin lịch sử và kiểm tra kiến thức lịch sử.
- Hệ thống hóa kiến thức lịch sử một cách trực quan, chính xác.
- Giúp học sinh dễ dàng tiếp cận và hứng thú với môn Lịch sử thông qua hình ảnh và video.
- Nâng cao năng lực tự học và sáng tạo của học sinh.
- Tối ưu hóa thiết kế giao diện cho nhiều nhóm người dùng khác nhau: người xem, người tạo bài viết, người duyệt bài viết và quản trị viên.
Đối tượng sử dụng: Học sinh, sinh viên, giáo viên, giảng viên có nhu cầu tra cứu và kiểm tra kiến thức lịch sử; các nhà soạn sử, nhà báo, nhà làm phim, hướng dẫn viên du lịch, nhà xuất bản sách cần tìm hiểu lịch sử phục vụ công việc; và đội ngũ quản trị trang web (admin, super admin).
Phạm vi: Website tập trung vào lịch sử Việt Nam và lịch sử thế giới, bao gồm nội dung lịch sử phổ cập từ sách giáo khoa Trung học cơ sở và Trung học phổ thông được mở rộng thêm. Thời gian thực hiện từ ngày 20/02/2023 đến ngày 29/05/2023.
Cơ sở lý thuyết và phương pháp
Khung kỹ thuật và mô hình kiến trúc
Đồ án sử dụng mô hình kiến trúc MVT (Model-View-Template), là mẫu thiết kế phần mềm đặc trưng của framework Django. Trong mô hình này:
- Model (M): Đối tượng Python quản lý cấu trúc dữ liệu, cung cấp cơ chế thêm, sửa, xóa và truy vấn cơ sở dữ liệu.
- View (V): Hàm xử lý yêu cầu HTTP, nhận HTTP request và trả về HTTP response.
- Template (T): Tệp HTML kết hợp với DTL (Django Template Language) để hiển thị giao diện người dùng.
Mô hình MVT về phương thức hoạt động tương đương với MVC, trong đó V (View) tương đương C (Controller) và T (Template) tương đương V (View) ở các framework khác. Django tự động xử lý phần Controller điều phối tương tác giữa Model và View.
Công nghệ sử dụng
| Thành phần |
Công nghệ |
| Backend |
Python |
| Frontend |
HTML, CSS, JavaScript |
| Framework web |
Django |
| Trình soạn thảo nội dung |
CKEditor 5 |
| Hệ quản trị cơ sở dữ liệu |
MySQL |
| Môi trường lập trình |
Visual Studio Code |
| Triển khai (deploy) |
CPanel, Python 3, Django, MySQL trên server |
Python là ngôn ngữ lập trình thông dịch, hướng đối tượng, bậc cao, được Guido Van Rossum sáng tạo năm 1991. Django là web framework mã nguồn mở viết bằng Python, do Django Software Foundation phát triển, được dùng bởi nhiều website lớn như Pinterest, Instagram, Mozilla và Bitbucket. CKEditor 5 là trình soạn thảo WYSIWYG mã nguồn mở cho phép tạo và chỉnh sửa nội dung HTML trực tiếp trên giao diện web. MySQL là hệ quản trị cơ sở dữ liệu quan hệ (RDBMS) mã nguồn mở, hoạt động theo mô hình Client–Server, hiện thuộc sở hữu của Tập đoàn Oracle.
Phương pháp nghiên cứu
- Phương pháp tổng hợp lý thuyết: Nghiên cứu tài liệu, bài viết kỹ thuật liên quan đến các công nghệ sử dụng.
- Phương pháp chuyên gia: Tham khảo ý kiến từ giảng viên hướng dẫn và những người có kinh nghiệm liên quan.
- Phương pháp mô hình hóa: Mô phỏng ứng dụng từ bước thiết kế, cài đặt đến thành phẩm, thể hiện qua các sơ đồ Usecase, lược đồ chức năng và lược đồ ERD.
- Phương pháp khảo sát hiện trạng: Phân tích ưu nhược điểm của các trang web lịch sử hiện có (nguoikesu.com, nghiencuulichsu.com, Wikipedia) để xác định yêu cầu hệ thống.
Nội dung chính theo từng chương
Chương 1: Tổng quan
Chương này trình bày lý do chọn đề tài, dẫn số liệu thống kê của Bộ Giáo dục và Đào tạo về tình trạng điểm thi môn Lịch sử thấp năm 2021 (52,03% dưới trung bình) để lập luận sự cần thiết của hệ thống. Chương nêu mục tiêu xây dựng website tìm hiểu và kiểm tra kiến thức lịch sử, đồng thời giới thiệu sơ bộ các chức năng cốt lõi và công nghệ sẽ áp dụng: HTML, JavaScript, CSS, Python, Django, CKEditor.
Chương 2: Cơ sở lý thuyết
Chương này trình bày nền tảng kỹ thuật của đồ án gồm: tổng quan về Python (lịch sử hình thành từ năm 1991, nguyên tắc hoạt động qua bytecode, ưu và nhược điểm); mô hình MVT và so sánh với MVC; giới thiệu Django cùng các tính năng như admin panel, hệ thống xác nhận người dùng, hệ thống cache; giới thiệu CKEditor với khả năng WYSIWYG và tích hợp vào web; và MySQL với mô hình Client–Server. Ưu điểm và nhược điểm của từng công nghệ đều được phân tích.
Chương 3: Khảo sát hiện trạng và xác định yêu cầu
Chương tiến hành so sánh ba nền tảng hiện có:
| Tiêu chí |
nguoikesu.com |
nghiencuulichsu.com |
Wikipedia |
| Đăng nhập người dùng |
Không |
Không |
Không |
| Kiểm tra kiến thức |
Có (ít) |
Không |
Không |
| Tra cứu nhân vật/di tích chuyên sâu |
Hạn chế |
Không |
Hạn chế |
| Giới thiệu sách, phim |
Một phần |
Không |
Không |
| Responsive mobile |
Có (lỗi nút) |
Có |
Có |
| Kiểm duyệt nội dung |
Có |
Có |
Yếu |
Từ đó, chương xác định yêu cầu hệ thống với bốn nhóm Actor: User-no-login, User-login, Admin (nhân viên soạn sử), và Super-Admin. Toàn bộ 20 nhóm Use Case chính (UC_01 đến UC_20) được đặc tả chi tiết, trong đó có các Use Case cốt lõi như Register (UC_01), Login (UC_02), CreatePerson (UC_05), CreateRelics (UC_06), CreateBook (UC_07), CreateFilm (UC_08), CreateTimeLine (UC_09) cùng các chức năng xem danh sách và xem chi tiết tương ứng. Lược đồ chức năng được trình bày cho 11 luồng nghiệp vụ chính.
Chương 4: Thiết kế dữ liệu và giao diện
Chương trình bày lược đồ thực thể ERD (Entity–Relationship Diagram) của toàn bộ hệ thống. Danh sách giao diện gồm 29 màn hình được mô tả trong 29 bảng, bao phủ các trang:
- Trang chủ và bản đồ lịch sử Việt Nam / bản đồ thế giới
- Danh sách và chi tiết nhân vật lịch sử
- Danh sách và chi tiết di tích khảo cổ
- Danh sách và chi tiết phim truyện (hỗ trợ thanh toán xem phim)
- Danh sách và chi tiết sách (hỗ trợ đặt mua sách online)
- Dòng lịch sử theo quốc gia
- Lịch sử hình thành Trái Đất
- Khoa học công nghệ và khám phá vũ trụ
- Kiểm tra kiến thức lịch sử (danh sách đề và chi tiết bài thi)
- Trang Admin (thêm bài viết, thêm nhân vật, quản lý người dùng)
- Đăng nhập, đăng ký, đặt lại mật khẩu, đăng xuất
- Chat giữa user-login, admin và super admin
Chương 5: Cài đặt kiểm thử
Chương mô tả các bước chạy hệ thống và thực hiện kiểm thử chức năng. Các kịch bản kiểm thử tập trung vào luồng chính của từng Use Case đã đặc tả, bao gồm cả trường hợp thành công và trường hợp ngoại lệ (exception flow), ví dụ: đăng ký thất bại do thông tin không hợp lệ thì hệ thống hiển thị thông báo và quay lại bước nhập.
Chương 6: Kết luận và hướng phát triển
Chương tổng kết kết quả đạt được trên hai phương diện lý thuyết và hiện thực, đồng thời nêu hướng phát triển tiếp theo của hệ thống.
Thiết kế và triển khai
Kiến trúc hệ thống
Hệ thống xây dựng theo mô hình MVT của Django. Backend xử lý logic nghiệp vụ bằng Python, dữ liệu được lưu trữ trong MySQL, giao diện người dùng kết hợp HTML/CSS/JavaScript với DTL. CKEditor 5 được tích hợp làm công cụ soạn thảo nội dung cho nhân viên soạn sử.
Hệ thống phân cấp bốn vai trò người dùng với quyền hạn riêng biệt:
- User-no-login: Xem nội dung công khai, tìm kiếm.
- User-login: Kiểm tra kiến thức, đặt mua sách, thanh toán xem phim, bình luận, thả lượt thích, chat với nhân viên, xem lịch sử hoạt động cá nhân.
- Admin (nhân viên soạn sử): Tạo và chỉnh sửa bài viết về nhân vật, di tích, phim, sách, dòng lịch sử; tạo đề thi; chat và trả lời bình luận. Quyền admin do super admin cấp sau khi xác minh bằng cấp, giấy tờ chuyên môn.
- Super-Admin: Toàn quyền cập nhật, xóa, thay đổi nội dung bài viết và quyền tài khoản.
Một điểm đáng chú ý trong thiết kế là tính năng kiểm duyệt bình luận bằng AI: nội dung bình luận của người dùng được xử lý qua AI để phát hiện nội dung tiêu cực trước khi hiển thị hoặc từ chối.
Công nghệ và môi trường
- Backend: Python với Django framework
- Frontend: HTML, CSS, JavaScript
- Soạn thảo nội dung: CKEditor 5 (tích hợp vào Django)
- Cơ sở dữ liệu: MySQL
- IDE: Visual Studio Code
- Triển khai: CPanel; cài đặt Python 3, Django, CKEditor 5, MySQL trên môi trường CPanel
Mô hình hóa
Đồ án xây dựng đầy đủ các tài liệu phân tích thiết kế gồm: Usecase tổng quan, Usecase chi tiết theo từng Actor (20 nhóm UC), 29 bảng đặc tả giao diện, lược đồ chức năng cho 11 luồng nghiệp vụ, và lược đồ ERD thể hiện quan hệ giữa các thực thể dữ liệu trong hệ thống.
Kết quả và đóng góp
Kết quả chính
Sản phẩm hoàn thành là một website lịch sử với đầy đủ chức năng tra cứu và học tập, bao gồm:
- Trang tra cứu nhân vật lịch sử, di tích khảo cổ, phim truyện, sách, dòng lịch sử theo quốc gia.
- Trang kiểm tra kiến thức lịch sử dành cho người dùng đã đăng ký.
- Tính năng thanh toán trực tuyến: đặt mua sách và xem phim có thu phí.
- Hệ thống chat giữa user-login, admin và super admin.
- Bản đồ lịch sử Việt Nam và bản đồ thế giới.
- Trang nội dung mở rộng về lịch sử hình thành Trái Đất, khoa học công nghệ và khám phá vũ trụ.
- Hệ thống quản trị (admin panel) cho phép nhân viên soạn sử tạo và duyệt bài viết.
Giải pháp và đóng góp
Nhóm tác giả tập hợp và hệ thống hóa nội dung lịch sử từ nhiều nguồn khác nhau vào một nền tảng duy nhất có kiểm duyệt, khắc phục nhược điểm phân tán và thiếu chọn lọc của các trang web lịch sử hiện có. Đây là điểm khác biệt so với nguoikesu.com, nghiencuulichsu.com và Wikipedia được phân tích trong đồ án: website đề xuất tích hợp đồng thời đăng nhập người dùng, kiểm tra kiến thức, tra cứu chuyên sâu theo nhân vật/di tích, giới thiệu sách và phim liên quan, cùng chức năng thanh toán trực tuyến trong cùng một hệ thống.
Hạn chế và hướng nghiên cứu tiếp
Nhóm tác giả thừa nhận trong lời cảm ơn rằng kiến thức còn hạn chế dẫn đến chậm tiến độ trong quá trình xây dựng, và sản phẩm không thể tránh khỏi một số sai sót. Văn bản cũng nêu hướng phát triển trong Chương 6, song nội dung chi tiết của chương này không được trích dẫn đầy đủ trong phần fulltext cung cấp.
Dựa trên phạm vi đồ án, một số hướng mở có thể nhận thấy là: mở rộng cơ sở dữ liệu lịch sử thế giới (hiện tại tập trung chủ yếu vào Việt Nam), phát triển ứng dụng di động, nâng cao mô hình AI kiểm duyệt bình luận, và bổ sung hệ thống song ngữ Việt–Anh (đây là nhược điểm được chỉ ra khi khảo sát nguoikesu.com).
Giá trị tham khảo
Đồ án này có giá trị tham khảo chủ yếu cho các nhóm đối tượng sau:
- Sinh viên ngành Công nghệ thông tin đang thực hiện đồ án tốt nghiệp về xây dựng website với Django và Python, đặc biệt ở Chương 2 (cơ sở lý thuyết về MVT, Django, CKEditor, MySQL) và Chương 3 (phương pháp khảo sát hiện trạng và đặc tả Usecase).
- Sinh viên làm đồ án có phân cấp người dùng phức tạp có thể tham khảo cách nhóm tác giả thiết kế bốn tầng Actor (User-no-login, User-login, Admin, Super-Admin) với quyền hạn riêng biệt, cùng 20 nhóm Use Case tương ứng.
- Người làm đề tài về hệ thống quản trị nội dung (CMS) có thể tham khảo quy trình tích hợp CKEditor vào Django để xây dựng giao diện soạn thảo bài viết chuyên nghiệp.
- Người nghiên cứu về ứng dụng giáo dục (EdTech) quan tâm đến cách thiết kế chức năng kiểm tra kiến thức và hệ thống tích lũy điểm người dùng.
- Nhà phát triển tích hợp thanh toán trực tuyến có thể tham khảo phần thiết kế chức năng đặt mua sách và xem phim có thu phí trong Chương 3 và Chương 4.
Câu hỏi thường gặp
1. Website này khác gì so với nguoikesu.com và nghiencuulichsu.com?
Theo phân tích của nhóm tác giả trong Chương 3, cả hai trang này đều không có tính năng đăng nhập người dùng và không đào sâu vào nhân vật lịch sử hoặc di tích lịch sử. Website trong đồ án bổ sung đầy đủ hệ thống tài khoản người dùng, kiểm tra kiến thức, giới thiệu sách và phim, cùng chức năng thanh toán trực tuyến trong một nền tảng tích hợp.
2. Nhân viên soạn sử được cấp quyền theo cơ chế nào?
Theo đặc tả trong Chương 3, super admin sẽ xác minh các thông tin như bằng cấp và giấy tờ có liên quan đến lĩnh vực lịch sử của ứng viên trước khi cấp quyền nhân viên soạn sử (Admin). Tài khoản nhân viên được super admin cấp trực tiếp, không qua đăng ký thông thường.
3. Người dùng chưa đăng nhập (User-no-login) có thể làm gì trên website?
Theo Usecase dành cho User-no-login (Hình 23 trong đồ án), người dùng chưa đăng nhập chỉ có thể xem các nội dung công khai và tìm kiếm thông tin. Các chức năng như kiểm tra kiến thức, đặt mua sách, thanh toán xem phim, bình luận, thả lượt thích và chat với nhân viên đều yêu cầu đăng nhập.
4. Bình luận của người dùng được xử lý như thế nào trước khi hiển thị?
Văn bản trong Chương 3 nêu rõ rằng nội dung bình luận của người dùng sẽ được AI xử lý để xác định có tiêu cực hay không. Sau đó hệ thống mới thông báo bình luận đã được đăng hoặc không được đăng do vi phạm chính sách đạo đức.
5. Hệ thống được triển khai trên nền tảng nào?
Theo Chương 3 (phần Hiện thực hệ thống), website được triển khai (deploy) trên server thông qua phần mềm bảng điều khiển CPanel, với cài đặt Python 3, Django, CKEditor 5 và MySQL trực tiếp trên CPanel.
Kết luận
Đồ án tốt nghiệp "Xây dựng Website Lịch sử Việt Nam" của nhóm sinh viên Trường Đại học Sư phạm Kỹ thuật TP. HCM trình bày toàn bộ quy trình phân tích, thiết kế và triển khai một hệ thống web lịch sử sử dụng Python, Django, CKEditor 5 và MySQL theo mô hình MVT. Hệ thống giải quyết khoảng trống của các nền tảng lịch sử hiện có bằng cách tích hợp đồng thời chức năng tra cứu chuyên sâu, kiểm tra kiến thức, thanh toán trực tuyến, kiểm duyệt bình luận bằng AI và phân cấp bốn tầng người dùng trong một nền tảng duy nhất. Đồ án cung cấp tài liệu kỹ thuật tương đối đầy đủ bao gồm 20 nhóm Use Case, 29 bảng mô tả giao diện, lược đồ ERD và các lược đồ chức năng, làm cơ sở tham chiếu cho những đồ án xây dựng hệ thống web tương tự trong môi trường giáo dục.