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

Alternative: Local Development

  1. Install dependencies:

    pipenv install --dev
    
  2. Activate environment:

    pipenv shell
    
  3. Run the application:

    pipenv run uvicorn app.main:app --reload
    
  4. 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

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

  1. Fork the repository

  2. Create a feature branch

  3. Make your changes

  4. Run tests and ensure they pass

  5. Run pre-commit hooks to ensure code quality

  6. 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.

Indices and tables