Skip to content

天机学堂是一个基于微服务架构的生产级在线教育项目,核心用户不是K12群体,而是面向成年人的非学历职业技能培训平台。相比之前的项目课程,其业务完整度、真实度、复杂度都非常的高,与企业真实项目非常接近。 通过天机学堂项目,你能学习到在线教育中核心的学习辅助系统、考试系统,电商类项目的促销优惠系统等等。更能学习到微服务开发中的各种热点问题,以及不同场景对应的解决方案。

Notifications You must be signed in to change notification settings

Kiraaaaaaa/Heavenly-Secrets-Academy

Repository files navigation

天机学堂

提前说明

我保留大量代码注释,也保留了测试文件,帮助大家更好的吸收,感兴趣的可以克隆参考学习,有不对的地方欢迎大家指正!!

  • 分支说明:
  • init分支包含最基础功能,所有人刚开始开发都从init分支拉取
  • master分支为功能完善的完整源代码,作参考使用(这里未上传,配套资料中有)
  • dev分支为本人基于init分支学习并正在开发的分支(未完成)
  • 学习文档地址
  • 配套资料

🌟对你有帮助的话麻烦点个星星🌟

项目简介

天机学堂是一个基于微服务架构的生产级在线教育项目,核心用户不是K12群体,而是面向成年人的非学历职业技能培训平台。相比之前的项目课程,其业务完整度、真实度、复杂度都非常的高,与企业真实项目非常接近。 通过天机学堂项目,你能学习到在线教育中核心的学习辅助系统、考试系统,电商类项目的促销优惠系统等等。更能学习到微服务开发中的各种热点问题,以及不同场景对应的解决方案。学完以后你会收获很多的“哇塞”。

软件架构

天机学堂目前是一个B2C类型的教育网站,因此分为两个端:

  • 后台管理端
  • 用户端(PC网站) 整体架构如下: 天机学堂功能 技术架构: 天机学堂架构

主流程介绍

功能演示

天机学堂分为两部分:

  • 学生端:其核心业务主体就是学员,所有业务围绕着学员的展开
  • 管理端:其核心业务主体包括老师、管理员、其他员工,核心业务围绕着老师展开

老师核心业务 老师核心业务 虽然流程并不复杂,但其中包含的业务繁多,例如: 课程分类管理:课程分类的增删改查 媒资管理:媒资的增删改查、媒资审核 题目管理:试题的增删改查、试题批阅、审核 课程管理:课程增删改查、课程上下架、课程审核、发布等等

学员核心业务 学员的核心业务就是买课、学习,基本流程如下: 学员核心业务

我可以学到什么?

相当于学到了三个项目 涉及领域

可迁移的技术方案

该项目中包含的技术和解决方案主要有:

基于自定义注解和Redisson的分布式锁工具

XXL-JOB分布式任务调度工具

Caffeine本地缓存工具

支持可靠消息、延迟消息的RabbitMQ工具

JDK自带延迟队列DelayQueue

基于CompletableFuture和CountDownLatch的并发任务处理方案

高并发高精度的视频进度记录和回放解决方案

学习计划和学习进度统计的学习监督方案

通用的问答(评论)功能实现方案

通用、高性能的点赞系统解决方案

高性能、低存储成本的签到BitMap解决方案

实时性强、通用性好的ZSet积分排行榜、历史排行榜解决方案

支持大数据量、高性能校验的优惠券兑换码算法(Base32思想、新鲜值)

基于LUA脚本的高性能、并发安全的优惠券领取解决方案(秒杀解决方案)

优惠券叠加的智能推荐算法(MapReduce的思想)

基于Redis合并写请求并基于定时任务异步持久化的并发优化方案

基于Redis和MQ的异步写优化方案

基于腾讯VOD的视频加密、视频点播、视频审核、视频雪碧图功能(已实现未讲解)

包含支付宝支付、微信支付的多平台支付系统(已实现未讲解)

订单退款拆单处理方案(已实现未讲解)

以上等等

参与贡献

  1. Fork 本仓库
  2. 新建 Feat_xxx 分支
  3. 提交代码
  4. 新建 Pull Request

About

天机学堂是一个基于微服务架构的生产级在线教育项目,核心用户不是K12群体,而是面向成年人的非学历职业技能培训平台。相比之前的项目课程,其业务完整度、真实度、复杂度都非常的高,与企业真实项目非常接近。 通过天机学堂项目,你能学习到在线教育中核心的学习辅助系统、考试系统,电商类项目的促销优惠系统等等。更能学习到微服务开发中的各种热点问题,以及不同场景对应的解决方案。

Topics

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages