63718906e92005072c195823d8339b7f508271df
股票行情平台
全栈股票行情系统:实时大盘云图 · 多周期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(Windows/Mac/Linux 均支持)
# 复制环境变量
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 运行
.\scripts\dev-windows.ps1
脚本会自动:启动 PostgreSQL+Redis(Docker)→ 启动 FastAPI → 启动 Celery → 启动 Vite
手动启动步骤
# 第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
访问:
功能页面
| 页面 | 路径 | 说明 |
|---|---|---|
| 登录/注册 | /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 分钟延迟(非付费实时数据源)
Description
Languages
TypeScript
57.5%
Python
39.2%
PowerShell
1.9%
CSS
0.5%
Dockerfile
0.5%
Other
0.4%