Phần mềm Quản Lý Y Tế Học Đường được xây dựng nhằm hỗ trợ phòng y tế của một trường học trong việc quản lý hồ sơ sức khỏe, tiêm chủng, thuốc & vật tư y tế, cũng như xử lý và báo cáo các sự kiện y tế xảy ra với học sinh. Ứng dụng gồm:
- Backend: Spring Boot (Java 17) – cung cấp RESTful API, truy cập dữ liệu qua Spring Data JPA, đóng gói bằng Docker.
- Frontend: React 18 – giao diện người dùng đơn trang (SPA) sử dụng SCSS.
- Database: MySQL (chạy kèm Docker).
- CI/CD: Maven build, docker-compose orchestration.
graph LR
subgraph Client
Users("
<b>Người dùng</b><br>
- Phụ huynh<br>
- Nhân viên y tế<br>
- Quản trị viên<br>
- Học Sinh
")
end
subgraph "Frontend (React)"
WebApp[React SPA]
end
subgraph "Backend (Spring Boot)"
Controllers[REST Controllers] --> Services[Business Services]
Services --> Repositories[JPA Repositories]
end
subgraph "Database"
DB[(MySQL)]
end
Users -- "Trình duyệt web" --> WebApp
WebApp -- "API Calls (REST/JSON)" --> Controllers
Repositories -- JPA --> DB
- Trang chủ thông tin & blog sức khỏe học đường.
- Khai báo Hồ sơ sức khỏe học sinh (dị ứng, bệnh nền, tiêm chủng…).
- Phụ huynh gửi thuốc cho học sinh, y tế tiếp nhận & ghi log.
- Nhân viên y tế ghi nhận sự kiện y tế (tai nạn, sốt, dịch bệnh…).
- Quản lý thuốc & vật tư y tế.
- Quản lý quy trình tiêm chủng tại trường.
- Quản lý khám sức khỏe định kỳ.
- Hệ thống Dashboard & Báo cáo.
- Quản lý người dùng & phân quyền (Admin, Nurse, Parent, Student…).
# 1. Clone source
$ git clone <repo> && cd project-java
# 2. Khởi chạy backend + database
$ cd backend
$ docker-compose up -d # MySQL + app container
# 3. Chạy frontend
$ cd ../frontend
$ npm install
$ npm start # http://localhost:3000Thông tin kết nối DB được cấu hình trong backend/src/main/resources/application.properties.
- Phụ huynh đăng ký tài khoản → đăng nhập → Khai báo hồ sơ sức khỏe → Gửi thuốc → Nhận thông báo tiêm chủng/khám sức khỏe và xác nhận → Xem kết quả & lịch sử.
- Nhân viên y tế đăng nhập → Dashboard → Xem danh sách học sinh → Ghi nhận sự kiện y tế → Cập nhật kho thuốc → Thực hiện và ghi nhận tiêm chủng/khám sức khỏe → Xuất báo cáo.
- Quản trị viên quản lý người dùng, blog, danh mục thuốc/vật tư.
- Controller:
AuthController–/api/auth/* - Service:
AuthService– JWT, BCrypt. - Entity:
User, enumRole. - Flow:
sequenceDiagram
participant U as User
participant FE as Frontend
participant BE as AuthController
U->>FE: Đăng nhập (email, password)
FE->>BE: POST /login
BE->>BE: Xác thực & sinh JWT
BE-->>FE: 200 OK + JWT
FE->>U: Lưu token & chuyển trang
- Entity:
HealthProfile,HealthIncident,HealthCheckResult. - Controller:
HealthProfileController. - Service:
HealthProfileService.
flowchart LR
P[Phụ huynh] -->|Form JSON| FE_HP
FE_HP -->|POST /health-profiles| BE_HP[HealthProfileController]
BE_HP --> Service
Service --> DB
Entity MedicalSupply, Controller MedicalSupplyController, Service MedicalSupplyService. Các yêu cầu CRUD và thống kê xuất/nhập kho.
Entity HealthIncident, enum IncidentStatus. Luồng:
- Nurse tạo sự kiện.
- Ghi nhận thuốc/vật tư sử dụng (
IncidentSupplyUsage). - Cập nhật trạng thái & gửi thông báo.
flowchart TD
N[Nurse] -->|Tạo lịch| VS[VaccinationSchedule]
VS -->|Gửi phiếu| P[Parent]
P -->|Đồng ý/Không| VS
VS -->|Danh sách học sinh| N
N -->|Tiêm & ghi nhận| VS
VS -->|Theo dõi sau tiêm| P
Tương tự 5.5 nhưng sử dụng HealthCampaign với CampainType.PERIODIC_CHECK.
Truy vấn tổng hợp qua Repository, hiển thị biểu đồ (Chart.js) trên frontend.
| Tuần | Nội dung | Trạng thái |
|---|---|---|
| 1 | Khởi tạo dự án, cấu hình CI/CD, DB schema | Done |
| 2 | Module Auth, phân quyền, bảng người dùng | Done |
| 3 | Module Hồ sơ sức khỏe & giao diện các đối tượng | Done |
| 4 | Module Sự kiện y tế & quản lý thuốc | Done |
| 5 | Module Tiêm chủng & Quản lý quá trình kiểm tra y tế định kỳ | Done |
| 6 | Dashboard Admin, báo cáo sự cố | Planned |
| 7 | Tài liệu về sức khỏe học đường, blog chia sẻ kinh nghiệm | Done |
- Directory backend:
controller/,service/,repository/,entity/,enums/,exception/. - REST naming theo chuẩn
/api/<resource>. - Coding Style: Google Java Style; ESLint + Prettier cho React.
- Branching:
main,feature/*,bugfix/*, PR review bắt buộc ≥1. - Issue tracker: GitHub Projects.
- Test: JUnit 5, React Testing Library.
© 2024 School HealthCare Management – Version 0.9.0