- Python 3.12+
- Node.js 20+
- npm or yarn
# Windows
start.bat
# Manual start
# Terminal 1 - Backend
cd apps/api
venv\Scripts\activate
set PYTHONPATH=C:\dev\signalhub-apis\apps\api;C:\dev\signalhub-apis
uvicorn app.main:app --host 0.0.0.0 --port 8000 --reload
# Terminal 2 - Frontend
cd apps/web
npm run dev- Frontend: http://localhost:3001
- Backend API: http://localhost:8000
- API Docs: http://localhost:8000/docs
signalhub-apis/
├── apps/
│ ├── api/ # FastAPI backend
│ │ ├── app/
│ │ │ ├── db/ # Models, engine, base
│ │ │ ├── routers/ # API endpoints
│ │ │ ├── schemas/ # Pydantic schemas
│ │ │ ├── services/ # Business logic
│ │ │ ├── config.py # Configuration
│ │ │ └── main.py # FastAPI app
│ │ ├── alembic/ # Database migrations
│ │ ├── venv/ # Python virtual environment
│ │ ├── signalhub.db # SQLite database
│ │ └── requirements.txt # Python dependencies
│ │
│ └── web/ # Next.js frontend
│ ├── src/
│ │ ├── app/ # App router pages
│ │ ├── components/ # React components
│ │ └── lib/ # Utilities
│ └── package.json # Node dependencies
│
├── packages/
│ └── ingestion/ # Data pipeline
│ ├── connectors/ # API connectors
│ ├── jobs/ # Job runner
│ ├── quality/ # Quality checks
│ └── transforms/ # Data transforms
│
├── docs/ # Documentation
├── scripts/ # Utility scripts
├── PLAN.md # Development plan
├── SUMMARY.md # Project summary
└── VALIDATION.md # Validation report
cd apps/api
venv\Scripts\activate
python trigger_connectors.pycd apps/api
venv\Scripts\activate
python validate_api.pycd apps/api
venv\Scripts\activate
python inspect_db.py
python inspect_data.pycd apps/api
venv\Scripts\activate
set PYTHONPATH=C:\dev\signalhub-apis\apps\api;C:\dev\signalhub-apis
alembic upgrade headcd apps/api
venv\Scripts\activate
set PYTHONPATH=C:\dev\signalhub-apis\apps\api;C:\dev\signalhub-apis
alembic revision --autogenerate -m "description"- sources - Data source definitions
- runs - Execution history
- raw_payloads - Raw API responses
- normalized_signals - Normalized data points
- freshness_status - Data freshness tracking
- quality_checks - Quality validation results
- event_logs - System events
- Source → Runs (1:N)
- Source → FreshnessStatus (1:1)
- Run → RawPayloads (1:N)
- Run → NormalizedSignals (1:N)
- Run → QualityChecks (1:N)
GET /health- System health check
GET /api/v1/sources- List all sourcesGET /api/v1/sources/{slug}- Get source detail
GET /api/v1/runs- List runs (paginated)GET /api/v1/runs/{id}- Get run detail
GET /api/v1/signals- List signals (paginated)GET /api/v1/freshness- Get freshness statusGET /api/v1/quality- List quality checks
GET /api/v1/metrics/summary- System metrics
POST /api/v1/runs/trigger/{slug}- Trigger manual run
# Database
DATABASE_URL=sqlite+aiosqlite:///C:/dev/signalhub-apis/apps/api/signalhub.db
DATABASE_URL_SYNC=sqlite:///C:/dev/signalhub-apis/apps/api/signalhub.db
# API
API_HOST=0.0.0.0
API_PORT=8000
API_DEBUG=false
# Frontend
NEXT_PUBLIC_API_URL=http://localhost:8000
# Connectors
COINGECKO_API_KEY=
# Open-Meteo
OPEN_METEO_LATITUDE=52.52
OPEN_METEO_LONGITUDE=13.41- Endpoint: https://api.open-meteo.com/v1/forecast
- Schedule: Every 30 minutes
- Signals: temperature, humidity, wind_speed
- Auth: None required
- Endpoint: https://api.frankfurter.app/latest
- Schedule: Every 60 minutes
- Signals: EUR exchange rates (USD, GBP, BRL, etc.)
- Auth: None required
- Endpoint: https://api.coingecko.com/api/v3/simple/price
- Schedule: Every 15 minutes
- Signals: BTC, ETH prices in USD
- Auth: Optional API key
- Check if venv is activated
- Verify PYTHONPATH is set correctly
- Check if port 8000 is available
- Review logs for errors
- Run
npm installin apps/web - Check if port 3000/3001 is available
- Verify NEXT_PUBLIC_API_URL in .env
- Check internet connection
- Verify API endpoints are accessible
- Check rate limits
- Review error logs in database
- Check if signalhub.db exists
- Verify file permissions
- Run migrations if needed
- Check SQLite version
cd apps/api
venv\Scripts\activate
pytestcd apps/web
npm test- Switch to PostgreSQL
- Set API_DEBUG=false
- Configure CORS for production domain
- Add rate limiting
- Set up monitoring (Sentry, etc.)
- Configure SSL/TLS
- Set up CI/CD pipeline
- Add authentication
- Configure backup strategy
- Set up logging aggregation
For issues or questions:
- Check VALIDATION.md for known issues
- Review PLAN.md for development status
- Check SUMMARY.md for project overview
- Create issue on GitHub
MIT