{"id":18313143,"url":"https://github.com/kanlon/cfile","last_synced_at":"2025-04-05T18:32:13.563Z","repository":{"id":107561133,"uuid":"159047007","full_name":"KANLON/cfile","owner":"KANLON","description":"在线收集文件的项目，不用再让每个人发邮箱到收集人那里","archived":false,"fork":false,"pushed_at":"2023-03-31T09:03:49.000Z","size":6387,"stargazers_count":12,"open_issues_count":1,"forks_count":2,"subscribers_count":0,"default_branch":"master","last_synced_at":"2025-03-21T08:51:18.343Z","etag":null,"topics":["bootstrap","java","mybatis","springboot"],"latest_commit_sha":null,"homepage":"http://cfile.kanlon.top","language":"Java","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/KANLON.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":null,"code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2018-11-25T15:38:21.000Z","updated_at":"2025-01-17T15:46:17.000Z","dependencies_parsed_at":null,"dependency_job_id":"11f8eaf8-ee50-482e-993b-846b219a22ad","html_url":"https://github.com/KANLON/cfile","commit_stats":null,"previous_names":[],"tags_count":3,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/KANLON%2Fcfile","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/KANLON%2Fcfile/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/KANLON%2Fcfile/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/KANLON%2Fcfile/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/KANLON","download_url":"https://codeload.github.com/KANLON/cfile/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":247384049,"owners_count":20930402,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["bootstrap","java","mybatis","springboot"],"created_at":"2024-11-05T16:26:39.599Z","updated_at":"2025-04-05T18:32:13.557Z","avatar_url":"https://github.com/KANLON.png","language":"Java","funding_links":[],"categories":[],"sub_categories":[],"readme":"# 在线收集文件项目\n\n项目展示链接：\u003ca href=\"http://cfile.kanlon.top/\"\u003ecfile.kanlon.top\u003c/a\u003e\u003cbr/\u003e\u003cbr/\u003e\n\n\n测试的老师账号和密码为：\n用户名：admin\n密码：123456\n\n\n部署项目之前需要，先初始化数据库，执行 [./sql/建表语句备份.sql](./sql/建表语句备份.sql) 该文件的sql即可\n\n\nrestful接口文档地址：\u003ca href=\"https://documenter.getpostman.com/view/3892535/RzffHouP\"\u003ehttps://documenter.getpostman.com/view/3892535/RzffHouP\u003c/a\u003e\u003cbr/\u003e\u003cbr/\u003e\n\u0026emsp;\u0026emsp;这个项目主要是帮助班级班委，老师等便捷收集班级同学的文件的小项目。 \u003cbr/\u003e\u003cbr/\u003e\n\u0026emsp;\u0026emsp;传统收集文件，图片的方式都是通过微信或邮箱收集，这种收集方法难以统计人数和浪费大量同学们发送邮箱的时间，收集人统计的时间。这个项目采用web项目在线收集和自动统计名单，大大减轻收集人的时间和发送者的时间。\n\u003chr/\u003e\n\n### 项目架构：SpringBoot+Mybatis+MySql+Bootstrap+Jquery+Lombok\n#### 包结构\n\n\u003cimg src=\"https://raw.githubusercontent.com/KANLON/collect-file/master/img/package-structure.png\" width=\"600\" hight=\"400\"\u003e\u003c/img\u003e\n\n\n#### 部署注意\n1. 需要授权/opt/cfile下的目录权限，该目录用于文件上传和日志记录，可以执行下面两个命令来获取授权\n```shell\nsudo mkdir -vp /opt/cfile\nsudo chmod -R 777 /opt/cfile\n```\n2. 0.0.1-SNAPSHOT版本程序中有些地方用了大写的表名，如果部署了0.0.1-SNAPSHOT版本，需要设置mysql服务不区分大小写表名\n\n\n### 项目使用说明\n1. 目前该项目主要分为两类用户，一类是学生（游客）用户，另一类是老师（班委）用户。只有老师（班委）用户有登录功能。\u003cbr/\u003e\u003cbr/\u003e\n\n2. 首页\u003cbr/\u003e\n\u003cimg src=\"https://raw.githubusercontent.com/KANLON/collect-file/master/img/index.png\" width=\"200\" hight=\"400\"\u003e\u003c/img\u003e\n\n`说明:`首页包含了项目项目源代码链接，作者GitHub首页，登录注册和学生上传文件的页面链接。\n\n3. 学生（游客）端主要页面是以下这个页面。\u003cbr/\u003e\n\u003cimg src=\"https://raw.githubusercontent.com/KANLON/collect-file/master/img/student-submit.png\" width=\"200\" hight=\"400\"\u003e\u003c/img\u003e\n\u003cimg src=\"https://raw.githubusercontent.com/KANLON/collect-file/master/img/student-submit.gif\" width=\"600\" hight=\"400\"\u003e\u003c/img\u003e\n\n`说明:`学生通过填写学号，姓名和上传要求的文件，然后点击提交就可以完成该任务的提交，提交完之后，下方会出现该任务所有人学号的提交名单。学生提交之后要留意一下是否出现了自己的名单，只有出现了自己的名单才是提交成功，另外主要注意，下面的名单最多显示100条，要查看完整的名单，请点击最下面的链接。\n\n4. 老师或班委端的页面主要有以下两个功能页面。\u003cbr/\u003e\n\u003cp\u003e任务概况功能页面\u003c/p\u003e\n\u003cimg src=\"https://raw.githubusercontent.com/KANLON/collect-file/master/img/task-overview.gif\" width=\"600\" hight=\"1000\"\u003e\u003c/img\u003e\u003cbr/\u003e\n\n`说明:`在这个页面，老师或班委可以查看到所有任务的信息（任务名，已提交数，预提交数，截止提交时间等），还可以对某个人提交的文件或对整个任务所有提交的文件进行下载。另外通过点击该页面中【提交链接-\u003e点击获取】超链接，可以获取到某个任务学生应该提交的链接，只要复制新页面的链接或在微信端转发新的学生提交页面给学生，则学生可以通过该学生提交页面提交该任务。\n\n\n\u003cp\u003e创建/修改 任务功能页面\u003c/p\u003e\n\u003cimg src=\"https://raw.githubusercontent.com/KANLON/collect-file/master/img/teacher-create-or-modify-task.png\" width=\"1000\" hight=\"600\"\u003e\u003c/img\u003e\u003cbr/\u003e\n\n`说明:`在这个页面，老师或班委可以创建任务或修改任务的信息（任务名，截止提交时间，预提交数，要提交的文件类型，该任务描述（备注））。\u003cbr/\u003e\n\n###### 创建新任务\n直接在该页面填写上面的信息，然后点击【创建/修改】按钮，则会弹出【创建成功】消息窗，表示完成创建。创建的新任务会立即出现在下面的任务信息表格中的第一行。\u003cbr/\u003e\n\n\u003cimg src=\"https://raw.githubusercontent.com/KANLON/collect-file/master/img/create-task.gif\" width=\"1000\" hight=\"600\"\u003e\u003c/img\u003e\u003cbr/\u003e\n\n###### 修改任务信息\n首先在任务信息表格中点击某项任务中的【点击修改】超链接，然后该任务的信息会填写在上面的任务信息输出框中，修改你需要修改的任务信息栏，然后点击【创建/修改】按钮，则会弹出【修改成功】消息窗，表示完成修改。修改的新任务会立即出现在下面的任务信息表格中的第一行。\u003cbr/\u003e\n\n\u003cimg src=\"https://raw.githubusercontent.com/KANLON/collect-file/master/img/modify-task.gif\" width=\"1000\" hight=\"600\"\u003e\u003c/img\u003e\u003cbr/\u003e\n\n\n### 开发进度记录\n\n#### 2022年10月13日\n1. 修改版本为 0.0.3-SNAPSHOT\n2. 修复文件上传可能存在上传到非指定上传的目录问题\n\n#### 2022年10月13日\n1. 修改版本为 0.0.2-SNAPSHOT\n2. 修复注册用户base64类使用错的问题\n3. 加多一层service层，将老师和学生部分接口抽到service层，初步优化，后面有空再将其他接口也抽\n4. 格式化代码，按照阿里规范优化部分代码，包含但不仅仅是：驼峰变量命名，可能空指针处理，线程创建修改为spring的异步方法，魔法值，增加多各个方法参数的注释 等等\n5. 将发送邮件和删除文件修改为异步执行，并修复之前异步执行不生效问题\n6. 将接收文件邮件人和上传文件的路径修改到配置文件中\n7. 创建数据库表时间字段的默认值为都设置为now()\n8. 规范sql中的表名都为小写\n9. 修复下载文件时，可以下载服务器其他文件的问题\n\n#### 2018年12月12日\n1. 添加全局异常类，修改如果前端重复提交两次的bug，还没在服务端也做认证。\n2. 添加项目使用说明。\n\n\n#### 2018年12月9日\n1. 添加部署时的日志路径和学生上传路径，正式部署时要修改，日志路径和Constant类中的上传路径。\n2. 添加学生上传文件时，新建一条线程来发送邮件备份，以防数据丢失。\n3. 修改126服务器发送邮件端口为465，因为默认的端口25，阿里云服务器已经封了。\n\n#### 2018年12月8日\n1. 完成发布任务了和得到任务的链接了，还有添加了任务修改功能，基本功能已经全部完成。\n2. 原来以为3天就能完成的，结果打脸了，还是自己太年轻了，整个项目下来花了10天时间左右，比原来预计的多花了3倍时间。\n3. 自己对于前端方面还是不太了解了，经过这次，应该以后基本的前端页面已经难不到我了，只想说bootstrap真的太强大了。\n4. 以后可能会添加，项目删除，学生上传文件时加上发送邮件，找回密码，上传应交名单统计未交名单，全局异常等功能。\n\n#### 2018年12月7日\n1.完成教师或班委查看任务，下载文件，查看所有提交名单的功能页面，和修改学生提交的bug，过了任务的截止时间，则不能再提交了。\n2.只差发布任务了和得到任务的链接了。\n\n\n#### 2018年12月6日\n1. 完成学生上传文件功能和学生端的一些其他功能，还差老师或班委的控制页面的设计。\n\n\n#### 2018年12月5日\n1. 完成登录页面功能，还差学生上传文件和老师或班委控制页面的设计\n\n\n\n#### 2018年12月4日\n1. 完成学生上传文件完善bug功能，老师或班委获取项目链接，增加了一个登陆页面功能\n2. 还差学生上传文件和老师或班委控制页面的设计。\n\n\n#### 2018年12月3日\n1. 完成所有后端功能的测试工作，修改将时间转化为字符串传到前端。\n2. 添加postman测试链接：[https://documenter.getpostman.com/view/3892535/RzffHouP](https://documenter.getpostman.com/view/3892535/RzffHouP)\n3. 还差页面设计，学生上传文件完善bug功能，老师或班委获取项目链接\n\n#### 2018年11月30日\n1. 完成登陆注册功能，上传文件，获取压缩包文件功能，基本后端功能已经完成。\n2. 还查测试，老师或班委获取项目链接，和前端页面\n\n#### 2018年11月29日\n1. 基本框架已经搭建好，使用spring boot +mybatis +mysql +json数据交互。\n2. 进度缓慢，还是太久没有做项目了，看来以后需要经常练。\n3. 目前后端方面已经实现文件上传功能。\n\n\u003cbr/\u003e\u003cbr/\u003e\n2018年11月25日：在这里立下flag，3天之内做好该系统。\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fkanlon%2Fcfile","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fkanlon%2Fcfile","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fkanlon%2Fcfile/lists"}