How rayhannr/places-to-go works
Places To Go is a personal food-place tracker with browser, Telegram, CLI, and MCP entry points. The main workflow is to ask for recommendations or manage a place; AI tools perform the relevant discovery or tracker operation, using mapping services and place storage where needed, and the result returns through the initiating interface. The README documents recommendations, visit and priority tracking, geolocation, a decision wheel, and closure cleanup. Some subsystem wiring is based on documented capabilities because its source was not sampled.
Main entry points: tools.ts AI tool registry · googleSheets.ts Google Sheets adapter · check-closures/route.ts Closure checker · chat/route.ts Chat endpoint
Components 28
User Interfaces
- Tracker UI
app/page.tsx - Chat interface
components/chat - Places wheel
components/wheel-of-places.tsx - CLI entry
cli/index.ts - Chat endpoint
app/api/chat/route.ts - Places endpoint
app/api/places/route.ts - Telegram webhook
app/api/telegram/route.ts - MCP endpoint
app/api/mcp/route.ts - Request authentication
lib/auth.ts - Telegram bot
lib/bot.ts - CLI commands
cli/commands.ts
AI and Place Workflows
- AI tool registry
lib/ai/tools.ts - Recommendations
lib/ai/tools/logic.ts - Place operations
lib/ai/tools/places.ts - Location and routes
lib/ai/tools/location.ts - Closure checker
app/api/cron/check-closures/route.ts
Place Data
- Google Sheets adapter
lib/googleSheets.ts - Demo place store
lib/demo-store.ts
External Services
- Google Sheets
- Vercel Blob
- Mistral AI
- Google Maps APIs
- Upstash Redis
- Telegram
Other components
- Browser user
- Telegram user
- CLI user
- MCP client
Connections 34
- Browser user → Tracker UI: uses
- Tracker UI → Chat interface: presents
- Chat interface → Chat endpoint: sends chat
- Chat interface → Places endpoint: loads places
- Tracker UI → Places wheel: offers spins
- Chat endpoint → Request authentication: checks access
- Places endpoint → Request authentication: checks access
- Chat endpoint → AI tool registry: dispatches tools
- Chat endpoint → Mistral AI: streams chat
- AI tool registry → Recommendations: uses
- AI tool registry → Place operations: uses
- AI tool registry → Location and routes: uses
- Recommendations → Google Sheets adapter: reads places
- Place operations → Google Sheets adapter: manages places
- Location and routes → Google Maps APIs: gets routes
- Places endpoint → Google Sheets adapter: reads places
- Google Sheets adapter → Google Sheets: reads and writes
- Google Sheets adapter → Demo place store: uses in demo
- Demo place store → Vercel Blob: stores data
- Telegram user → Telegram: messages
- Telegram → Telegram webhook: sends webhook
- Telegram webhook → Telegram bot: dispatches updates
- Telegram bot → AI tool registry: uses tools
- Telegram bot → Telegram: sends replies
- CLI user → CLI entry: runs
- CLI entry → CLI commands: dispatches commands
- CLI commands → AI tool registry: runs tools
- MCP client → MCP endpoint: calls tools
- MCP endpoint → Request authentication: checks access
- MCP endpoint → AI tool registry: registers and invokes
- Closure checker → Google Sheets adapter: reads and updates
- Closure checker → Google Maps APIs: checks status
- Closure checker → Upstash Redis: tracks checks
- Closure checker → Telegram: sends alerts