Course4U này là một ứng dụng web full-stack được phát triển bằng ReactJS cho frontend và Spring Boot cho backend. Ứng dụng cung cấp các chức năng như quản lý người dùng, quản lí khóa học, quản lí đơn đăng ký, quản lí chứng chỉ và bằng chứng thanh toán, xác thực, và tích hợp API. Có 3 role chính: User, Admin và Accountant.
- ReactJS với TypeScript
- UI: Shadcn, Ant Design, TailwindCSS
- State Management: Redux Toolkit
- Giao tiếp API: Axios
- Build Tool: Vite.
- Spring Boot 3.x (Java 17/21)
- Spring Security (JWT Auth)
- Spring Data JPA (PostgreSQL)
- RESTful API
- Swagger API Documentation
- Persistence: Liquibase
- Unit-Test: Spock framework + Groovy
- Code Coverage: Jacoco
- Build tool: Gradle
- Docker & Docker Compose
- Jenkins Pipeline
- Nginx Reverse Proxy
- Traefik
- Git
- BitBucket as hosting server
- Auth: JWT, OAuth2 with our simple solution.
Update Later... ---
Update later...
cd client
npm install
npm run dev
cd server
./mvnw spring-boot:run
docker-compose up --build
Sau khi khởi chạy backend, truy cập http://localhost:8080/swagger-ui.html để xem tài liệu API.
✅ Authentication & Authorization (JWT) ✅ Quản lý người dùng (CRUD API) ✅ Giao diện thân thiện, hiện đại với TailwindCSS & Ant Design ✅ Kết nối Frontend & Backend qua Axios ✅ CI/CD với Jenkins & Docker
- Các công ty đang muốn khuyến khích nhân viên phát triển kĩ năng cá nhân, quản lý đơn đăng ký khóa học online và minh chứng hoàn thành khóa học (hóa đơn, chứng chỉ) để hoàn tiền cho các nhân viên đã hoàn thành khóa học. Đồng thời đây cũng là 1 nền tảng để các nhân viên chia sẻ chất lượng khóa học, recommend những khóa học hay để mọi người cùng phát triển.
- Đăng nhập/đăng ký
- Đăng ký khóa học online ở trên nền tảng thứ 3 hoặc ngay trên nền tảng Course4U. Đối với các khóa học thuộc các nền tảng nối tiếng Udemy, Coursera, Linkedln,.. thì bạn có thể tạo đơn đăng ký, hoặc khóa học đơn giản bằng đường link dẫn đến, thông tin sẽ tự được fill.
- Quản lý Course (các khóa học), Registration (Đơn đăng ký khóa học), Chứng chỉ, hóa đơn thanh toán khóa học nhằm mục đích nhận hoàn tiền.
- Theo dõi tiến độ hoàn thành khóa học.
- Sau khi hoàn thành khóa học, có thể nộp minh chứng để yêu cầu hoàn tiền cho khóa học.
graph TB
User((User))
Admin((Admin))
Accountant((Accountant))
subgraph "Course4U System"
subgraph "Frontend Container"
ClientApp["Client Application<br>React + TypeScript"]
subgraph "Frontend Components"
AuthComponents["Auth Components<br>React"]
CourseComponents["Course Components<br>React"]
UserComponents["User Components<br>React"]
SharedComponents["Shared Components<br>React"]
ReduxStore["State Management<br>Redux + Redux Saga"]
RouterComponent["Router<br>React Router"]
ModalComponents["Modal System<br>React"]
end
end
subgraph "Backend Container"
SpringApp["Spring Boot Application<br>Java"]
subgraph "Core Components"
SecurityModule["Security Module<br>Spring Security + JWT"]
Controllers["REST Controllers<br>Spring MVC"]
Services["Business Services<br>Spring Services"]
Repositories["Data Access Layer<br>Spring Data JPA"]
Mappers["DTO Mappers<br>ModelMapper"]
Schedulers["Scheduler<br>Spring Scheduler"]
end
end
subgraph "Storage"
FileStorage["File Storage<br>Local FileSystem"]
Database[("Database<br>H2/PostgreSQL")]
end
end
%% User Interactions
User -->|"Accesses"| ClientApp
Admin -->|"Manages"| ClientApp
Accountant -->|"Processes"| ClientApp
%% Frontend Component Relations
ClientApp -->|"Uses"| AuthComponents
ClientApp -->|"Uses"| CourseComponents
ClientApp -->|"Uses"| UserComponents
ClientApp -->|"Uses"| SharedComponents
ClientApp -->|"Uses"| ReduxStore
ClientApp -->|"Uses"| RouterComponent
ClientApp -->|"Uses"| ModalComponents
%% Frontend to Backend Communication
ClientApp -->|"API Requests"| SpringApp
%% Backend Component Relations
SpringApp -->|"Uses"| SecurityModule
SpringApp -->|"Routes to"| Controllers
Controllers -->|"Delegates to"| Services
Services -->|"Uses"| Repositories
Services -->|"Uses"| Mappers
SpringApp -->|"Schedules"| Schedulers
%% Data Storage Relations
Repositories -->|"Persists data"| Database
Services -->|"Manages"| FileStorage
%% Component Interactions
SecurityModule -->|"Authenticates"| Controllers
ReduxStore -->|"State Updates"| CourseComponents
ReduxStore -->|"State Updates"| UserComponents
RouterComponent -->|"Routes to"| CourseComponents
RouterComponent -->|"Routes to"| UserComponents
RouterComponent -->|"Routes to"| AuthComponents