Skip to content

作业上传, 作业管理, 文件管理 go + vue + gin + gorm + minio

Notifications You must be signed in to change notification settings

yzcyayaya/task_upload

Repository files navigation


作业管理系统


作业管理系统

需求: (我要的功能)

  • 📦 能上传并存储作业文件
  • 🐤 所有人能查看哪个同学交了,哪个同学没交,这样可以互相提醒
  • 🚴‍♀️ 以学期、课程、和任务名字来管理文件
  • 🎈 操作简单,不需要同学们登录,能随时查看他们上传了什么东西上来。(PS: 不许上传涩图啊喂!!)
  • 有显示作业截止时间,并且要有距离倒计时
  • 🙇‍♀️ 能随时创建任务,随时修改删除任务
  • 😡 还要有展示我伟岸形象的彩蛋

前端页面展示

前端项目地址

同学们使用界面

主页

b2Sk7j.png

b2FsUg.gif

上传文件界面(上传文件名必须包含学号,因为学号是我来判断他们交没交的唯一标识

b2SwuD.png

查看提交人数

b2Sy4I.png

彩蛋

b2pP8x.gif


我使用的界面
  • 主页

    任务管理

    b2pMGt.png

    任务编辑

    b2pGqg.png

    添加任务

    b2prsU.png

  • 课程页面

    课程首页

    b2pIsO.png

    课程添加

    b2pHdH.png

  • 管理文件(minio)

    b2FlDK.png

技术栈以及设计细节

后端 go gin gorm2 minio MySQL8
前端 Vue2 Axios element-UI

任务表

b2AHj1.png

课程表

b2EFDP.png

学生表

b2EVUS.png

文件表 (只做了设计,并没有去实现)

b2ElD0.png

运行

表结构不需要你过问,因为做了数据迁移,只要你数据库名字存在即可,配置文件在config/config.yaml

students.yaml为自己班级的名字和学号,按照模板来填写即可

# 安装包
go mod tidy
# 连接配置好mysql和minio,再修改students.yaml为自己班级同学
go run main.go
# 或者
go build task -o main.go
./task

推荐goland和webstorm打开运行即可

部署

  • docker

    二进制部署(由于我系统为Ubuntu, 该二进制部署方法不能使用)

    ## dockerfile  以下为正文
    ---------------------------------------------------------------------------------
    ## linux 直接采用二进制文件运行
    FROM  ubuntu:latest
    
    ## 设置时区为上海
    RUN ln -sf /usr/share/zoneinfo/Asia/Shanghai /etc/localtime
    RUN echo 'Asia/Shanghai' >/etc/timezone
    ## 设置编码
    ENV LANG C.UTF-8
    ## 添加当前目录二进制文件进容器当中
    ADD ./task ./task
    CMD ["./task"]
    

    再配置好docker,可以远程服务器或者自己本地,--network host不设置会设计容器通讯问题

    b2C1Hg.png

    没有报错则成功了

    b2kPGd.png

    ##此时可以docker ps查看
    dockers ps
    ## 如果没有看见自己设置容器名字则查看日志 xx为容器id或者名字
    dockers ps -a
    docker logs xx
    
  • 编译部署同理

    略..

简单粗暴部署法:

先装好mysql和minio。 有docker环境可以运行dockercompose

docker compose up -d 

注意:老版本可能使用docker-compose

后端

直接go build 将二进制copy进服务器

go build task -o main.go

在服务器直接nohup 日志文件输入out.txt 后面的与符合为后台运行

nohup ./task >out.txt&

前端

将build后的所有文件放入Apache服务区的渲染文件夹里面

默认地址为/var/www/html

About

作业上传, 作业管理, 文件管理 go + vue + gin + gorm + minio

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published