# xiaofei-cloud-classroom-api **Repository Path**: sailorj-java/xiaofei-cloud-classroom-api ## Basic Information - **Project Name**: xiaofei-cloud-classroom-api - **Description**: 小飞云课后端api - **Primary Language**: Java - **License**: Not specified - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 2 - **Created**: 2021-07-29 - **Last Updated**: 2021-07-29 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # xiaofei-cloud-classroom-api #### 介绍 小飞云课后端api # 一、需求分析 - 基础功能 - 通过email注册登录,注册之前验证email,退出登录,修改个人资料,修改密码 - 群聊和私聊(可发送语音,图片,表情,文字) - 创建和加入班级(课程) - 发布习题(判断题,单选题,多选题,填空题,简答题) - 请销假 - 签到(一键签到,扫码签到,手势密码签到) - 课件(PPT,Word,Excel,PDF)发布,在线预览,收藏,下载 - 班级(课程) - 共同功能 - 用户可以创建一个班级(课程),创建班级(课程)之后生成对应的邀请码和二维码,其他用户可通过输入邀请码或扫码加入课程 - 一个教师可创建一个班级,一个学生只可加入一个班级 - 一个用户可创建和加入多个课程 - 创建该班级或课程的用户就是该班级或课程的管理员,管理员可把自己的权限转让给该班级(课程)里的其他人 - 一个班级(课程)相当于一个群,班级(课程)内的成员可进行讨论 - 课件(PPT,Word,Excel,PDF)在线预览,收藏,下载 - 私聊对应班级(课程)的用户 - 学生特有 - 参与签到,查看签到记录 - 填写请假条 - 作答教师发布的习题,查看解析 - 教师特有 - 审核请假条 - 发布签到任务(一键签到,扫码签到,手势密码签到) - 发布课件(PPT,Word,Excel,PDF) - 移除班级成员和解散班级 - 分组(系统随机分配,教师自己指定) # 二、所采用的技术栈 - 后端: - Springboot,Springsecurity, Mybatis-plus, Jwt ,FastJson, Hutool ,aspose(PPT,Word,Excel装换为PDF),阿里云对象存储(oss), Netty实时通讯(聊天), RabbitMq(异步), MySQL(数据库), Redis(缓存数据库),邮件发送,nginx(反向代理) - 前端: - [Uniapp](https://uniapp.dcloud.io/)(编写一套代码,可发布到iOS、Android、Web、以及各种小程序),Vue,Vuex,Uview(UI框架),Websocket,PDFjs(预览PDF文件) - 开发工具: - IntelliJ IDEA 2020.2.4 x64,HBuilder X,微信开发者工具,夜神模拟器,谷歌浏览器 # 三、docker部署springboot项目 我这里需要在手机上演示,所以去阿里云购买了一个云服务器和域名, - 把项目打成jar包 - 编写Dockerfile - 把jar包和Dockerfile上传到云服务器,放在同一个目录 - 通过docker构建镜像 - 运行 Dockerfile ~~~dockerfile FROM java:8 COPY *.jar /app.jar EXPOSE 8100 EXPOSE 8090 CMD ["java","-jar","/app.jar"] ~~~ 构建命令 ~~~shell docker build -t xiaofei-classroom:1.0 . ~~~ 运行命令 ~~~shell docker run -itd -p 8100:8100 -p 8090:8090 --name xiaofei xiaofei-classroom ~~~ # 四、nginx反向代理 由于小程序需要https/wss,这里采用nginx,去阿里云下载免费的nginx ssl证书(阿里云有教程) 通过docker安装nginx 安装运行命令 ~~~shell docker run -itd -p 80:80 -p 443:443 nginx ~~~ 在容器/etc/nginx创建一个ssl目录,把压缩包的pem和key文件上传到ssl目录 修改项目nginx目录下nginx.conf的内网IP地址和证书名字 上传到云服务器先备份容器的nginx.conf再拷贝 拷贝命令 ~~~shell docker cp /home/nginx.conf 47b8775a267b:/etc/nginx docker cp /home/xx.pem 47b8775a267b:/etc/nginx/ssl docker cp /home/xx.key 47b8775a267b:/etc/nginx/ssl # 重启容器 docker restart 47b8775a267b ~~~ #### 软件架构 软件架构说明 #### 安装教程 1. xxxx 2. xxxx 3. xxxx #### 使用说明 1. xxxx 2. xxxx 3. xxxx #### 参与贡献 1. Fork 本仓库 2. 新建 Feat_xxx 分支 3. 提交代码 4. 新建 Pull Request #### 特技 1. 使用 Readme\_XXX.md 来支持不同的语言,例如 Readme\_en.md, Readme\_zh.md 2. Gitee 官方博客 [blog.gitee.com](https://blog.gitee.com) 3. 你可以 [https://gitee.com/explore](https://gitee.com/explore) 这个地址来了解 Gitee 上的优秀开源项目 4. [GVP](https://gitee.com/gvp) 全称是 Gitee 最有价值开源项目,是综合评定出的优秀开源项目 5. Gitee 官方提供的使用手册 [https://gitee.com/help](https://gitee.com/help) 6. Gitee 封面人物是一档用来展示 Gitee 会员风采的栏目 [https://gitee.com/gitee-stars/](https://gitee.com/gitee-stars/)