# pg_inter_test **Repository Path**: matthew_cxo/pg_inter_test ## Basic Information - **Project Name**: pg_inter_test - **Description**: 主要用来刷postgresql数据内核的题目。 - **Primary Language**: Unknown - **License**: Not specified - **Default Branch**: main - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 0 - **Created**: 2026-06-12 - **Last Updated**: 2026-06-12 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # PostgreSQL 内核刷题网站 基于 PostgreSQL 源码的内核知识在线刷题平台,每章 9 道题,附源码解读。 ## 📁 项目结构 ``` pg-quiz-website/ ├── backend/ # FastAPI 后端 │ ├── app/ │ │ ├── __init__.py │ │ ├── main.py # 入口文件 │ │ ├── config.py # 配置管理 │ │ ├── database.py # Supabase 连接 │ │ ├── models.py # Pydantic 模型 │ │ └── routers/ │ │ ├── chapters.py # 章节路由 │ │ └── questions.py # 题目路由 │ ├── requirements.txt │ ├── .env # 环境变量(已配置) │ └── Dockerfile ├── frontend/ # Vue 3 前端 │ ├── src/ │ │ ├── main.js # 入口文件 │ │ ├── App.vue # 根组件 │ │ └── views/ # 页面组件 │ ├── index.html │ ├── package.json │ └── vite.config.js └── supabase/ └── schema.sql # 数据库建表 SQL ``` ## 🐳 使用 Docker 运行(推荐) ### 前置条件 - 安装 Docker Desktop:https://www.docker.com/products/docker-desktop/ ### 一键启动(Docker Compose) ```bash # 进入项目根目录 cd E:\opt\pg_test\pg-quiz-website # 启动所有服务(后端 + 前端) docker-compose up --build # 后台运行 docker-compose up -d --build # 查看日志 docker-compose logs -f # 停止服务 docker-compose down ``` ### 访问地址 - **前端**:http://localhost:3000 - **后端 API**:http://localhost:8000 - **API 文档**:http://localhost:8000/docs - **健康检查**:http://localhost:8000/health ### 单独构建/运行 **后端**: ```bash cd backend docker build -t pg-quiz-backend . docker run -p 8000:8000 --env-file .env pg-quiz-backend ``` **前端**: ```bash cd frontend docker build -t pg-quiz-frontend . docker run -p 3000:80 pg-quiz-frontend ``` --- ## 🚀 快速开始(传统方式) ### 1. 数据库初始化 在 Supabase 中执行 `supabase/schema.sql` 文件: 1. 登录 https://supabase.com 2. 进入你的项目 3. 点击左侧 **SQL Editor** 4. 复制 `supabase/schema.sql` 的内容 5. 粘贴到 SQL Editor 中并执行 ### 2. 启动后端(FastAPI) ```bash cd E:\opt\pg_test\pg-quiz-website\backend pip install -r requirements.txt python -m uvicorn app.main:app --reload --host 0.0.0.0 --port 8000 ``` 后端将在 http://localhost:8000 运行 API 文档:http://localhost:8000/docs ### 3. 启动前端(Vue 3) 新开一个终端: ```bash cd E:\opt\pg_test\pg-quiz-website\frontend npm install npm run dev ``` 前端将在 http://localhost:3000 运行 ## 📡 API 接口 ### 章节相关 - `GET /api/chapters` - 获取所有章节 - `GET /api/chapters/{id}` - 获取单个章节 - `GET /api/chapters/{id}/questions` - 获取章节下的所有题目 ### 题目相关 - `GET /api/questions` - 获取所有题目 - `GET /api/questions/{id}` - 获取单个题目 - `POST /api/questions/{id}/answer` - 提交答案 ## 🌐 部署指南 ### 后端部署到 Render.com 1. 登录 https://render.com 2. 点击 **New +** → **Web Service** 3. 连接 GitHub 仓库 4. 配置: - **Build Command**: `pip install -r requirements.txt` - **Start Command**: `uvicorn app.main:app --host 0.0.0.0 --port $PORT` - **Environment Variables**: - `SUPABASE_URL`: `https://gesaoaozmfnyiguokswl.supabase.co` - `SUPABASE_KEY`: `sb_secret_XRcPLd1TgwKV2UKUl6-A_A_xKsAG3UJ` - `SUPABASE_ANON_KEY`: `sb_publishable_seH5LjFI63IEO-Ls2fz1KA_Spu5xroM` ### 前端部署到 Vercel 1. 登录 https://vercel.com 2. 点击 **New Project** 3. 导入 GitHub 仓库 4. 配置: - **Framework Preset**: Vite - **Build Command**: `npm run build` - **Output Directory**: `dist` - **Environment Variables**: - `VITE_API_URL`: `https://your-render-backend.onrender.com` ## 🔧 技术栈 ### 后端 - FastAPI - Web 框架 - Supabase - 数据库 + Auth - Python 3.11+ ### 前端 - Vue 3 - 前端框架 - Vite - 构建工具 - Vue Router - 路由管理 - Axios - HTTP 客户端 ## 📝 功能特性 - ✅ 章节列表展示 - ✅ 题目浏览与答题 - ✅ 答案提交与即时反馈 - ✅ 源码位置展示 - ✅ 详细答案解析 - 🚧 用户登录/注册(待实现) - 🚧 答题记录统计(待实现) - 🚧 题目管理后台(待实现) ## 🤝 贡献 欢迎提交 Issue 和 Pull Request! ## 📄 许可证 MIT License