# {{ project_name }}

A FastAPI application built with [Plinth](https://github.com/plinth-cli/plinth).

## Quick Start

```bash
# Install dependencies
uv sync

# Run the development server
uv run uvicorn src.main:app --reload
```

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

## Project Structure

```
{{ project_name }}/
├── src/
│   ├── __init__.py          # Package initializer
│   ├── main.py              # FastAPI application entry point
│   ├── core/
│   │   ├── __init__.py
│   │   ├── config.py        # Application settings
│   │   ├── database.py      # Database connection (if DB selected)
│   │   └── registry.py      # Router registry
│   ├── api/
│   │   ├── __init__.py
│   │   └── v1/
│   │       ├── __init__.py
│   │       └── health.py    # Health check endpoints
│   └── models/              # Database models
│       └── __init__.py
├── tests/                   # Test suite
│   └── __init__.py
├── pyproject.toml           # Project dependencies
├── .env.example             # Environment template
├── .gitignore              # Git ignore rules
├── .plinth.json            # Plinth state
└── README.md               # Project readme
```

## Configuration

Copy `.env.example` to `.env` and customize:

```bash
cp .env.example .env
```

## Features

{% if db_type %}- **Database**: {{ db_type | title }} with {{ db_driver }}{% endif %}
{% if use_redis %}- **Caching**: Redis integration{% endif %}
{% if auth_type %}- **Authentication**: {{ auth_type | upper }}{% endif %}

## API Documentation

Once running, access the interactive API docs:

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

## Development

### Adding Features

Use Plinth to add new features:

```bash
# Add Redis caching
plinth add redis

# Add authentication
plinth add auth-jwt
```

### Running Tests

```bash
uv run pytest
```

### Code Quality

```bash
# Format code
uv run ruff format .

# Lint code
uv run ruff check .

# Type check
uv run mypy src/
```

## License

[Your License Here]
