#!/bin/bash # Project initialization script # Create directory structure mkdir -p backend/app/{routers,services,clients,models} mkdir -p frontend/{src,public} # Backend Python files cat > backend/__init__.py << 'EOF' # Backend package EOF cat > backend/pyproject.toml << 'EOF' [project] name = "firefly-analytics-backend" version = "0.1.0" description = "Firefly III Analytics & Reporting Backend" requires-python = ">=3.11" dependencies = [ "fastapi==0.104.1", "uvicorn[standard]==0.24.0", "httpx==0.25.2", "python-dotenv==1.0.0", "pydantic==2.5.0", "pydantic-settings==2.1.0", "sqlalchemy==2.0.23", "python-dateutil==2.8.2", "apscheduler==3.10.4", ] [project.optional-dependencies] dev = [ "pytest==7.4.3", "pytest-asyncio==0.21.1", "black==23.12.0", "ruff==0.1.8", ] EOF cat > backend/Dockerfile << 'EOF' FROM python:3.11-slim WORKDIR /app RUN apt-get update && apt-get install -y --no-install-recommends \ gcc \ && rm -rf /var/lib/apt/lists/* COPY pyproject.toml pyproject.toml COPY app/ app/ RUN pip install --no-cache-dir -e . RUN mkdir -p /app/data EXPOSE 8000 CMD ["uvicorn", "app.main:app", "--host", "0.0.0.0", "--port", "8000"] EOF cat > backend/app/__init__.py << 'EOF' # Firefly Analytics App EOF echo "Backend structure created successfully!"