# 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/` 目录。