logo
0
0
WeChat Login

专业英语写作教练

一个基于AI的专业英语写作助手,帮助用户创作和优化高质量英语作文。

功能特性

🎯 核心功能

  • AI作文生成: 根据用户需求生成专业英语作文
  • 作文优化: 对现有作文进行语法修正、润色提升、结构优化等
  • 多场景支持: 学术论文、商务邮件、考试作文、日常交流、演讲等多种场景

👤 用户系统

  • 用户注册/登录: 基于Supabase的用户认证系统
  • 个人资料管理: 用户信息管理和设置
  • 会话管理: 安全的用户会话和状态管理

🎨 界面特性

  • 现代化UI: 基于shadcn/ui组件的美观界面
  • 响应式设计: 支持桌面和移动设备
  • 实时反馈: Toast通知和加载状态提示

技术栈

  • 前端框架: React 18 + TypeScript
  • UI组件库: shadcn/ui + Tailwind CSS
  • 路由管理: React Router DOM
  • 状态管理: React Context + React Query
  • 后端服务: Supabase (认证 + 数据库)
  • AI服务: Coze API
  • 构建工具: Vite

快速开始

环境要求

  • Node.js 18+
  • npm 或 yarn

安装依赖

npm install

环境配置

确保以下环境变量已正确配置:

  1. Supabase配置 (已在 src/integrations/supabase/client.ts 中配置)

    • SUPABASE_URL
    • SUPABASE_PUBLISHABLE_KEY
  2. Coze API配置 (已在 src/services/cozeApi.ts 中配置)

    • API Token
    • Bot ID

启动开发服务器

npm run dev

访问 http://localhost:5173 查看应用

项目结构

src/ ├── components/ # UI组件 │ ├── ui/ # shadcn/ui基础组件 │ ├── ProtectedRoute.tsx # 受保护路由组件 │ ├── UserMenu.tsx # 用户菜单组件 │ └── ScenarioSelect.tsx # 场景选择组件 ├── contexts/ # React Context │ └── AuthContext.tsx # 用户认证上下文 ├── hooks/ # 自定义Hooks ├── integrations/ # 第三方服务集成 │ └── supabase/ # Supabase配置 ├── pages/ # 页面组件 │ ├── Index.tsx # 首页 │ ├── Login.tsx # 登录页 │ ├── Register.tsx # 注册页 │ ├── GenerateEssay.tsx # 生成作文页 │ └── OptimizeEssay.tsx # 优化作文页 ├── services/ # API服务 │ └── cozeApi.ts # Coze API集成 └── App.tsx # 应用入口

用户认证流程

注册流程

  1. 用户访问注册页面 (/register)
  2. 填写姓名、邮箱、密码等信息
  3. 提交注册表单
  4. Supabase发送邮箱验证邮件
  5. 用户验证邮箱后完成注册

登录流程

  1. 用户访问登录页面 (/login)
  2. 输入邮箱和密码
  3. 验证成功后跳转到首页
  4. 用户状态保存在AuthContext中

受保护页面

  • 生成作文页面 (/generate)
  • 优化作文页面 (/optimize)
  • 需要登录才能访问,未登录用户自动跳转到登录页

数据库结构

profiles表

CREATE TABLE profiles ( id UUID REFERENCES auth.users(id) PRIMARY KEY, full_name TEXT, email TEXT, avatar_url TEXT, created_at TIMESTAMP WITH TIME ZONE DEFAULT NOW(), updated_at TIMESTAMP WITH TIME ZONE DEFAULT NOW() );

chat_history表

CREATE TABLE chat_history ( id UUID DEFAULT gen_random_uuid() PRIMARY KEY, user_id UUID REFERENCES auth.users(id), message TEXT NOT NULL, response TEXT NOT NULL, created_at TIMESTAMP WITH TIME ZONE DEFAULT NOW() );

部署

构建生产版本

npm run build

预览构建结果

npm run preview

开发指南

添加新页面

  1. src/pages/ 创建新页面组件
  2. src/App.tsx 中添加路由
  3. 如需保护页面,使用 ProtectedRoute 组件包装

添加新组件

  1. src/components/ 创建组件
  2. 使用shadcn/ui组件库保持UI一致性
  3. 添加TypeScript类型定义

API集成

  1. src/services/ 创建API服务文件
  2. 使用统一的错误处理和加载状态
  3. 集成到React Query进行缓存管理

贡献指南

  1. Fork 项目
  2. 创建功能分支 (git checkout -b feature/AmazingFeature)
  3. 提交更改 (git commit -m 'Add some AmazingFeature')
  4. 推送到分支 (git push origin feature/AmazingFeature)
  5. 打开 Pull Request

许可证

本项目采用 MIT 许可证 - 查看 LICENSE 文件了解详情

联系方式

如有问题或建议,请通过以下方式联系:

About

用于承载英语写作教练项目的仓库

Language
TypeScript85.1%
Markdown8.4%
SQL2.1%
CSS1.6%
Others2.8%