🎯 1. Mục tiêu
-
Gọi REST API từ giao diện web bằng JavaScript
-
Cho phép:
-
Thêm sinh viên
-
Hiển thị danh sách sinh viên
-
Xoá sinh viên (có xác nhận)
-
Vẽ biểu đồ realtime
-
-
Không cần reload trang, trải nghiệm hiện đại
Gọi REST API từ giao diện web bằng JavaScript
Cho phép:
Thêm sinh viên
Hiển thị danh sách sinh viên
Xoá sinh viên (có xác nhận)
Vẽ biểu đồ realtime
Không cần reload trang, trải nghiệm hiện đại
Xây dựng chức năng đăng nhập, đăng xuất
Bảo vệ route /admin chỉ cho người đăng nhập
Phân quyền user → chỉ admin được thêm/sửa/xóa dữ liệu
Giao diện HTML đơn giản với form đăng nhập
Chuyển cấu hình Flask từ SQLite → PostgreSQL
Sử dụng PostgreSQL trên Render hoặc Supabase (hoặc ElephantSQL – Free Plan)
Cập nhật Flask app để hoạt động với DB mới
Deploy lại ứng dụng lên Internet
Đưa ứng dụng Flask + SQLite + Chart.js lên Internet
Không cần VPS, không cần mua domain
Gọi API từ bất kỳ đâu (web, app, Postman…)
Chuyển sang dùng SQLAlchemy ORM để dễ quản lý model
Viết API /api/students hỗ trợ:
/api/students?name=An → tìm theo tên
/api/students?page=2&size=5 → phân trang
/api/students?min_score=7 → lọc theo điểm
Dùng SQLite database thay vì CSV
Lưu dữ liệu sinh viên (id, name, score) vào DB
Truy xuất bằng Flask API
Trực quan hóa bằng Chart.js (biểu đồ realtime)
Tạo biểu đồ cột (bar chart) điểm sinh viên ngay trong trang web
Dữ liệu lấy từ REST API Flask (/api/students)
Biểu đồ cập nhật mỗi 5 giây → hiệu ứng realtime