1. 项目背景与需求分析
作为一名在校大学生,我每天都要和学校的教务系统打交道。这个系统用起来实在让人头疼:每次登录都要输入冗长的学号和复杂的验证码,界面设计停留在十年前的水平,手机端访问更是灾难性的体验——要么显示不全,要么卡顿到怀疑人生。
最让人崩溃的是选课期间。系统经常在关键时刻崩溃,眼睁睁看着心仪的课程被别人抢走。这种糟糕的用户体验让我萌生了一个想法:能不能自己开发一个微信小程序,优化教务系统的核心功能?
微信小程序有几个天然优势:
- 无需下载安装,扫码即用
- 开发门槛相对较低
- 可以直接调用微信的登录授权
- 校园场景下微信覆盖率接近100%
经过调研,我发现教务系统最常用的功能其实就几个:
- 课表查询(80%的使用场景)
- 成绩查询
- 考试安排
- 选课系统(虽然频次低但痛点最明显)
需要模型API调用? 免费领10W Token,多模型网关一键接入 Claude、DeepSeek 等主流模型。
2. 技术选型与开发环境搭建
2.1 前端技术栈选择
微信小程序开发主要有三种方式:
- 原生开发(WXML+WXSS)
- UniApp跨平台框架
- Taro多端统一开发框架
考虑到这是个人项目且需要快速验证,我选择了原生开发方案。主要基于以下考虑:
- 学习曲线平缓,文档丰富
- 无需处理跨平台兼容性问题
- 可以直接使用微信最新API
bash复制# 开发工具安装
npm install -g @vue/cli
npm install -g typescript
2.2 后端服务设计
由于学校没有开放教务系统API,我们需要通过以下方式获取数据:
- 模拟登录抓取HTML解析
- 使用Puppeteer自动化操作
- 数据缓存策略
javascript复制// 示例:使用Node.js模拟登录
const puppeteer = require('puppeteer');
async function login(username, password) {
const browser = await puppeteer.launch();
const page = await browser.newPage();
await page.goto('http://jwxt.school.edu.cn');
// 输入凭证
await page
