****# DocFlow API
DocFlow API is a production-oriented backend service for managing document processing workflows. It allows users to upload documents, create processing requests, execute asynchronous processing jobs, extract structured data, and monitor the status of each workflow.
The project is designed to demonstrate production backend engineering concepts such as asynchronous job processing, state management, retries, database modeling, and RESTful API design.
- User authentication
- Document upload and management
- Asynchronous document processing with Celery
- Processing status tracking
- Structured data extraction
- RESTful API with automatic OpenAPI documentation
- PostgreSQL persistence
- Docker-based local development
Client
│
▼
FastAPI API
│
├── PostgreSQL
├── Redis
│
▼
Celery Worker
│
▼
Document Processing Pipeline
| Technology | Purpose |
|---|---|
| Python | Programming language |
| FastAPI | REST API framework |
| SQLAlchemy | ORM |
| PostgreSQL | Primary database |
| Alembic | Database migrations |
| Redis | Message broker |
| Celery | Background job processing |
| Docker | Local development environment |
| Pytest | Testing |
git clone git@github.com:tuyishimehope/DOC-FLOW.git
cd DOC-FLOWdocker compose up --buildalembic upgrade headThe API will be available at:
- http://localhost:8000
- Swagger UI:
/docs - ReDoc:
/redoc
app/
api/
core/
db/
models/
schemas/
services/
workers/
tests/
alembic/
docker/
Contributions are welcome.
- Fork the repository.
- Create a feature branch.
- Commit your changes.
- Open a pull request.
- Object storage integration
- OCR pipeline
- Webhook notifications
- Role-based access control
- Metrics and monitoring
- CI/CD pipeline