# 股票行情平台 全栈股票行情系统:实时大盘云图 · 多周期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+Redis(Docker)→ 启动 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 分钟延迟(非付费实时数据源)