Initial implementation of event recommendation service#1
Open
chancesend wants to merge 2 commits into
Open
Conversation
Full working skeleton: FastAPI + APScheduler service that runs Claude
(Sonnet, tool-use) with Tavily web search to discover upcoming events,
stores them in SQLite, and emails per-user HTML digests.
Key design decisions implemented:
- YAML preferences per user + household.yaml for shared picks
- Normalized events table with recommendations join table so shared
events fall out naturally from a simple 2+ user_id query
- Search result cache (query hash + TTL) to avoid redundant Tavily
calls when users share interests
- Per-user APScheduler cron jobs loaded from YAML schedules
- Household mode: explicit household agent run + organic promotion
of events that appear in 2+ individual runs
- PWA-ready FastAPI app with /u/{slug}/ per-user routes and
/household/ shared page, iOS home-screen compatible
13 passing unit tests covering prefs I/O, household synthesis,
deduplication helpers, and SQLAlchemy model constraints.
https://claude.ai/code/session_01KVmem9weT6rnWfSg1KNGA6
README covers project overview, architecture diagram, setup guide (TrueNAS SCALE and local), full user guide (web UI, iOS PWA, rating, scheduling, household mode), and dev instructions. CLAUDE.md is a quick-reference for future agents: stack, file layout, data model, agent flow, route map, settings, common tasks, and the key design decisions worth preserving. https://claude.ai/code/session_01KVmem9weT6rnWfSg1KNGA6
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Full working skeleton: FastAPI + APScheduler service that runs Claude
(Sonnet, tool-use) with Tavily web search to discover upcoming events,
stores them in SQLite, and emails per-user HTML digests.
Key design decisions implemented:
events fall out naturally from a simple 2+ user_id query
calls when users share interests
of events that appear in 2+ individual runs
/household/ shared page, iOS home-screen compatible
13 passing unit tests covering prefs I/O, household synthesis,
deduplication helpers, and SQLAlchemy model constraints.
https://claude.ai/code/session_01KVmem9weT6rnWfSg1KNGA6