# 第三代掌上教务处小程序 掌上教务处作为工业大学的社区开源项目,自从2017年开始已有近5年岁月,在无数同学的贡献之下,为大家打造便捷的校园服务。 __*!!!警告!!!*__ *请在主仓库提交代码,而非镜像仓库!在镜像仓库提交的代码将会在同步时被覆盖!* 主仓库: http://git.mrkbear.com/MrKBear/mini-dlpu-v3 镜像仓库: https://github.com/Mr-k-bear/mini-dlpu-v3 ## 目录 - [社区介绍](#小程序社区) - [项目设计](#第三代小程序) - [贡献规范](#社区贡献规范) - [社区福利](#贡献者分配制度) - [API文档](https://docs.apipost.cn/preview/e737de418d4ef150/419d45d8c97d6a9f) - [入门文档(等待撰写)](#快速入门) - [设计架构(等待撰写)](#第三代掌上教务处小程序) ## 小程序社区 掌上教务处小程序诞生于2017年中旬,此时微信小程序刚刚公测。 2017年,信息学院吴学长因兴趣设计了一款方便课表查询的小工具,在班级范围内使用,就这样掌上教务处诞生了。 随着大家的好评和认可,小程序使用范围慢慢扩大,从班级到专业到学院,同时,吴学长也面临着越来越大的责任和压力。 正当小程序维护困难之际,很多热心的同学,为吴学长贡献代码,创意,UI设计图纸,从此"成绩查询"、"考试日程"、"空教室"这样的小功能如雨后春笋,慢慢诞生...... 此时,作为大家努力的结晶,小程序开放了源代码。 > PS: > 哈哈,你可能会好奇为什么小程序的LOGO看起来很奇怪,其实这个 LOGO 是一个热心的同学在2018年贡献的,为了纪念小程序最初的贡献者们一直沿用至今。 毕竟服务器是有成本的,随着用户的增多,吴学长自掏腰包租赁的服务器,已不再能维持小程序流畅运行,小程序再次陷入困境。 这时有其他热心同学,赞助了自己租赁的服务器... 越来越多,越来越多,不愿透露名字的热心人给服务器取了有趣的名字。 就这样,"笔芯"、"妲己"、"猪蹄"、"MOS"...一台台自租赁的服务器支撑起了大家的日常使用。 > PS: > 如果你愿意考古的话,去看看老版本小程序的切换服务器页面,它们就这样静静的挺拨在那里,为大家默默的服务着... 后来随着开发者们的加入,小程序有了更多的功能、更好的技术、更高的性能。 2019年期间,在吴学长、秦学长、梁学长、潘学姐、隋学长以及其他社区贡献者的共同努力下,第二代小程序诞生了,并更名为"掌上教务处"。 重构后的小程序,犹如脱胎换骨,性能提高很多倍,得到了很多同学的关注,用户数量达到19000人。 2020年随着小程序的稳定,大家也已经习惯了目前的设计,但是小程序仍有部分设计缺陷,导致可拓展性降低,难以拓展新功能,无法和其他商业产品竞争。 老一代社区贡献者们开始逐渐毕业,社区迎来前所未有的空窗期。 社区团队逐渐消退,仅剩梁学长、秦学长在日常爱心维护小程序代码,供大家日常使用。 ## 第三代小程序 突破内容: 1. 小程序在技术上突破更高的性能瓶颈 2. 更漂亮的UI,和更好的交互体验 3. 更好的拓展性,加入更多大家喜欢的功能 新功能: 1. 正在讨论设计,等待你的建议... ## 社区贡献规范 请仔细阅读! ### 项目贡献流程 请先邮件联系 ```mrkbear@mrkbear.com``` 获得 Gitea 平台账号 在仓库中创建自己的分支,分支命名规范为 ```dev-你的昵称```,例如 ```dev-mrkbear``` 克隆此储库,在本地 ```git checkout dev-你的昵称``` 到自己的分支,进行改动。 开发完成后 ```git push``` 到自己的远程分支,并发起合并请求到 ```master``` 分支 发起合并请求时,需要指派给 ```MrKBear``` 进行代码审核,审核通过后,代码将完成合并。 ### 注意事项 1. ```master``` 分支处于保护状态,仅通过合并请求进行修改 2. 代码提交时,请使用清晰明确的 ```message``` 正例: ```Add timetable page``` 反例: ```阿巴阿巴阿巴阿巴``` 3. 请勿将任何个人隐私信息以任何方式,放入代码中 4. 为保证 CI/CD,提交代码前必须保证编译可以通过 5. 一个文件不要超过 1000 行代码,尽量保证代码可读性 ## 贡献者分配制度 作为公益的开源项目: 第三代开发时,将计划加入一个赞助功能,每个月赞助累计到达一定数额,将在下个月去除开屏广告。 第三代上线后,我们将在每个月公示小程序的账目流水,去除服务器成本和其他费用(微信认证,微信支付,域名,...)后,若有剩余数额将按照开发时大家的贡献分配。 小程序的广告位将计划外包给其他组织管理,我们也会得到一定收入,此收入也将按上面的规则处理。 小程序开屏广告收入也同样按上面的规则处理。 以上内容请大家仔细阅读,另外有意向负责项目财务的同学,处理财务账目也算做贡献。 ## 快速入门 下面对大家的小问题进行解答: > 我在参与贡献之前,我需要先会哪些知识?他们好学吗? 下面列出此项目使用的全部技术,从上到下是推荐学习顺序和学习重点,也是难度顺序: - HTML - 标签结构和语法 - CSS - 基础样式 - 选择器 - 盒模型 - 布局和定位 - 行内元素和块级元素 - JS - 数据类型 - 基础运算符 - 流程控制语句 - 函数与闭包 (瓶颈) - 原型和对象 (突破) - Vue (不用深入了解) - 组件化设计思想 - 小程序 API - 了解小程序如何编写页面 - 了解小程序大概的 API - 不用深入了解,随时查阅 - TypeScript (只要JS数据结构玩的6,TS五分钟学会) - 类型约束 - 接口 - 泛型 - 类型运算 - Sass (拓展了CSS语法,实际上没有任何新知识) - 语法 > 小程序和主流前端技术差别在哪?对我以后职业发展帮助大嘛? 如果你已经掌握了前端主流技术,例如 Vue,React,那么上手小程序只是 __1__ 天的事情 换句话来说小程序开发用到技术和主流前端技术,有大概 __90%__ 是重叠的。 小程序学了可以成为加分项,参与贡献拥有 __20000__ 人的项目,丰富项目经历,稳赚不亏。 掌上教务处前端项目采用了很多创新的架构设计,虽然不一定优秀,但是一定是值得学习的。 ## 贡献者 @MrKBear (熊鲜森)