- Query params:
?from=DATE&to=DATE
- Response (200):
{ message: string, data: CheckIn[] }
GET /api/v1/check-in/stats
- Aggregate statistics for dashboard
- Returns mood/pain averages, streak data, etc.
- Response (200):
{ message: string, data: Stats }
Check-In Data Structure
{
id: string
userId: string
checkInDate: Date // Date only, not time
moodScore: number // 1-10
painLevel: number // 1-10
activities: string[] // Array of activity names
notes?: string
createdAt: Date
updatedAt: Date
insights?: Insight[] // AI-generated insights
}
Feature Specifications
1. Daily Check-In Form
- Mood scale: 1-10 slider
- Pain level: 1-10 slider
- Activities: Multi-select with quick-action suggestions (derived client-side from recent history)
- Notes: Optional text field (up to 1000 characters)
- Smart save: POST upserts (creates or updates same-day entry); use PATCH for explicit partial update
- Form validation with error feedback
2. Activity Suggestions (Client-Side)
Activities are suggested based on recent history:
Algorithm: