- README.md: feature overview, tech stack, quick-start guide - LICENSE: GNU General Public License v3.0 - .env.example: add ENCRYPTION_SECRET_KEY, LLM_RATE_LIMIT_RPM, correct model defaults Authored by: Jack Levy
57 lines
2.5 KiB
Markdown
57 lines
2.5 KiB
Markdown
# PocketVeto
|
|
|
|
A self-hosted platform for monitoring US Congress. Follow bills and legislators, get AI-generated policy briefs, track trending legislation, and receive alerts when bills you care about move.
|
|
|
|
## Features
|
|
|
|
- **Bill tracking** — search and browse all active legislation with full text and status history
|
|
- **AI policy briefs** — LLM-generated summaries, key points, risks, and deadlines for each bill
|
|
- **Member profiles** — legislator bios, effectiveness scores, sponsored bills, vote history, and news
|
|
- **Follows & alerts** — follow bills, members, or policy topics; choose between neutral, pocket-veto, or pocket-boost mode per follow
|
|
- **Notifications** — ntfy, RSS, and email (SMTP); per-channel alert filters with quiet hours
|
|
- **Collections** — curate shareable lists of bills with a public share link
|
|
- **Alignment view** — see how legislators vote relative to your followed bills and stances
|
|
- **Draft letter** — AI-assisted letter generator to contact your representative on any bill
|
|
- **Admin panel** — pipeline controls, LLM switching, user management, API health checks
|
|
|
|
## Tech stack
|
|
|
|
| Layer | Technology |
|
|
|---|---|
|
|
| Backend | FastAPI, SQLAlchemy (async), Alembic, Celery, PostgreSQL, Redis |
|
|
| Frontend | Next.js (App Router), TypeScript, Tailwind CSS, React Query, Zustand |
|
|
| AI | OpenAI, Anthropic, Google Gemini, or Ollama (switchable at runtime) |
|
|
| Infrastructure | Docker Compose, Nginx |
|
|
|
|
## Quick start
|
|
|
|
**Prerequisites:** Docker Engine 24+ and Docker Compose v2 on a Linux server (2 GB RAM minimum).
|
|
|
|
**API keys you'll need:**
|
|
|
|
| Key | Where to get it | Required? |
|
|
|---|---|---|
|
|
| `DATA_GOV_API_KEY` | [api.data.gov/signup](https://api.data.gov/signup/) — free, instant | Yes |
|
|
| LLM key (OpenAI / Anthropic / Gemini) | Provider dashboard | Yes (or use Ollama) |
|
|
| `NEWSAPI_KEY` | [newsapi.org](https://newsapi.org) — free tier (100 req/day) | Optional |
|
|
|
|
```bash
|
|
git clone https://github.com/YOUR_USERNAME/pocketveto.git
|
|
cd pocketveto
|
|
|
|
cp .env.example .env
|
|
# Edit .env — set JWT_SECRET_KEY, ENCRYPTION_SECRET_KEY, DATA_GOV_API_KEY, and your LLM key at minimum
|
|
|
|
docker compose up --build -d
|
|
```
|
|
|
|
Open `http://YOUR_SERVER_IP` in a browser. The first registered account becomes admin.
|
|
|
|
After registering, go to **Settings** and click **Trigger Poll** to load the initial bill data, then **Sync Members** to load legislator profiles.
|
|
|
|
For detailed instructions — including SSL setup, email configuration, and updating — see [DEPLOYING.md](DEPLOYING.md) and [UPDATING.md](UPDATING.md).
|
|
|
|
## License
|
|
|
|
[GNU General Public License v3.0](LICENSE)
|