How prkr-28/project-aivora works
Aivora turns a user’s goal into an AI-generated day-by-day plan, then supports daily progress tracking, sentiment and analytics, AI insights, plan regeneration, chat guidance, and PDF reporting. The graph follows documented REST flows and sampled controller behavior; several frontend API calls and unsampled chat/PDF/AI wiring are represented only where supported by the README or tree, so uncertain internal links are omitted.
Main entry points: pdf.controller.js PDF endpoint · App.jsx React app · server.js Express API · goal.controller.js Goal workflow
Components 31
Web application
- React app
frontend/src/App.jsx - Goal pages
frontend/src/pages - Dashboard
frontend/src/pages/DashboardPage.jsx - Insights page
frontend/src/pages/InsightsPage.jsx - Chat assistant
frontend/src/components/ChatAssistant.jsx - Client stores
frontend/src/store - HTTP client
frontend/src/lib/api.js
API workflows
- Express API
backend/src/server.js - Goal routes
backend/src/routes/goal.routes.js - Progress routes
backend/src/routes/progress.routes.js - Auth routes
backend/src/routes/auth.routes.js - Goal workflow
backend/src/controllers/goal.controller.js - Progress workflow
backend/src/controllers/progress.controller.js - Authentication
backend/src/controllers/auth.controller.js - Chat workflow
backend/src/controllers/chat.controller.js
AI engine
- Goal planner
backend/src/ai/chains/goalPlannerChain.js - Plan regeneration
backend/src/ai/chains/regenerationChain.js - Insight analyzer
backend/src/ai/chains/insightAnalyzerChain.js - Report generator
backend/src/ai/chains/reportGeneratorChain.js - Validated generation
backend/src/ai/graphs/structuredGenerationGraph.js - Sentiment analysis
backend/src/ai/utils/sentimentAnalyzer.js
Persistent data
Insights and reports
- Insight workflow
backend/src/controllers/insight.controller.js - PDF endpoint
backend/src/controllers/pdf.controller.js - PDF renderer
backend/src/services/pdf.service.js
Other components
- User
- Gemini AI
- MongoDB
Connections 45
- User → React app: uses
- React app → Goal pages: routes to
- React app → Dashboard: routes to
- React app → Insights page: routes to
- React app → Chat assistant: renders
- Goal pages → Client stores: updates
- Dashboard → Client stores: reads
- Insights page → HTTP client: requests
- Goal pages → HTTP client: requests
- Dashboard → HTTP client: requests
- Chat assistant → HTTP client: requests
- HTTP client → Express API: sends REST
- Express API → Goal routes: mounts
- Express API → Progress routes: mounts
- Express API → Auth routes: mounts
- Goal routes → Goal workflow: dispatches
- Progress routes → Progress workflow: dispatches
- Auth routes → Authentication: dispatches
- Goal workflow → Goal planner: generates plan
- Goal workflow → Plan regeneration: regenerates plan
- Progress workflow → Sentiment analysis: scores comment
- Insight workflow → Insight analyzer: analyzes progress
- Chat workflow → Gemini AI: requests guidance
- Goal planner → Validated generation: uses workflow
- Plan regeneration → Validated generation: uses workflow
- Insight analyzer → Validated generation: uses workflow
- Validated generation → Gemini AI: prompts
- Goal workflow → Goals: reads and writes
- Goal workflow → Progress: reads and deletes
- Progress workflow → Goals: reads and updates
- Progress workflow → Progress: reads and writes
- Authentication → Users: reads and writes
- Insight workflow → Goals: verifies goal
- Insight workflow → Progress: reads progress
- Insight workflow → Insights: stores and reads
- Express API → PDF endpoint: mounts PDF routes
- PDF endpoint → PDF renderer: generates report
- PDF endpoint → Goals: reads goal
- PDF endpoint → Progress: reads progress
- PDF endpoint → Insights: reads insights
- PDF endpoint → Report generator: requests report content
- Goals → MongoDB: persists
- Progress → MongoDB: persists
- Insights → MongoDB: persists
- Users → MongoDB: persists