| Nền tảng (Platform) | Trạng thái (Status) | Đã Deploy (Live URL Access) |
|---|---|---|
| 🎨 Frontend Web App (Vercel) | 👉 https://tutormatching-platform.vercel.app | |
| ⚙️ Backend RESTful API (Azure) | 👉 Swagger API Docs trên Azure | |
| 🗄️ Database (Azure SQL Server) | sqlserver-tutor-2026.database.windows.net |
TutorPlatform là hệ thống Backend RESTful API hiện đại được xây dựng trên nền tảng .NET 10, áp dụng kiến trúc Clean Architecture chuẩn nguyên lý và mô hình CQRS (Command Query Responsibility Segregation) kết hợp MediatR.
Hệ thống cung cấp giải pháp toàn diện cho việc kết nối giữa Gia sư (Tutor), Học viên (Student) và Ban quản trị (Admin), hỗ trợ đặt lịch học thông minh, thanh toán trực tuyến qua VNPAY, xác thực bảo mật OTP qua Brevo Email, SignalR Real-time Notifications và quản trị nâng cao.
Dự án được phân chia thành 4 phân tầng độc lập theo nguyên lý Dependency Inversion:
graph TD
API[TutorPlatform.API] --> Application[TutorPlatform.Application]
API --> Infrastructure[TutorPlatform.Infrastructure]
Infrastructure --> Application
Infrastructure --> Domain[TutorPlatform.Domain]
Application --> Domain
subgraph "Core Business Logic"
Domain
Application
end
subgraph "External Concerns"
Infrastructure
API
end
| Phân tầng (Layer) | Trách nhiệm chính |
|---|---|
TutorPlatform.Domain |
Chứa Entities, Enums, Interfaces cốt lõi và các Domain Logic độc lập, không phụ thuộc vào framework nào. |
TutorPlatform.Application |
Chứa Use Cases theo mô hình CQRS (Commands, Queries, Handlers), FluentValidation, DTOs và Business Services. |
TutorPlatform.Infrastructure |
Cấu hình Entity Framework Core, SQL Server, Repositories, tích hợp VNPAY, Brevo Email Service và Background Hosted Services. |
TutorPlatform.API |
Cung cấp Controllers RESTful API, Swagger OpenAPI, Global Exception Handler, Middleware JWT Authentication, SignalR Hubs, CORS. |
- Đăng ký, đăng nhập tài khoản (Student, Tutor, Admin) với mã hóa mật khẩu BCrypt.
- Cơ chế JWT Authentication (Access Token + Refresh Token).
- Quên mật khẩu & Đặt lại mật khẩu qua mã OTP bảo mật gửi trực tiếp đến Email thật qua Brevo API.
- Đăng ký và cập nhật hồ sơ năng lực gia sư (Bio, Bằng cấp, Môn dạy).
- Thiết lập khung giờ dạy linh hoạt (Tutor Availability).
- Quản trị viên duyệt / từ chối hồ sơ gia sư minh bạch.
- Tìm kiếm gia sư thông minh theo môn học, khung giờ, mức giá và đánh giá.
- Đặt lịch học theo buổi (1 kèm 1 hoặc nhóm).
- Kiểm tra chống trùng lịch tự động (Overlapping booking prevention).
- Đánh giá (Review & Rating) sau khi hoàn thành buổi học.
- Tích hợp cổng thanh toán trực tuyến VNPAY Sandbox.
- Hệ thống nạp Credit và khấu trừ tự động khi xác nhận buổi học.
- Quản trị viên theo dõi yêu cầu nạp tiền và đối soát giao dịch.
- Tích hợp SignalR Hub đẩy thông báo biến động số dư, kết quả duyệt hồ sơ gia sư và lịch học mới tức thì tới người dùng mà không cần reload lại trang.
- Báo cáo thống kê tổng thể: Người dùng, Gia sư chờ duyệt, Doanh thu hệ thống.
- Báo cáo doanh thu chi tiết phân tích theo Tháng, Quý, Năm với biểu đồ tăng trưởng.
OverdueClassNotifierService: Background Service chạy định kỳ tự động quét và gửi thông báo nhắc nhở các buổi học quá hạn.
- Framework: .NET 10 Web API
- ORM & Database: Entity Framework Core 10, Microsoft Azure SQL Server
- Architecture & Patterns: Clean Architecture, CQRS, Repository & Unit of Work Pattern
- Mediator: MediatR
- Real-time Engine: ASP.NET Core SignalR
- Validation: FluentValidation
- Authentication: JWT Bearer, BCrypt.Net-Next
- Payment Gateway: VNPAY.NET SDK
- Email Service: Brevo API (Sendinblue)
- API Documentation: Swagger / OpenAPI
- CI/CD & Hosting: GitHub Actions, Azure App Service (Linux)
- .NET 10.0 SDK
- Microsoft SQL Server (LocalDB hoặc SQL Server Instance / Azure SQL)
- Visual Studio 2022 / JetBrains Rider / VS Code
# 1. Clone repository
git clone https://github.com/NguyendDucTai/TutorMatchingPlatform.git
cd TutorMatchingPlatform
# 2. Cập nhật Connection String trong TutorPlatform.API/appsettings.json
# "DefaultConnection": "Data Source=YOUR_SERVER;Initial Catalog=TutorPlatformDb;Integrated Security=True;Trust Server Certificate=True"
# 3. Khôi phục packages & Build dự án
dotnet restore
dotnet build
# 4. Khởi chạy Backend API
dotnet run --project TutorPlatform.APIAPI sẽ hoạt động tại: http://localhost:5000
Giao diện Swagger tài liệu API: http://localhost:5000/swagger
Để giữ cho repository gọn gàng và chuyên nghiệp:
main/master: Nhánh chính dành cho Production.develop: Nhánh tích hợp cho môi trường phát triển / Staging.
- Nguyễn Đức Tài (Lead Backend Developer) - Email:
nguyenductai08102004@gmail.com