# teaching_media_system **Repository Path**: jsq2021/teaching_media_system ## Basic Information - **Project Name**: teaching_media_system - **Description**: 教学资源管理系统 - **Primary Language**: Java - **License**: Unlicense - **Default Branch**: main - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 1 - **Created**: 2026-04-09 - **Last Updated**: 2026-04-09 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # Teaching Media System This is an educational media management system based on Spring Boot and MyBatis Plus, designed to provide teachers and students with functionalities such as course information, assignments, exams, news, favorites, and more. ## Feature Overview - **User Management**: Supports registration, login, logout, and password reset for teachers and students. - **Course Management**: Teachers can publish course information, including chapters, videos, and courseware; students can view and favorite courses. - **Assignment Management**: Teachers can assign homework, students can submit assignments, and teachers can grade them. - **Exam Management**: Teachers can create exams and add questions; students can take exams and view their scores. - **Grade Management**: Records students' exam and assignment scores and provides grade analysis. - **News and Announcements**: Teachers can publish news, and students can view it. - **Interactive Features**: Includes course comments, assignment discussions, and favorite functionality. - **File Upload**: Supports uploading and downloading of resources such as images and documents. - **Data Statistics**: Provides data visualization features, such as chart display and statistical analysis. ## Technology Stack - **Backend**: Spring Boot + MyBatis Plus - **Database**: MySQL - **Frontend**: HTML + CSS + Bootstrap + Element UI - **Other**: Token authentication, file upload, integration with Baidu Maps API, face recognition interface ## Installation and Deployment ### Backend Deployment 1. **Clone the Project** ```bash git clone https://gitee.com/supervip_on/teaching_media_system.git cd teaching_media_system/back ``` 2. **Import Database** Import the database structure into MySQL using the `config.sql` file. 3. **Configure Database Connection** Modify the database connection information in `application.yml`: ```yaml spring: datasource: url: jdbc:mysql://localhost:3306/your_database?useUnicode=true&characterEncoding=UTF-8&serverTimezone=Asia/Shanghai username: your_username password: your_password ``` 4. **Start the Project** Build and run the Spring Boot project using Maven: ```bash mvn clean install mvn spring-boot:run ``` 5. **Access the API** The backend runs by default on `http://localhost:8080`. You can test the API using a browser or Postman. ### Frontend Deployment The frontend pages are located in the `front` directory and are developed using HTML/CSS/JS. They can be deployed on any static server. 1. **Deployment Options** You can deploy the frontend using Nginx, Apache, or a Node.js static server. 2. **Configure API Address** Modify the API request address in the frontend to point to the backend service: ```javascript const API_URL = "http://localhost:8080"; ``` 3. **Run the Frontend** Deploy the `front` directory to the server and access the homepage. ## API Documentation All APIs return data in JSON format, structured as follows: ```json { "code": 200, "msg": "Operation successful", "data": {} } ``` ### Sample API Endpoints #### User Login ```http POST /users/login Content-Type: application/json { "username": "admin", "password": "123456" } ``` #### Retrieve Course List ```http GET /kechengxinxi/list ``` #### File Upload ```http POST /file/upload Content-Type: multipart/form-data Form Data: - file: - type: image ``` ## Data Model Description - `jiaoshi`: Teacher table, stores teacher account information. - `xuesheng`: Student table, stores student account information. - `kechengxinxi`: Course information table, includes chapters, videos, course materials, etc. - `kechengzuoye`: Course assignment table, includes assignment content, attachments, etc. - `xueshengzuoye`: Student assignment submission table, includes the content submitted by students. - `exampaper`: Exam paper table, includes exam name, time, and other information. - `examquestion`: Exam question table, includes question content, options, and answers. - `examrecord`: Exam record table, logs student responses and scores. - `news`: News and announcement table, used to publish teaching-related information. - `storeup`: Favorites table, logs courses or assignments favorited by users. ## Security and Permissions - Token-based authentication is used for user identification. - Sensitive operations (e.g., delete, modify) require a Token. - Some APIs (e.g., login, registration) do not require a Token. ## Extensibility and Secondary Development This project has a clear structure and is well modularized, making it suitable for secondary development. You can: - Add new feature modules (e.g., online chat, video conferencing) - Extend course types (e.g., live courses, recorded courses) - Integrate third-party services (e.g., payment systems, video transcoding services) ## Contribution Guidelines We welcome code contributions! Please follow these steps: 1. Fork the project 2. Create a new branch 3. Commit your changes 4. Create a Pull Request ## License This project is licensed under the MIT License. For details, see the [LICENSE](LICENSE) file.