How reiides/suppliwise works
SuppliWise is a personalized supplement-advice application: users create an account, complete a four-step health assessment, receive AI-backed recommendations, and can follow a supplement plan over time. The product also includes assessment history, intake tracking, insights, profile management, health chat, and PDF reports. The graph follows documented capabilities and sampled routing; API-client internals and several route implementations were not sampled, so uncertain service-level wiring is omitted.
Main entry points: App.jsx App Router · index.js Express API · api.js API Client · recommend.js Recommendation Service
Components 30
Web and Mobile
- App Router
my-react-app/src/App.jsx - Profile Management
my-react-app/src/Pages/ProfilePage.jsx - API Client
my-react-app/src/api.js
Assessment and Advice
- Health Assessment
my-react-app/src/Pages/AssessmentPage.jsx - Recommendations
my-react-app/src/Pages/RecommendationsPage.jsx - Results
my-react-app/src/Pages/ResultsPage.jsx - Supplement Details
server/routes/supplement_detail.js - PDF Report
my-react-app/src/utils/exportPDF.js - Health Chat
my-react-app/src/Pages/ChatAssistant.jsx
Tracking and History
- Dashboard
my-react-app/src/Pages/DashboardPage.jsx - Intake Tracking
my-react-app/src/Pages/TrackIntakePage.jsx - Health Insights
my-react-app/src/Pages/InsightsPage.jsx - Assessment History
my-react-app/src/Pages/HistoryPage.jsx
Backend Services
- Express API
server/index.js - Authentication and OTP
server/routes/auth.js - Assessment Service
server/routes/assessment.js - Recommendation Service
server/routes/recommend.js - Chat Service
server/routes/chat.js - Dashboard Service
server/routes/dashboard.js - Insights Service
server/routes/insights.js - Input Sanitization
server/utils/sanitize.js
Persistent State
- User Records
server/models/User.js - Assessment Records
server/models/Assessment.js - Intake Records
server/models/IntakeRecord.js - Dashboard Metrics
server/models/DashboardMetrics.js - Supplement Details
server/models/SupplementDetail.js
Other components
- User
- MongoDB
- OpenRouter AI
- Email Delivery
Connections 44
- User → App Router: uses
- App Router → Health Assessment: routes
- App Router → Recommendations: routes
- App Router → Dashboard: routes
- App Router → Intake Tracking: routes
- App Router → Health Insights: routes
- App Router → Assessment History: routes
- App Router → Profile Management: routes
- Health Assessment → API Client: saves and requests
- Recommendations → API Client: requests details
- Dashboard → API Client: loads dashboard
- Intake Tracking → API Client: records intake
- Health Insights → API Client: loads insights
- Assessment History → API Client: loads history
- Profile Management → API Client: updates profile
- Health Chat → API Client: sends prompts
- Results → PDF Report: exports report
- Assessment History → PDF Report: exports report
- API Client → Express API: sends requests
- Express API → Authentication and OTP: mounts auth
- Express API → Assessment Service: mounts assessment
- Express API → Recommendation Service: mounts recommendations
- Express API → Chat Service: mounts chat
- Express API → Dashboard Service: mounts dashboard
- Express API → Insights Service: mounts insights
- Assessment Service → Input Sanitization: cleans input
- Recommendation Service → Input Sanitization: cleans input
- Recommendation Service → OpenRouter AI: requests plan
- Chat Service → OpenRouter AI: requests answers
- Authentication and OTP → Email Delivery: sends OTP
- Authentication and OTP → User Records: reads and writes
- Assessment Service → Assessment Records: stores assessments
- Recommendation Service → Assessment Records: stores results
- Dashboard Service → Intake Records: reads intake
- Dashboard Service → Dashboard Metrics: reads metrics
- Insights Service → Assessment Records: reads assessments
- Insights Service → Intake Records: reads intake
- Supplement Details → Supplement Details: reads details
- Express API → MongoDB: connects
- User Records → MongoDB: persists
- Assessment Records → MongoDB: persists
- Intake Records → MongoDB: persists
- Dashboard Metrics → MongoDB: persists
- Supplement Details → MongoDB: persists