Chuyển tới nội dung chính

Signet

Lõi nền tảng nguồn mở, tự cài, kèm ứng dụng đầu tiên là Văn phòng điện tử. Trang này giúp xem nhanh hệ thống trong 5 phút và biết tìm từng phần ở đâu. Giới thiệu đầy đủ ở README.md.

Xem nhanh trong 5 phút​

Không cần cài gì:

  1. Hệ thống là gì (1 phút): README.md, mục Giới thiệu và sơ đồ ở mục Kiến trúc.
  2. Trạng thái (30 giây): https://signet.htechcs.com/trang-thai, không cần đăng nhập: từng thành phần của lõi đang chạy hay gián đoạn.
  3. Dùng thử (2 phút): https://signet.htechcs.com. Mật khẩu tài khoản dùng thử gửi kèm hồ sơ dự thi, không có trong repo; danh sách tài khoản ở README.md, mục Chạy thử. Tài khoản chuyên viên mà mục đó gợi ý để thử nhanh không cần xác thực hai bước; lúc nạp dữ liệu mẫu, hộp việc của tài khoản này có một công văn khẩn chờ xử lý và một dự thảo bị trả lại chờ sửa. Bấm gì ở từng bước, theo vai trò: huong-dan/.
  4. Xác thực văn bản (1 phút): https://signet.htechcs.com/xac-thuc, không cần đăng nhập: tra mã in cạnh mã QR hoặc thả tệp PDF đã phát hành; tệp bị sửa thì báo không khớp.
  5. Kiểm tự động (30 giây): trang Actions. Mỗi pull request đổi mã dựng toàn hệ thống từ mã nguồn rồi chạy smoke, e2e trên trình duyệt thật, các màn demo và cài ra ngoài thư mục mã nguồn; pull request chỉ đổi tài liệu thì bỏ qua phần này.

Tự cài thì dùng bốn lệnh ở README.md, mục Cài đặt từ mã nguồn. Sau đó mỗi nguyên lý thiết kế có một màn demo chạy bằng một lệnh, dưới một phút: README, mục Bằng chứng 4 nguyên lý; kịch bản ở demo-script.md.

Tìm gì ở đâu​

PhầnXem ở đâuKiểm tự động
Mã nguồn, cách làm việcRepo công khai, xem không cần đăng nhập. Pull requests: mọi thay đổi vào develop qua PR, cần CI xanh và một người khác duyệt. Issues có mẫu báo lỗi, đề xuất. Quy trình: git_flow.mdRuleset của develop, main (git_flow.md mục 10)
Giấy phépLICENSE (toàn văn Apache-2.0); NOTICE, mục "Mục đích của giấy phép"; dòng SPDX đầu mỗi tệp mã; REUSE.toml cho tệp không chèn được (tài liệu, ảnh, phông, JSON)CI job "Giấy phép": header từng tệp, không bundle mã dự án khác, SBOM và giấy phép mọi gói kể cả gián tiếp (make license-audit)
Bản phát hànhReleases: gói .tar.gz tự sinh kèm .sha256, SBOM CycloneDX .cdx.json từ v1.1.0; thẻ SemVer; CHANGELOG.md theo Keep a Changelogmake release tạo gói .tar.gz; workflow nang-cap.yml tập nâng cấp từ bản trước
Cài đặtREADME, mục Cài đặt từ mã nguồn: mọi tham số trong .env (make env hay cp .env.example .env), không sửa tệp mã; make install PREFIX=… cài ra ngoài thư mục mã nguồn; lên máy chủ: trien-khai.mdCI job "Dựng từ mã nguồn"; job chay-thu dựng toàn hệ thống, phần cai-dat cài ra thư mục khác rồi chạy từ bản cài
Thư viện, gói phụ thuộcCOPYRIGHT.txt: bảng thành phần kèm phiên bản, giấy phép, trang chủ. DEPENDENCIES.md: lý do chọn từng thành phần, chính sách giấy phép. Image thượng nguồn ghim phiên bản và digest trong docker-compose.yml, tùy biến bằng cấu hình; không commit vendor/, node_modules/CI job "Giấy phép", bước "Không bundle mã nguồn dự án khác"; make license-audit
Tài liệu, giao tiếpREADME (tiếng Anh), CONTRIBUTING.md, SECURITY.md (báo lỗ hổng riêng tư đã bật), CODE_OF_CONDUCT.md, ROADMAP.md, tài liệu API api/, gọi thử trên trang Swagger UI /tai-lieu-api/ (apps/tai-lieu-api)CI job "Tài liệu"
Ý tưởng, kiến trúcdac-ta-san-pham.md §1–2: vì sao chọn hướng này, bài toán. architecture.md: mô hình H-P-D-I, §4 ranh giới lõi và ứng dụng, §5 bản ghi quyết định kiến trúc. Lõi phục vụ cả ứng dụng ngoài Văn phòng điện tử, kiểm được: ứng dụng cắm thêm khai quy trình duyệt (BPMN) và form JSON Schema trong manifest, chạy trên Flowable của lõi qua API /api/workflow/<ứng dụng>/… (them-ung-dung.md mục 1.10; ứng dụng mẫu Đơn nghỉ phép, make demo-quy-trinh); tắt Văn phòng bằng MOC_OFFICE_ENABLED=false thì lõi vẫn chạy (make demo-tat-van-phong, architecture.md §4.7 bước 1–2); dữ liệu đã nộp lưu vẫn phân tích được: trang Điều hành đếm văn bản bằng DuckDB đọc thẳng các gói Parquet (#304). Mức của từng phần: muc-hoan-thien.md mục 2.5 và F3.8CI job chay-thu: phần luong-chinh, bước make demo-quy-trinh, make demo-tat-van-phong; phần sao-luu, bước make demo-nong-lanh
Đã làm tới đâumuc-hoan-thien.md: mức của từng tính năng (Hoàn thiện, Dùng được, Minh họa…), tệp test, bước CI, lệnh demo, hạn chế; danh-gia-ai.md; so-lieu-sau.mdmake test đối chiếu số test ghi trong muc-hoan-thien.md với mã thật
Dễ dùngVăn phòng điện tử, Không gian cá nhân và Bảng tin có tiếng Việt và tiếng Anh, dùng được trên điện thoại; Đơn nghỉ phép và Đổi, bù lịch giảng cũng có hai thứ tiếng. Kiểm tự động theo WCAG 2.2 AA: tương phản màu chữ đọc từ token CSS, quét trợ năng bằng axe-core trên 23 trang, không lỗi nào được miễn. Ảnh ở README, mục Ảnh chụp màn hìnhapps/office/tests/contrast.test.ts; CI job chay-thu, phần e2e (axe-core)
Vận hành lâu dàivan-hanh.md: thêm đơn vị, sao lưu và khôi phục, két bí mật, mốc neo công khai, GitOps và tự phục hồi, giám sát, log tập trung; them-ung-dung.md: cắm ứng dụng mới bằng một lệnh; tu-chan-doan.mdCI job chay-thu, phần sao-luu
Trình diễndemo-script.md: từng màn, phương án dự phòng, việc trước giờ trình diễn; dac-ta-san-pham.md §7: kịch bản 5 phútMọi màn make demo-* chạy lại trong CI job chay-thu, trừ demo-kiem-dich (đã có trong make smoke)

Bảng tự kiểm theo các yêu cầu PoF, có ngày và commit đã kiểm: du-thi/pof-checklist.md.

Giới hạn đã biết​

Mỗi giới hạn có issue theo dõi. Hạn chế của từng tính năng ở muc-hoan-thien.md, chỗ còn yếu của kiến trúc ở architecture.md §6.

  • Quy trình của ứng dụng cắm thêm (them-ung-dung.md mục 1.10) mới là quy trình duyệt: chưa có timer, nhắc hạn, bước tự động, gọi API ra ngoài; form chưa có tệp đính kèm (#325).
  • Các ứng dụng chung một tên miền sau APISIX nên tách nhau ở token (azp), chưa ở trình duyệt: mã của một ứng dụng đã cài đọc được token mà ứng dụng khác lưu trong sessionStorage của cùng thẻ. Chỉ người vận hành cài được ứng dụng (#325).
  • Văn phòng điện tử tắt được bằng MOC_OFFICE_ENABLED nhưng vẫn chạy chung tiến trình, image và CSDL với phần lõi trong svc-files, svc-workflow (architecture.md §4.4, bước 3–5 của §4.7; #324).
  • Form dựng từ JSON Schema mới dùng cho ứng dụng cắm thêm; form của Văn phòng vẫn viết trong mã, JSON Schema ở schemas/ chỉ dùng để kiểm dữ liệu (#303).

Các việc còn mở khác: Issues.