Kiến trúc, mô-đun và vai trò

Trang này tóm tắt kiến trúc ứng dụng của Omniscol và những vai trò mà phía nhà trường nhìn thấy. Các cam kết hợp đồng cụ thể (tính sẵn sàng, sao lưu, thời gian lưu giữ, giám sát) thuộc về những tài liệu pháp lý hoặc thương mại đã được phê duyệt.

Lưu trữ dữ liệu và độ tin cậy

Omniscol được lưu trữ trong Liên minh châu Âu, cụ thể là trên AWS Paris và Scaleway Paris. Sản phẩm sử dụng các cơ chế sao lưu, giám sát và cách ly logic giữa tài khoản của các trường; chi tiết áp dụng cho một tài khoản phụ thuộc vào hợp đồng và môi trường liên quan.

Xem FAQ — Bảo mật và lưu trữ dữ liệu để biết chi tiết dành cho người dùng.

Kiến trúc phần mềm

  • Ứng dụng web: ứng dụng chỉ tải một lần, sau đó các màn hình được dựng động qua trao đổi REST/JSON (Single Page Application).
  • CouchDB làm cơ sở dữ liệu chính.
  • Redis làm cơ sở dữ liệu phục vụ việc đồng bộ phía ứng dụng và nhật ký.
  • TypeScript cho giao diện (webapp).
  • Backend Node.js / Express điều phối các engine nội bộ (api, webapp, portal, panel, ical, mcp, oauth2, v.v.).
  • C++ cho thuật toán tạo tự động, chạy trên những máy ảo chuyên dụng được khởi động theo nhu cầu.

Bảo mật

  • HTTPS cho các kết nối mở ra bên ngoài.
  • Cloudflare là cửa vào duy nhất (bảo vệ chống DDOS).
  • Mật khẩu được băm trước ở phía máy khách bằng scrypt, rồi được băm lại và thêm salt ở phía máy chủ. Chúng không được lưu trữ hay truyền đi dưới dạng rõ.
  • Xác thực JWT với khóa ký và thời hạn ngắn; việc xoay vòng hoặc thu hồi một khóa có thể làm mất hiệu lực các mã thông báo đã ký.
  • Liên kết chia sẻ có chữ ký, có thể hết hạn, gắn với tài khoản đã tạo ra chúng và mất hiệu lực khi tài khoản đó đổi mật khẩu hoặc bị vô hiệu hóa.
  • Mã thông báo API với một khóa gốc và các mã thông báo phái sinh, giới hạn theo điểm truy cập và có thời hạn.
  • OIDC / SSO khả dụng tùy theo hợp đồng và cách thiết lập tài khoản.
  • Xuất dữ liệu và sao lưu nội bộ dạng JSON để bảo đảm khả năng lấy lại dữ liệu.

Vai trò người dùng

Omniscol phân biệt nhiều vai trò ở phía nhà trường:

Vai trò Sử dụng điển hình
Quản trị viên Người phụ trách xếp lịch, ban giám hiệu, bộ phận công nghệ thông tin
Giáo viên Giáo viên, giảng viên thỉnh giảng, người hướng dẫn đào tạo
Học sinh Học sinh, sinh viên, người học
Nhân viên Bộ phận quản lý học sinh, giám thị, trợ lý giáo dục, nếu mô-đun Quản lý nhân sự đang bật
Liên kết chia sẻ Truy cập qua URL có chữ ký vào một phần nội dung được xác định rõ

Sự tương ứng giữa các nhãn này và mã định danh kỹ thuật của từng vai trò được trình bày chi tiết trong Người dùng và vai trò.

Cùng một người dùng có thể mang nhiều vai trò cùng lúc. Ví dụ, một giáo viên tham gia công việc xếp lịch có thể vừa là Giáo viên vừa là Quản trị viên.

Vai trò Liên kết chia sẻ không tương ứng với một tài khoản người dùng thông thường. Đó là những liên kết có chữ ký: liên kết web của thời khóa biểu chỉ cho phép xem, còn một số liên kết có mục đích riêng vẫn có thể cho phép một thao tác giới hạn, ví dụ việc nhập thời gian rảnh của một giáo viên cho đến một ngày hết hạn.

Ngoài ra còn có những vai trò nội bộ dành riêng cho các nhóm của Omniscol: quản trị nền tảng, dịch thuật, hoạt động thương mại và các đối tác phân phối. Một số tài khoản trong đó được phép đăng nhập vào tài khoản của các trường, vì lý do bảo trì. Khi đó họ làm việc với tư cách siêu quản trị viên của trường, với nhiều khả năng hơn một quản trị viên: nhập dữ liệu thô thẳng vào cơ sở dữ liệu, bật hoặc tắt các tùy chọn có phí, đăng nhập dưới danh nghĩa một người dùng. Những lần truy cập này kích hoạt cảnh báo đăng nhập hiển thị rõ và mã thông báo của chúng hết hạn rất nhanh. Quyền lực càng lớn thì trách nhiệm càng nặng.

Vai trò tùy chỉnh: hãy giới hạn chi tiết quyền của một số tài khoản quản trị viên mà không cần mở toàn bộ quyền chung.

Vai trò tùy chỉnh

Tùy chọn Vai trò tùy chỉnh cho phép giới hạn quyền của một tài khoản quản trị viên theo từng mô-đun và theo từng thao tác. Nó dùng để giao lại một phần công việc quản trị mà không trao toàn bộ quyền chung.

Cũng chính tùy chọn đó mở ra phạm vi: vai trò giới hạn các thao tác, còn phạm vi thì giới hạn dữ liệu — những lớp nào, những cơ sở nào, những thời khóa biểu nào mà người lập thời khóa biểu được phép sửa.

Các mô-đun

Những mô-đun hiển thị trong một tài khoản tiêu chuẩn:

  • Trang chủ (home) — trang vào và bản tóm tắt trong ngày.
  • Thời khóa biểu (schedules) — tra cứu và những thay đổi riêng lẻ.
  • Trang tổng quan (dashboard) — thống kê mức sử dụng và giờ làm việc.
  • Quản lý vắng mặt (absences) — khai báo và thay thế.
  • Quản lý thời khóa biểu (timetables) — dựng, tạo tự động và công bố thời khóa biểu.
  • Quản trị (admin) — người dùng, thông số, nhập / xuất và tích hợp.

Tùy theo hợp đồng, có thể xuất hiện thêm những mô-đun khác, đặc biệt là Quản lý nhân sự để xếp lịch các công việc quản lý học sinh và trực giám sát.

Nhiều trường

Mỗi trường được cách ly logic ở phía máy chủ và truy cập vào tên miền riêng của mình. Dữ liệu của một trường không hiển thị với các trường khác từ trong ứng dụng. Ngược lại, nếu có yêu cầu, có thể bật một kênh liên lạc giữa những tài khoản riêng biệt, để chia sẻ các lỗi tương thích về phòng học và giáo viên. Điều này rất hữu ích khi các trường dùng chung tòa nhà, hoặc với một nhóm trường cùng chia sẻ tài nguyên.

Xem thêm