前后端目录重命名: - reading-platform-java/ → lesingle-edu-reading-platform-backend/ - reading-platform-frontend/ → lesingle-edu-reading-platform-frontend/ 更新相关文件: - 所有 shell 脚本中的目录引用 - pom.xml 和 application.yml 中的项目名称 - package.json 中的项目名称 - .claude/CLAUDE.md 中的路径引用 - README 文档中的路径引用
171 lines
5.2 KiB
Markdown
171 lines
5.2 KiB
Markdown
# Reading Platform Java Backend
|
|
|
|
Spring Boot + MyBatis-Plus backend for the Reading Platform.
|
|
|
|
## Tech Stack
|
|
|
|
- **Java**: 17
|
|
- **Spring Boot**: 3.2.3
|
|
- **MyBatis-Plus**: 3.5.5
|
|
- **MySQL**: 8.0+
|
|
- **Spring Security + JWT**: Authentication
|
|
- **Knife4j**: API Documentation (Swagger)
|
|
- **Lombok**: Boilerplate reduction
|
|
|
|
## Project Structure
|
|
|
|
```
|
|
lesingle-edu-reading-platform-backend/
|
|
├── pom.xml # Maven dependencies
|
|
├── src/main/java/com/reading/platform/
|
|
│ ├── ReadingPlatformApplication.java
|
|
│ ├── common/ # Common components
|
|
│ │ ├── config/ # Configuration classes
|
|
│ │ ├── exception/ # Exception handling
|
|
│ │ ├── response/ # Unified response
|
|
│ │ ├── security/ # JWT security
|
|
│ │ ├── annotation/ # Custom annotations
|
|
│ │ ├── enums/ # Enum classes
|
|
│ │ ├── aspect/ # AOP aspects
|
|
│ │ └── util/ # Utilities
|
|
│ ├── entity/ # Entity classes (27)
|
|
│ ├── mapper/ # MyBatis-Plus mappers (27)
|
|
│ ├── service/ # Service interfaces
|
|
│ ├── service/impl/ # Service implementations
|
|
│ ├── controller/ # REST controllers
|
|
│ │ ├── admin/ # Super admin endpoints
|
|
│ │ ├── school/ # School admin endpoints
|
|
│ │ ├── teacher/ # Teacher endpoints
|
|
│ │ └── parent/ # Parent endpoints
|
|
│ └── dto/ # Data Transfer Objects
|
|
│ ├── request/
|
|
│ └── response/
|
|
└── src/main/resources/
|
|
├── application.yml # Main configuration
|
|
├── application-dev.yml # Dev environment config
|
|
├── mapper/ # MyBatis XML files
|
|
└── db/migration/ # SQL scripts
|
|
```
|
|
|
|
## Quick Start
|
|
|
|
### 1. Prerequisites
|
|
|
|
- JDK 17+
|
|
- Maven 3.6+
|
|
- MySQL 8.0+
|
|
|
|
### 2. Database Setup
|
|
|
|
```bash
|
|
# Create database and import schema
|
|
mysql -u root -p < src/main/resources/db/migration/V1__init_schema.sql
|
|
```
|
|
|
|
### 3. Configuration
|
|
|
|
Edit `src/main/resources/application-dev.yml`:
|
|
|
|
```yaml
|
|
spring:
|
|
datasource:
|
|
url: jdbc:mysql://localhost:3306/reading_platform
|
|
username: your_username
|
|
password: your_password
|
|
```
|
|
|
|
### 4. Build and Run
|
|
|
|
```bash
|
|
# Build
|
|
mvn clean package -DskipTests
|
|
|
|
# Run
|
|
java -jar target/reading-platform-1.0.0.jar
|
|
|
|
# Or run with Maven
|
|
mvn spring-boot:run
|
|
```
|
|
|
|
### 5. API Documentation
|
|
|
|
After starting the application, access the API documentation at:
|
|
|
|
- Swagger UI: http://localhost:8080/swagger-ui.html
|
|
- Knife4j UI: http://localhost:8080/doc.html
|
|
|
|
## API Endpoints
|
|
|
|
### Authentication
|
|
- `POST /api/auth/login` - User login
|
|
- `GET /api/auth/me` - Get current user info
|
|
- `POST /api/auth/change-password` - Change password
|
|
|
|
### Admin Endpoints
|
|
- `/api/admin/tenants` - Tenant management
|
|
- `/api/admin/courses` - System course management
|
|
|
|
### School Endpoints
|
|
- `/api/school/teachers` - Teacher management
|
|
- `/api/school/students` - Student management
|
|
- `/api/school/classes` - Class management
|
|
- `/api/school/parents` - Parent management
|
|
- `/api/school/tasks` - Task management
|
|
- `/api/school/growth-records` - Growth record management
|
|
|
|
### Teacher Endpoints
|
|
- `/api/teacher/courses` - View courses
|
|
- `/api/teacher/lessons` - Lesson management
|
|
- `/api/teacher/tasks` - Task management
|
|
- `/api/teacher/growth-records` - Growth record management
|
|
- `/api/teacher/notifications` - Notifications
|
|
|
|
### Parent Endpoints
|
|
- `/api/parent/children` - Child information
|
|
- `/api/parent/tasks` - View and complete tasks
|
|
- `/api/parent/growth-records` - Growth record management
|
|
- `/api/parent/notifications` - Notifications
|
|
|
|
## Test Accounts
|
|
|
|
| Role | Username | Password |
|
|
|------|----------|----------|
|
|
| Admin | admin | 123456 |
|
|
|
|
School, teacher, and parent accounts need to be created through the admin interface.
|
|
|
|
## Database Tables (27)
|
|
|
|
| Module | Tables |
|
|
|--------|--------|
|
|
| Tenant | tenants, tenant_courses |
|
|
| Users | admin_users, teachers, students, parents, parent_students |
|
|
| Class | classes, class_teachers, student_class_history |
|
|
| Course | courses, course_versions, course_resources, course_scripts, course_script_pages, course_activities |
|
|
| Lesson | lessons, lesson_feedbacks, student_records |
|
|
| Task | tasks, task_targets, task_completions, task_templates |
|
|
| Growth | growth_records |
|
|
| Resource | resource_library, resource_items |
|
|
| Schedule | schedule_plans, schedule_templates |
|
|
| System | system_settings, notifications, operation_logs, tags |
|
|
|
|
## Development
|
|
|
|
### Adding a New Entity
|
|
|
|
1. Create entity class in `entity/`
|
|
2. Create mapper interface in `mapper/`
|
|
3. Create service interface in `service/`
|
|
4. Create service implementation in `service/impl/`
|
|
5. Create controller in appropriate `controller/` subdirectory
|
|
|
|
### Code Style
|
|
|
|
- Use Lombok annotations to reduce boilerplate
|
|
- Follow Spring Boot conventions
|
|
- Use `@RequireRole` annotation for role-based access control
|
|
|
|
## License
|
|
|
|
MIT License
|