69 lines
1.5 KiB
Markdown
69 lines
1.5 KiB
Markdown
# 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
|
|
```
|