Initial commit: stock market platform
This commit is contained in:
121
README.md
Normal file
121
README.md
Normal 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+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 分钟延迟(非付费实时数据源)
|
||||
Reference in New Issue
Block a user