团队刚刚成立之初,就接到了一个小项目,甲方要求是制作一个微信小程序,给出了各个模块的介绍,然后由我们自由发挥,只要最后交付时满意就行。

介于甲方隐私,小程序名字暂时隐藏

校园小程序说多不多,说少也不少,现在很多学校都用上了各种各样的便捷小程序,有些学校还开发了APP,大部分的小程序功能都集成了这些功能:校园外卖 快递代拿 课表浏览 微型教务等。

本系列文章为介绍小程序的架构及设计逻辑,是我们的第一个商业项目,难免会有各种疏漏还请各位大佬见谅。另外考虑到客户隐私问题,就不在此放出部分UI截图或代码。

框架

我们接到这个项目之后,就开始了技术栈的选择,因为是第一次接商业项目,光经验就不谈,技术栈的选择尤为关键,若选择了较为复杂的解决方案,开发周期就会大大加长,到不了甲方的约定交付周期就违约了。在综合考虑之下,因为小程序的体量不大,功能相对来说比较好做,在前端方面不使用原生开发,而是使用uni-app这套跨平台的UI库,好处就是开发模式与Vue写web前端十分相似,开发逻辑上也是mvvm和声明式绑定,因为这个库就是用vue做的前端框架。uni-app完成开发后,可以直接打包到H5, iOS, Android, 微信小程序, 支付宝小程序等一系列内置了小程序的平台。

后端的开发,用spring感觉没有必要,毕竟是一个简单的小项目,想起来python对于简单的webapp开发也是十分便捷,然后考虑到交付周期的问题,最后选择了flask作为后端框架进行开发,优点是开发极其便捷,路由管理也十分方便。还有就是因为有课表模块,课表又是从学校的教务系统上爬取的,自然肯定是选择python语言,兼顾了web api和爬虫。

后端数据库用的是mysql 5.7版本,这里会遇到一个小问题就是在获取到用户名之后,要存储到数据库,因为部分用户的微信昵称是带有emoji的,直接用mysql默认编码存不进会报错,因为mysql是四字节编码,所以在建库和建表时要将排序规则改为utf8mb4_unicode_ci

模块

这一次我们开发的校园小程序,从大体模块上分为以下几个

  • 课表浏览
  • 快递代拿
  • 文件代打印
  • 课表提醒
  • 个人中心

    • 地址管理
    • 个人信息管理

下一篇文章将介绍本项目的前端技术

最后修改:2021 年 03 月 13 日 06 : 14 PM
如果觉得我的文章不错的话,请我喝一杯咖啡吧~