92 lines
1.8 KiB
Markdown
92 lines
1.8 KiB
Markdown
# Complete Project Setup Guide for Firefly III Analytics
|
|
|
|
## Prerequisites
|
|
- Python 3.11+
|
|
- Node.js 18+
|
|
- Docker & Docker Compose (for containerized deployment)
|
|
- Git
|
|
|
|
## Manual Project Setup
|
|
|
|
If the automated init script doesn't work, follow these steps:
|
|
|
|
### 1. Create Directory Structure
|
|
|
|
```bash
|
|
mkdir -p backend/app/{routers,services,clients}
|
|
mkdir -p frontend/src/{components,pages,services,types}
|
|
mkdir -p data
|
|
```
|
|
|
|
### 2. Backend Setup
|
|
|
|
Create `backend/pyproject.toml`:
|
|
```
|
|
[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",
|
|
]
|
|
```
|
|
|
|
### 3. Create .env File
|
|
|
|
```bash
|
|
cp .env.example .env
|
|
# Edit .env and add your Firefly III API token
|
|
```
|
|
|
|
### 4. Install and Run Backend
|
|
|
|
```bash
|
|
cd backend
|
|
python -m venv venv
|
|
# On Windows: venv\Scripts\activate
|
|
# On Mac/Linux: source venv/bin/activate
|
|
pip install -e .
|
|
uvicorn app.main:app --reload
|
|
```
|
|
|
|
### 5. Frontend Setup
|
|
|
|
```bash
|
|
cd frontend
|
|
npx create-react-app . --template typescript
|
|
npm install recharts axios
|
|
npm start
|
|
```
|
|
|
|
### 6. Docker Deployment
|
|
|
|
```bash
|
|
docker-compose up -d
|
|
```
|
|
|
|
## API Documentation
|
|
|
|
Once the backend is running, visit http://localhost:8000/docs for interactive API docs.
|
|
|
|
## Project File Structure (Complete)
|
|
|
|
All source code files are documented in `COMPLETE_SOURCE_CODE.md`
|