Learning App là nền tảng học từ vựng và luyện tập tiếng Anh được xây dựng theo hướng học nghiêm túc, tối ưu cho ghi nhớ dài hạn thay vì chỉ học giải trí. Ứng dụng cho phép người dùng đăng ký, đăng nhập, quản lý hồ sơ cá nhân, thêm từ vựng vào danh sách học riêng, luyện tập bằng nhiều dạng câu hỏi và theo dõi tiến độ học tập theo thời gian thực.
Điểm nổi bật của hệ thống nằm ở cơ chế spaced repetition kết hợp active recall, giúp người học ôn tập đúng thời điểm và cải thiện khả năng ghi nhớ hiệu quả hơn. Ứng dụng hỗ trợ nhiều chế độ học như học từ mới, ôn tập theo chủ đề, luyện tập theo bộ từ vựng tự chọn, flashcard và bài test hằng ngày. Mỗi phiên học đều được chấm điểm, lưu lịch sử, cập nhật tiến độ, thống kê số câu đúng/sai và điều chỉnh lịch ôn tiếp theo dựa trên năng lực thực tế của người học.
Hệ thống có ngân hàng từ vựng theo chủ đề, hỗ trợ nghĩa tiếng Anh, nghĩa tiếng Việt, ví dụ minh họa, phiên âm và audio phát âm. Người dùng có thể đóng góp từ vựng mới vào hệ thống để chờ quản trị viên duyệt. Ngoài ra còn có chức năng gửi feedback kèm hình ảnh, giúp thu thập lỗi, góp ý nội dung và đề xuất tính năng ngay bên trong ứng dụng.
Phần quản trị được xây dựng đầy đủ với dashboard riêng cho admin, cho phép quản lý người dùng, chủ đề, từ vựng, góp ý, nhật ký hoạt động và hàng chờ duyệt nội dung. Admin có thể import/export dữ liệu bằng CSV, phê duyệt hoặc từ chối từ vựng do người dùng đóng góp, cập nhật audio, quản lý trạng thái học liệu và theo dõi hoạt động toàn hệ thống.
Về công nghệ, dự án sử dụng Next.js + React + TypeScript + Tailwind CSS cho frontend và Spring Boot + Spring Security + JPA + MySQL + JWT cho backend. Hệ thống có tài liệu API, phân quyền user/admin, hỗ trợ upload file, tích hợp lưu trữ object storage và có thể triển khai bằng Docker.
Đây là bộ source code phù hợp để phát triển thành:
- Website học từ vựng tiếng Anh
- Nền tảng e-learning mini
- Hệ thống luyện thi và ôn tập theo chủ đề
- Dự án thương mại hóa cho trung tâm đào tạo hoặc startup giáo dục
XEM THÊM ==> Hướng dẫn cài đặt chi tiết
HƯỚNG DẪN CÀI ĐẶT
Dự án gồm 3 phần chính:
- Frontend: Next.js
- Backend: Spring Boot
- Dịch vụ phụ trợ: MySQL, MinIO, TTS Server
Yêu cầu môi trường
- Docker
- Docker Compose
- Git
- Nếu chạy thủ công:
- Node.js 20+
- Java 17+
- MySQL 8+
Cách 1: Cài đặt nhanh bằng Docker
1. Giải nén source code hoặc clone dự án về máy.
2. Tại thư mục gốc project, tạo file .env từ file mẫu .env.example.
3. Cập nhật các thông tin quan trọng trong .env:
- MYSQL_ROOT_PASSWORD
- JWT_SECRET
- ADMIN_EMAIL
- ADMIN_PASSWORD
- MINIO_ACCESS_KEY
- MINIO_SECRET_KEY
4. Chạy project:
docker compose up -d --build
5. Sau khi chạy thành công:
- Frontend: http://localhost:3000
- Backend API: http://localhost:8080
- Swagger Docs: http://localhost:8080/docs
- MinIO Console: http://localhost:9001
Các dịch vụ được khởi động cùng hệ thống
- MySQL
- Spring Boot API
- Next.js frontend
- TTS server tạo audio phát âm
- MinIO lưu file upload và audio
Tài khoản admin mặc định
Tài khoản admin được tạo theo biến môi trường:
- ADMIN_EMAIL
- ADMIN_PASSWORD
Cách 2: Chạy thủ công
1. Chạy MySQL 8 và tạo database:
CREATE DATABASE learning_app;
2. Cấu hình backend bằng biến môi trường:
- DB_URL
- DB_USERNAME
- DB_PASSWORD
- JWT_SECRET
- ADMIN_EMAIL
- ADMIN_PASSWORD
- MINIO_URL
- MINIO_ACCESS_KEY
- MINIO_SECRET_KEY
3. Chạy backend:
cd learning-app
./mvnw spring-boot:run
4. Cấu hình frontend:
- tạo file .env.development trong learning-app-fe
- điền:
NEXT_PUBLIC_API_BASE_URL=http://localhost:8080
5. Chạy frontend:
cd learning-app-fe
npm install
npm run dev
Lưu ý
- Backend dùng Flyway nên database sẽ tự chạy migration khi khởi động.
- Frontend mặc định dùng /api khi deploy Docker để tránh lỗi CORS.
- TTS server dùng để sinh audio phát âm cho từ vựng tiếng Anh.
- MinIO dùng để lưu avatar, ảnh feedback và file audio.
Nguồn: Topcode.vn