# 作业管理系统服务端
[![GitHub stars](https://img.shields.io/github/stars/itning/shw_server.svg?style=social&label=Stars)](https://github.com/itning/shw_server/stargazers)
[![GitHub forks](https://img.shields.io/github/forks/itning/shw_server.svg?style=social&label=Fork)](https://github.com/itning/shw_server/network/members)
[![GitHub watchers](https://img.shields.io/github/watchers/itning/shw_server.svg?style=social&label=Watch)](https://github.com/itning/shw_server/watchers)
[![GitHub followers](https://img.shields.io/github/followers/itning.svg?style=social&label=Follow)](https://github.com/itning?tab=followers)
[![GitHub issues](https://img.shields.io/github/issues/itning/shw_server.svg)](https://github.com/itning/shw_server/issues)
[![GitHub license](https://img.shields.io/github/license/itning/shw_server.svg)](https://github.com/itning/shw_server/blob/master/LICENSE)
[![GitHub last commit](https://img.shields.io/github/last-commit/itning/shw_server.svg)](https://github.com/itning/shw_server/commits)
[![GitHub release](https://img.shields.io/github/release/itning/shw_server.svg)](https://github.com/itning/shw_server/releases)
[![GitHub repo size in bytes](https://img.shields.io/github/repo-size/itning/shw_server.svg)](https://github.com/itning/shw_server)
[![HitCount](http://hits.dwyl.com/itning/shw_server.svg)](http://hits.dwyl.com/itning/shw_server)
[![language](https://img.shields.io/badge/language-JAVA-green.svg)](https://github.com/itning/shw_server)
**前后端分离项目,前端:[shw_client](https://github.com/itning/shw_client)**
# 架构
这是一个前后端分离项目,这里是后端工程。
B/S架构,通信采用RESTful API,使用JSON数据格式,身份验证使用JWT技术。
部署推荐使用Docker进行部署。
Redis缓存支持,使用``Spring Boot Admin``监控APP状态。
集群化部署,无痛水平扩展
前端:Vue.Js
后端:Spring Boot
数据库:MySql
缓存:Redis
# 编译
1. GIT克隆项目
``git clone https://github.com/itning/shw_server.git``
2. 更改分支(必须更改分支,否则默认是V2分支,V2分支是Spring Cloud版本。master分支是Spring Boot版本)
``git checkout master``
3. 安装本地依赖
请执行根目录下``install-aspose-dependency.bat``批处理文件
4. Enjoy Project
# 获取发布版本
## Releases
[点我进入Releases页面](https://github.com/YunShuSoftwareStudio/shw_server/releases)
## Docker
1. 拉取镜像
`sudo docker pull registry.cn-beijing.aliyuncs.com/itning/shw_server`
2. 运行镜像
```shell
sudo docker run -p 80:8080 -e MYSQL_URL=192.168.66.1:3306 -e MYSQL_USERNAME=root -e MYSQL_PASSWORD=root -e REDIS_HOST=192.168.66.1 -e REDIS_PORT=6379 -e ADMIN_SERVER_URL=http://lcoalhost:8888 -e ADMIN_SERVER_USERNAME=admin -e ADMIN_SERVER_PASSWORD=admin -it registry.cn-beijing.aliyuncs.com/itning/shw_server:latest
```
| 参数 | 含义 |
| --------------------- | ---------------------------------- |
| MYSQL_URL | mysql地址 |
| MYSQL_USERNAME | mysql用户名 |
| MYSQL_PASSWORD | mysql密码 |
| REDIS_HOST | redis地址 |
| REDIS_PORT | redis端口 |
| ADMIN_SERVER_URL | spring boot admin server服务端地址 |
| ADMIN_SERVER_USERNAME | spring boot admin server用户名 |
| ADMIN_SERVER_PASSWORD | spring boot admin server密码 |
# API文档
[HTML版本](https://itning.github.io/shw/)
[Markdown版本](https://github.com/YunShuSoftwareStudio/shw_server/blob/master/api.md)
# Docker 部署结果
![r1](https://raw.githubusercontent.com/itning/shw_server/master/pic/r1.png)
![r1](https://raw.githubusercontent.com/itning/shw_server/master/pic/r2.png)
# 表字段实体属性
## 群组属性(group)
| 属性名 | 类型 | 说明 | 约束 |
| :------------: | :----: | :--------------------: | :--------: |
| id | string | 唯一标识群组 | 非空,主键 |
| name | string | 群组名称 | 非空 |
| teacher_name | string | 教师名 | 非空 |
| teacher_number | string | 教师序号 | 非空,索引 |
| code | string | 邀请码(暂时和ID相同) | 非空,索引 |
| create_time | data | 创建时间 | 非空 |
| update_time | data | 更新时间 | 非空 |
| | | | |
| | | | |
## 学生群组属性(student_group)
| 属性名 | 类型 | 说明 | 约束 |
| :------------: | :----: | :------: | :--------: |
| student_number | string | 学生ID | 非空,主键 |
| group_id | string | 群组ID | 非空,主键 |
| create_time | date | 创建时间 | 非空 |
| update_time | date | 更新时间 | 非空 |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
## 作业属性(work)
| 属性名 | 类型 | 说明 | 约束 |
| :--------------: | :----: | :------------------: | :------------: |
| id | string | 作业ID,标识唯一作业 | 非空,主键 |
| group_id | string | 群组ID,该作业所属群 | 非空,索引 |
| enabled | bit | 作业启用状态 | 非空,默认启用 |
| name | string | 作业名 | 非空 |
| create_time | date | 创建时间 | 非空 |
| update_time | date | 更新时间 | 非空 |
| file_name_format | string | 文件名规范 | 非空 |
| | | | |
| | | | |
## 上传属性(upload)
| 属性名 | 类型 | 说明 | 约束 |
| :------------: | :----: | :------: | :--------: |
| student_number | string | 学生ID | 非空,主键 |
| work_id | string | 作业ID | 非空,主键 |
| mime | string | 文件类型 | 非空 |
| size | double | 文件大小 | 非空 |
| create_time | date | 上传时间 | 非空 |
| update_time | date | 修改时间 | 非空 |
| | | | |
| | | | |
| | | | |
## 通知属性(notice)
| 属性名 | 类型 | 说明 | 约束 |
| :----------------: | :----: | :--------------: | :--------: |
| id | string | 通知ID,唯一标识 | 非空,主键 |
| invite_people_name | string | 邀请人 | 非空 |
| invite_group_id | string | 邀请加入的群组ID | 非空 |
| student_number | string | 被邀请人学号 | 非空,索引 |
| create_time | date | 创建时间 | 非空 |
| update_time | date | 修改时间 | 非空 |
| | | | |
| | | | |
| | | | |
# 接口
> 统一响应格式:
>
> Content-Type: application/json
>
> 状态吗:
>
> 400 请求参数错误
>
> 401 需要登陆
>
> 403 权限不足
>
> 404 资源不存在
>
> 405 不支持该请求方法
>
> 500 服务器出错
>
> 503 服务不可用
>
>Json格式
使用SpringCloud开发的学生作业管理系统服务端,前后端分离项目,微服务架构
需积分: 0 170 浏览量
更新于2023-08-03
3
收藏 42.26MB ZIP 举报
中的“使用SpringCloud开发的学生作业管理系统服务端”表明该项目是一个基于SpringCloud框架构建的后端服务,专门用于管理学生作业。SpringCloud是Java生态中的一个微服务开发工具集,它提供了服务发现、配置中心、负载均衡、熔断器等微服务基础设施,使得开发者能够快速构建分布式系统。
中的“前后端分离项目,微服务架构”进一步说明了该系统的架构模式。前后端分离意味着前端和后端通过API进行通信,前端负责用户交互和展示,而后端专注于业务逻辑和服务提供。微服务架构则意味着系统被拆分成多个小型、独立的服务,每个服务都有自己的数据库和业务边界,可以独立部署和扩展,提高了系统的灵活性和可维护性。
中提到了"毕设",这可能表示这是一个毕业设计项目,展示了开发者在学习过程中对Web系统开发的理解和实践。"web系统"标签确认了这是一个Web应用程序。"mongodb"是NoSQL数据库的一种,这里用于存储系统数据,提供了非关系型、高性能的数据存储方案。"node.js"是一种JavaScript运行环境,常用于构建服务器端应用,可能在这个项目中用作前端开发的工具或构建脚本。
从【压缩包子文件的文件名称列表】"shw_server-master"来看,这可能是一个Git仓库的克隆,"master"分支代表了项目的主线代码。通常,这个目录下会包含项目源码、配置文件、README文档等资源。
在SpringCloud项目中,我们可能会看到以下核心组件:
1. Eureka:服务注册与发现,确保服务之间的调用能够找到对应的实例。
2. Ribbon:客户端负载均衡器,用于在请求服务时选择合适的服务器。
3. Hystrix:断路器,防止服务雪崩,提高系统的容错性。
4. Zuul或Spring Cloud Gateway:边缘服务,提供路由转发和过滤器功能,作为微服务的统一入口。
5. Config:配置中心,允许动态更新服务的配置。
6. Spring Boot:用于快速构建微服务的基础框架。
7. MongoDB:作为数据库,存储学生作业、用户信息等数据。
8. Docker和Kubernetes:可能用于容器化和编排服务,便于部署和管理。
此外,项目可能还涉及到:
- RESTful API设计,遵循HTTP协议,实现前后端的通信。
- JWT(JSON Web Tokens)或OAuth2进行身份验证和授权。
- Swagger或类似的工具来生成和文档化API接口。
- Spring Security进行权限控制和访问控制。
- 测试框架如JUnit和Mockito,用于单元测试和集成测试。
- CI/CD工具如Jenkins或GitLab CI,实现自动化构建和部署。
这个项目涵盖了微服务架构、前后端分离、NoSQL数据库和Node.js等多个技术领域,对于学习和实践现代Web系统开发有着很高的参考价值。
白话机器学习
- 粉丝: 1w+
- 资源: 7671
最新资源
- lanchaoHunanHoutaiQiantai
- (177377030)Python 爬虫.zip
- (177537818)python爬虫基础知识及爬虫实例.zip
- 自动驾驶横纵向耦合控制-复现Apollo横纵向控制 基于动力学误差模型,使用mpc算法,一个控制器同时控制横向和纵向,实现横纵向耦合控制 matlab与simulink联合仿真,纵向控制已经做好油门刹
- (178199432)C++实现STL容器之List
- (178112810)基于ssm+vue餐厅点餐系统.zip
- 两相步进电机FOC矢量控制Simulink仿真模型 1.采用针对两相步进电机的SVPWM控制算法,实现FOC矢量控制,DQ轴解耦控制~ 2.转速电流双闭环控制,电流环采用PI控制,转速环分别采用PI和
- VMware虚拟机USB驱动
- Halcon手眼标定简介(1)
- (175128050)c&c++课程设计-图书管理系统