3 điểm bởi chunsik2 4 giờ trước | Chưa có bình luận nào. | Chia sẻ qua WhatsApp

Xin chào. Khi tìm thông tin về trường học, tôi muốn giảm bớt sự bất tiện khi phải qua lại giữa nhiều trang web và file Excel, nên đã tạo ra Uri Hakgyo Eottae.

Toàn bộ quá trình phát triển được thực hiện theo phương pháp vibe coding. Đây không phải là dự án chỉ yêu cầu AI tạo mã một lần rồi kết thúc; tôi đã lặp đi lặp lại quá trình chia nhỏ yêu cầu thành tài liệu, đối chiếu kết quả triển khai với dữ liệu thực tế và sửa lại lỗi. Đặc biệt, với dữ liệu trường học, tôi cho rằng việc không bị liên kết nhầm sang trường khác quan trọng hơn một giao diện trông có vẻ ổn, nên đã dành nhiều thời gian nhất cho việc mapping và kiểm chứng.

Trong dịch vụ, có thể tìm kiếm theo tên trường, so sánh giữa các trường cùng cấp học, so sánh dữ liệu công khai theo khu vực, cũng như xem dữ liệu thành tích học tập theo từng môn và kết quả xét duyệt của Ủy ban thẩm định biện pháp đối phó bạo lực học đường. Các số liệu xác nhận được từ nguồn gốc và các chỉ số tự tính toán được hiển thị tách biệt.

Cấu trúc dữ liệu

  • Thông tin cơ bản của trường
  • Lớp học, số lượng học sinh
  • Số lượng giáo viên
  • Thông tin biến động học sinh (chuyển đến, chuyển đi)
  • Số giờ hoàn thành giáo dục an toàn
  • Kết quả của Ủy ban thẩm định biện pháp đối phó bạo lực học đường
  • Thành tích học tập theo môn học (chỉ phản ánh điểm trung bình)

Cấu trúc kỹ thuật

  • Next.js App Router, TypeScript, Tailwind CSS
  • Firebase Firestore và Firebase Admin SDK
  • Triển khai trên Vercel và tự động hóa bằng GitHub Actions
  • search-index.json tĩnh cho tìm kiếm trên trình duyệt
  • JSON tĩnh cho trang chi tiết trường, bảng xếp hạng và trang so sánh
  • Thu thập dữ liệu từ NEIS·Hakgyo Alimi và áp dụng phần thay đổi dựa trên row_hash
  • Công cụ nhập tài liệu công khai thủ công để nhận diện cấu trúc bảng của các file XLS từ Hakgyo Alimi

Những phần khó hơn dự kiến khi làm

Phần rắc rối nhất là khớp tên trường. Có các trường trùng tên, trường đã đổi tên, trường đã đóng cửa và các trường chỉ khác cấp học bị trộn lẫn, nên nếu chỉ liên kết bằng tên trường thì có thể phát sinh mapping sai. Tôi đã chuyển sang cách ưu tiên dùng mã trường, thông tin sở giáo dục, khu vực và cấp học, còn các mục không thể tự động xác định thì để lại thành đối tượng kiểm chứng riêng.

Các file XLS công khai về thành tích học tập và bạo lực học đường cũng không có vị trí cột hoàn toàn giống nhau ở mọi file. Nếu cố định đọc theo số thứ tự cột thì có thể xuất hiện giá trị sai nhưng trông vẫn như số liệu bình thường, vì vậy tôi đã thêm bước kiểm chứng để phân biệt định dạng bằng cách kiểm tra tiêu đề bảng và header, đồng thời không phản ánh các giá trị nằm ngoài phạm vi.

Chưa có bình luận nào.

Chưa có bình luận nào.