Skip to content
Merged
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
53 changes: 53 additions & 0 deletions CLAUDE.md
Original file line number Diff line number Diff line change
Expand Up @@ -48,3 +48,56 @@ Local-first tool to monitor sentiment trends across subreddits over time. Ingest
- Do not add Postgres or any other database — SQLite until 10M+ row threshold
- Do not add features not in the current phase
- Do not fire LLM escalation on render or in scheduled loops without the config flag explicitly enabled

<!-- portfolio-context:start -->
# Portfolio Context

## What This Project Is

RedditSentimentAnalyzer is a local-first dashboard for tracking sentiment trends across selected subreddits over time. It ingests Reddit posts/comments, stores historical samples in SQLite, scores sentiment with VADER by default, optionally escalates ambiguous cases to an LLM, and exposes trends, word clouds, and alerts through a FastAPI + React interface.

## Current State

**Phase 0: Foundation** — See IMPLEMENTATION-ROADMAP.md for tasks, acceptance criteria, and verification checklists.

## Stack

| Layer | Tech | Version |
|-------|------|---------|
| Reddit ingestion | PRAW | 7.7.1 |
| Sentiment scoring | vaderSentiment | 3.3.2 |
| Database | SQLite | bundled |
| API server | FastAPI + Uvicorn | 0.111.0 / 0.29.0 |
| Task scheduler | APScheduler | 3.10.4 |
| LLM escalation (optional) | Anthropic SDK | 0.25.0 |
| Frontend | React 18 + Vite 5 | — |
| Charts | Recharts | 2.x |
| Word cloud | D3 | 7.x |

## How To Run

```bash
# Start the FastAPI backend
uv run uvicorn app.main:app --reload
Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

P2 Badge Point run commands at backend modules

The documented backend command references an app package, but this repo only defines the FastAPI app in backend/main.py and has no app package, so following this handoff fails immediately with ModuleNotFoundError instead of starting the service. The daemon command in the same block has the same app.* issue; the existing CLI is under backend.ingestion.ingest_daemon.

Useful? React with 👍 / 👎.


# Start the React dashboard (separate terminal)
cd frontend && npm install && npm run dev

# Or start the ingestion daemon standalone
uv run python -m app.daemon
```

## Known Risks

- Do not write credentials to `.env`, config files, or any file that could be committed
- Do not add cloud sync or any external data persistence — all data stays local
- Do not change the SQLite schema without running a migration script
- Do not add Postgres or any other database — SQLite until 10M+ row threshold
- Do not add features not in the current phase
- Do not fire LLM escalation on render or in scheduled loops without the config flag explicitly enabled

## Next Recommended Move

Use this context plus the README and supporting docs to resume the next active task, then promote the repo beyond minimum-viable by capturing a dedicated handoff, roadmap, or discovery artifact.

<!-- portfolio-context:end -->
Loading