温馨提示:本人主页置顶文章(点我)开头有 CSDN 平台官方提供的学长联系方式的名片!

系统介绍

当前人工智能技术快速普及,但大众对AI的认知参差不齐,很多科普内容分散在短视频、网页中,内容深浅不一,缺少系统化、轻量化的学习渠道,普通用户难以循序渐进学习AI基础知识,也缺少互动问答、知识自测的配套功能。本系统后端基于SpringBoot3开发,前端采用微信小程序,依托小程序免安装、传播便捷的优势,面向普通科普爱好者、学生群体搭建AI科普学习平台,分为小程序用户、科普内容编辑、系统管理员三类角色。用户可以在小程序浏览AI科普文章、科普视频,参与AI知识答题、收藏学习内容,使用AI智能问答功能解答学习疑问;科普编辑负责录入和维护科普素材、编辑课程、上传多媒体资料;管理员审核科普内容、管理用户留言反馈、发布科普活动公告、维护平台账号权限。平台兼顾趣味性与知识性,降低人工智能科普的学习门槛,帮助大众科学、理性地认识人工智能技术。

技术介绍

后端采用SpringBoot3框架,整合MyBatis-Plus实现数据库增删改查,Spring Security完成权限控制,后端封装大模型接口实现AI问答能力;前端为微信小程序,使用小程序原生语法开发,通过https接口和SpringBoot后端交互;数据库使用MySQL存储科普分类、科普文章、视频资源、题库、用户收藏、答题记录、留言、反馈、平台公告等数据。接口遵循RESTful规范,支持图片、视频上传、流式问答返回、多条件筛选、分页查询,后续可以拓展科普打卡、学习勋章、专题训练营、AI绘图体验等功能。

系统分析

可行性分析:经济可行性,依托微信小程序载体,用户无需下载APP,推广成本低;后端部署简单,日常运维主要是科普素材更新和内容审核,运维开销小。技术可行性,SpringBoot3、MyBatis-Plus技术成熟,微信小程序对接流程稳定,大模型接口调用、多媒体素材管理、在线答题、权限隔离都具备成熟实现方案,开发难度可控。操作可行性,小程序界面轻量化,浏览文章、答题、提问操作简单;编辑和管理员后台页面清晰,素材录入、内容审核、留言管理直观易懂。
需求分析:功能性需求包含科普分类管理、科普图文视频维护、AI智能问答、在线知识答题、学习收藏、科普活动公告发布、用户留言提交、留言回复、内容审核、账号权限管理。非功能性需求要求多媒体素材上传稳定、AI问答响应流畅、答题计分准确,留言支持图文双向回复,三类角色权限严格隔离,大量科普内容分页加载,保证小程序访问速度。
业务流程分析:管理员预先搭建科普分类,分配编辑账号;科普编辑撰写AI科普内容,上传图文、视频素材,录入题库,提交内容等待审核;管理员审核素材,审核通过之后内容在小程序端对外展示;小程序用户登录后浏览科普内容,收藏感兴趣的资料,参与AI知识测验,遇到疑问发起AI智能问答;用户有建议或者内容疑问可以提交留言;编辑或者管理员查看留言并回复;管理员发布科普线上活动、学习通知公告。
性能分析:系统访问高峰集中在课余、周末时段,AI问答接口做好超时控制,避免长时间阻塞;素材资源做大小限制;科普文章、答题记录、留言列表全部分页查询,减轻数据库压力;新增科普内容接口增加防重复提交机制,避免重复录入素材。

项目实现

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

文档截图

在这里插入图片描述

## 系统设计
> 总体架构设计:系统采用前后端分离架构,后端基于SpringBoot3搭建,对外提供RESTful接口;前端为微信小程序,用户通过小程序访问,科普编辑、管理员通过Web后台进行管理操作。整体分为三层:表现层实现小程序端科普浏览、答题、AI问答、收藏、留言提交;Web后台提供素材编辑、内容审核功能;业务层负责素材审核、问答接口转发、答题判分、收藏记录、留言回复、反馈工单处理、权限校验;数据访问层使用MySQL完成业务数据持久化存储。
> 功能模块设计:系统划分为用户模块、科普分类模块、科普素材模块、AI问答模块、在线答题模块、收藏模块、用户留言模块、反馈工单模块、科普公告模块、系统管理模块。用户模块实现微信授权登录、我的收藏、我的答题记录;科普分类模块划分基础入门、计算机视觉、大模型、AI安全等专题;科普素材模块保存文章、视频、配图;AI问答模块对接大模型,解答AI相关科普问题;答题模块创建试卷、自动判分、记录成绩;收藏模块保存用户收藏的科普资料;**用户留言模块**为管理员后台核心页面,表格字段包含用户名、留言内容、留言图片、回复内容、回复图片,提供刷新、批量删除、查看、单条删除、回复功能,管理员回复支持上传图片;反馈工单处理内容错误、功能问题反馈;科普公告模块发布科普活动、学习通知;系统管理维护账号、编辑权限、内容审核。
> 数据库设计:数据库选用MySQL,核心数据表包含用户表、科普分类表、科普素材表、答题题库表、答题记录表、收藏表、留言表、反馈工单表、科普公告表。
> 用户表:id、openid、nickname、avatar、role;
> 科普分类表:id、categoryName、sortNo;
> 科普素材表:id、categoryId、title、content、videoUrl、coverImg、status;
> 答题题库表:id、question、optionA、optionB、optionC、optionD、answer、type;
> 答题记录表:id、userId、score、createTime;
> 收藏表:id、userId、materialId、collectTime;
> 留言表(message):主键id、user_id、用户名、留言内容、留言图片、回复内容、回复图片、留言时间、回复时间;
> 反馈工单表(feedback):主键id、user_id、反馈内容、反馈图片、处理状态、处理结果、提交时间、处理时间;
> 科普公告表:id、title、content、coverImg、publishTime;
> 权限设计:小程序用户角色,浏览科普素材、答题、AI提问、收藏、提交留言;科普编辑角色,新增编辑科普素材、录入题库、提交内容;系统管理员角色拥有后台全部权限,侧边菜单包含反馈工单、科普公告、素材审核、科普分类、用户留言、系统管理,审核科普内容、管理编辑账号、处理留言反馈、发布公告。

## 核心代码
```java
@RestController
@RequestMapping("/aiPopularize")
public class AiPopularizeController {
    @Autowired
    private MaterialService materialService;
    @Autowired
    private QuestionService questionService;
    @Autowired
    private MessageService messageService;
    @Autowired
    private FeedbackService feedbackService;

    // 添加科普分类
    @PostMapping("/addCategory")
    public Result addCategory(PopularizeCategory category){
        materialService.save(category);
        return Result.success();
    }

    // 查询科普素材列表
    @GetMapping("/materialList")
    public Result materialList(){
        List<PopularizeMaterial> list = materialService.list();
        return Result.success(list);
    }

    // AI科普问答接口
    @PostMapping("/aiChat")
    public Result aiChat(@RequestParam Long userId, @RequestParam String question){
        String reply = questionService.getAiAnswer(userId,question);
        return Result.success(reply);
    }

    // 后台查询留言列表
    @GetMapping("/messageList")
    public Result messageList(){
        List<Message> messageList = messageService.list();
        return Result.success(messageList);
    }

    // 管理员回复留言,支持回复图片
    @PostMapping("/replyMessage")
    public Result replyMessage(@RequestParam Long id, String replyContent, String replyImg){
        messageService.replyMessage(id,replyContent,replyImg);
        return Result.success();
    }

    // 处理反馈工单
    @PostMapping("/dealFeedback")
    public Result dealFeedback(@RequestParam Long id, String result){
        feedbackService.dealFeedback(id,result);
        return Result.success();
    }

    // 删除科普分类
    @DeleteMapping("/deleteCategory/{id}")
    public Result deleteCategory(@PathVariable Long id){
        materialService.removeById(id);
        return Result.success();
    }
}

系统测试

本系统采用黑盒测试,围绕小程序用户、科普编辑、系统管理员三类角色设计测试用例,覆盖微信授权登录、科普分类维护、图文视频素材上传、内容审核、AI 问答交互、在线答题判分、素材收藏、留言提交、图文回复、反馈工单处理、科普公告发布等模块。测试过程中出现视频素材上传失败、AI 问答超时、留言图片回显出错、空回复提交等问题,调试修改后全部修复。权限隔离符合设计,普通用户仅可学习和提问,编辑只能维护自己提交的科普素材;管理员留言页面字段完整,刷新、批量删除、查看、回复、删除功能运行正常,和页面设计保持一致。整体业务流程稳定,无数据错乱、系统崩溃等严重缺陷,满足人工智能科普学习平台的业务需求。

结论

本文完成基于 SpringBoot 和微信小程序的人工智能科普平台的设计与实现,实现科普分类管理、多媒体科普素材发布、AI 智能问答、在线知识答题、内容收藏、留言咨询、反馈处理、科普公告发布等核心功能。系统借助微信小程序轻量化的优势,打破时间地域限制,为大众提供便捷的 AI 科普学习渠道,以图文、视频、互动答题、智能问答多种形式降低 AI 技术的理解门槛,引导用户理性认识人工智能,助力全民 AI 科普工作。后续可以拓展学习打卡、成长勋章、专题科普训练营、AI 生成式互动实验等功能,进一步丰富平台的科普互动体验。

Logo

更多推荐