我开源了一个“宝藏”开源项目
我开源了一个“宝藏”开源项目 - AI需求分析项目 | 适合交作业和学习
🚀 前言
大家好!最近在学习软件工程和大模型应用开发的过程中,我发现许多学生都遇到了需求分析AI的题目。把一份需求文档转化为用户故事、实体关系或数据库设计,对于初学者来说确实有些挑战。
于是我开发了一个基于AI的需求分析工具——AI需求分析师,希望能帮助正在学习软件工程或数据库设计的同学们:
- 快速理解需求文档转换为技术设计的过程
- 为课程作业提供灵感和参考
- 学习现代前端框架和AI应用开发
项目已经开源在GitHub上(地址在文末),欢迎大家使用、学习和贡献!
欢迎大家Fork或是Star这个项目!
📋 项目介绍
AI需求分析师是一个完整的Web应用,基于现代前端框架Remix构建,集成了OpenAI API,能够智能分析需求文档,自动生成用户故事、需求实体和数据库设计。
项目特点:
- ✅ 完整的用户系统:注册、登录、找回密码等功能
- 💡 AI驱动分析:使用OpenAI API智能解析需求文档
- 📊 三种分析结果:用户故事、实体分析、数据库设计
- 🎨 美观的UI:基于TailwindCSS的现代界面设计
- 📱 响应式设计:完美支持移动端和桌面端
- 🔐 安全可靠:完善的错误处理和数据验证
技术栈
- 前端框架:Remix - React框架,带有服务器端渲染
- 样式方案:TailwindCSS - 实用优先的CSS框架
- 数据库:Prisma + SQLite(可扩展至其他数据库)
- 认证:自定义JWT会话认证系统
- AI集成:OpenAI API(GPT-4)
🖼️ 效果展示
- 首页:展示应用介绍和主要功能
- 项目管理页:展示用户创建的所有项目
- 需求分析页:展示需求输入和分析结果
- 用户故事示例:AI生成的用户故事格式和内容
- 实体分析示例:AI识别的业务实体及关系
- 数据库设计示例:AI推荐的数据库模式设计
💻 如何使用
安装步骤
- 克隆仓库
git clone https://github.com/yourusername/ai-requirements-analyzer.git
cd ai-requirements-analyzer
- 安装依赖
npm install
- 设置环境变量
vim .env
# 编辑.env文件,添加必要的配置
- 初始化数据库
npx prisma migrate dev --name init
- 启动开发服务器
npm run dev
- 访问应用
http://localhost:5173
环境变量配置
项目需要以下环境变量:
# 数据库配置
DATABASE_URL="file:./dev.db"# 会话安全密钥
SESSION_SECRET="your-super-secret-session-key"# OpenAI API密钥
OPENAI_API_KEY="your-openai-api-key"# 应用URL - 用于生成密码重置链接
APP_URL="http://localhost:5173"# 邮件服务器配置
SMTP_HOST="smtp.gmail.com"
SMTP_PORT="587"
SMTP_SECURE="false"
SMTP_USER="your-email@gmail.com"
SMTP_PASS="your-app-password"
💡 提示:如果你只是学习使用,不需要真实的邮件功能,可以使用Ethereal提供的测试服务,详见项目README。
🔍 核心功能详解
1. 用户故事生成
输入一份需求文档后,AI会自动解析并生成符合敏捷开发标准的用户故事,格式为:
作为一个[角色],我想要[功能],以便[好处]。
这对学习敏捷开发和用户故事编写的同学非常有帮助。AI会尝试识别所有可能的角色和功能点,确保复盖面广泛。
2. 需求实体分析
AI会识别需求文档中提到的所有业务实体,并分析它们的属性和关系。例如,对于一个学生管理系统,可能会识别出:
- 学生(属性:学号、姓名、年龄…)
- 课程(属性:课程ID、名称、学分…)
- 关系:学生可以选修多门课程,一门课程可以被多个学生选修
这对于理解实体关系和学习领域建模的同学很有启发。
3. 数据库设计生成
基于实体分析,AI会自动生成数据库设计方案,包括:
- 表结构定义
- 字段类型和约束
- 主键和外键关系
- 索引建议
这对数据库课程的作业和设计很有帮助,可以作为一个参考或起点。
📚 学习价值
这个项目不仅是一个实用工具,更是一个学习平台,学生可以从中学习到:
-
现代前端开发
- React和Remix框架的使用
- TailwindCSS的实用优先CSS理念
- 响应式设计和组件化开发
-
后端和数据库知识
- Prisma ORM的使用
- 数据库关系设计
- RESTful API设计
-
AI应用开发
- 提示工程技术(Prompt Engineering)
- 大语言模型集成方法
- AI生成内容的处理和展示
-
软件工程实践
- 需求分析方法论
- 用户故事编写
- 实体关系设计
- 数据库模式设计
🛠️ 定制和学习建议
对CS/软件工程专业学生的建议
-
学习代码结构
- 研究项目的文件结构和模块设计
- 了解前后端数据流和状态管理
-
扩展功能
- 添加导出功能(PDF、Word等)
- 实现版本历史记录
- 添加团队协作功能
-
改进AI提示词
- 修改
app/utils/openai.server.ts
中的提示词 - 尝试不同的格式和指令,比较效果
- 研究如何更好地引导AI生成结构化内容
- 修改
对数据库课程学生的建议
-
扩展数据库设计功能
- 添加ER图生成
- 支持SQL脚本导出
- 添加不同数据库平台的特定语法支持
-
改进实体识别
- 优化实体关系的识别算法
- 添加对多对多关系的更好支持
- 实现更复杂的数据完整性约束识别
对AI/ML专业学生的建议
-
优化模型使用
- 尝试不同的温度和参数设置
- 比较不同模型(GPT-3.5 vs GPT-4)的效果差异
- 实现结果评估和反馈机制
-
添加本地模型支持
- 集成开源模型如LLaMA(可以使用ollama)
- 研究如何降低API成本
- 实现混合提示策略
🤝 如何贡献
我非常欢迎同学们对这个项目进行贡献!无论是修复bug、添加新功能,还是改进文档,都是非常宝贵的。
贡献流程:
- Fork仓库
- 创建特性分支 (
git checkout -b feature/AmazingFeature
) - 提交更改 (
git commit -m 'Add some AmazingFeature'
) - 推送到分支 (
git push origin feature/AmazingFeature
) - 打开Pull Request
📞 联系我
如果你有任何问题、建议或想法,欢迎通过以下方式联系我:
- 邮箱:leo92816leo92816@gmail.com
- GitHub:我的GitHub账号
⭐ 结语
希望这个工具能够帮助更多正在学习软件工程、数据库设计或AI应用开发的同学。技术是为了解决问题,而学习技术的过程中,动手实践永远是最好的老师。
如果这个项目对你有帮助,别忘了在GitHub上给它一个星星⭐,这是对我最大的鼓励!
🔗 项目地址:GitHub - AI需求分析师
🔗 部属地址:Vercel - 部属地址 (純前端)
感谢阅读!欢迎在评论区留言讨论,也欢迎分享给可能需要的同学!
相关文章:
我开源了一个“宝藏”开源项目
我开源了一个“宝藏”开源项目 - AI需求分析项目 | 适合交作业和学习 🚀 前言 大家好!最近在学习软件工程和大模型应用开发的过程中,我发现许多学生都遇到了需求分析AI的题目。把一份需求文档转化为用户故事、实体关系或数据库设计ÿ…...
从零实现Agent智能体配置使用(Ragflow)
从零实现Agent智能体配置使用(Ragflow) 1. 创建智能体2. 配置智能体2.1 配置问题识别2.2 配置问题分类2.3 不同问题进行单独配置2.4 保存Agent 3. 体验效果 1. 创建智能体 2. 配置智能体 2.1 配置问题识别 2.2 配置问题分类 2.3 不同问题进行单独配置 当…...
Fluent VOF水下固体火箭发射仿真
本案例利用VOF模型对水下固体火箭(10m水深)发动机点火初期的流场进行了仿真。该案例所用模型为假设模型,且缺少相关燃气参数,仅作计算设置参考。通过此案例后续跨可以对不同水深、不同模型的工况展开类似仿真计算。 1 假设说明 …...
电脑死机/锁屏后死机无法唤醒
电脑死机/锁屏后死机无法唤醒 导航 文章目录 电脑死机/锁屏后死机无法唤醒导航一、系统日志分析二、电源管理与睡眠模式问题1、禁用快速启动2、调整电源计划(开启高性能模式&关闭硬盘休眠)若是没有禁用睡眠和关闭显示器方法一:方法二&am…...
爱普生可编程晶振SG8201CJ和SG8200CJ在胃镜机器人发挥重要作用
在医疗机器人技术高速发展的今天,胃镜机器人作为胃肠道疾病诊断与治疗的创新设备,正逐渐改变传统诊疗模式。其复杂精密的系统需要精准的时间同步与稳定的信号输出,胃镜机器人是一种先进的医疗设备,用于无创性地检查胃部疾病。与传…...
按规则批量修改文件名称,支持替换或删除文件名称中的内容
文件重命名的需求在我们工作中是非常常见的一个需求,也非常的重要的一个需求,我相信很多小伙伴在工作中都会碰到需要进行文件重命名的场景。今天就给大家介绍一个文件重命名的方法,支持多种方式批量修改文件名称。功能非常的强大,…...
scrum详细理解
Scrum与传统瀑布模型区别 瀑布模型:需要花费几个月来规划产品----->在花费几个月时间进行研发----->产品测试、评审----->最终发布产品 缺点:①如果市场需求发生变化,研发的产品可能无法满足市场需求 ②产品规划必须早于后续工作之…...
数据结构(五)——AVL树(平衡二叉搜索树)
目录 前言 AVL树概念 AVL树的定义 AVL树的插入 右旋转 左旋转 左右双旋 右左双旋 插入代码如下所示 AVL树的查找 AVL树的遍历 AVL树的节点个数以及高度 判断平衡 AVL树代码如下所示 小结 前言 前面我们在数据结构中介绍了二叉搜索树,其中提到了二叉搜…...
Linux文件传输:让数据飞起来!
一、前置任务 为了便于实验,我用母盘的虚拟机克隆出两台虚拟机来模拟两台主机进行文件传输 查询两台主机的IP BL1 192.168.163.130/24 BL2 192.168.88.129/24 二、文件传输 scp命令 不填选项正常显示进度的传输-q静默传输-r递归传输(用于传输目录及目…...
repo仓库文件清理
1. repo 仓库内文件清理 # 清理所有Git仓库中的项目 repo forall -c git clean -dfx # 重置所有Git 仓库中的项目 repo forall -c git reset --hard 解释: repo forall -c git clean -dfx: repo forall 是一个用于在所有项目中执行命令的工具。-c 后…...
MyBatis-Plus 的 FieldStrategy 属性
前几天做个需求的时候,有几个字段在更新的时候,可能为空。想着MyBatis-Plus有注解可以直接使用,就找寻了一下。此处记录一下。我用的MyBatis-Plus的版本是 3.5.1。版本之间对于 TableField 中的方法定义有些区别,但大体相差不大。…...
解锁塔能科技,开启工厂绿色转型与可持续发展双引擎
在全球积极推进可持续发展的大背景下,能源的高效利用与节能减排,已成为各行各业迈向高质量发展进程中无法回避的核心任务。工厂作为能源消耗大户与污染排放重点源头,其绿色转型迫在眉睫,这不仅关乎企业自身的长远发展,…...
c++进阶--智能指针
大家好,今天我们来学习一下c中的智能指针部分。 智能指针的使⽤及其原理 1. 智能指针的使⽤场景分析 下⾯程序中我们可以看到,new了以后,我们也delete了,但是因为抛异常导,后⾯的delete没有得到执⾏,所以…...
五种常用的web加密算法
文章目录 五种常用Web加密算法实战及原理详解1. AES (高级加密标准)原理详解应用场景实战代码(Node.js) 2. RSA (非对称加密)原理详解应用场景实战代码(Node.js) 3. SHA-256 (安全哈希算法)原理详解应用场景实战代码(浏…...
LeetCode 题目 「二叉树的右视图」 中,如何从「中间存储」到「一步到位」实现代码的优化?
背景简介 在 LeetCode 的经典题目 「二叉树的右视图」 中,我们需要返回从右侧看一棵二叉树时所能看到的节点集合。每一层我们只能看到最右边的那个节点。 最初,我采用了一个常规思路:层序遍历 每层单独保存节点值 最后提取每层最后一个节…...
MySQL——存储过程、索引
一、存储过程 1、存储过程使用的场景 例如:有一个购物网站,要验证查询商品的性能,测试之前肯定要准备大量的测试数据,如果是通过 执行 insert 语句一条一条进行插入,效率很低。这种情况下,写一个存储过程…...
【项目管理】第9章 项目范围管理
相关文档,希望互相学习,共同进步 风123456789~-CSDN博客 (一)知识总览 项目管理知识域 知识点: (项目管理概论、立项管理、十大知识域、配置与变更管理、绩效域) 对应:第6章-第19章 (二)知识笔记 第9章 项目范围管理 1.管理基础 1.1 产品范围…...
无人机隐身技术难点要点!
全频段雷达隐身 频段覆盖挑战:传统隐身材料(如铁氧体、掺杂半导体)多针对特定频段(如X波段),难以应对米波至毫米波的宽频段探测。 低频段突破:低频雷达(如米波雷达)波长…...
gerrit配置及使用git-lfs
gerrit服务器端配置 下载git-lfs插件 登录Dashboard [Jenkins] (gerritforge.com),下载对应版本的插件 配置gerrit 将下载的lfs.jar插件放到${GERRIT_SITE}/plugins/下面为所有仓库启用git-lfs 此步骤需要修改 All-projects 仓库配置,步骤如下 1、克隆仓…...
基于DNS的负载均衡和反向代理负载均衡
基于 DNS 的负载均衡和反向代理负载均衡有一些相似之处,但实际上它们存在诸多区别,主要体现在以下几个方面: 工作原理 DNS 负载均衡:通过在 DNS 服务器中为同一主机名配置多个 IP 地址,DNS 服务器根据一定的算法&…...
Windows10 ssh无输出 sshd服务启动失败 1067报错 公钥无法认证链接 解决办法
背景描述 最近突然发现windows 10的ssh服务好像挂了,在系统设置-可选功能那里反复重新安装还是报错。命令行输入ssh按回车无输出(正常情况下应该输出一堆参数说明),但是Get-Command ssh 又可以找到system32下的ssh程序。任务管理…...
【图书管理系统】深入解析基于 MyBatis 数据持久化操作:全栈开发图书管理系统:查询图书属性接口(注解实现)、修改图书属性接口(XML 实现)
查询图书属性接口 约定前后端交互接口 约定前后端交互接口,进入修改页面,需要显示当前图书的信息; 请求 /book/queryBookById?bookId25 参数 无 响应 { "id": 25, "bookName": "图书21", "…...
消息队列(IPC技术)
目录 一、Linux 中主要的进程间通信方式如下: 二、消息队列函数 (1)msgget函数 功能概述 函数原型 参数解释 返回值 示例 结果 问题 (2) msgsnd函数 功能概述 函数原型 参数说明 返回值 示例 结果 (3࿰…...
分支语句和循环语句
什么是语句? C语言中由一个分号;隔开的就是一条语句。 比如: printf("haha");12;分支语句 if语句 if语句的语法结构: if(表达式)语句;if(表达式)语句1; else语句2;//多分支 if(表达式1)语句1; else if(表达式2)语句2; else语句3;在C语言…...
MySQL基础 [八] - 事务
目录 前言 什么是事务 事务的版本支持 事务的提交方式 事务的相关演示 并行事务引发的问题 脏读 dirty read 不可重复读 non-repeatable read 幻读 phantom read 事务的隔离级别 查看与设置隔离级别 读未提交(Read Uncommitted) 读提交&…...
深入理解Java反射
反射(Reflection)是Java语言的一个强大特性,它允许程序在运行时动态地获取类的信息并操作类或对象的属性、方法和构造器。就是在获取运行时的java字节码文件,通过各种方法去创建对象,反射是Java被视为动态语言的关键特性之一。 反射其实就是…...
【UE】渐变框材质
效果 步骤 新建一个材质,这里命名为“M_GlowingBorder”,打开“M_GlowingBorder”后,设置材质域为“用户界面”,混合模式为“半透明” 添加如下节点: 代码: Begin Object Class/Script/UnrealEd.Materia…...
2025年第十八届“认证杯”数学中国数学建模网络挑战赛【ABCD题】思路分析
首先,需要理解用户的需求。问题1需要数学模型来确定小行星的相对距离,而问题2需要预测短期轨道并计算特定时间的观测角度。这两个问题都需要结合天文学和数学建模的知识,涉及到轨道力学和几何定位的方法。 接下来,查阅提供的搜索…...
JavaScript 性能优化:突破瓶颈的实战指南
一、引言 在现代 Web 应用和 Node.js 服务端开发中,JavaScript 已成为核心编程语言。随着应用复杂度提升,性能问题愈发凸显。高延迟、卡顿甚至崩溃等现象,不仅影响用户体验,还可能导致业务流失。深入理解 JavaScript 性能瓶颈并…...
HarmonyOS:组件布局保存至相册
一,需求背景 有这样一个需求,将页面上的某个自定义组件以图片的形式保存至相册。 二,需求拆解 根据需求分析,可将需求拆解成两步: 1,将组件转换成图片资源; 2,将图片保存到相册…...
【langchain库名解析】
目录 一、from langchain_openai import ChatOpenAI 1. 核心功能 2. 典型使用场景 场景 1:直接生成对话回复 场景 3:流式输出(逐词显示结果) 3. 与其他 LangChain 组件的协同 结合提示模板(PromptTemplate&#…...
629SJBH图书管理系统设计与实现
一、 绪论 (一)课题的提出、现状及研究意义 图书馆是文献情报中心,是为教学和科研服务的学术性机构。它履行搜集、加工、存贮和传播知识信息的职能,与各系资料室互为补充,共同承担为教学和科研提供文献情报资料保障的…...
2025 年“认证杯”数学中国数学建模网络挑战赛 A题 小行星轨迹预测
近地小行星( Near Earth Asteroids, NEAs )是轨道相对接近地球的小行 星,它的正式定义为椭圆轨道的近日距不大于 1.3 天文单位( AU )的小行星。 其中轨道与地球轨道最近距离小于 0.05A 且直径大于 140 米的小行星被…...
PhotoShop学习09
1.弯曲钢笔工具 PhotoShop提供了弯曲钢笔工具可以直观地创建路径,只需要对分段推拉就能够进行修改。弯曲港币工具位于工具面板中的钢笔工具里,它的快捷键为P。 在使用前,可以把填充和描边选为空颜色,并打开路径选项,勾…...
远程管理命令:关机和重启
关机/重启 序号命令对应英文作用01shutdown 选项 时间shutdown关机 / 重新启动 一、shutdown shutdown 命令可以安全关闭 或者 重新启动系统。 选项含义-r重新启动 提示: 不指定选项和参数,默认表示 1 分钟之后 关闭电脑远程维护服务器时࿰…...
用Perl和HTTP::Tiny库的爬虫
HTTP::Tiny是Perl的一个轻量级HTTP客户端,适合简单的请求,但不像LWP那样功能全面,不过对于基本需求应该足够了。 首先,我需要熟悉HTTP::Tiny的基本用法。比如如何发起GET请求,设置user-agent,处理响应。用…...
MPP 架构解析:原理、核心优势与对比指南
一、引言:大数据时代的数据处理挑战 全球数据量正以指数级增长。据 Statista 统计,2010 年全球数据量仅 2ZB,2025 年预计达 175ZB。企业面临的核心挑战已从“如何存储数据”转向“如何快速分析数据”。传统架构在处理海量数据时暴露明显瓶颈…...
2025.04.10-拼多多春招笔试第三题
📌 点击直达笔试专栏 👉《大厂笔试突围》 💻 春秋招笔试突围在线OJ 👉 笔试突围OJ 03. 数字重排最大化问题 问题描述 LYA是一位专业的数字设计师。她手中有两个数字序列 s 1 s_1...
前端-vue2核心
官网网址Vue2 安装 — Vue.js 搭建环境 第一种方式(刚开是接触Vue) 我们看官网,可以直接在script引入vue版本。这里有两个版本,开发版和生产版本。我们两个都下载。 然后创建一个项目,将下载的生产版本和开发版本粘…...
基于springboot的“协同过滤算法的高考择校推荐系统”的设计与实现(源码+数据库+文档+PPT)
基于springboot的“协同过滤算法的高考择校推荐系统”的设计与实现(源码数据库文档PPT) 开发语言:Java 数据库:MySQL 技术:springboot 工具:IDEA/Ecilpse、Navicat、Maven 系统展示 系统功能结构图 局部E-R图 系统…...
制作前的关键筹备:考试考核系统之核心要点
明确系统使用目的 制作考试考核系统前,企业需明确系统使用目的,这是开发基石,不同目的决定系统功能特性。用于员工培训考核时,系统要与培训内容结合,能生成相应考题,检验员工知识掌握程度,具备…...
【动手学深度学习】现代卷积神经网络:ALexNet
【动手学深度学习】现代卷积神经网络:ALexNet 1,ALexNet简介2,AlexNet和LeNet的对比3, AlexNet模型详细设计4,AlexNet采用ReLU激活函数4.1,ReLU激活函数4.2,sigmoid激活函数4.3,为什…...
Linux自启动脚本 systemctl
1.编写好脚本 #!/bin/bash /home/china/Linux/code/a.out2. 创建 Systemd 服务文件 sudo gedit /etc/systemd/system/my_script.service3.编写服务配置 将以下内容写入文件(根据需求修改字段): [Unit] DescriptionMy Custom Shell Script…...
2024年KBS SCI1区TOP:信息增益比子特征分组赋能粒子群算法ISPSO,深度解析+性能实测
目录 1.摘要2.信息度量3.改进策略4.结果展示5.参考文献6.代码获取 1.摘要 特征选择是机器学习中的关键预处理步骤,广泛应用于实际问题。尽管粒子群算法(PSO)因其强大的全局搜索能力被广泛用于特征选择,但要开发一种高效的PSO方法…...
餐饮厨房开源监控安全系统的智能革命
面对日益严格的合规要求和消费者对卫生的信任危机,传统人工监督已力不从心:卫生死角难发现、违规操作难追溯、安全隐患防不胜防。如何让后厨更透明、更安全、更可信?餐饮厨房视频安全系统横空出世!这套系统融合实时监控与AI技术&a…...
Ansys Electronics 变压器 ACT
你好, 在本博客中,我将讨论如何使用 Ansys 电子变压器 ACT 自动快速地设计电力电子电感器或变压器。我将逐步介绍设计和创建电力电子变压器示例的步骤,该变压器为同心组件,双绕组,采用正弦电压激励,并应用…...
Redis与Lua原子操作深度解析及案例分析
一、Redis原子操作概述 Redis作为高性能的键值存储系统,其原子性操作是保证数据一致性的核心机制。在Redis中,原子性指的是一个操作要么完全执行,要么完全不执行,不会出现部分执行的情况。 Redis原子性的实现原理 单线程模型&a…...
Shell 脚本开发从入门到实战
第1章:什么是 Shell 与 Shell 脚本? 一、Shell 是什么? Shell 是一个命令解释器,是你在 Linux 里敲命令的地方。你平时用的命令如 cd、ls、echo,其实都由 Shell 来解析执行。最常见的 Shell 是 Bash,绝大…...
宇视设备视频平台EasyCVR打造智慧酒店安防体系,筑牢安全防线
一、需求背景 酒店作为人员流动频繁的场所,对安全保障与隐私保护有着极高的要求。为切实维护酒店内部公共区域的安全秩序,24小时不间断视频监控成为必要举措。通常情况下,酒店需在本地部署视频监控系统以供查看,部分连锁酒店还希…...
深度解读分销小程序商城源码系统:从搭建到运营的关键指南
在移动互联网浪潮的席卷下,电商领域持续变革与创新。分销小程序商城凭借其独特优势,如依托社交平台流量、便捷的购物体验、高效的分销推广模式等,成为众多企业和创业者开展线上业务的热门选择。深入了解分销小程序商城源码系统,从…...