Frontend Features: - Add MessageFeedback component with thumbs up/down buttons - Positive feedback submits immediately with success toast - Negative feedback opens dialog for optional text input - Integrate feedback buttons on all AI assistant messages - Add success Snackbar confirmation message - Translation keys added to ai.json (feedback section) Backend Features: - Add POST /api/v1/ai/feedback endpoint - Create FeedbackDto with conversation ID validation - Implement submitFeedback service method - Store feedback in conversation metadata with timestamps - Add audit logging for feedback submissions - Fix conversationId regex validation to support nanoid format Legal & Compliance: - Implement complete EULA acceptance flow with modal - Create reusable legal content components (Terms, Privacy, EULA) - Add LegalDocumentViewer for nested modal viewing - Cookie Consent Banner with GDPR compliance - Legal pages with AppShell navigation - EULA acceptance tracking in user entity Branding Updates: - Rebrand from "Maternal App" to "ParentFlow" - Update all icons (72px to 512px) from high-res source - PWA manifest updated with ParentFlow branding - Contact email: hello@parentflow.com - Address: Serbota 3, Bucharest, Romania Bug Fixes: - Fix chat endpoint validation (support nanoid conversation IDs) - Fix EULA acceptance API call (use apiClient vs hardcoded localhost) - Fix icon loading errors with proper PNG generation Documentation: - Mark 11 high-priority features as complete in REMAINING_FEATURES.md - Update feature statistics: 73/139 complete (53%) - All high-priority features now complete! 🎉 Files Changed: Frontend: 21 files (components, pages, locales, icons) Backend: 6 files (controller, service, DTOs, migrations) Docs: 1 file (REMAINING_FEATURES.md) Co-Authored-By: Claude <noreply@anthropic.com>
63 lines
1.5 KiB
JSON
63 lines
1.5 KiB
JSON
{
|
|
"name": "ParentFlow - AI Parenting Assistant",
|
|
"short_name": "ParentFlow",
|
|
"description": "Track your child's activities, get AI-powered insights, and stay organized with your family.",
|
|
"theme_color": "#FFB6C1",
|
|
"background_color": "#FFFFFF",
|
|
"display": "standalone",
|
|
"orientation": "portrait",
|
|
"scope": "/",
|
|
"start_url": "/",
|
|
"icons": [
|
|
{
|
|
"src": "/icons/icon-72x72.png",
|
|
"sizes": "72x72",
|
|
"type": "image/png",
|
|
"purpose": "maskable any"
|
|
},
|
|
{
|
|
"src": "/icons/icon-96x96.png",
|
|
"sizes": "96x96",
|
|
"type": "image/png",
|
|
"purpose": "maskable any"
|
|
},
|
|
{
|
|
"src": "/icons/icon-128x128.png",
|
|
"sizes": "128x128",
|
|
"type": "image/png",
|
|
"purpose": "maskable any"
|
|
},
|
|
{
|
|
"src": "/icons/icon-144x144.png",
|
|
"sizes": "144x144",
|
|
"type": "image/png",
|
|
"purpose": "maskable any"
|
|
},
|
|
{
|
|
"src": "/icons/icon-152x152.png",
|
|
"sizes": "152x152",
|
|
"type": "image/png",
|
|
"purpose": "maskable any"
|
|
},
|
|
{
|
|
"src": "/icons/icon-192x192.png",
|
|
"sizes": "192x192",
|
|
"type": "image/png",
|
|
"purpose": "maskable any"
|
|
},
|
|
{
|
|
"src": "/icons/icon-384x384.png",
|
|
"sizes": "384x384",
|
|
"type": "image/png",
|
|
"purpose": "maskable any"
|
|
},
|
|
{
|
|
"src": "/icons/icon-512x512.png",
|
|
"sizes": "512x512",
|
|
"type": "image/png",
|
|
"purpose": "maskable any"
|
|
}
|
|
],
|
|
"splash_pages": null
|
|
}
|