Hello Goblin Webapp
AI-powered personal financial management system with automated analysis, trading capabilities, and multi-source data integration.
Architecture
┌─────────────────────────────────────────────────────────────────┐
│ HELLO GOBLIN WEBAPP │
├─────────────────────────────────────────────────────────────────┤
│ │
│ ┌──────────────┐ ┌──────────────┐ ┌──────────────────┐ │
│ │ Frontend │ │ Backend │ │ Task Queue │ │
│ │ React 18 │◀───▶│ Django 5 │◀───▶│ Celery + Beat │ │
│ │ :3001 │ │ :8001 │ │ │ │
│ └──────────────┘ └──────────────┘ └──────────────────┘ │
│ │ │ │
│ ▼ ▼ │
│ ┌──────────────────────────────────────────┐ │
│ │ Data Layer │ │
│ │ PostgreSQL 16 │ Redis 7 │ │
│ │ :5433 │ :6380 │ │
│ └──────────────────────────────────────────┘ │
│ │
└─────────────────────────────────────────────────────────────────┘
│ │ │
▼ ▼ ▼
┌──────────┐ ┌──────────┐ ┌──────────┐
│ Plaid │ │ Monarch │ │ Schwab │
│ Banking │ │ Money │ │ Trading │
└──────────┘ └──────────┘ └──────────┘
│ │ │
└────────────────────┴────────────────────┘
│
▼
┌──────────┐
│ Claude │
│ AI │
└──────────┘
Services
| Service | Technology | Port | Purpose |
|---|---|---|---|
| frontend | React 18 + TypeScript | 3001 | Web UI |
| backend | Django 5 + DRF | 8001 | REST API |
| docs | Docusaurus + nginx | 3002 | Documentation |
| postgres | PostgreSQL 16 | 5433 | Primary database |
| redis | Redis 7 | 6380 | Cache + message broker |
| celery_worker | Celery 5.3 | - | Background tasks |
| celery_beat | Celery Beat | - | Scheduled tasks |
Backend Apps
| App | Purpose |
|---|---|
accounts | User authentication and profiles |
finance | Core financial models (accounts, transactions, debt) |
integrations | External API clients (Plaid, Monarch, Schwab) |
analytics | Calculations, P&L, balance sheets |
ai_agent | Claude analysis engine |
notifications | Multi-channel alerts (SMS, email, push) |
terminal | Interactive CLI interface |
goblin | Goblin Core coordination |
Quick Start
# Start all services
goblin app up
# View logs
goblin app logs
# Open in browser
goblin app open
# Stop services
goblin app down
URLs
Local Development
| URL | Description |
|---|---|
| http://localhost:3001 | Frontend application |
| http://localhost:8001/api | REST API |
| http://localhost:8001/admin | Django admin |
| http://localhost:8001/api/schema/swagger-ui/ | Swagger UI |
| http://localhost:3002 | Documentation |
Production
| URL | Description |
|---|---|
| https://hellogobl.in | Main application |
| https://hellogobl.in/api | REST API |
| https://docs.hellogobl.in | Documentation |
Configuration
Environment variables in webapp/backend/.env:
# Database
DATABASE_URL=postgres://finance_user:password@postgres:5432/finance_db
# API Keys
ANTHROPIC_API_KEY=your-key
PLAID_CLIENT_ID=your-id
PLAID_SECRET=your-secret
MONARCH_EMAIL=your-email
MONARCH_PASSWORD=your-password
SCHWAB_API_KEY=your-key
# Notifications
TWILIO_ACCOUNT_SID=your-sid
TWILIO_AUTH_TOKEN=your-token
SENDGRID_API_KEY=your-key
Related
- Finance - Financial data models
- AI Agent - Claude analysis
- Integrations - External APIs
- API Reference - REST endpoints