mini-dlpu-v3/README.md
2022-01-12 17:14:19 +08:00

163 lines
6.5 KiB
Markdown
Raw Permalink Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

# 第三代掌上教务处小程序
掌上教务处作为工业大学的社区开源项目自从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数据结构玩的6TS五分钟学会)
- 类型约束
- 接口
- 泛型
- 类型运算
- Sass (拓展了CSS语法实际上没有任何新知识)
- 语法
> 小程序和主流前端技术差别在哪?对我以后职业发展帮助大嘛?
如果你已经掌握了前端主流技术,例如 VueReact那么上手小程序只是 __1__ 天的事情
换句话来说小程序开发用到技术和主流前端技术,有大概 __90%__ 是重叠的。
小程序学了可以成为加分项,参与贡献拥有 __20000__ 人的项目,丰富项目经历,稳赚不亏。
掌上教务处前端项目采用了很多创新的架构设计,虽然不一定优秀,但是一定是值得学习的。
## 贡献者
@MrKBear (熊鲜森)