# SciLit Oncology — 肿瘤科文献管理平台

## 快速启动

```bash
# 1. 启动所有服务
docker compose up -d

# 2. 初始化数据库（首次）
docker compose exec backend alembic upgrade head

# 3. 访问
# 前端: http://localhost:5173
# 后端 API: http://localhost:8000/docs
# MinIO 控制台: http://localhost:9001 (minioadmin/minioadmin)
```

## 项目结构

```
backend/
├── app/
│   ├── main.py              # FastAPI 入口
│   ├── config.py            # 配置
│   ├── db.py                # 数据库连接
│   ├── core/                # 核心：安全、权限、多租户中间件
│   ├── models/              # SQLAlchemy 模型 (32 张表)
│   ├── schemas/             # Pydantic 请求/响应
│   ├── api/v1/              # REST API 端点
│   └── tasks/               # ARQ 异步任务 (PubMed 管道)
├── alembic/                 # 数据库迁移
└── config/specialties/      # 科室配置 (oncology.yaml)

frontend/
├── src/
│   ├── views/public/        # 公开页面 (无需登录)
│   ├── views/auth/          # 登录/注册
│   ├── views/app/           # 已登录应用页面
│   ├── stores/              # Pinia 状态管理
│   ├── api/                 # Axios 封装
│   └── router/              # Vue Router

docs/                        # 完整设计文档 (9 份)
```

## 技术栈

- **后端**: FastAPI + SQLAlchemy 2.0 (async) + PostgreSQL 16 + Redis + Elasticsearch
- **前端**: Vue 3 + Naive UI + Pinia + Vite
- **任务队列**: ARQ
- **文件存储**: MinIO / S3
- **多租户**: PostgreSQL RLS + ContextVar 双层隔离

## 文档

详细的产品规划、数据库设计、标签体系、数据管道、UI 设计见 `docs/` 目录。
