feat: add Citations and WatchlistChat components, integrate with API

- Implemented Citations component to display citation data.
- Created WatchlistDrawer and ChatSidebar components for managing watchlists and AI chat functionality.
- Integrated API calls for watchlist management and chat interactions.
- Updated index.tsx to include new components in the main application layout.
- Added API client in lib/api.ts for structured API interactions.
- Developed Alerts, Dashboard, Portfolio, Routines, Screener, and Report pages with relevant data fetching and UI components.
- Introduced styles in tokens.css for consistent theming across the application.
- Configured TypeScript and Vite for project setup and development.
This commit is contained in:
asepharyana
2026-09-15 12:36:48 +07:00
parent 0db2cf28b3
commit 8c184ccae1
111 changed files with 12349 additions and 62 deletions
+2 -1
View File
@@ -2,7 +2,7 @@
SQLite for the hackathon; schema kept Postgres-compatible (serial → integer PK,
JSON → TEXT with JSON1, no SQLite-only DDL). Migrations numbered in
`backend/app/store/migrations/`.
`backend/internal/store/migrations/`.
## Tables
@@ -17,6 +17,7 @@ JSON → TEXT with JSON1, no SQLite-only DDL). Migrations numbered in
- `routines(id, user_key, type, schedule_cron, channels_json, enabled)` — 7 types (R1–R7).
- `routine_runs(id, routine_id, started_at, status, payload_json, credits_used)`.
- `alerts(id, user_key, name, rule_json, channels_json, last_fired)`.
- `notification_destinations(id, user_key, kind, label, bot_token, chat_id, webhook_url, enabled, created_at)` — per-user push targets. `kind` telegram needs bot_token+chat_id, discord needs webhook_url (https). Secrets never leave the server in API responses.
- `alert_events(id, alert_id, ticker, date, message, context_json, citations_json)`.
- `watchlists(user_key, ticker, added_at)` — PK (user_key, ticker).
- `reports(id, ticker, generated_at, payload_json, citations_json)`.