Vue.js Spring Boot MySQL AWS Firebase
Build Status License Version Contributors First Commit Last Commit
Oboe là một nền tảng học tiếng Nhật toàn diện, được thiết kế để giúp người học tiếp cận ngôn ngữ này một cách hiệu quả và cá nhân hóa.
📋 Tài liệu đặc tả yêu cầu phần mềm (Software Requirements Specification)
Tài liệu SRS chi tiết mô tả các yêu cầu chức năng, phi chức năng, use case, giao diện người dùng và kiến trúc hệ thống của dự án Oboe.
- 📊 Phân tích yêu cầu hệ thống
- 🎯 Danh sách Use Case chi tiết
- 🖼️ Thiết kế giao diện người dùng
- 🏗️ Kiến trúc và đặc tả chức năng
- 🧪 Kế hoạch kiểm thử
- 📄 Tài liệu SRS
- ✨ Tính năng nổi bật
- 🚀 Công nghệ sử dụng
- 🏗️ Tổng quan hạ tầng hệ thống
- 📁 Cấu trúc dự án
- 🚀 Hướng dẫn khởi chạy nhanh
- ⚙️ Biến môi trường
- 📚 API Endpoints
- 🚀 Triển khai
- Đội ngũ & Vai trò
- Đóng góp
- Giấy phép
- Liên hệ & Liên kết
- 🎯 Học từ vựng & Kanji - Tra cứu thông minh, flashcard đa chế độ, tạo học liệu cá nhân
- 🤖 AI thông minh - Tự động tạo quiz, đánh giá học tập, dịch thuật chính xác
- 👥 Cộng đồng - Diễn đàn thảo luận, chia sẻ học liệu, chat trực tiếp
- 💳 Thanh toán - Tích hợp PayOS, nâng cấp tài khoản premium
- ⚙️ Quản trị - Dashboard admin, phân quyền người dùng, báo cáo vi phạm
- 🛡️ Bảo mật - AWS WAF, Auto Scaling, CloudFront CDN
- Vue 3 - Framework JavaScript tiến bộ
- Vuex - Quản lý trạng thái
- Vue Router - Định tuyến phía client
- TailwindCSS - Framework CSS utility-first
- SCSS - Bộ tiền xử lý CSS
- Firebase - Xác thực & cơ sở dữ liệu thời gian thực
- Spring Boot - Framework ứng dụng Java
- Spring Security - Xác thực & phân quyền
- Spring Data JPA - Lưu trữ dữ liệu
- MySQL - Cơ sở dữ liệu quan hệ
- JWT - Xác thực dựa trên token
- WebSocket - Giao tiếp thời gian thực
- AWS EC2 - Điện toán đám mây
- AWS S3 - Lưu trữ đối tượng
- AWS CloudFront - Mạng phân phối nội dung
- AWS WAF - Tường lửa ứng dụng web
- GitHub Actions - Pipeline CI/CD
- Docker - Containerization
S3/MySQL
(IAM Role)
.
.
.
Internet → CloudFront → Application → EC2 → CloudWatch
(WAF) Load Balancer AutoScaling ↓
Group SNS Notifications
↑
Security Groups
↑
Lambda
oboe-project/
├── frontend/ # Vue 3 + TailwindCSS
│ ├── src/
│ │ ├── api/ # API modules
│ │ ├── components/ # Vue components
│ │ ├── views/ # Pages (admin, auth, flashcard, forum...)
│ │ ├── store/ # Vuex store
│ │ └── router/ # Vue router
│ └── package.json
│
├── backend/ # Spring Boot
│ └── Oboe/
│ ├── src/main/java/com/example/Oboe/
│ │ ├── Controller/ # REST APIs
│ │ ├── Service/ # Business logic
│ │ ├── Repository/ # Data access
│ │ └── Entity/ # JPA entities
│ └── pom.xml
│
└── .github/workflows/ # CI/CD pipeline
Node.js 18+, Java 21, MySQL 8.0+, Maven 3.6+
cd frontend npm install npm run dev # Phát triển npm run build # Sản xuất
cd backend/Oboe ./mvnw spring-boot:run # Linux/Mac mvnw.cmd spring-boot:run # Windows
CREATE DATABASE oboe_db CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci; CREATE USER 'oboe_user'@'%' IDENTIFIED BY 'your_password'; GRANT ALL PRIVILEGES ON oboe_db.* TO 'oboe_user'@'%';
# Cấu hình Firebase VITE_FIREBASE_API_KEY=your_firebase_api_key VITE_FIREBASE_AUTH_DOMAIN=your_project.firebaseapp.com VITE_FIREBASE_PROJECT_ID=your_project_id VITE_FIREBASE_STORAGE_BUCKET=your_project.appspot.com VITE_FIREBASE_MESSAGING_SENDER_ID=your_sender_id VITE_FIREBASE_APP_ID=your_app_id # Cấu hình API VITE_API_BASE_URL=http://localhost:8080 VITE_WEBSOCKET_URL=ws://localhost:8080/ws # Cấu hình ứng dụng VITE_APP_NAME=Oboe VITE_APP_VERSION=1.0.0
# Cấu hình cơ sở dữ liệu spring.datasource.url=jdbc:mysql://your-host:3306/oboe_db spring.datasource.username=oboe_user spring.datasource.password=your_password spring.datasource.driver-class-name=com.mysql.cj.jdbc.Driver # Cấu hình JPA spring.jpa.hibernate.ddl-auto=update spring.jpa.show-sql=true spring.jpa.properties.hibernate.dialect=org.hibernate.dialect.MySQL8Dialect spring.jpa.properties.hibernate.format_sql=true # Cấu hình AWS S3 aws.access.key.id=your_access_key aws.secret.access.key=your_secret_key aws.region=ap-southeast-1 aws.s3.bucket.name=oboe-file-storage # Cấu hình Firebase firebase.credentials.path=src/main/resources/firebase/firebase-service-account.json FIREBASE_PROJECT_ID=your_project_id FIREBASE_PRIVATE_KEY_ID=your_private_key_id FIREBASE_PRIVATE_KEY=your_private_key FIREBASE_CLIENT_EMAIL=your_client_email FIREBASE_CLIENT_ID=your_client_id # Cấu hình Email spring.mail.host=smtp.gmail.com spring.mail.port=587 spring.mail.username=your_email@gmail.com spring.mail.password=your_app_password spring.mail.properties.mail.smtp.auth=true spring.mail.properties.mail.smtp.starttls.enable=true # Cấu hình AI (Gemini) gemini.api.key=your_gemini_api_key gemini.api.url=https://generativelanguage.googleapis.com # Cấu hình thanh toán # PayOS payos.client.id=your_payos_client_id payos.api.key=your_payos_api_key payos.checksum.key=your_payos_checksum_key # MoMo momo.partner.code=your_partner_code momo.access.key=your_access_key momo.secret.key=your_secret_key momo.endpoint=https://test-payment.momo.vn # Cấu hình JWT jwt.secret=your_jwt_secret_key jwt.expiration=86400000 # Cấu hình ứng dụng app.domain=http://localhost:5173 server.port=8080 spring.application.name=Oboe # Cấu hình WebSocket spring.websocket.allowed-origins=http://localhost:5173,https://oboeru.me # Cấu hình tải file spring.servlet.multipart.max-file-size=10MB spring.servlet.multipart.max-request-size=10MB # Cấu hình Logging logging.level.com.example.Oboe=DEBUG logging.level.org.springframework.security=DEBUG
| Danh mục | Endpoint | Mô tả |
|---|---|---|
| Xác thực | POST /api/auth/login |
Đăng nhập |
POST /api/auth/register |
Đăng ký | |
| Flashcard | GET /api/flashcards |
Lấy danh sách |
POST /api/flashcards |
Tạo mới | |
| AI | POST /api/ai/generate-quiz |
Tạo quiz |
POST /api/ai/translate |
Dịch thuật | |
| Thanh toán | POST /api/payment/payos |
Thanh toán |
| Tìm kiếm | GET /api/search/vocabulary |
Tìm từ vựng |
# Frontend (Firebase) npm run build firebase deploy --only hosting # Backend (Docker) docker build -t oboe-backend . docker run -p 8080:8080 oboe-backend
| Thành viên | GitHub | Vai trò | Trách nhiệm |
|---|---|---|---|
| Tô Trung Tôn | @trungton08072004 | Project Manager | • Project Management & Timeline • Human Resource Management • SRS (Software Requirements Specification) • Use Cases & User Stories • API Documentation • Test Cases & Test Plans • Backend Support |
| Hoàng Công Du | @hoangdu999 | Tech Lead | • Frontend Development (Vue 3, TailwindCSS) • DevOps & Infrastructure (AWS EC2, CloudFront, WAF) • CI/CD Pipeline (GitHub Actions) • Technical Support & Code Review • Architecture Design |
| Nguyễn Hữu Nghĩa | @HuuNghia1301 | Backend Developer | • Core Backend Development (Spring Boot) • REST API Implementation • Business Logic & Services • Security & Authentication (JWT) • Integration with External APIs • Email Services • Payment Integration (MoMo, PayOS) |
| Nguyễn Minh Tuấn | @tuanct413 | Backend Developer | • Backend Development (Spring Boot) • Database Integration • WebSocket Real-time Features |
| Bùi Thành Vương | @wuong161104 | Database & AI Developer | • Database Design & Architecture • Data Modeling & Migration • Sample Data Creation & Seeding • AI Integration (Gemini API) • Machine Learning Features |
- Project Planning: Sprint planning, milestone tracking
- Documentation: Requirements analysis, API specs, test documentation
- Quality Assurance: Test case creation, testing coordination
- Team Coordination: Daily standups, progress tracking
- Backend Contribution: Supporting backend development tasks
- Frontend Development: Vue 3, Vuex, Vue Router, SCSS
- Component Architecture: Reusable components, layout system
- AWS Infrastructure: EC2, S3, CloudFront, WAF, Auto Scaling
- DevOps: CI/CD pipeline
- Technical Leadership: Code review, architecture decisions, team support
- API Development: RESTful services, endpoint implementation
- Authentication: JWT, Firebase integration, security layers
- Business Logic: Core application features, data processing
- Third-party Integration: Payment gateways, external APIs
- Real-time Features: WebSocket implementation, notifications
- Database Design: MySQL schema, relationships, optimization
- Data Management: Sample data creation, migration scripts
- AI Integration: Gemini API, intelligent features
- Data Analysis: Learning analytics, user behavior insights
Dựa trên GitHub insights, team đã có gần 700 commits , hơn 300 workflows , gần 70 pull requests với sự đóng góp tích cực từ tất cả thành viên trong việc phát triển nền tảng học tiếng Nhật Oboe.
- Fork repository
- Tạo feature branch (
git checkout -b feature/TenTinhNang) - Commit changes (
git commit -m 'Thêm tính năng mới') - Push to branch (
git push origin feature/TenTinhNang) - Tạo Pull Request
Dự án này được phát triển cho mục đích học tập và nghiên cứu.
- Website: https://oboeru.me/
Oboe - Nền tảng học tiếng Nhật thông minh với AI