Tài liệu hệ thống · bản hướng dẫn

Hiểu rõ từng góc của không gian thành viên.

Tài liệu này giải thích toàn bộ tính năng của Hệ thống quản lý học sinh lớp 10A1 theo cách dễ làm theo: từ lần đăng nhập qua API UY TÍN, hoàn thiện hồ sơ, quản lý sự kiện và ca điểm danh QR cho đến khu vực quản trị.

01Đăng nhập và hồ sơ
02Thành viên và phân quyền
03Sự kiện và điểm danh QR
04Quản trị và an toàn

01 · Bắt đầu

Quy trình từ lúc truy cập website đến khi bạn có thể dùng đúng khu vực của mình.

  1. Mở trang Hệ thống quản lý học sinh lớp 10A1Chọn Đăng nhập qua API UY TÍN. API UY TÍN xử lý xác thực và đưa bạn về callback đã cấu hình.
  2. Kiểm tra trạng thái tài khoảnSau khi xác thực, bạn chỉ cần điền thông tin thành viên để kích hoạt quyền truy cập.
  3. Hoàn thiện hồ sơĐiền đủ họ và tên, lớp, ngày tháng năm sinh theo định dạng hiển thị. Có thể tải avatar trong giới hạn 5 MB. Nút gửi chỉ sáng khi toàn bộ trường bắt buộc hợp lệ.
  4. Vào thẳng hệ thốngSau khi điền đủ họ tên, lớp và ngày tháng năm sinh, hệ thống lưu hồ sơ và chuyển thẳng bạn vào không gian thành viên, không cần chờ admin phê duyệt.

Mẹo: Nếu vừa đổi thông tin mà chưa thấy cập nhật, hãy tải lại trang sau khi thao tác hoàn tất. Hệ thống dùng cache-buster cho tài sản giao diện, còn dữ liệu tài khoản được đọc lại từ Sanity.

02 · Tài khoản và hồ sơ

Thông tin nhận diện dùng cho tài khoản và cách cập nhật an toàn.

Bắt buộc

Họ và tên · lớp · ngày sinh

Ba trường này là dữ liệu hồ sơ cốt lõi. Ngày sinh được tự định dạng theo DD/MM/YYYY; ngày, tháng và năm được kiểm tra hợp lệ trước khi gửi.

Tuỳ chọn

Avatar cá nhân

Chấp nhận ảnh JPEG, PNG, WebP hoặc GIF, tối đa 5 MB. Khi cập nhật ảnh, ảnh cũ được dọn khỏi Sanity nếu không còn được tài khoản nào khác tham chiếu.

Cập nhật thông tin

  1. Mở Cài đặt tài khoảnChọn mục tài khoản trong navbar, rồi mở phần hồ sơ cá nhân.
  2. Chỉnh thông tinSửa họ tên, lớp hoặc ngày sinh; kiểm tra phần xem trước avatar nếu có tải ảnh mới.
  3. Lưu thay đổiNhấn nút lưu một lần. Mỗi nút thao tác có cooldown 5 giây để tránh gửi trùng.

Lưu ý: Đổi tên hiển thị không làm đổi email đăng nhập qua API UY TÍN. Email là định danh tài khoản và được dùng để xác định quyền và lịch sử điểm danh.

03 · Thành viên và phân quyền

Members là khu vực quản lý, chỉ tài khoản có quyền admin mới nhìn thấy và thao tác được.

Bảng thành viên hiển thị gì?

Danh sách gồm các tài khoản đã xác thực và hoàn thiện hồ sơ, trình bày theo hàng/card ngang để có thể xem đủ trên máy tính và kéo ngang khi cần. Mỗi thành viên thông thường có:

Thông tin nhận diện

Avatar, họ và tên, email, lớp, chức vụ và tag quyền: admin god, admin mini hoặc user.

Điểm danh

Chỉ ghi nhận số lần có mặt, đi trễ, vắng và tổng số buổi; thống kê theo từng sự kiện dạng có mặt|trễ|vắng/tổng buổi.

Các cấp quyền

CấpKhả năng chínhGiới hạn
Admin godQuản trị thành viên, sự kiện, ca QR, nhật ký, thống kê có mặt và phê duyệt.Không thể xoá/giáng chức tài khoản owner được hệ thống bảo vệ.
Admin miniTạo ca điểm danh, đề xuất sự kiện và thao tác theo quyền được cấp.Phân quyền người khác phải gửi chủ nhiệm duyệt.
UserXem khu vực được mở cho thành viên và quét QR.Không có đặc quyền quản trị, không thấy Members/admin pages.
Coder / Nhà sáng lậpTài khoản hệ thống đặc biệt, giữ tag Coder và quyền admin god theo cấu hình.Không tính là thành viên; không hiển thị lớp hoặc lịch sử sự kiện ở Members.

Kích hoạt tài khoản mới

Thành viên mới không đi qua hàng chờ phê duyệt. Sau khi API UY TÍN xác thực và thành viên hoàn thiện họ tên, lớp, ngày sinh, tài khoản được đưa thẳng vào Members. Chủ nhiệm chỉ quản lý vai trò và quyền truy cập.

Phân quyền và chức vụ tùy chỉnh

Chủ nhiệm dùng trang Quyền lực hóa để tạo chức vụ mới và gán một trong ba nhóm quyền. Các chức vụ mặc định không thể bị xóa. Tên chức vụ chỉ dùng chữ cái ASCII/chữ Việt có dấu và khoảng trắng; từ khóa liên quan coder/lập trình viên bị chặn để bảo vệ vai trò hệ thống.

04 · Sự kiện câu lạc bộ

Sự kiện là nơi gom các buổi hoạt động để thống kê chuyên cần có ngữ cảnh.

Tạo đề xuất sự kiện

  1. Chọn Sự kiệnMở trang Events và chọn nút tạo đề xuất.
  2. Nhập nội dungĐiền tên sự kiện, mô tả, ngày giờ, địa điểm và số buổi hoạt động. Ngày giờ dùng DD/MM/YYYY-HH:MM; dấu gạch và dấu hai chấm được tự định dạng.
  3. Kiểm tra lịchHệ thống tự xác định thứ, kiểm tra số ngày của từng tháng và năm nhuận, đồng thời chặn giờ ngoài 00:00–23:59.
  4. Gửi hoặc công bốAdmin cấp phù hợp có thể tạo trực tiếp theo quyền; các admin khác gửi đề xuất để chủ nhiệm phê duyệt.

Chỉnh sửa và xóa

Trên từng card sự kiện có nút chỉnh sửa và xóa. Chỉnh sửa được tên người đề xuất, mô tả, thời gian, địa điểm và số buổi. Xóa là thao tác không hoàn tác, nên hệ thống mở hộp xác nhận riêng trước khi thực hiện.

Quan trọng: Chỉ sự kiện đã duyệt mới có thể làm nguồn thống kê chính thức. Số buổi hoạt động của sự kiện là mẫu số dùng trong thống kê từng sự kiện.

05 · Điểm danh bằng QR

Đây là quy trình đầy đủ cho cả người tạo ca và thành viên quét mã.

A. Admin tạo một ca điểm danh

  1. Mở trang Điểm danhChọn Tạo mã điểm danh. Chỉ tài khoản admin được backend xác thực mới thấy và dùng nút này.
  2. Chọn sự kiện liên kếtChọn sự kiện đã duyệt nếu muốn ca này tính vào thống kê. Có thể chọn không liên kết để thử camera/mã; ca test không ghi có mặt, trễ hoặc vắng thật.
  3. Nhập mốc thời gianĐiền giờ bắt đầu và kết thúc theo DD/MM/YYYY-HH:MM. Hệ thống chặn ngày/tháng/giờ/phút không hợp lệ, không cho giờ âm, không nhận 24:00; phút 60 sẽ được chuẩn hóa sang giờ kế tiếp khi phù hợp.
  4. Cấu hình điểmNhập điểm cộng khi đúng giờ, điểm trừ khi đi trễ và điểm trừ khi vắng. Đây là cấu hình áp dụng cho ca có liên kết sự kiện.
  5. Tạo mãHệ thống sinh mã xác thực ngẫu nhiên 8 ký tự chữ-số và QR chứa dữ liệu ca. Mỗi admin có thể tạo nhiều ca độc lập cùng lúc; ca của admin này không làm mất QR của admin khác.

B. Thành viên quét mã

  1. Mở nút Quét QRTrên điện thoại, cho phép trình duyệt dùng camera khi được hỏi. Trên máy tính có camera cũng có thể dùng trình quét.
  2. Đưa QR vào khungGiữ mã nằm rõ trong khung. Nếu không dùng được camera, chọn nhập mã thủ công bằng mã đang hiển thị trên màn hình của chủ tus.
  3. Chờ hệ thống phản hồiServer kiểm tra mã, ca, tài khoản đăng nhập và mốc thời gian. Không thể tự sửa dữ liệu chỉ bằng cách sửa giao diện trình duyệt.
  4. Xem kết quảTrong thời hạn, tài khoản được ghi có mặt. Sau giờ kết thúc, lượt quét mới được ghi là trễ. Khi một lượt được ghi nhận, mã cũ lập tức hết hiệu lực và mã mới được tạo.

C. Khi nào ghi vắng?

Với ca có liên kết sự kiện, khi admin đóng ca, hệ thống đối chiếu danh sách thành viên đã duyệt. Người không có bản ghi trong ca được ghi vắng. Vì vậy, chưa tổ chức ca thì không tự phát sinh vắng.

D. Cách đọc thống kê

Hiển thịÝ nghĩa
a|b|c/x buổia lần có mặt, b lần trễ, c lần vắng trên x buổi đã cấu hình của sự kiện.
Ca không liên kếtChỉ dùng để test; không ghi có mặt/trễ/vắng và không làm thay đổi thống kê.
Nhiều người quét cùng QRChỉ lượt đầu tiên được ghi nhận. Các lượt đồng thời sau đó bị từ chối, không tạo bản ghi lặp; mã mới đã được tạo cho lượt tiếp theo.
Đã đóngCa biến mất khỏi khu vực QR đang hiệu lực; lịch sử vẫn được giữ để thống kê nếu ca đã liên kết.

Không chia sẻ mã tùy tiện: QR là vé xác thực cho một ca cụ thể. Nếu nghi ngờ mã bị lộ, admin nên đóng ca và tạo ca mới thay vì tiếp tục dùng mã cũ.

06 · Khu vực quản trị

Các tính năng độc quyền chỉ hiển thị sau khi server xác nhận vai trò.

Nhật ký hoạt động

Chủ nhiệm xem ai đã tạo/sửa/xóa sự kiện, tạo hoặc đóng ca, phân quyền và xử lý điểm danh. Hệ thống tự giữ 50 bản ghi mới nhất và xóa bản cũ nhất khi vượt giới hạn.

Cơ chế điểm danh

Không có điểm số hoặc phần trăm. Hệ thống chỉ lưu có mặt, đi trễ, vắng và tổng số buổi theo từng thành viên.

Đăng nhập thành viên

API UY TÍN xác thực tài khoản; thành viên hoàn thiện hồ sơ rồi vào thẳng hệ thống, không cần admin duyệt.

Xóa dữ liệu lịch sử

Chỉ chủ nhiệm có thể xóa lịch sử điểm danh hoặc nhật ký hoạt động sau khi các ca đang mở đã được đóng.

Nguyên tắc thao tác admin

  • Quyền được xác minh lại tại backend, không dựa vào việc ẩn/hiện nút ở frontend.
  • Không thể phân quyền, giáng chức hoặc xóa tài khoản owner được bảo vệ bởi hệ thống.
  • Admin mini khi phân quyền người khác sẽ tạo đề xuất; chủ nhiệm mới là người phê duyệt cuối.
  • Chủ nhiệm có thể phân quyền trực tiếp theo quyền cao nhất của mình.

07 · Giao diện và hiển thị

Một vài hành vi giao diện giúp sử dụng ổn định trên máy tính và màn hình nhỏ.

Khu vựcHành vi
ThemeTheme sáng/tối dùng chung trên các page; nút mặt trời/mặt trăng giữ kích thước đồng nhất. Trang điểm danh được giữ theme sáng theo cấu hình.
MobileNavbar có nút ba gạch; Members có thể kéo ngang để xem đủ cột.
LoadingMàn hình loading phủ toàn bộ viewport trước khi web hiển thị, có thanh tiến trình và animation riêng.
CooldownCùng một nút hoặc cùng một form cần chờ 5 giây sau khi bấm; nút khác không bị khóa theo.

08 · Xử lý lỗi thường gặp

Các bước kiểm tra nhanh trước khi liên hệ quản trị viên.

Hiện tượngCách xử lý
Không thấy Members/admin pageKiểm tra tài khoản đã được duyệt chưa và vai trò có phải admin không. Đăng xuất/đăng nhập lại để lấy phiên mới.
QR không hợp lệNhập đủ mã 8 ký tự, không thêm khoảng trắng; kiểm tra ca còn trong thời gian hoạt động, chưa bị đóng và đang đăng nhập đúng tài khoản.
Không mở được cameraCho phép quyền camera cho domain, dùng HTTPS, kiểm tra camera không bị ứng dụng khác chiếm dụng hoặc dùng nhập mã thủ công.
Thông tin hồ sơ không gửiĐiền đủ họ tên, lớp, ngày sinh; kiểm tra ngày hợp lệ và dung lượng avatar không quá 5 MB.

Khi báo lỗi, không gửi mật khẩu, mã phiên, mã QR đang hoạt động hoặc ảnh chụp chứa thông tin riêng tư. Chỉ cung cấp mô tả, thời điểm, thiết bị và bước tái hiện.