Active Annotate Documentation¶
Welcome to the Active Annotate project documentation. This is a backend API for managing active learning annotation projects, built with FastAPI and modern Python development practices.
Note
This project is under active development.
Project Overview¶
Active Annotate is designed to facilitate active learning workflows for data annotation projects. The API provides endpoints for managing annotation tasks, datasets, and machine learning model integration.
Key Features:
FastAPI Framework - Modern, fast web framework for building APIs
Async Support - Built for high-performance asynchronous operations
Type Safety - Full type hints and validation with Pydantic
Developer Tools - Pre-commit hooks, linting, and formatting with Ruff
Testing - Comprehensive test suite with pytest and async testing support
Documentation - Auto-generated docs with Sphinx
Quick Start¶
Docker (Recommended)¶
Start development environment:
make upRun database migrations:
make migrateAccess the application: - API: http://localhost:8000 - API Documentation: http://localhost:8000/docs
Alternative: Local Development¶
Install dependencies:
pipenv install --dev
Activate environment:
pipenv shellRun the application:
pipenv run uvicorn app.main:app --reload
Run tests:
pipenv run pytest
Project Structure¶
active-annotate/
├── app/ # Application source code
│ ├── main.py # FastAPI application entry point
│ ├── api/ # API routes and endpoints
│ └── core/ # Core configuration and settings
├── tests/ # Test suite
│ ├── conftest.py # Test configuration and fixtures
│ └── test_*.py # Test modules
├── docs/ # Documentation source files
├── Pipfile # Python dependencies
└── pyproject.toml # Project configuration
Documentation Sections¶
Getting Started:
API Reference¶
This project uses FastAPI’s built-in OpenAPI documentation instead of maintaining separate API docs:
Interactive Documentation:
- Swagger UI: Start the app and visit http://localhost:8000/docs
- ReDoc: Start the app and visit http://localhost:8000/redoc
Benefits: - Always up-to-date with the actual code - Interactive testing interface - Automatic schema generation - Zero maintenance overhead
For application configuration and setup details, see the API Reference section.
Contributing¶
Fork the repository
Create a feature branch
Make your changes
Run tests and ensure they pass
Run pre-commit hooks to ensure code quality
Submit a pull request
The project uses:
Pre-commit hooks for code quality enforcement
Ruff for linting and formatting
pytest for testing
Type hints throughout the codebase
License¶
This project is under active development. License information will be added soon.