/morgana-form

莫甘娜问卷表单编辑器,低代码快速搭建表单,AI表单生成,表单数据搜集统计

Primary LanguageTypeScriptApache License 2.0Apache-2.0

MorGana 问卷星

项目介绍

最近研究Next全栈开发,做一个全栈问卷星表单搭建器项目,能够帮助快速搭建一个问卷表单收集项目,项目采用Next全栈开发,涉及技术栈如下:

  • React 18
  • Next 14
  • Typescript
  • Ant Design 5
  • Ant Design Charts
  • PostgreSQL
  • Drizzle ORM
  • TRPC
  • Tailwind CSS
  • Next-Auth 登陆认证
  • Uppy 文件上传

项目目录

├── README.md
├── package.json
├── next.config.js
├── src
│   ├── components
│   │   ├── featur 功能型组件
│   │   ├── UI 基础UI组件
│   ├── hooks 自定义hooks
│   ├── lib 工具包
│   ├── app 项目页面
│   ├── constants 常量
│   ├── store redux store
│   ├── theme 主题定义
│   ├── typings 类型定义
│   ├── server 服务端代码
│   ├── types 类型定义
|── packages
│   ├── components 搭建组件代码包

项目启动

# 安装依赖  
pnpm install 

# 启动项目  
pnpm run dev

环境变量

项目依赖的一些必要环境参数

数据库相关

DB_HOST 数据库域名
DB_PORT 数据库端口
DB_USER 数据库用户名
DB_PASSWORD 数据库密码
DB_DATABASE 数据库名称

NextAuth登陆相关

NEXT_AUTH_SECRET NextAuth登陆秘钥
GIT_HUB_CLIENT_ID Github OAuth Client ID
GIT_HUB_CLIENT_SECRET Github OAuth Client Secret
GITLAB_CLIENT_ID Gitlab OAuth Client ID
GITLAB_CLIENT_SECRET Gitlab OAuth Client Secret

上传服务相关

项目采用的七牛云存储,如果采用其他云存储,保持七牛云环境变量名,设置对应存储服务的相关参数即可。

QINIU_BUCKET 存储空间名
QINIU_ACCESS_KEY AccessKey
QINIU_SECRET_KEY SecretKey
QINIU_ENDPOINT 填写对应服务的S3上传域名
QINIU_REGION 区域 QINIU_HOST 上传域名

AI模型

项目采用了阿里千问大模型进行表单生成,可以尝试将大模型自行切换,调整 server/routes/llm.ts 文件中的调用逻辑即可。如果不需要AI能力,去除项目中的相关代码即可。

LLM_URL: 千问大模型API地址
LLM_APP_KEY: 千问大模型API Key

联系

当前项目开发第一版,可能存在较多问题,欢迎大家提出宝贵意见。

如果您发现任何代码问题,请随时提交问题。作者会及时更新和修复。谢谢

bangtz (Add please note vue-weui)

License

Apache License 2.0