66 lines
1.4 KiB
Bash
66 lines
1.4 KiB
Bash
#!/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!"
|