Initial commit: stock market platform

This commit is contained in:
admin
2026-06-11 01:41:47 +08:00
commit 63718906e9
62 changed files with 8962 additions and 0 deletions

121
README.md Normal file
View File

@@ -0,0 +1,121 @@
# 股票行情平台
全栈股票行情系统:实时大盘云图 · 多周期K线 · 自选股 · 价格预警
## 技术栈
| 层级 | 技术 |
|---|---|
| 前端 | React 18 + TypeScript + Vite + Ant Design 5 + ECharts + LightweightCharts |
| 后端 | Python 3.12 + FastAPI + SQLAlchemy 2 + Celery |
| 数据 | AKShare (免费A股数据) + Tushare Pro (可选) |
| 存储 | PostgreSQL 16 + Redis 7 |
| 部署 | Docker Compose + Nginx |
## 快速启动
### 方式一Docker Compose推荐跨平台通用
> 前提:安装 [Docker Desktop](https://www.docker.com/products/docker-desktop/)Windows/Mac/Linux 均支持)
```powershell
# 复制环境变量
Copy-Item .env.example .env
# 编辑 .env修改密码等配置记事本或 VS Code 打开)
# 启动所有服务
docker-compose up -d
# 查看后端日志
docker-compose logs -f backend
```
访问:
- 前端http://localhost:3000
- API 文档http://localhost:8000/api/docs
- Nginx 入口http://localhost
---
### 方式二Windows 本地开发(不打包进 Docker
> 前提:安装 Python 3.12、Node.js 20、Docker Desktop仅用于跑数据库
**一键启动脚本(推荐)**
```powershell
# 在项目根目录用 PowerShell 运行
.\scripts\dev-windows.ps1
```
脚本会自动:启动 PostgreSQL+RedisDocker→ 启动 FastAPI → 启动 Celery → 启动 Vite
**手动启动步骤**
```powershell
# 第1步只启动数据库Docker
docker-compose -f docker-compose.dev.yml up -d
# 第2步后端
cd backend
python -m venv venv
.\venv\Scripts\Activate.ps1
pip install -r requirements.txt
uvicorn app.main:app --reload --port 8000
# 第3步Celery新开一个 PowerShell 窗口Windows 必须加 --pool=solo
cd backend
.\venv\Scripts\Activate.ps1
celery -A celery_app.worker worker -l info --pool=solo
# 第4步前端新开一个 PowerShell 窗口)
cd frontend
npm install
npm run dev
```
访问:
- 前端http://localhost:5173
- API 文档http://localhost:8000/api/docs
## 功能页面
| 页面 | 路径 | 说明 |
|---|---|---|
| 登录/注册 | `/login` | JWT 认证 |
| 大盘云图 | `/` | A股实时热力图WebSocket 推送 |
| 股票详情 | `/stock/:symbol` | 分时/五日/日K/周K/月K |
| 自选股 | `/watchlist` | 自选股管理 |
| 价格预警 | `/alerts` | 价格/涨跌幅预警配置 |
## 项目结构
```
stock/
├── backend/
│ ├── app/
│ │ ├── main.py # FastAPI 入口 + WebSocket
│ │ ├── core/ # 配置、数据库、Redis、JWT
│ │ ├── api/v1/ # 路由auth, stocks, watchlist, alerts
│ │ ├── models/ # SQLAlchemy ORM 模型
│ │ ├── schemas/ # Pydantic 校验
│ │ ├── services/ # AKShare 数据服务
│ │ └── websocket/ # WebSocket 连接管理
│ └── celery_app/ # 定时任务
├── frontend/
│ └── src/
│ ├── pages/ # Login, Home, StockDetail, Watchlist, Alerts
│ ├── components/ # Layout, Charts(K线/分时/热力图)
│ ├── services/ # Axios API 封装
│ ├── stores/ # Zustand 状态管理
│ └── hooks/ # useWebSocket
├── nginx/nginx.conf
├── docker-compose.yml
└── .env
```
## 数据源
- **AKShare**:免费,支持 A股/港股/美股/基金,日线/分钟K线/实时行情
- **Tushare Pro**:积分制,专业复权数据(在 `.env` 中配置 `TUSHARE_TOKEN`
> AKShare 调用新浪/东财公开接口,数据有 15-30 分钟延迟(非付费实时数据源)