Files
maternal-app/.gitignore
Andrei 40dbb2287a
Some checks failed
ParentFlow CI/CD Pipeline / Backend Tests (push) Has been cancelled
ParentFlow CI/CD Pipeline / Frontend Tests (push) Has been cancelled
ParentFlow CI/CD Pipeline / Security Scanning (push) Has been cancelled
ParentFlow CI/CD Pipeline / Build Docker Images (map[context:maternal-app/maternal-app-backend dockerfile:Dockerfile.production name:backend]) (push) Has been cancelled
ParentFlow CI/CD Pipeline / Build Docker Images (map[context:maternal-web dockerfile:Dockerfile.production name:frontend]) (push) Has been cancelled
ParentFlow CI/CD Pipeline / Deploy to Development (push) Has been cancelled
ParentFlow CI/CD Pipeline / Deploy to Production (push) Has been cancelled
CI/CD Pipeline / Lint and Test (push) Has been cancelled
CI/CD Pipeline / E2E Tests (push) Has been cancelled
CI/CD Pipeline / Build Application (push) Has been cancelled
feat: Implement comprehensive onboarding improvements with role-based family invites
This commit adds a complete onboarding improvements system including progress
tracking, streamlined UI, and role-based family invitation system.

## Backend Changes

### Database Migrations
- Add onboarding tracking fields to users table (onboarding_completed, onboarding_step, onboarding_data)
- Add role-based invite codes to families table (parent/caregiver/viewer codes with expiration)
- Add indexes for fast invite code lookups

### User Preferences Module
- Add UserPreferencesController with onboarding endpoints
- Add UserPreferencesService with progress tracking methods
- Add UpdateOnboardingProgressDto for validation
- Endpoints: GET/PUT /api/v1/preferences/onboarding, POST /api/v1/preferences/onboarding/complete

### Families Module - Role-Based Invites
- Add generateRoleInviteCode() - Generate role-specific codes with expiration
- Add getRoleInviteCodes() - Retrieve all active codes for a family
- Add joinFamilyWithRoleCode() - Join family with automatic role assignment
- Add revokeRoleInviteCode() - Revoke specific role invite codes
- Add sendEmailInvite() - Generate code and send email invitation
- Endpoints: POST/GET/DELETE /api/v1/families/:id/invite-codes, POST /api/v1/families/join-with-role, POST /api/v1/families/:id/email-invite

### Email Service
- Add sendFamilyInviteEmail() - Send role-based invitation emails
- Beautiful HTML templates with role badges (👨‍👩‍👧 parent, 🤝 caregiver, 👁️ viewer)
- Role-specific permission descriptions
- Graceful fallback if email sending fails

### Auth Service
- Fix duplicate family creation bug in joinFamily()
- Ensure users only join family once during onboarding

## Frontend Changes

### Onboarding Page
- Reduce steps from 5 to 4 (combined language + measurements)
- Replace card-based selection with dropdown selectors
- Add automatic progress saving after each step
- Add progress restoration on page mount
- Extract FamilySetupStep into reusable component

### Family Page
- Add RoleInvitesSection component with accordion UI
- Generate/view/copy/regenerate/revoke controls for each role
- Send email invites directly from UI
- Display expiration dates (e.g., "Expires in 5 days")
- Info tooltips explaining role permissions
- Only visible to users with parent role

### API Client
- Add role-based invite methods to families API
- Add onboarding progress methods to users API
- TypeScript interfaces for all new data structures

## Features

 Streamlined 4-step onboarding with dropdown selectors
 Automatic progress save/restore across sessions
 Role-based family invites (parent/caregiver/viewer)
 Beautiful email invitations with role descriptions
 Automatic role assignment when joining with invite codes
 Granular permission control per role
 Email fallback if sending fails
 All changes tested and production-ready

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude <noreply@anthropic.com>
2025-10-09 15:25:16 +00:00

140 lines
1.9 KiB
Plaintext

# Dependencies
node_modules/
maternal-app/node_modules/
maternal-app-backend/node_modules/
maternal-web/node_modules/
# Environment variables
.env
.env.local
.env.development
.env.production
maternal-app/.env
maternal-app-backend/.env
maternal-web/.env
# Build outputs
dist/
build/
maternal-app/dist/
maternal-app-backend/dist/
maternal-web/.next/
maternal-web/out/
# IDE
.vscode/
.idea/
*.swp
*.swo
*~
# OS
.DS_Store
Thumbs.db
*.pid
# Logs
logs/
*.log
npm-debug.log*
yarn-debug.log*
yarn-error.log*
# Expo
maternal-app/.expo/
maternal-app/.expo-shared/
# Database
*.sqlite
*.sqlite3
# Database backups
backups/
*.sql
*.sql.gz
*.dump
*.backup
# Docker volumes
postgres_data/
redis_data/
mongodb_data/
minio_data/
# Testing
coverage/
.nyc_output/
# TypeScript
*.tsbuildinfo
# React Native
maternal-app/android/
maternal-app/ios/
!maternal-app/android/.gitkeep
!maternal-app/ios/.gitkeep
# Caches
.cache/
.turbo/
.parcel-cache/
.npm/
.eslintcache
# Next.js specific
maternal-web/.next/
maternal-web/out/
maternal-web/.cache/
# Package manager lock files (optional - uncomment if you want to ignore)
# package-lock.json
# yarn.lock
# pnpm-lock.yaml
# Documentation and planning (development only)
docs/
CLAUDE.md
*_IMPLEMENTATION_STATUS.md
DATABASE_SCHEMA_SYNC.md
DATABASE_SYNC_SUMMARY.txt
PROGRESS.md
PRODUCTION_DEPLOYMENT.md
PRODUCTION_INSTALLATION.md
TESTING.md
PACKAGE_UPGRADE_PLAN.md
PUSH_NOTIFICATIONS_IMPLEMENTATION.md
PUSH_NOTIFICATIONS_PERSISTENCE_SUMMARY.md
pwa_web_push_implementation_plan.md
**/docs/*.md
!README.md
# Development scripts and logs
start-dev.sh
stop-dev.sh
deploy-production.sh
migrate-production.sh
start-production.sh
stop-production.sh
*.dev.log
/tmp/*.log
# Development environment
.dev/
dev-data/
temp/
**/temp/
# Temporary development files
*.tmp
*.temp
.scratch/
# Test files and examples
test-*.js
test-*.ts
test-*.mjs
example-queries.gql
**/scripts/test-*.sh
**/scripts/test-*.mjs
**/scripts/test-*.ts