Đây là hệ thống backend cho nền tảng quản lý giáo dục, được xây dựng bằng Spring Boot, WebFlux và MongoDB, hỗ trợ lập trình phản ứng (reactive) và bảo mật bằng JWT.
- 🔐 Xác thực & phân quyền bằng JWT
- 👥 Quản lý người dùng, vai trò (Học sinh, Giáo viên)
- 🧾 Theo dõi lớp học, giảng dạy, lịch học
- ⚡ Hỗ trợ xử lý bất đồng bộ với Spring WebFlux
- 🧩 Tích hợp cả Reactive và Blocking MongoDB Repositories
- ☁️ Tích hợp gửi mail, Cloudinary và AI (Gemini API)
| Thành phần | Công nghệ |
|---|---|
| Ngôn ngữ | Java 17+ |
| Framework | Spring Boot 3, WebFlux |
| Bảo mật | Spring Security + JWT |
| Cơ sở dữ liệu | MongoDB (Reactive + Blocking) |
| Quản lý dự án | Maven |
| Gửi mail | SMTP qua Gmail |
| Lưu trữ ảnh | Cloudinary API |
| Trí tuệ nhân tạo | Gemini API |
src/
├── config/ # Cấu hình bảo mật, JWT
├── controller/ # API endpoints
├── dto/ # Các lớp chuyển dữ liệu
├── entity/ # Định nghĩa dữ liệu MongoDB
├── repository/ # Reactive + Blocking Repositories
├── service/ # Business logic
├── util/ # Các hàm hỗ trợ (utility)
├── application.yaml # Cấu hình ứng dụng
- Java 17+
- Maven
- MongoDB
- (Tuỳ chọn) Docker
# Cài đặt và build
mvn clean install
# Hoặc chỉ build không chạy test
mvn clean package -DskipTests
# Chạy app
mvn spring-boot:runcp .env.example .env👉 Rồi chỉnh lại thông tin thật trong file
.env
Có thể sử dụng application.yaml để cấu hình, thêm các giá trị tương ứng trong file .env.example
vào biến môi trường trên máy tinh
docker-compose up --build- Base URL:
http://localhost:8080 - Đảm bảo bạn đã cấu hình
.envđầy đủ trước khi test các API - Các endpoint cần JWT sẽ yêu cầu bạn đăng nhập để lấy token
- Chỉ cần import file Backend Edu.postman_collection.json có sẵn trong thư mục dự án vào Postman
Các biến được cấu hình qua .env:
MAIL_USERNAME=
MAIL_PASSWORD=
JWT_SECRET_KEY=
CLOUDINARY_CLOUD_NAME=
CLOUDINARY_API_KEY=
CLOUDINARY_API_SECRET=
GEMINI_API_KEY=
⚠️ Không commit file.envthật — chỉ commit.env.exampleđể hướng dẫn
Mọi đóng góp đều được hoan nghênh! Hãy tạo pull request hoặc issue nếu bạn phát hiện lỗi hoặc muốn thêm tính năng mới.
MIT License
---