Jack Levy 5b73b60d9e Add multi-user auth system and admin panel
- User model with email/hashed_password/is_admin/notification_prefs
- JWT auth: POST /api/auth/register, /login, /me
- First registered user auto-promoted to admin
- Migration 0005: users table + user_id FK on follows (clears global follows)
- Follows, dashboard, settings, admin endpoints all require authentication
- Admin endpoints (settings writes, celery triggers) require is_admin
- Frontend: login/register pages, Zustand auth store (localStorage persist)
- AuthGuard component gates all app routes, shows app shell only when authed
- Sidebar shows user email + logout; Admin nav link visible to admins only
- Admin panel (/settings): user list with delete + promote/demote, LLM config,
  data source settings, and manual celery controls

Authored-By: Jack Levy
2026-02-28 21:44:34 -05:00
2026-02-28 21:08:19 -05:00
2026-02-28 21:08:19 -05:00
2026-02-28 21:08:19 -05:00
2026-02-28 21:08:19 -05:00
2026-02-28 21:08:19 -05:00
Description
Self-hosted US Congress monitoring with AI bill analysis, personalized tracking, and multi-channel notifications.
GPL-3.0 809 KiB
Languages
Python 53.6%
TypeScript 45.8%
CSS 0.2%
Dockerfile 0.2%