花狮选课猫是一个基于微信小程序的课程评价平台,学生可以在这里匿名分享对课程的真实评价和体验。
选课猫后端采用 Go 语言开发,使用 Gin 框架构建 RESTful API,数据存储在 MongoDB 中。该项目主要为微信小程序提供后端服务支持,实现课程评价、搜索、点赞等核心功能。
- 语言: Go 1.25.5
- 框架: Gin
- 数据库: MongoDB
- 缓存: Redis
- 依赖注入: Google Wire
- API 文档: Swagger 注释(待完善)
- 部署: Docker
- 微信小程序用户登录
- JWT Token 认证机制
- 搜索课程(按名称模糊搜索)
- 查看课程详情
- 获取课程分类、部门、校区等元信息
- 发布课程评论
- 查看课程下的评论列表
- 查看我的历史评论
- 获取平台总评论数
- 搜索教师
- 查看教师教授的课程
- 对评论进行点赞/取消点赞
- 使用 Redis 缓存优化点赞计数性能
- 课程和教师模糊搜索
- 搜索历史记录(每个用户保留最近15条)
- 搜索建议(输入关键字时实时推荐)
.
├── api # API层(处理HTTP请求和响应)
│ ├── handler # 请求处理器
│ ├── router # 路由配置
│ └── token # 认证相关
├── application # 应用服务层
│ ├── assembler # 数据组装器
│ ├── dto # 数据传输对象
│ └── service # 业务逻辑服务
├── infra # 基础设施层
│ ├── cache # 缓存实现
│ ├── config # 配置管理
│ ├── model # 数据模型
│ ├── repo # 数据访问层
│ └── util # 工具类
├── provider # 依赖注入配置
└── types # 类型定义
├── consts # 常量定义
├── errno # 错误码定义
└── mapping # 映射数据
POST /api/sign_in- 用户登录
POST /api/db/add- 发布评论GET /api/db/query- 分页获取课程下的评论POST /api/db/history- 获取我的评论历史
GET /api/search/recent- 获取搜索历史POST /api/search- 搜索课程或教师GET /api/search/total- 获取平台总评论数GET /api/search/suggest- 获取搜索建议
POST /api/action/like/:id- 为评论点赞
GET /api/course/:courseId- 获取特定课程详情
- Go 1.24.5 或更高版本
- MongoDB
- Redis
项目需要一个 etc/db.yaml 配置文件,包含以下内容:
Name: meowpick.backend
Host: 0.0.0.0
Port: 8080
Auth:
SecretKey: "your-secret-key"
PublicKey: "your-public-key"
AccessExpire: 86400
Mongo:
URL: "mongodb://localhost:27017"
DB: "meowpick"
Redis:
Host: "localhost:6379"
Type: "node"
WeApp:
AppID: "your-weapp-appid"
AppSecret: "your-weapp-secret"# 构建镜像
docker build -teacher meowpick-backend .
# 运行容器
docker run -d -p 8080:8080 meowpick-backend# 克隆项目
git clone https://github.com/Boyuan-IT-Club/Meowpick-Backend.git
# 进入项目目录
cd Meowpick-Backend
# 下载依赖
go mod tidy
# 运行项目
go run main.go