Skip to content

MinhDat205/ExamSafe

Repository files navigation

ExamSafe - Hệ Thống Thi Trực Tuyến & Chống Gian Lận Real-time

.NET Core SignalR Bootstrap 5 SQL Server License

ExamSafe là một giải pháp thi trắc nghiệm trực tuyến toàn diện, tập trung vào tính bảo mật và giám sát thời gian thực. Hệ thống sử dụng công nghệ SignalR để đảm bảo tính đồng bộ tức thì giữa thí sinh và giám thị, tích hợp các cơ chế phát hiện gian lận (rời tab, thoát toàn màn hình) thông minh.


🚀 Tính Năng Nổi Bật (Key Features)

👨‍🏫 Dành Cho Giáo Viên (Teacher / Admin)

  • Quản lý đề thi: Tạo, sửa, xóa đề thi với cấu hình chi tiết (thời gian, mật khẩu, thời điểm mở/đóng).
  • Soạn thảo câu hỏi: Giao diện trực quan, dễ dàng thêm/sửa/xóa câu hỏi trắc nghiệm.
  • Giám sát Real-time (Monitor Dashboard):
    • Theo dõi trạng thái của tất cả thí sinh (Đang chờ, Đang thi, Đã nộp).
    • Cảnh báo gian lận: Nhận thông báo tức thì và đếm số lần vi phạm khi thí sinh rời tab.
    • Duyệt thí sinh vào phòng thi (nếu bật chế độ Phòng chờ).
  • Báo cáo & Thống kê: Xem bảng điểm chi tiết, xuất dữ liệu ra file Excel chuẩn.

👨‍🎓 Dành Cho Sinh Viên (Student)

  • Sảnh chờ (Lobby): Giao diện thân thiện, báo trạng thái chờ duyệt thời gian thực.
  • Giao diện làm bài thi:
    • Chế độ Full-screen bắt buộc.
    • Đồng hồ đếm ngược đồng bộ server.
    • Thanh điều hướng câu hỏi (Palette) trực quan.
  • Cơ chế chống gian lận:
    • Tự động phát hiện hành vi rời khỏi tab (Alt+Tab, click sang màn hình khác).
    • Tự động báo cáo vi phạm về máy chủ ngay lập tức.

🛠️ Kiến Trúc & Công Nghệ (Tech Stack)

Backend (Server)

  • Framework: ASP.NET Core Web API (.NET 6/7/8).
  • Database: SQL Server + Entity Framework Core (Code First).
  • Real-time Communication: SignalR (WebSocket).
  • Authentication: JWT / Custom Session logic.

Frontend (Client)

  • Core: HTML5, CSS3, Vanilla JavaScript (ES6+).
  • UI Framework: Bootstrap 5.3 (Responsive Design).
  • Real-time Client: Microsoft SignalR JS Client.
  • Excel Export: SheetJS (xlsx).

⚙️ Cài Đặt & Chạy Dự Án (Installation)

Để chạy dự án trên máy cục bộ (Localhost), vui lòng làm theo các bước sau:

1. Yêu cầu hệ thống (Prerequisites)

  • .NET SDK (6.0 trở lên).
  • SQL Server (Express hoặc Developer).
  • Visual Studio 2022 hoặc VS Code.

2. Cài đặt Backend (API)

  1. Clone repository:
    git clone [https://github.com/your-username/ExamSafe.git](https://github.com/your-username/ExamSafe.git)
    cd ExamSafe/ExamSafe.API
  2. Cấu hình chuỗi kết nối Database trong appsettings.json:
    "ConnectionStrings": {
      "DefaultConnection": "Server=YOUR_SERVER_NAME;Database=ExamSafeDB;Trusted_Connection=True;TrustServerCertificate=True;"
    }
  3. Chạy lệnh Migration để tạo Database:
    dotnet ef database update
  4. Khởi chạy Server:
    dotnet run
    Server sẽ chạy tại: http://localhost:5000 (hoặc port tương tự).

3. Cài đặt Frontend

  1. Di chuyển vào thư mục Client (chứa các file .html).
  2. Mở file index.html hoặc chạy thông qua Live Server (Extension của VS Code).
  3. Lưu ý: Đảm bảo các file .html đang trỏ đúng về địa chỉ API (mặc định là http://localhost:5000).

🛡️ Cơ Chế Chống Gian Lận (Anti-Cheating Logic)

Hệ thống sử dụng thuật toán Debounce kết hợp với các sự kiện trình duyệt để đảm bảo tính chính xác, tránh báo lỗi sai (False Positives):

  1. Events: Lắng nghe visibilitychange, blur, và fullscreenchange.
  2. Debounce: Khi phát hiện sự kiện, hệ thống chờ 1 giây để xác nhận hành động, tránh việc sự kiện bị kích hoạt kép (double counting).
  3. Server Logging: Vi phạm được gửi qua API và lưu vào Database, đồng thời bắn SignalR tới màn hình Giám thị ngay lập tức.

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors