Skip to content

TogetherForStudy/jxust-yqlx-weapp

Repository files navigation

江理一起来学微信小程序

这是一个基于Taro的微信小程序项目,为江西理工大学学生提供服务,欢迎各位开发者一起为小程序设计功能,贡献代码!

🚀 亮点 | V1.3.6

📚 核心功能

1. 智能课程表系统

  • 离线优先设计:课表数据本地缓存,支持离线查看
  • 版本检测机制:基于 last_modified 时间戳的增量更新,减少流量消耗
  • 灵活编辑:支持单个课程格子的新增、编辑和删除
  • 多周切换:手势滑动切换周次,快速跳转到任意周
  • 班级绑定:一键绑定班级,自动同步课表数据
  • 周末显示控制:可选择显示/隐藏周末课程

2. 资料库系统

  • 分类浏览:支持多级分类导航,面包屑路径清晰
  • 智能搜索
    • 搜索历史记录
    • 热搜词推荐
    • 实时搜索建议
  • 资料热榜
    • 下载热榜(7天/30天)
    • 评分热榜(7天/30天)
  • 资料评分:用户可对资料进行评分,帮助他人选择优质资源
  • 下载追踪:记录下载行为,生成热门资料统计

3. 教师评价系统

  • 匿名评价:保护学生隐私,鼓励真实反馈
  • 多维度评价
    • 推荐度统计
    • 评价内容展示
    • 校区信息标注
  • 智能搜索:快速查找教师,查看历史评价
  • 审核机制:管理员审核确保评价质量

4. 用户投稿系统

  • 便捷投稿:用户可投稿通知、资料等内容
  • 审核流程
    • 待审核/已通过/已拒绝状态管理
    • 审核备注反馈
    • 积分奖励机制
  • 投稿统计
    • 总投稿数
    • 各状态投稿数量
    • 累计获得积分
  • 管理后台:运营人员可高效审核投稿内容

5. 积分激励系统

  • 积分获取
    • 投稿通过奖励积分
    • 评价贡献获得积分
  • 积分查询
    • 当前积分余额
    • 积分交易记录(分页)
    • 积分统计信息
  • 管理员功能:手动赋予积分

6. 通知公告系统

  • 分类管理:支持多种通知分类
  • 发布流程
    • 运营创建通知
    • 管理员审核
    • 发布到用户端
  • 置顶功能:重要通知可置顶显示
  • 转换日程:通知可转换为个人日程提醒

7. 其他实用功能

  • 挂科率查询:搜索课程挂科率数据,辅助选课决策
  • 绩点计算器:快速计算GPA
  • 校历查询:查看学期重要时间节点
  • 英雄榜:展示优秀学生/贡献者
  • 期末复习:期末复习资料专区
  • 群聊推荐:推荐相关学习群聊

🔧 技术亮点

1. 请求幂等性保护

  • 自动UUID生成:使用微信小程序加密级随机数生成器生成 UUID v4
  • 智能幂等性Key
    • 基于请求内容(method + url + data)生成唯一标识
    • 防止快速重复点击导致的重复提交
    • 1分钟保护期,2分钟自动清理
  • 请求追踪:每个请求自动添加 X-Request-ID 用于日志追踪
  • 详细文档:完整的幂等性实现说明(见 docs/idempotency_implementation.md

2. RBAC权限管理

  • 角色系统:支持多角色管理(管理员、运营、普通用户等)
  • 权限控制:细粒度的权限管理
  • 用户角色绑定:管理员可为用户分配角色

3. 状态管理

  • Pinia Store
    • authStore:用户认证状态
    • scheduleStore:课表数据管理
    • notificationStore:通知数据管理
    • reviewsStore:评价数据管理
    • studyTasksStore:学习任务管理
    • countdownStore:倒数日管理

4. API设计

  • 统一封装:所有API调用统一封装在 src/api/index.js
  • 拦截器机制
    • 请求拦截:自动添加 token、幂等性Key等
    • 响应拦截:统一处理错误、token过期等
  • RESTful规范:遵循RESTful API设计规范

🎨 用户体验优化

1. 离线数据支持

  • 课表数据本地缓存,无网络也可查看
  • 资料搜索历史本地存储

2. 响应式设计

  • 适配不同屏幕尺寸
  • 流畅的动画过渡效果

3. 交互优化

  • 下拉刷新
  • 上拉加载更多
  • 骨架屏加载状态
  • Toast提示反馈
  • 防抖防重复点击

4. 性能优化

  • 分页加载,减少单次数据量
  • 图片懒加载
  • 请求缓存机制

🛠️ 技术栈

  • 框架: Taro 4.x
  • 前端: Vue 3 + Composition API
  • 状态管理: Pinia
  • 样式: Weapp-Tailwind CSS + DaisyUI
  • 平台: 微信小程序

📱 页面结构

src/
├── pages/
│   ├── home/               # 首页
│   ├── schedule/           # 课表功能
│   ├── materials/          # 资料库
│   ├── final-review/       # 期末复习
│   ├── points/             # 积分系统
│   ├── discover/           # 发现页
│   ├── profile/            # 个人中心
│   ├── notifications/      # 通知公告
│   ├── contributions/      # 投稿系统
│   ├── teacher-reviews/    # 教师评价
│   ├── failrate/           # 挂科率查询
│   ├── gpa-calculator/     # 绩点计算器
│   ├── map/                # 校区地图
│   ├── address/            # 校区地址
│   ├── calendar/           # 校历查询
│   ├── groupchat/          # 群聊推荐
│   ├── achieveprint/       # 成绩证明
│   ├── graduation/         # 毕业相关
│   ├── gotojw/             # 教务跳转
│   ├── login/              # 登录页面
│   ├── webview/            # 网页浏览
│   ├── terms-of-service/   # 服务条款
│   ├── hero/               # 英雄榜
│   └── admin/              # 管理后台
│       ├── config/            # 配置管理
│       ├── heroes/            # 英雄榜管理
│       ├── teacher-reviews/   # 评价管理
│       ├── rbac/              # 权限管理
│       └── points/            # 积分管理
├── api/                    # API接口封装
├── stores/                 # Pinia状态管理
├── utils/                  # 工具函数
├── components/             # 通用组件
└── assets/                 # 静态资源
    └── icons/                 # 图标文件

🚀 开发指南

启动项目

# 安装依赖
npm install

# 微信小程序开发
npm run dev:weapp

构建项目

# 构建微信小程序
npm run build:weapp

🔧 配置说明

环境配置

  • 修改 src/utils/request.js 中的 BASE_URL 为实际API地址
  • 调整 src/utils/constants.js 中的学期配置

贡献指南

  1. Fork 本仓库到你的 GitHub 账号下。
  2. 按照要求规范填写 commit message。
  3. 提交 Pull Request(PR)。
  4. 等待代码审核与合并。

About

江理一起来学微信小程序前端

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors

Languages