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
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>
140 lines
1.9 KiB
Plaintext
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
|