写了一个很杂的个人小程序 · 分享 · 总结

1,010 阅读4分钟

马上就要过年了,虽然还要坚守岗位到大年28,但这几天基本可以自由活动了。整理了一下最近忙里偷忙写的小程序。 几个月前就申请了一个账号,因为自我驱动不够一直不知道写点什么。后来借鉴了一些优秀的小程序的功能模块把它们仿写并改进。

记账功能的小键盘仿的是鲨鱼记账app。

邀请好友的答题的猜画小歌的邀请机制,每个人进入房间自动以房主的身份开一个新房间,房主离开房间则其他人自动退房。分享出去房间也将失效。

匹配答题的机制仿的是轻芒答题小程序,但答题的分数机制不一样。

滑动组件、房间聊天面板仿的是微信的UI。

压图小工具仿的是SM·MS图床,但很多图床批量上传都是并发提交,导致返回的顺序是随机的。这里改成了有序上传并返回,结果一目了然。建议自己命名,这样就不会拿到外链都不知道是那张图片了。压缩率大约是tinypng的80%,但快一点。所以这里有一个很尴尬的地方,如果对被tinypng压缩过的图片进行二次压缩图片有可能会变大,这一点我也很是无奈呀。压缩功能只支持png和jpg两种格式、也没有放开原图上传,最多为个人保存50张图片,超出的话手动到我的相册删除即可。做这么多限制是因为还没具体测过自己写的后台够不够硬。

测试也是自写自测,通讯方面也只是一台老掉牙的iphone6和iphoneXR互测过,可能有很多不到位的。希望大家帮忙玩一玩,给我一些真实的数据操作操作,有bug或者任何建议、好点子可以猛戳这里。感兴趣的也可以down下来跑一跑。

所有的功能制作为学习使用,不做其他用途。最后,求大佬们给几颗star,哈哈

整体功能分布

  • 一个账本小工具

一个压图小工具

  • 处理前后大小、展示压缩率
  • 批量、顺序上传
  • 自定义图片名称
  • 图床存取【资源有限,个人限额50】
  • 快速提取图片外链
  • 图片预览
  • 图片删除
  • 相册分组、合成、分享

一个仿轻芒在线答题系统

  • 自主答题模式【题库有限,暂不开放】
  • 在线匹配答题
  • 邀请好友答题
  • 答题记录
  • 房间聊天
  • 一个方格小游戏
  • 排行榜

一个信息发布系统

  • 全局私信功能
  • 全局评论功能

整体技术栈

  • 前端:mpvue
  • 后端:express
  • 通讯:socket.io
  • orm: sequelize
  • 登录:jsonwebtoken
  • 代理:nginx
  • 开发调试:nodemon
  • 日志系统:log4js(业务日志) + morgan(访问日志)
  • 后台运行:pm2
  • 自动部署:githooks

环境搭建

  • 前端环境
git clone https://github.com/formattedzzz/leo-build-wx.git
cd leo-build-wx
npm install
npm run dev
# 真机调试需要改为自己的appid 同时修改服务端config.js中appid、secret_key字段
  • 服务端环境
git clone https://github.com/formattedzzz/leo-build-server.git

# 启动之前手动建立数据库并修改数据库密码 打开终端或可视化工具
# mysql -u root -p 'your mysql password'
# CREATE DATABASE account;
# 修改config.js中password字段

cd leo-build-server
npm install
npm run dev

在线体验

一些总结