How harshgupta38/shadow works
Shadow V2 is the current product: a personal AI planning and accountability app. A user works through goals, milestones and habits/tasks, gets a materialized daily plan, then tracks progress through journaling, reports and a spoken daily brief; the assistant can inspect and propose planning changes. The graph follows the README’s documented architecture and feature descriptions. Source excerpts are limited, so detailed domain-service calls and some integrations are shown only where the README explicitly documents them.
Main entry points: api FastAPI API · session.py SQL database · main.py Background schedulers · chat_service.py Tool-using assistant
Components 22
User experience
- Web app
FrontEnd_V2/src - FastAPI API
BackEnd_V2/app/api - Accounts and sessions
BackEnd_V2/app/services/auth_service.py
Planning and progress
- Goals and milestones
BackEnd_V2/app/services/goals_service.py - Habits
BackEnd_V2/app/services/habits_service.py - Tasks and schedule
BackEnd_V2/app/services/tasks_service.py - Daily planning
BackEnd_V2/app/services/planner_service.py - Progress tracking
BackEnd_V2/app/services/track_progress_service.py
AI assistant
- Tool-using assistant
BackEnd_V2/app/services/chat_service.py - LLM service
BackEnd_V2/app/llm/service.py - Persistent AI memory
BackEnd_V2/app/services/memory_service.py
Accountability
- Daily and weekly reports
BackEnd_V2/app/services/report_service.py - Daily brief and audio
BackEnd_V2/app/services/daily_brief_service.py - Daily journal
BackEnd_V2/app/services/journal_service.py - Profile and dashboard
BackEnd_V2/app/services/dashboard_service.py
Runtime platform
- Notifications
BackEnd_V2/app/services/notifications_service.py - Background schedulers
BackEnd_V2/app/main.py - SQL database
BackEnd_V2/app/db/session.py - LLM providers
BackEnd_V2/app/llm/providers - Push, email, SSE
BackEnd_V2/app/services/push_service.py - Speech services
BackEnd_V2/app/llm/tts/service.py
Other components
- User
Connections 27
- User → Web app: uses
- Web app → FastAPI API: calls API
- FastAPI API → Accounts and sessions: routes requests
- FastAPI API → Goals and milestones: routes requests
- FastAPI API → Habits: routes requests
- FastAPI API → Tasks and schedule: routes requests
- FastAPI API → Daily planning: routes requests
- FastAPI API → Progress tracking: routes requests
- FastAPI API → Tool-using assistant: routes requests
- FastAPI API → Daily journal: routes requests
- FastAPI API → Daily and weekly reports: routes requests
- FastAPI API → Daily brief and audio: routes requests
- FastAPI API → Profile and dashboard: routes requests
- FastAPI API → Notifications: routes requests
- Daily planning → SQL database: reads and writes
- Tool-using assistant → LLM service: uses tools
- Tool-using assistant → Persistent AI memory: uses persistent memory
- LLM service → LLM providers: selects provider
- Daily and weekly reports → SQL database: reads and writes
- Daily brief and audio → Speech services: generates speech
- Daily brief and audio → SQL database: stores brief
- Daily journal → SQL database: stores entries
- Profile and dashboard → SQL database: reads metrics
- Notifications → Push, email, SSE: dispatches
- Background schedulers → Daily and weekly reports: generates reports
- Background schedulers → Notifications: dispatches notifications
- Background schedulers → SQL database: backs up database
BackEnd_V2/app/main.py