1. 项目背景与核心价值
校园资料分享平台一直是大学生群体的刚需。每到期末考试周,同学们最头疼的就是找不到完整的复习资料和往年试题。传统解决方案要么是建立QQ群文件共享(容易过期失效),要么使用网盘链接(需要反复登录验证)。而微信小程序凭借即用即走的特性,正好能解决这些痛点。
这个项目采用SpringBoot+微信小程序技术栈,实现了课程资料上传下载、资料检索、用户积分体系等核心功能。我在开发过程中特别注重三个设计原则:
1)资料分类必须符合实际教学场景(按学院-专业-课程三级划分)
2)积分机制要能激励分享又防止灌水
3)后台管理要支持内容审核避免侵权风险
需要模型API调用? 免费领10W Token,多模型网关一键接入 Claude、DeepSeek 等主流模型。
2. 技术架构设计
2.1 整体技术选型
前端采用微信小程序原生开发,主要考虑因素:
- 校园场景下微信覆盖率接近100%
- 原生框架性能优于uniapp等跨平台方案
- 可完美调用微信云存储、用户授权等能力
后端技术栈组合:
- SpringBoot 2.7(稳定版)
- MySQL 8.0(支持JSON字段存储资料元数据)
- Redis 6(处理高频访问的积分排行榜)
- MinIO(自建文件存储,规避第三方网盘限制)
2.2 关键架构决策
-
文件存储方案对比:
- 微信云存储(成本高且无法后台管理)
- 七牛云(需要备案域名)
- 最终选择MinIO自建,部署在校内服务器
-
积分算法设计:
java复制// 动态积分计算公式 public int calculatePoints(FileUploadDTO dto) { int base = 10; // 基础分 int typeWeight = dto.isExamPaper() ? 3 : 1; int downloadWeight = (int)(Math.log(dto.getPreviewCount()+1)*2); return base * typeWeight + downloadWeight; }
3. 核心功能实现细节
3.1 微信小程序端关键技术
- 自定义资料卡片组件:
- 使用WXML模板实现三种视图状态(缩略/展开/详情)
