- 用户登录(小程序登录、邮箱登录、密码登录、授权登录)
- 用户绑定(邮箱绑定、微信绑定)
- 默认头像(查看、上传、删除)
- 用户信息(更改昵称,上传头像,查看当前用户信息)
- 用户管理(条件分页查询,更改用户类别,重置用户头像)
- 四象限增删改查
子模块:
- OKR 截止时间
- OKR 日记录
- OKR 荣誉勋章
这是一个基于微信小程序的 OKR(Objectives and Key Results)目标四象限管理工具,采用前后端分离的架构; 项目曾获得计算机设计大赛省级三等奖,累计用户达 1508; 我负责整个项目的后端架构设计与开发,项目源码:https://github.com/CarefreeState/OKR-System4.0
- 用户登录与绑定:支持多种登录方式(小程序/邮箱/密码/跨端授权),并提供账号绑定功能(小程序/邮箱);
- OKR 规划与管理:用户可以创建各种 OKR,根据科学四象限法则管理目标,设定目标周期提醒;
- 团队与成员管理:支持团队创建与管理,可邀请成员加入团队,查看团队成员以及创建子团队,形成团队树结构;
- 数据分析与勋章:提供数据统计分析,记录 OKR 目标的实现情况,制定和实现 OKR 目标的过程还可获得荣誉勋章;
- 网络协议与反向代理:HTTPS、SSE、Nginx
- 后端框架:Spring Boot (3.0.5)、Spring MVC、Spring AOP
- 对象关系与结构映射:MyBatis-Plus、MapStruct
- 数据存储与对象上传:MySQL、Redis、MinIO
- 分布式锁以及读写锁:Redis + Redisson
- 消息队列与任务调度:RabbitMQ、XXL-JOB
参考 Spring Security 安全框架设计出,轻量化高可扩展的身份认证与授权架构:
- 通过 AOP 与 JWT 配合自定义注解和责任链模式实现身份认证授权,并实现令牌无感刷新,提升系统安全性用户体验;
独创的一套为海量消息和高并发热点消息,提供高可用精准延时服务的解决方案:
- 结合 RabbitMQ,Redis ZSet,XXL-JOB,定时线程池实现高可用的延时功能;
组件封装与设计模式:
- 使用单例、策略、工厂、建造者、责任链等常见设计模式封装系统组件,优化系统结构与代码质量;
接口的高效校验与快速响应:
- 合理创建 MySQL 索引,进行 SQL 优化,例如使用覆盖索引 + 子查询实现高效的深度分页查询;
- 使用 Redis 对一些数据进行缓存,利用布隆过滤器预防缓存穿透,高效生成唯一短码;
- 通过 JUC 多线程技术优化任务的异步执行,分批处理和数据汇总,大幅提升系统的性能和响应速度;
- 使用 RabbitMQ 实现消息异步通信与服务解耦,例如从主服务拆分出勋章服务和数据统计分析服务;
分布式任务调度:
- 使用 XXL-JOB 实现分布式定时任务调度,如定期扫描任务,清除不活跃资源,异步持久化数据;