How mahe13185/nutrisense works
NutriSense guides users through a nutrition self-assessment, applies explainable rules to estimate nutrient-related risks, and presents explanations and recommendations. The README describes local browser storage as the privacy-first default, while sampled code also shows optional authenticated Supabase assessment persistence and history. Food exploration and methodology guidance are separate awareness features. Some page implementations and engine lines were not sampled, so their internal wiring is shown only where documented or directly evidenced.
Main entry points: page.tsx Assessment form · supabaseStorage.ts Assessment storage · auth-context.tsx Auth context · assessmentEngine.ts Rule engine
Components 21
User journeys
- Landing page
app/page.tsx
Assessment and results
- Assessment form
app/assessment/page.tsx - Question data
data/questions.ts - Rule engine
lib/assessmentEngine.ts - Results dashboard
app/results/page.tsx
Nutrition knowledge
- Nutrient data
data/nutrients.ts - Food explorer
app/foods/page.tsx - Food catalog
data/foods.ts - Guidelines
app/guidelines/page.tsx - Guidance content
data/guidelines.ts
Accounts and persistence
- Login
app/login/page.tsx - Sign up
app/signup/page.tsx - Auth context
lib/auth-context.tsx - User dashboard
app/dashboard/page.tsx - Assessment history
app/history/page.tsx - User profile
app/profile/page.tsx - Browser storage
lib/storage.ts - Assessment storage
lib/supabaseStorage.ts
Other components
- User
- Supabase
lib/supabase.ts - Assessments database
supabase/schema.sql
Connections 26
- User → Landing page: opens
- Landing page → Assessment form: starts assessment
- Assessment form → Question data: uses questions
- Assessment form → Rule engine: submits responses
- Rule engine → Nutrient data: assesses nutrients
- Rule engine → Assessment form: returns assessment
- Assessment form → Browser storage: saves draft and result
- Results dashboard → Browser storage: reads saved result
- User → Results dashboard: views results
- User → Food explorer: explores foods
- Food explorer → Food catalog: filters foods
- User → Guidelines: reads guidance
- Guidelines → Guidance content: displays guidance
- User → Login: signs in
- User → Sign up: creates account
- Login → Auth context: uses authentication
- Sign up → Auth context: uses authentication
- Assessment form → Auth context: checks user
- Assessment form → Assessment storage: optionally saves
- Assessment storage → Supabase: queries assessments
- Supabase → Assessments database: reads and writes
- Results dashboard → Assessment storage: loads by ID
- User dashboard → Assessment storage: loads history
- Assessment history → Assessment storage: loads history
- User dashboard → Auth context: uses user session
- User profile → Auth context: protects profile