Skip to content

Repository files navigation

AI 六级作文老师

一个按 CET-6 写作场景工作的 AI 作文批改与提分工具。前端保留 Next.js,后端已全部迁移到 Java:

  • 前端:Next.js 15、React 19、TypeScript、Tailwind CSS
  • 后端:Java 21、Spring Boot 4.1、Spring Security、Spring Data JPA
  • 数据库:PostgreSQL、Flyway
  • 外部服务:OpenAI-compatible 模型、阿里云短信、微信支付 V3

浏览器仍然请求原来的 /api/* URL,Next.js 会把请求转发到 Java 服务,因此前端接口契约没有变化。

产品界面

AI 六级作文老师产品界面

最快启动:Docker

需要 Docker Desktop:

cp .env.example .env
docker compose up --build

打开 http://localhost:3000。PostgreSQL 和 Spring Boot 会一起启动,Flyway 会自动建表。

未配置 AI key 时,作文批改会返回本地演示报告;OCR 会提示手动输入。开发环境未配置阿里云短信时,验证码只打印在 Java 后端日志中;未配置微信商户号时会返回模拟支付链接。

本地开发

需要:

  • Node.js 20+
  • JDK 21
  • Docker(只用来运行 PostgreSQL 也可以)

先启动数据库:

docker compose up -d postgres

复制并填写环境变量:

cp .env.example .env

默认本地数据库配置应为:

DATABASE_URL=postgresql://postgres:postgres@localhost:5432/cet6_essay_teacher
JAVA_BACKEND_URL=http://localhost:8080

安装依赖并同时启动前后端:

npm install
npm run dev

也可以分开启动:

npm run dev:backend
npm run dev:web

验证

npm run lint
npm run typecheck
npm run test:backend
npm run build

Java 后端也可以独立验证:

cd backend
./mvnw test
./mvnw package

后端接口

原接口 URL 与响应结构保持不变:

  • POST /api/auth/send-code
  • POST /api/auth/verify-code
  • GET /api/auth/me
  • POST /api/auth/logout
  • POST /api/review
  • POST /api/ocr
  • POST /api/payment/create
  • GET /api/payment/status/{orderId}
  • POST /api/payment/notify

Spring Boot 健康检查:GET /actuator/health

数据迁移说明

Java 实体沿用原 Prisma 表名、列名与字段类型。已有 PostgreSQL 数据库启动时,Flyway 会以现有 schema 为基线,不会要求清空用户、验证码、使用记录或支付订单。全新数据库会执行 V1__existing_prisma_schema.sql

部署

前端与 Java 后端需要作为两个服务部署:

  1. 部署 PostgreSQL。
  2. 部署 backend/Dockerfile,配置 .env.example 中的后端变量。
  3. 构建前端时,把 JAVA_BACKEND_URL 设置为 Java 后端的内部或公开地址。
  4. 微信支付的 WECHAT_PAY_NOTIFY_URL 指向 Java 服务的 /api/payment/notify

如果前端继续部署在 Vercel,只运行 npm run build:web;Java 后端必须部署到支持常驻 JVM 或容器的平台。

About

ai自动批改6级作文

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages