介绍:
这是一个以「猫咪陪伴学习」为外壳、以「每日编程挑战+学习笔记发布」为核心驱动、后端 Spring Boot + JPA + SQL Server、前端纯 HTML/CSS/JS 单页应用的学习激励平台。
一、目录结构
bash
personweb/
├── pom.xml # Maven 配置(Spring Boot 3.5.15 / Java 17)
└── src/main/
├── java/com/example/personweb/
│ ├── PersonwebApplication.java # 启动类
│ ├── config/
│ │ └── QuestionDataInitializer.java # 题目数据初始化
│ ├── controller/ # 接口层(7 个)
│ │ ├── AuthController.java # 登录/注册/会话
│ │ ├── ResourceController.java # 资源/文章 CRUD
│ │ ├── QuestionController.java # 每日挑战题目
│ │ ├── UserController.java # 用户管理
│ │ ├── AdminController.java # 管理员后台
│ │ ├── CategoryController.java # 分类管理
│ │ └── GlobalExceptionHandler.java # 全局异常处理
│ ├── model/ # 实体类(4 个)
│ │ ├── User.java # 用户
│ │ ├── ResourceItem.java # 资源/文章
│ │ ├── Question.java # 每日题目
│ │ └── Category.java # 分类
│ ├── repository/ # 数据访问层(4 个)
│ ├── service/ # 业务逻辑层(4 个)
│ └── pojo/
│ └── Result.java # 统一响应体
└── resources/
└── static/
├── companion.html # ★ 猫咪学习伴侣主页
├── companion.css # ★ 猫咪伴侣样式
├── js/companion.js # ★ 猫咪伴侣核心逻辑
├── data/daily-challenge.json # 挑战题目静态数据
└── assets/cat/ # 猫咪像素图素材
二、数据表设计
users--- 用户表
| 字段 | 类型 | 说明 |
|---|---|---|
| user_id | VARCHAR(50) PK | 用户 ID |
| username | VARCHAR(100) UNIQUE | 用户名 |
| password | VARCHAR(255) | 密码 |
| email / phone | VARCHAR | 联系方式 |
| role | VARCHAR(20) | USER / ADMIN / GUEST |
| avatar / background | VARCHAR | 头像/背景 |
| blacklisted | BIT | 黑名单标记 |
| last_login_time / created_at / updated_at | - | 时间戳 |
resource_items--- 资源/文章表
| 字段 | 类型 | 说明 |
|---|---|---|
| id | VARCHAR(20) PK | 资源 ID |
| title / summary / content | VARCHAR/TEXT | 标题/摘要/正文 |
| category | VARCHAR(100) | 分类 |
| author / author_id | VARCHAR | 作者名/ID(关联用户) |
| status | INT | 0 待审 / 1 通过 / 2 驳回 |
| type | VARCHAR(20) | article / file |
| file_name / file_path / file_size / file_extension | - | 文件相关 |
| views / downloads / favorite_count | INT | 浏览/下载/收藏数 |
| publish_time / review_time | VARCHAR | 发布时间/审核时间 |
questions--- 每日挑战题目表
| 字段 | 说明 |
|---|---|
| id (UUID) | 主键 |
| day_num | 第几天 |
| topic | 主题 |
| challenge_title / description / code | 挑战内容(标题/描述/代码) |
| article_prompt | 写文章提示 |
| learn_title / video_url / topics / knowledge_points | 学习内容 |
| reward | 猫粮奖励值 |
categories--- 分类表
| 字段 | 说明 |
|---|---|
| category_id | 分类 ID |
| category_name | 分类名 |
| description | 描述 |
| sort_order | 排序 |
三、API 接口一览
认证模块 /api/auth
| 方法 | 路径 | 说明 |
|---|---|---|
| POST | /login |
登录 |
| POST | /register |
注册 |
| GET | /current |
获取当前用户 |
| GET | /logout |
退出 |
| POST | /fix-password |
管理员密码修复 |
资源/文章模块 /api/resource
| 方法 | 路径 | 说明 |
|---|---|---|
| GET | /list?category= |
公开资源列表 |
| GET | /detail/{id} |
资源详情(+浏览量) |
| GET | /search?keyword=&category= |
搜索 |
| GET | /categories |
所有分类 |
| GET | /stats |
统计概览 |
| GET | /my |
我的资源(需登录) |
| POST | /save |
发布文章/文件(companion 写文章调用这个) |
| PUT | /update/{id} |
编辑资源 |
| DELETE | /delete/{id} |
删除资源 |
| POST | /favorite/{id} |
收藏 |
| POST | /unfavorite/{id} |
取消收藏 |
| GET | /download/{id} |
下载文件 |
每日挑战模块 /api
| 方法 | 路径 | 说明 |
|---|---|---|
| GET | /daily-challenge |
获取当天挑战+学习内容 |
| GET/POST/PUT/DELETE | /admin/questions/** |
管理员 CRUD 题目 |
界面展示:



这里点击右上角小凳子就能进入管理员后台


目前还存在很多问题,比如小猫素材美化语音都没有过多设计,还有用户上传文章后浏览界面还没设计入口,存在挺多问题的,但是基础功能都能用。大部分由ai完成代码编写,只有用户管理界面是上课跟着老师来做过。题目来源是黑马程序猿的jsp课程里面的。还有很多需要完善的部分。本网站由最开始的信息管理资源库改良得来,灵感来自于个人积累的素材。