# Nuzlocke Tracker API

Backend API for the Nuzlocke Tracker application, built with FastAPI.

## Development Setup

### Option 1: Docker (Recommended)

From the project root:
```bash
docker compose up
```

This starts the API, frontend, and PostgreSQL database with hot reload enabled.

### Option 2: Local Setup

1. Create and activate virtual environment:
   ```bash
   python -m venv .venv
   source .venv/bin/activate  # On Windows: .venv\Scripts\activate
   ```

2. Install dependencies:
   ```bash
   pip install -e ".[dev]"
   ```

3. Copy environment file:
   ```bash
   cp .env.example .env
   ```

4. Run the development server:
   ```bash
   uvicorn app.main:app --reload --app-dir src
   ```

The API will be available at http://localhost:8000

## API Documentation

- Swagger UI: http://localhost:8000/docs
- ReDoc: http://localhost:8000/redoc

## Project Structure

```
backend/
├── src/
│   └── app/
│       ├── api/          # API routes
│       ├── core/         # Core configuration
│       ├── models/       # Database models
│       ├── schemas/      # Pydantic schemas
│       └── services/     # Business logic
├── tests/                # Test files
├── pyproject.toml        # Project configuration
└── .env.example          # Example environment variables
```

## Linting & Formatting

```bash
ruff check .        # Check for issues
ruff check . --fix  # Fix auto-fixable issues
ruff format .       # Format code
```
