{"id":20916176,"url":"https://github.com/emosheeep/fileupload","last_synced_at":"2025-07-13T12:08:07.912Z","repository":{"id":38101917,"uuid":"226699719","full_name":"emosheeep/fileUpload","owner":"emosheeep","description":"由青年大学习截图收集衍生出的想法，做一个帮助团支书收集大家截图等文件的服务。","archived":false,"fork":false,"pushed_at":"2023-01-05T02:35:47.000Z","size":1961,"stargazers_count":18,"open_issues_count":30,"forks_count":3,"subscribers_count":1,"default_branch":"master","last_synced_at":"2025-04-01T23:07:44.692Z","etag":null,"topics":["es6","javascript","vue"],"latest_commit_sha":null,"homepage":"","language":"Vue","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/emosheeep.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}},"created_at":"2019-12-08T16:48:21.000Z","updated_at":"2024-04-02T17:40:28.000Z","dependencies_parsed_at":"2023-02-03T06:32:06.936Z","dependency_job_id":null,"html_url":"https://github.com/emosheeep/fileUpload","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/emosheeep%2FfileUpload","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/emosheeep%2FfileUpload/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/emosheeep%2FfileUpload/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/emosheeep%2FfileUpload/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/emosheeep","download_url":"https://codeload.github.com/emosheeep/fileUpload/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":253932709,"owners_count":21986441,"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":["es6","javascript","vue"],"created_at":"2024-11-18T16:20:13.266Z","updated_at":"2025-05-13T11:30:28.333Z","avatar_url":"https://github.com/emosheeep.png","language":"Vue","funding_links":[],"categories":[],"sub_categories":[],"readme":"# FileCollection文件收集系统\n\u003e **大家都是程序员，希望大佬不要搞我的后台接口（跪下）。另外如果觉得还行的话，可以给个小星星鼓励下么，感谢**\n## 一、简介\n### 1. 思路\n鉴于班长，团支书等班干部在收集材料（例如**青年大学习截图**）时，经常需要在群里@**全体成员**，\n我决定开发这样一个轻量级的文件收集系统，帮助班干部完成任务，减轻他们的压力。\n最开始只是和大家闲聊谈到，但后来觉得挺有意思的，可以做，于是还真的就一发不可收拾了。\n熬夜写（累崩）QAQ，不过兴趣是最好的老师，在这个过程中学会了很多新知识。\n\n### 2. 前端状况\n#### ①主要工具：\n1. 前端主要使用Vue框架，Vuex状态管理，Vue-Router路由管理，辅以lodash库和ES6新特性进行组件化开发，使用webpack打包项目。\n2. UI方面使用Vue移动端组件库Vant，采用stylus预处理器编译CSS代码，除组件原生样式外暂时未做太多布局，重点开发业务逻辑。\n3. 使用vue-persistedstate进行本地状态持久化存储，编写storage.js进行localstorage加密处理，防止刷新丢失数据并保证数据安全。\n4. 使用axios，qs包封装请求，处理请求字符串（**q**uery**s**tring）\n5. 使用js-cookie包管理cookie，读取登陆状态等\n\n#### ②已完成功能点如下：\n1. 常规的登陆，注册，修改资料等\n2. 登陆状态管理，用户信息存储。\n3. 发布任务功能\n4. 待提交任务清单，也就是每个人需要完成的任务\n\n#### ③待完成大功能点有：\n1. 界面进一步美化，代码模块组织\n\n### 3. 后端状况\n#### ①主要工具：\n1. 主要使用nodejs完成，使用Express框架搭建服务器，使用ES6，CommandJS标准进行模块化开发。\n2. 基于HTTPS协议，但开发阶段暂时使用HTTP协议\n3. 使用mongoose包连接并操作MongoDB数据库，存储用户数据，包括会话，用户基本信息，任务信息\n4. 使用q模块封装数据库操作（DAO），返回promise对象\n5. 使用body-parser解析post请求体\n6. 使用jsonwebtoken颁发令牌，访问项目需要携带令牌，进行身份验证\n7. 文件上传使用**又拍云**对象存储服务与CDN服务\n8. 使用xlsx包读取表格中的大学信息，并生成json文件用于提供大学信息\n9. ~~使用express-session，cookie-parser，配合connect-mongo持久化用户会话信息，借助会话限制个别接口的访问~~\n\n### 二、说明\n第一次正儿八经的开发一个系统，前后端都要负责的情况下，真的要考虑很多问题。在开发的过程中，很多以前不熟悉，\n但又很常用的模块，例如promise，async，await，cookie等基本已经熟练掌握。在逐渐理解设计原则与设计模式的过程中，\n项目经历了一次又一次的重构，但每一次重构，都是一次进步，我也很享受这个过程，毕竟独自开发，遇到问题需要不同的翻书，\n这本身就是一个学习的过程。\n\n另外，后端代码涉及数据库账号密码，还有https的证书等暂时不方便公开，但是后端接口是部署好了的，项目文件夹src下的api.js里面\n**将localhost替换为域名biubiubius.com即可**，不要瞎搞奥，验证码要钱的咧。\n\n### 三、起步\n\n``` bash\n# 安装依赖包\nnpm install\n\n# 将项目部署到 0.0.0.0:5000\nnpm run serve\n```\n\n### 四、相关截图\n![home](images/home.png)\n![download](images/download.png)\n![upload](images/upload.png)\n![school](images/school.jpg)\n![info](images/info.jpg)\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Femosheeep%2Ffileupload","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Femosheeep%2Ffileupload","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Femosheeep%2Ffileupload/lists"}