Tomorrow.AI 学习平台是一个双语(中/英)高端教育平台,专为交互式科学演示而设计。它具有"数字实验室"的美学风格、用于物理/数学模拟的代码沙盒以及 AI 助手框架。
npm run setup-
安装前端依赖
npm install
-
安装后端依赖
cd backend npm install -
初始化数据库
npm run init-db
需要同时启动前端和后端:
终端 1 - 启动后端:
npm run server:dev终端 2 - 启动前端:
npm run dev- 前端: http://localhost:5173
- 后端 API: http://localhost:3001
Tomorrow.AI/
├── App.tsx # 主 UI 逻辑
├── types.ts # TypeScript 类型定义
├── constants.ts # 翻译字典和种子数据
├── services/
│ ├── apiService.ts # API 客户端封装
│ ├── storageService.ts # 数据存储服务(API 模式)
│ └── geminiService.ts # AI 服务接口
├── components/
│ ├── CategoryTreeNode.tsx # 递归分类树
│ ├── DemoPlayer.tsx # 演示播放器
│ ├── UploadWizard.tsx # 上传向导
│ ├── StatsCard.tsx # 统计卡片
│ └── Modals.tsx # 弹窗组件
├── backend/ # 后端 API 服务
│ ├── server.js # Express 服务器入口
│ ├── database.js # SQLite 数据库连接
│ ├── routes/ # API 路由
│ │ ├── auth.js # 认证路由
│ │ ├── demos.js # 演示路由
│ │ ├── communities.js # 社区路由
│ │ ├── categories.js # 分类路由
│ │ └── bounties.js # 悬赏路由
│ └── scripts/
│ └── initDb.js # 数据库初始化脚本
└── BACKEND_API_SPECS.md # API 规范文档
- SQLite - 轻量级文件数据库
- 自动创建在
backend/data/sci_demo_hub.db - 支持 WAL 模式,提高并发性能
所有 API 遵循 /api/v1 前缀,统一响应格式:
{
"code": 200,
"message": "Success",
"data": { ... }
}users- 用户表communities- 社区表community_members- 社区成员关联表categories- 分类表demos- 演示表bounties- 悬赏表
复制 .env.example 为 .env:
cp .env.example .env编辑 .env 文件,添加你的 API 密钥:
# 使用 OpenAI
OPENAI_API_KEY=sk-your-openai-key-here
# 或使用 Gemini
GEMINI_API_KEY=your-gemini-key-here编辑 services/geminiService.ts,根据 README 中的指南实现具体的 AI 调用逻辑。
VITE_API_URL=http://localhost:3001/api/v1PORT=3001
CORS_ORIGINS=http://localhost:5173,http://localhost:3000本项目使用 Tailwind CSS 进行样式设计,并使用 Framer Motion 制作流畅的过渡动画。设计语言遵循适合科学工具的简洁"玻璃拟态 (Glassmorphism)"风格。
| 命令 | 说明 |
|---|---|
npm run dev |
启动前端开发服务器 |
npm run build |
构建前端生产版本 |
npm run server |
启动后端生产服务器 |
npm run server:dev |
启动后端开发服务器(热重载) |
npm run init-db |
初始化数据库 |
npm run setup |
一键安装所有依赖并初始化数据库 |
| 命令 | 说明 |
|---|---|
npm start |
启动服务器 |
npm run dev |
开发模式(热重载) |
npm run init-db |
初始化数据库 |
- 管理员:
admin/ 任意密码 - 普通用户: 任意用户名 / 任意密码
MIT License