妈妈再也不用担心我的课设了---Vibe Coding帮你实现期末课设!

🔥前言

最近随着期末周的到来,计算机专业的我们也迎来了令人头疼的期末课程设计,什么图书管理系统、车辆管理系统、学生成绩系统......在本文,作者将分享我最近的真实完成课设的过程,教你如何使用Vibe Coding,把一个限时两周的课设,从零开始,不写一行代码,一天半完成!并且还能流利答辩,取得高分!!!

🤬让人痛苦的课设

在过去,为了完成课设,往往大家会八仙过海、各显神通:有的勇士原封不动copy网上的代码直接给老师,结果答辩时自己都不知道什么意思;有的哥们电脑连运行环境都没装,直接用舍友电脑答辩;还有富哥直接启用"钞能力"寻找网上的外援帮助......结果呢,这些大神,不是被老师打回去重修,就是花了不少钱却只混个"勉强过关",更惨的直接连及格线都没摸着,准备重修!

所以在进行完成课设的这几天里,机房里总是哀鸿遍野,大家都被这玩意给折磨着,作者同样也是,在往年作者在完成课设时,让我很头疼:自己敲吧,又做不出什么好的作品,还得花很多很多时间,去网上找作品改吧,又会遇到各自各样的版本、环境不兼容的问,找外援的话,作者的钱包也不支持......

🤖AI重塑!妈妈再也不用担心我的课设了!

但是,在今年,大家都知道,是AI的元年,现在有了VibeCoding理念以及衍生出的各自AI产品,让妈妈再也不用担心我的课设了!其实从年初国产大模型DeepSeek横空爆发开始,作者就在不断关注、学习着AI,VibeCoding、扣子开发Agent、Prompt提示词工程、Maus"Agent总管"......作者也想成为一个新时代的程序员,着重关注业务,无需手动书写繁琐、重复的代码。

所以我这次准备用VibeCoding的理念全程实现我的课设,不写一行代码,要求两周的完成的课设,哥们一天半就给搞完了,并且全程也没那么累!下面分析我的整个实现过程,我也会分享我遇到的各种各样的坑,你完全可以参考这篇文章,去轻轻松松地完成你的课设!

📜课设的要求

我的专业是软件工程,应用开发方向,所以我们期末要求需必须要完成一个B/S的课程设计,如果不能如期按要求的完成的话,你这门课的学分就没得了!是的,这让人不得不想说出那三个字:***!🤬🤬🤬

课设的具体内容

我们班的课设是每个人固定分配到一个题目,需要在两周的情况下完成并答辩,我分配到的是以下系统:企业行政资源管理系统,下面给大家看看我们任务设计书的原文:

设计题目:企业行政资源管理系统的设计与实现

1.课程设计任务

1、主要功能

设计一个企业行政资源管理系统,该系统的用户分别是:普通员工和行政资源管理员。不同的用户拥有不同的权限,各自完成各自的管理功能,不同的用户看到不同的系统功能。创建后台数据库,编写程序实现对数据库的操作,按照要求完成所有的功能和模块。

普通员工的主要功能模块包括:

(1)普通员工注册与登陆

(2)查询物资资源剩余情况

(3)填写物资资源申请表,对申请表进行修改删除

(4)提交物资资源申请表并查看申请状态

(5)对物资资源管理员服务进行评价。

行政资源理员的主要功能模块包括:

(1)查询申请表并进行审批

(2)行政物资资源情况的查询、添加、更新、删除

(3)对资源的调配和回收管理

2、主要数据库表单

(1)员工基本信息表单

主要字段有:用户ID、用户账号、用户密码、姓名、联系电话、所属部门、职位

(2)行政资源表单

主要字段有:资源编号、资源大类、资源大类标识、资源名称、资源数量、资源状态、删除资源

(3)资源申请表单

主要字段有:申请单编号、申请人ID、申请资源数量、申请资源用途、使用起始日期、使用终止日期、提交标志、审批标志

2. 课程设计报告书主要内容

1、软件需求规格说明书;(不少于15页)

至少包括:系统功能需求、非功能需求。

2、软件设计说明书;(不少于15页)

至少包括:1)模块设计;2)用户界面设计;3)数据库设计

好的,分析完了,这是一个传统的资源管理系统,分为管理员和普通用户,实际上就是对资源的CRUD工程,没什么特别的逻辑。如果是往年我自己做的话,需要花很多时间,建库,写实体类,写接口,写服务层,写Mapper,写前端.......但是咱们可是Vibe Coder呀!交给AI!

🗓️先列计划!

我们一定要在开始前列一个计划, 就像土木老哥开工前,规定好工期,材料,人员一样,我们也需要把我们将来要做的事和工具一一分析!

🛠️AI工具选择

市面上有许许多多的AI工具供我们使用,而这次的AI工具我准备使用Trae和Cursor联合,后端交给Cursor,前端交给Trae,大家也可以自行选择自己喜欢的。

⚙️先后端,再前端

对于这次的项目我的计划是先写后端再写前端,我认为完成后端项目后,你能够更清晰地分析该项目的业务逻辑,有助于你进一步掌握业务,接着再根据后端项目的接口文档,继续叫AI生成前端页面即可!

这里注意接口文档是十分必要的,它既可以帮我们测试项目的各个接口是否能够正常接收请求和返回值,也是制作前端时需要参考的重要文档!

⏳一上午完成后端!

后端部分我其实是只用了一上午,利用Cursor就完成了!其中遇到了一个坑,弄了很久,要不然会更快完成,下面详细分享我的完成过程!

书写Prompt

第一步我们书写一段Prompt,我的想法是直接把上面的课设要求给复制一下,然后写一些自己的要求(技术要求,业务要求)

第一个版本

我的第一版Prompt如下

主要功能

设计一个企业行政资源管理系统,该系统的用户分别是:普通员工和行政资源管理员。不同的用户拥有不同的权限,各自完成各自的管理功能,不同的用户看到不同的系统功能。创建后台数据库,编写程序实现对数据库的操作,按照要求完成所有的功能和模块。

普通员工的主要功能模块包括: (1)普通员工注册与登陆 (2)查询物资资源剩余情况 (3)填写物资资源申请表,对申请表进行修改删除 (4)提交物资资源申请表并查看申请状态 (5)对物资资源管理员服务进行评价。 行政资源理员的主要功能模块包括: (1)查询申请表并进行审批 (2)行政物资资源情况的查询、添加、更新、删除 (3)对资源的调配和回收管理 2、主要数据库表单 (1)员工基本信息表单 主要字段有:用户ID、用户账号、用户密码、姓名、联系电话、所属部门、职位 (2)行政资源表单 主要字段有:资源编号、资源大类、资源大类标识、资源名称、资源数量、资源状态、删除资源 (3)资源申请表单 主要字段有:申请单编号、申请人ID、申请资源数量、申请资源用途、使用起始日期、使用终止日期、提交标志、审批标志

注意点

业务:

无需拓展业务,完成以上包含的基本内容即可 使用分层结构:

  • Controller层:存放各自请求方法

  • Service层:包含Imp层和接口层

  • Mapper层:存放数据的操作,可以使用Mybati-plus

  • model层:存放数据内容,包含dto、entity(数据库字段实体)等层

  • Config层:存放项目的相关配置文件

  • 其余层:请根据以上的主要功能,自由设计 注意细节:完成每一个细节,比如:用户退出这种功能也需要实现。

技术:

使用Springboot框架实现。

无需使用Redis等技术

使用基本的Mysql数据库完成数据存储即可

无需使用分布式登录等技术

基本的请求的发送与接收

需要使用Knife4j实现接口文档

十分注意

  • 选择合适的Springboot版本!特别是Knife4j的版本和Springboot的版本需要兼容
  • Maven中的各个依赖需要相互兼容!尽量减少我遇到的版本问题
  • 优先使用稳定版本的依赖!

配置文件中的数据库可参考: datasource: url: jdbc:mysql://localhost:3306/resource_management_system username: root password: '123456' driver-class-name: com.mysql.cj.jdbc.Driver

你会发现,我在写Prompt使用了清晰的结构:

  1. 先将上面的课设要求给粘贴到主要功能标题下,作为主要参考。

  2. 在下方补充我需要AI注意的要求,分为业务上的要求和技术上的要求。

  3. 业务上:我规定了传统的架构,并且指定了注意的细节问题

  4. 技术上:我不需要AI实现特别复杂的功能,比如使用Redis技术,一方面是我们课设比较水,要求不需要这么高,另一方面,如果一开始就将很复杂的技术一下子全扔给AI,那么它执行的效果可能会差强人意,正确的做法是:一开始先架构一个项目的基本结构,形成一个可运行的项目,如果后续有这些复杂的业务,可以再通过AI慢慢填充!

实际上,你会发现我这里指定了使用Knife4j文档,正是因为这个举动,使得我后面的项目频繁报错!

第一次失效了!Knife4j版本问题

我将上面的Prompt内容存放在后端项目文件夹下的readme.md文件中,然后将这段readme.md放在对话框中,要求AI根据这段readme帮我构建一个项目,在AI生成了各个后端项目之后,我用IDEA打开这个项目,然后运行了之后,发现报错了!

后面叫AI分析,发现是Knife4j版本问题,于是我就叫AI帮我修复,结果又报错了,于是我就又叫AI帮我修复,又报错...我后面一直换着法子问问题,尝试解决这个棘手的问题,但都解决不了,后面我意识到可能Knife4j官方文档在最近更新了,可是AI并不能实时查看到更新的内容,所以就会一直解决不了Knife4j问题,这个过程我尝试了很久,接近一个小时。

后面发现这样子太浪费时间了,于是我就不用Knife4j生成接口文档。

用以下方式替代接口文档效果:生成项目后,使用AI生成一份.md的接口文档就行,而原本接口文档测试接口的活,现在用Postman或者IDEA自带的http等工具来替代。

所以这是我的一个经验:对于一些更新换代比较快的技术和框架,可能AI无法获取到最新的信息,会使用之前的规范,如果一直问都不能得到结果,尝试使用另一种方式,或者再仔细修改之前的Prompt

成功了,后端项目跑起来了!!!

于是我就又新建了一个文件夹,更改了Prompt,取消Knife4j的实现,让AI重新生成项目。

更改后的Pormpt:由原本的Prompt内容基本不变,只是要求取消了Knife4j的实现接口文档

主要功能

设计一个企业行政资源管理系统,该系统的用户分别是:普通员工和行政资源管理员。不同的用户拥有不同的权限,各自完成各自的管理功能,不同的用户看到不同的系统功能。创建后台数据库,编写程序实现对数据库的操作,按照要求完成所有的功能和模块。

普通员工的主要功能模块包括: (1)普通员工注册与登陆 (2)查询物资资源剩余情况 (3)填写物资资源申请表,对申请表进行修改删除 (4)提交物资资源申请表并查看申请状态 (5)对物资资源管理员服务进行评价。 行政资源理员的主要功能模块包括: (1)查询申请表并进行审批 (2)行政物资资源情况的查询、添加、更新、删除 (3)对资源的调配和回收管理 2、主要数据库表单 (1)员工基本信息表单 主要字段有:用户ID、用户账号、用户密码、姓名、联系电话、所属部门、职位 (2)行政资源表单 主要字段有:资源编号、资源大类、资源大类标识、资源名称、资源数量、资源状态、删除资源 (3)资源申请表单 主要字段有:申请单编号、申请人ID、申请资源数量、申请资源用途、使用起始日期、使用终止日期、提交标志、审批标志

注意点

业务:

无需拓展业务,完成以上包含的基本内容即可 使用分层结构:

  • Controller层:存放各自请求方法

  • Service层:包含Imp层和接口层

  • Mapper层:存放数据的操作,可以使用Mybati-plus

  • model层:存放数据内容,包含dto、entity(数据库字段实体)等层

  • Config层:存放项目的相关配置文件

  • 其余层:请根据以上的主要功能,自由设计 注意细节:完成每一个细节,比如:用户退出这种功能也需要实现。

技术:

使用Springboot框架实现。 无需使用Redis等技术 使用基本的Mysql数据库完成数据存储即可 无需使用分布式登录等技术 基本的请求的发送与接收 不需要考虑接口文档的实现 十分注意

  • 选择合适的Springboot版本!
  • Maven中的各个依赖需要相互兼容!尽量减少我遇到的版本问题
  • 优先使用稳定版本的依赖!

配置文件中的数据库可参考: datasource: url: jdbc:mysql://localhost:3306/resource_management_system username: root password: '123456' driver-class-name: com.mysql.cj.jdbc.Driver

此时再放在该文件夹下的readme.md里面,叫AI帮我们重新生成项目!

然后果然,指定不用Knife4j的话,我再用IDEA打开该项目,Oh!终于可以运行了!

接着我就花了一个小时分析了下该项目并测试该项目的各个接口,发现AI生成的该项目是完全符合课设要求的

注意:分析项目可以叫AI分析项目后,给你一个文档,你结合着文档看各个接口会快很多,而测试项目接口,可以用POSTman等软件,也可以像我一样再IDEA中使用原生的http请求分析。

最后,我叫AI帮我为该项目生成接口文档.md,我将生成的接口文档放在了桌面,待会写前端时需要用!

所以至此,早上我的后端任务就完成了,在早上,我压根没有写一行代码,时间都花在计划项目、想Prompt、分析生成后的项目上!

🖥️一下午完成前端!

在下午,我又吭哧吭哧地跑到机房去搞前端, 前端的页面生成有很多方式:

  • 蓝湖的mastergo:我试了半个小时,它确实会生成非常精美的页面,但他里的请求数据逻辑往往需要你自己写,它里面的数据只是虚拟数据,我个人认为不适合。
  • Manus:我试了一个小时,生成的有点慢,而且生成了一两个项目也因为版本问题一直跑不起来,很难受。

这几种方式我都试过了,我最推荐你直接使用Trae编辑器根据接口文档和参考上面的课程设计内容生成!

我创建了一个文件夹,叫做Front-section,然后将刚刚放在桌面的接口文档.md挪到该文件夹内,再创建一个readme.md写我们的Prompt,接着选中这两个文件,叫Trae根据这两份文件生成前端项目!

下面是我生成前端项目的Prompt:

请你根据该文件夹下的接口文档,完成对应的前端项目。

  • 要求1:完成的前端代码支持在环境为v20.18.3的环境下运行

  • 要求2:完成以下基本功能:设计一个企业行政资源管理系统,该系统的用户分别是:普通员工和行政资源管理员。不同的用户拥有不同的权限,各自完成各自的管理功能,不同的用户看到不同的系统功能。创建后台数据库,编写程序实现对数据库的操作,按照要求完成所有的功能和模块。 普通员工的主要功能模块包括: (1)普通员工注册与登陆 (2)查询物资资源剩余情况 (3)填写物资资源申请表,对申请表进行修改删除 (4)提交物资资源申请表并查看申请状态 (5)对物资资源管理员服务进行评价。 行政资源理员的主要功能模块包括: (1)查询申请表并进行审批 (2)行政物资资源情况的查询、添加、更新、删除 (3)对资源的调配和回收管理

  • 要求3:注意完成以上功能的同时,注意和该后端项目配合,发送请求需要对应后端的每一个接口,同样返回数据也是需要和后端对应上。

  • 要求4:注意版本问题,尽量使用稳定版本的框架和技术来实现

  • 要求5:不要使用模拟数据,你需要向后端获取数组渲染,如果没有获取到则不显示

这里我提了许多我能想到的注意的点:比如我的电脑的node版本是v20.18.3,我就会要求它生成的前端项目需要能在这个版本下跑起来,比如我需要它向后端发送请求获取数组,而不是使用虚拟数据,我这里没有提技术上的一些要求,因为我认为前端无非就是那几个框架,能跑起来,能发送数据、能渲染页面就行了!当然各位可以根据自己的情况提更多的要求,进行限定

然后过了一会儿,前端项目就生成好了,它的回答还给了我运行该项目的指南,只需要根据该指南,执行终端的命令,下载对应的框架和依赖,就可以跑起来了,一开始生成的页面显示有一点点问题,我花了半个小时调了一下,然后就能够正常显示了。

但是你会发现此时的项目好像不能正常地向后端发送请求,这可能是由于跨域的问题或者是请求路径的问题,但这个时候已经很晚了,我就先下机了,没关系,我准备明天继续用Trae调教一下,应该就可以了!

🔗第二天:一上午完成前后端联调

刚刚提到,我们的前端此时能正常运行了,后端也能正常运行了,但是前端却不能正常拿到后端的数据,于是我让Trae帮我分享了一下该前端请求相关的代码

然后发现是给后端发送请求的路径出了些问题,接着我就不断地调,后面确保路径没问题了再发请求

但这里发现还存在跨域问题,于是最后我又返回后端,叫AI帮我为后端配置跨域请求,然后就可以正常发送请求并返回数据了!

🏆项目完成了!

至此,限时两周的课设项目,我一天半的时间就完成了!虽然某些地方有一点点瑕疵,但是基本的业务需求都能涵盖,还让我能在老师的答辩下取得高分,这还是在遇到了很多坑的情况下,如果操作的得当的话,我认为理论上半天时间就能完成!这让给我不得不感慨VibeCoding的强大!全程我几乎没写任何一行代码,我花的时间几乎都是在关注业务上。

这次的项目虽然说只是一个简单的CURD的内部管理系统,但是如果是以传统编程的方式肯定还是要花费我们大量的时间和精力在这上面,但是使用VibeCoding之后,一方面,我们无需再花大量的时间去编写一些重复的CRUD代码,另一方面,我们无需花大量的精力去专注于解决平时在书写时遇到的bug,AI生成的代码,只可能是业务上的BUG,基本上不会出现技术上的BUG,所以我们要做的就是,把时间主要花在熟悉业务上即可!编程方式从书写代码转变成了书写Prompt,所以作为一个Vibe Coder,要做的是精进Prompt的表达!专注于业务!

结尾

在我的项目完成的那一刻,我真正地做到了落地Vibe Coding的理念,我真的很感慨而激动,感慨于如今AI的强大之处,激动于它切切实实地帮我解决了我的生活中遇到的问题,而未来的AI一定会越来越强大,所以我们一定要学习前瞻技术,拥抱AI!!!

相关推荐
小小小小宇6 分钟前
TS泛型笔记
前端
小小小小宇11 分钟前
前端canvas手动实现复杂动画示例
前端
codingandsleeping12 分钟前
重读《你不知道的JavaScript》(上)- 作用域和闭包
前端·javascript
小小小小宇37 分钟前
前端PerformanceObserver使用
前端
zhangxingchao2 小时前
Flutter中的页面跳转
前端
烛阴2 小时前
Puppeteer入门指南:掌控浏览器,开启自动化新时代
前端·javascript
excel2 小时前
Nginx 与 Node.js(PM2)的对比优势及 HTTPS 自动续签配置详解
后端
全宝3 小时前
🖲️一行代码实现鼠标换肤
前端·css·html
小小小小宇3 小时前
前端模拟一个setTimeout
前端
萌萌哒草头将军3 小时前
🚀🚀🚀 不要只知道 Vite 了,可以看看 Farm ,Rust 编写的快速且一致的打包工具
前端·vue.js·react.js