Skip to main content

Substance Tracking

Status: ✅ Complete
Last Updated: 2026-01-14

Overview​

Complete substance tracking system covering supplements, caffeine, water, alcohol, medications, and recreational substances with correlation analytics.

Implementation Details​

Supplements​

  • ✅ Database schema (SupplementIntake model)
  • ✅ Backend service (SupplementIntakeService with create, getByDay, getByDateRange, getBySupplementName, update, delete)
  • ✅ API routes (POST /api/supplements, GET /api/supplements/day/:dayId, GET /api/supplements/range, PUT /api/supplements/:id, DELETE /api/supplements/:id)
  • ✅ Backend tests (18 service tests, 18 route integration tests, all passing)
  • ✅ Frontend component (TodaySupplements component with API integration, entry list, custom form, quick-add buttons)
  • ✅ Frontend tests (9 tests, all passing)

Caffeine​

  • ✅ Database schema (CaffeineIntake model)
  • ✅ Backend service (CaffeineIntakeService with create, getByDay, getDayTotal, getByDateRange, update, delete)
  • ✅ API routes (POST /api/caffeine, GET /api/caffeine/day/:dayId, GET /api/caffeine/day/:dayId/total, GET /api/caffeine/range, PUT /api/caffeine/:id, DELETE /api/caffeine/:id)
  • ✅ Backend tests (18 service tests, 17 route integration tests, all passing)
  • ✅ Frontend component (TodayCaffeine component with API integration, entry list, custom form, quick-add buttons)
  • ✅ Frontend tests (10 tests, all passing)

Water (Enhanced)​

  • ✅ Database schema (WaterIntake model)
  • ✅ Backend service (WaterIntakeService with create, getByDay, getDayTotal, getByDateRange, update, delete)
  • ✅ API routes (POST /api/water, GET /api/water/day/:dayId, GET /api/water/day/:dayId/total, GET /api/water/range, PUT /api/water/:id, DELETE /api/water/:id)
  • ✅ Backend tests (18 service tests, 17 route integration tests, all passing)
  • ✅ Frontend component (Enhanced TodayHydration component with WaterIntake API integration, entry list, custom form, quick-add buttons)
  • ✅ Frontend tests (10 tests, all passing)

Alcohol​

  • ✅ Database schema (AlcoholIntake model)
  • ✅ Backend service (AlcoholIntakeService with create, getByDay, getDayTotal, getByDateRange, update, delete)
  • ✅ API routes (POST /api/alcohol, GET /api/alcohol/day/:dayId, GET /api/alcohol/day/:dayId/total, GET /api/alcohol/range, PUT /api/alcohol/:id, DELETE /api/alcohol/:id)
  • ✅ Backend tests (18 service tests, 17 route integration tests, all passing)
  • ✅ Frontend component (TodayAlcohol component with API integration, entry list, custom form, quick-add buttons)
  • ✅ Frontend tests (10 tests, all passing)

Medications (Medical)​

  • ✅ Database schema (MedicationIntake model)
  • ✅ Backend service (MedicationIntakeService with create, getByDay, getByDateRange, getByMedicationName, update, delete)
  • ✅ API routes (POST /api/medications, GET /api/medications/day/:dayId, GET /api/medications/range, PUT /api/medications/:id, DELETE /api/medications/:id)
  • ✅ Backend tests (18 service tests, 18 route integration tests, all passing)
  • ✅ Frontend component (TodayMedications component with API integration, entry list, custom form, quick-add buttons)
  • ✅ Frontend tests (9 tests, all passing)

Recreational Substances​

  • ✅ Database schema (RecreationalSubstanceIntake model with classification, type, amount, time, additionalIntake, form, method, notes)
  • ✅ Backend service (RecreationalSubstanceIntakeService with create, getByDay, getByDateRange, getByClassification, getBySubstanceType, update, delete)
  • ✅ API routes (POST /api/recreational-substances, GET /api/recreational-substances/day/:dayId, GET /api/recreational-substances/range, PUT /api/recreational-substances/:id, DELETE /api/recreational-substances/:id)
  • ✅ Backend tests (24 service tests, 11 route integration tests, all passing)
  • ✅ Frontend component (TodayRecreationalSubstances component with API integration, entry list, custom form with classification selector)
  • ✅ Frontend tests (7 tests, all passing)
  • ✅ Advanced correlation analytics (correlations between intake frequency/time and sleep/mood/energy, averages by hard/soft/no substance classification, trend data)

API Endpoints​

  • /api/supplements - Supplement intake CRUD
  • /api/caffeine - Caffeine intake CRUD
  • /api/water - Water intake CRUD
  • /api/alcohol - Alcohol intake CRUD
  • /api/medications - Medication intake CRUD
  • /api/recreational-substances - Recreational substance intake CRUD
  • /api/recreational-substances/analytics/correlations - Correlation analytics

Frontend Pages​

  • All substance tracking integrated into Today page
  • Recreational Substance Correlation Analytics (/analytics/recreational-substances/correlations)