50 lines
2.8 KiB
Markdown
50 lines
2.8 KiB
Markdown
# Project Status — Invest Copilot
|
|
|
|
## Overview
|
|
- **Phase 1: Foundation** — ✅ COMPLETE
|
|
- 6 design docs (vision, architecture, data model, domain model, open design integration, phase 1 plan)
|
|
- Docker compose (PostgreSQL/TimescaleDB, Redis, MinIO)
|
|
- Data pipeline scripts (price ingestion, SEC filings, sector rotation)
|
|
- Shared types, OpenAPI spec, CI/CD, design tokens
|
|
|
|
- **Phase 2: Implementation** — ✅ COMPLETE
|
|
- **Backend (FastAPI BFF)** — 49 files
|
|
- Core: main.py, config, database, cache, storage
|
|
- Models: price, stock, watchlist, strategy, screener, sector_rotation, sec_filing, insider_trade, alert
|
|
- Schemas: Pydantic response models for all entities
|
|
- Routers: 14 endpoints (search, stocks, prices, sec_filings, insider_trades, peers, sentiment, watchlists, strategies, screeners, sectors, alerts, stream)
|
|
- Services: PriceService, SecService, SentimentService, RotationService, ScreenerService
|
|
- Tasks: ingest_prices, ingest_sec, sector_scan
|
|
- 14 API endpoints matching OpenAPI spec
|
|
|
|
- **Frontend (Next.js 15 PWA)** — 49 files
|
|
- Layout: Sidebar (6 nav items), Header (search bar)
|
|
- Dashboard: Portfolio summary cards, sector heatmap, watchlist table, alerts feed
|
|
- Stock detail: Profile, price chart (lightweight-charts), SEC filings, insider trades
|
|
- Watchlists: CRUD with sidebar selection
|
|
- Strategies: Grid of strategy cards with backtest results
|
|
- Screeners: ScreenerBuilder + ScreenerResults
|
|
- Sectors: Sector heatmap + detailed rankings
|
|
- Alerts: Filterable alert feed
|
|
- Hooks: useStockData, useWatchlistData, useSSE
|
|
- Stores: useUIStore, useWatchlistStore, useStrategiesStore
|
|
- UI Components: Button, Badge, Card, Input, Modal, Skeleton, Tooltip
|
|
- Lib: API client (axios), constants, utils, types
|
|
- PWA with Workbox config
|
|
|
|
## Current State
|
|
- **Total files**: 187 (excluding node_modules, .next)
|
|
- **Stack**: Next.js 15 (app router, Turbopack) + Tailwind + FastAPI + TimescaleDB + Redis + MinIO
|
|
- **API**: Full OpenAPI spec implemented (14 endpoints)
|
|
- **Data models**: All 8 entity types defined with SQLAlchemy models
|
|
- **Database**: init.sql with TimescaleDB hypertables for prices, sector_rotation, equity_scores
|
|
- **CI/CD**: GitHub Actions for lint/test/build/deploy
|
|
|
|
## Next Steps (Phase 3)
|
|
1. **Infrastructure**: Fix Docker bridge (kernel issue) — may need nftables/iptables fix or podman alternative
|
|
2. **Data sources**: Replace mock data with real APIs (Alpha Vantage, SEC EDGAR, Finnhub)
|
|
3. **Authentication**: COMPLETE (JWT register/login/me/logout/forgot/reset + users table in migration.sql)
|
|
4. **Real-time**: Implement SSE stream for live price updates
|
|
5. **Testing**: Add pytest tests for backend, Playwright E2E for frontend
|
|
6. **Deployment**: Docker compose production config, Nginx reverse proxy
|