feat: Implement AI response feedback UI and complete high-priority features
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>
This commit is contained in:
@@ -11,6 +11,8 @@ import { FocusManagementProvider } from '@/components/providers/FocusManagementP
|
||||
import { BackgroundSyncProvider } from '@/components/providers/BackgroundSyncProvider';
|
||||
import { InstallPrompt } from '@/components/pwa/InstallPrompt';
|
||||
import { I18nProvider } from '@/components/providers/I18nProvider';
|
||||
import { EULACheck } from '@/components/legal/EULACheck';
|
||||
import { CookieConsent } from '@/components/common/banners/CookieConsent';
|
||||
// import { PerformanceMonitor } from '@/components/common/PerformanceMonitor'; // Temporarily disabled
|
||||
import './globals.css';
|
||||
|
||||
@@ -56,11 +58,13 @@ export default function RootLayout({
|
||||
<FocusManagementProvider>
|
||||
<SkipNavigation />
|
||||
{/* <PerformanceMonitor /> */}
|
||||
<EULACheck />
|
||||
<main id="main-content" tabIndex={-1}>
|
||||
{children}
|
||||
</main>
|
||||
<VoiceFloatingButton />
|
||||
<InstallPrompt />
|
||||
<CookieConsent />
|
||||
</FocusManagementProvider>
|
||||
</ThemeRegistry>
|
||||
</BackgroundSyncProvider>
|
||||
|
||||
289
maternal-web/app/legal/cookies/page.tsx
Normal file
289
maternal-web/app/legal/cookies/page.tsx
Normal file
@@ -0,0 +1,289 @@
|
||||
'use client';
|
||||
|
||||
import { Box, Container, Typography, Paper } from '@mui/material';
|
||||
import Link from 'next/link';
|
||||
import { AppShell } from '@/components/layouts/AppShell/AppShell';
|
||||
import { ProtectedRoute } from '@/components/common/ProtectedRoute';
|
||||
|
||||
export default function CookiePolicyPage() {
|
||||
const lastUpdated = 'October 4, 2025';
|
||||
|
||||
return (
|
||||
<ProtectedRoute>
|
||||
<AppShell>
|
||||
<Container maxWidth="md" sx={{ py: 4 }}>
|
||||
<Paper elevation={0} sx={{ p: 4, border: 1, borderColor: 'divider' }}>
|
||||
<Typography variant="h3" component="h1" gutterBottom>
|
||||
Cookie Policy
|
||||
</Typography>
|
||||
|
||||
<Typography variant="body2" color="text.secondary" paragraph>
|
||||
Last Updated: {lastUpdated}
|
||||
</Typography>
|
||||
|
||||
<Box sx={{ mt: 4 }}>
|
||||
<Typography variant="h5" gutterBottom sx={{ mt: 3 }}>
|
||||
1. What Are Cookies?
|
||||
</Typography>
|
||||
<Typography paragraph>
|
||||
Cookies are small text files stored on your device (computer, smartphone, tablet) when you visit websites or use applications.
|
||||
They help websites remember your preferences, login status, and browsing behavior.
|
||||
</Typography>
|
||||
<Typography paragraph>
|
||||
ParentFlow uses cookies and similar tracking technologies (collectively "cookies") to provide, improve, and secure our Service.
|
||||
</Typography>
|
||||
|
||||
<Typography variant="h5" gutterBottom sx={{ mt: 3 }}>
|
||||
2. Why We Use Cookies
|
||||
</Typography>
|
||||
<Typography component="div" paragraph>
|
||||
We use cookies for the following purposes:
|
||||
<ul>
|
||||
<li><strong>Authentication:</strong> Keep you logged in across sessions</li>
|
||||
<li><strong>Security:</strong> Detect suspicious activity and prevent fraud</li>
|
||||
<li><strong>Preferences:</strong> Remember your language, timezone, and app settings</li>
|
||||
<li><strong>Performance:</strong> Monitor app performance and error rates</li>
|
||||
<li><strong>Analytics:</strong> Understand how users interact with our Service (anonymized)</li>
|
||||
<li><strong>Features:</strong> Enable real-time sync and notifications</li>
|
||||
</ul>
|
||||
</Typography>
|
||||
|
||||
<Typography variant="h5" gutterBottom sx={{ mt: 3 }}>
|
||||
3. Types of Cookies We Use
|
||||
</Typography>
|
||||
|
||||
<Typography variant="h6" gutterBottom sx={{ mt: 2 }}>
|
||||
3.1 Strictly Necessary Cookies
|
||||
</Typography>
|
||||
<Typography paragraph>
|
||||
These cookies are essential for the Service to function. Without them, you cannot log in, save data, or use core features.
|
||||
</Typography>
|
||||
<Typography component="div" paragraph>
|
||||
<strong>Examples:</strong>
|
||||
<ul>
|
||||
<li><strong>auth_token:</strong> JWT access token for authentication (expires in 1 hour)</li>
|
||||
<li><strong>refresh_token:</strong> Refresh token for session renewal (expires in 7 days)</li>
|
||||
<li><strong>device_id:</strong> Device fingerprint for multi-device management</li>
|
||||
<li><strong>csrf_token:</strong> Protection against cross-site request forgery</li>
|
||||
</ul>
|
||||
</Typography>
|
||||
<Typography paragraph>
|
||||
<strong>Storage Duration:</strong> Session cookies (deleted when you close the app) or up to 7 days for refresh tokens.
|
||||
</Typography>
|
||||
|
||||
<Typography variant="h6" gutterBottom sx={{ mt: 2 }}>
|
||||
3.2 Functional Cookies
|
||||
</Typography>
|
||||
<Typography paragraph>
|
||||
These cookies remember your preferences and settings to enhance your experience.
|
||||
</Typography>
|
||||
<Typography component="div" paragraph>
|
||||
<strong>Examples:</strong>
|
||||
<ul>
|
||||
<li><strong>language:</strong> Your preferred language (e.g., English, Spanish)</li>
|
||||
<li><strong>timezone:</strong> Your timezone for accurate timestamps</li>
|
||||
<li><strong>theme:</strong> Light or dark mode preference</li>
|
||||
<li><strong>onboarding_completed:</strong> Whether you've completed the setup wizard</li>
|
||||
</ul>
|
||||
</Typography>
|
||||
<Typography paragraph>
|
||||
<strong>Storage Duration:</strong> Up to 1 year.
|
||||
</Typography>
|
||||
|
||||
<Typography variant="h6" gutterBottom sx={{ mt: 2 }}>
|
||||
3.3 Performance and Analytics Cookies
|
||||
</Typography>
|
||||
<Typography paragraph>
|
||||
These cookies help us understand how users interact with the Service so we can improve it.
|
||||
All analytics data is anonymized and does not personally identify you.
|
||||
</Typography>
|
||||
<Typography component="div" paragraph>
|
||||
<strong>Examples:</strong>
|
||||
<ul>
|
||||
<li><strong>_ga (Google Analytics):</strong> Anonymized usage statistics (if enabled)</li>
|
||||
<li><strong>session_id:</strong> Track user sessions for performance monitoring</li>
|
||||
<li><strong>error_tracking:</strong> Error logs sent to Sentry (anonymized)</li>
|
||||
</ul>
|
||||
</Typography>
|
||||
<Typography paragraph>
|
||||
<strong>Storage Duration:</strong> Up to 2 years.
|
||||
</Typography>
|
||||
<Typography paragraph>
|
||||
<strong>Your Control:</strong> You can disable analytics cookies in Settings → Privacy → Analytics.
|
||||
</Typography>
|
||||
|
||||
<Typography variant="h6" gutterBottom sx={{ mt: 2 }}>
|
||||
3.4 Advertising Cookies
|
||||
</Typography>
|
||||
<Typography paragraph sx={{ fontWeight: 'bold', color: 'success.main' }}>
|
||||
WE DO NOT USE ADVERTISING COOKIES OR SELL YOUR DATA TO ADVERTISERS.
|
||||
</Typography>
|
||||
<Typography paragraph>
|
||||
ParentFlow does not display third-party advertisements. We do not track you across other websites or apps.
|
||||
</Typography>
|
||||
|
||||
<Typography variant="h5" gutterBottom sx={{ mt: 3 }}>
|
||||
4. Third-Party Cookies
|
||||
</Typography>
|
||||
<Typography paragraph>
|
||||
We use trusted third-party services that may set their own cookies:
|
||||
</Typography>
|
||||
<Typography component="div" paragraph>
|
||||
<ul>
|
||||
<li>
|
||||
<strong>Firebase (Google):</strong> Push notifications and authentication
|
||||
<br />
|
||||
<Link href="https://policies.google.com/privacy" target="_blank" rel="noopener" style={{ color: 'inherit', textDecoration: 'underline' }}>
|
||||
Privacy Policy
|
||||
</Link>
|
||||
</li>
|
||||
<li>
|
||||
<strong>Sentry:</strong> Error tracking and performance monitoring (anonymized)
|
||||
<br />
|
||||
<Link href="https://sentry.io/privacy/" target="_blank" rel="noopener" style={{ color: 'inherit', textDecoration: 'underline' }}>
|
||||
Privacy Policy
|
||||
</Link>
|
||||
</li>
|
||||
<li>
|
||||
<strong>AWS CloudFront:</strong> Content delivery and caching
|
||||
<br />
|
||||
<Link href="https://aws.amazon.com/privacy/" target="_blank" rel="noopener" style={{ color: 'inherit', textDecoration: 'underline' }}>
|
||||
Privacy Policy
|
||||
</Link>
|
||||
</li>
|
||||
</ul>
|
||||
</Typography>
|
||||
|
||||
<Typography variant="h5" gutterBottom sx={{ mt: 3 }}>
|
||||
5. How to Manage Cookies
|
||||
</Typography>
|
||||
|
||||
<Typography variant="h6" gutterBottom sx={{ mt: 2 }}>
|
||||
5.1 In-App Settings
|
||||
</Typography>
|
||||
<Typography paragraph>
|
||||
You can manage cookie preferences in the app:
|
||||
</Typography>
|
||||
<Typography component="div" paragraph>
|
||||
<ol>
|
||||
<li>Go to <strong>Settings → Privacy → Cookie Preferences</strong></li>
|
||||
<li>Toggle analytics and performance cookies on or off</li>
|
||||
<li>Note: Strictly necessary cookies cannot be disabled as they're required for the app to function</li>
|
||||
</ol>
|
||||
</Typography>
|
||||
|
||||
<Typography variant="h6" gutterBottom sx={{ mt: 2 }}>
|
||||
5.2 Browser Settings
|
||||
</Typography>
|
||||
<Typography paragraph>
|
||||
If you're using the web version, you can manage cookies through your browser settings:
|
||||
</Typography>
|
||||
<Typography component="div" paragraph>
|
||||
<ul>
|
||||
<li><strong>Chrome:</strong> Settings → Privacy and Security → Cookies and other site data</li>
|
||||
<li><strong>Safari:</strong> Preferences → Privacy → Manage Website Data</li>
|
||||
<li><strong>Firefox:</strong> Settings → Privacy & Security → Cookies and Site Data</li>
|
||||
<li><strong>Edge:</strong> Settings → Cookies and site permissions</li>
|
||||
</ul>
|
||||
</Typography>
|
||||
|
||||
<Typography variant="h6" gutterBottom sx={{ mt: 2 }}>
|
||||
5.3 Mobile Device Settings
|
||||
</Typography>
|
||||
<Typography paragraph>
|
||||
On mobile devices, you can reset your advertising ID or limit tracking:
|
||||
</Typography>
|
||||
<Typography component="div" paragraph>
|
||||
<ul>
|
||||
<li><strong>iOS:</strong> Settings → Privacy → Tracking → Allow Apps to Request to Track (toggle OFF)</li>
|
||||
<li><strong>Android:</strong> Settings → Google → Ads → Opt out of Ads Personalization</li>
|
||||
</ul>
|
||||
</Typography>
|
||||
|
||||
<Typography variant="h5" gutterBottom sx={{ mt: 3 }}>
|
||||
6. Impact of Disabling Cookies
|
||||
</Typography>
|
||||
<Typography paragraph>
|
||||
If you disable cookies, some features may not work properly:
|
||||
</Typography>
|
||||
<Typography component="div" paragraph>
|
||||
<ul>
|
||||
<li>You may need to log in every time you open the app</li>
|
||||
<li>Your preferences (language, timezone) won't be saved</li>
|
||||
<li>Real-time family sync may be delayed</li>
|
||||
<li>We won't be able to troubleshoot errors as effectively</li>
|
||||
</ul>
|
||||
</Typography>
|
||||
|
||||
<Typography variant="h5" gutterBottom sx={{ mt: 3 }}>
|
||||
7. Children's Privacy
|
||||
</Typography>
|
||||
<Typography paragraph>
|
||||
Our Service is designed for parents and caregivers, not children under 13.
|
||||
We comply with the Children's Online Privacy Protection Act (COPPA).
|
||||
</Typography>
|
||||
<Typography paragraph>
|
||||
We do not knowingly collect data from children under 13 without verifiable parental consent.
|
||||
Parents can review and delete their child's information at any time through the app settings.
|
||||
</Typography>
|
||||
|
||||
<Typography variant="h5" gutterBottom sx={{ mt: 3 }}>
|
||||
8. Updates to This Policy
|
||||
</Typography>
|
||||
<Typography paragraph>
|
||||
We may update this Cookie Policy from time to time to reflect changes in technology or legal requirements.
|
||||
We will notify you of significant changes by email or through the app.
|
||||
</Typography>
|
||||
<Typography paragraph>
|
||||
Your continued use of the Service after changes constitutes acceptance of the updated Cookie Policy.
|
||||
</Typography>
|
||||
|
||||
<Typography variant="h5" gutterBottom sx={{ mt: 3 }}>
|
||||
9. Contact Us
|
||||
</Typography>
|
||||
<Typography paragraph>
|
||||
If you have questions about our use of cookies, please contact us:
|
||||
</Typography>
|
||||
<Typography component="div" paragraph>
|
||||
<strong>Email:</strong> hello@parentflow.com<br />
|
||||
<strong>Address:</strong> Serbota 3, Bucharest, Romania
|
||||
</Typography>
|
||||
|
||||
<Box sx={{ mt: 4, pt: 3, borderTop: 1, borderColor: 'divider' }}>
|
||||
<Typography variant="h6" gutterBottom>
|
||||
Cookie Preference Center
|
||||
</Typography>
|
||||
<Typography paragraph>
|
||||
To manage your cookie preferences, visit <strong>Settings → Privacy → Cookie Preferences</strong> in the app.
|
||||
</Typography>
|
||||
</Box>
|
||||
|
||||
<Box sx={{ mt: 4, pt: 3, borderTop: 1, borderColor: 'divider' }}>
|
||||
<Typography variant="body2" color="text.secondary">
|
||||
Related Legal Documents:
|
||||
</Typography>
|
||||
<Box sx={{ display: 'flex', gap: 2, mt: 1, flexWrap: 'wrap' }}>
|
||||
<Link href="/legal/privacy" style={{ textDecoration: 'none' }}>
|
||||
<Typography color="primary" sx={{ '&:hover': { textDecoration: 'underline' } }}>
|
||||
Privacy Policy
|
||||
</Typography>
|
||||
</Link>
|
||||
<Link href="/legal/terms" style={{ textDecoration: 'none' }}>
|
||||
<Typography color="primary" sx={{ '&:hover': { textDecoration: 'underline' } }}>
|
||||
Terms of Service
|
||||
</Typography>
|
||||
</Link>
|
||||
<Link href="/legal/eula" style={{ textDecoration: 'none' }}>
|
||||
<Typography color="primary" sx={{ '&:hover': { textDecoration: 'underline' } }}>
|
||||
EULA
|
||||
</Typography>
|
||||
</Link>
|
||||
</Box>
|
||||
</Box>
|
||||
</Box>
|
||||
</Paper>
|
||||
</Container>
|
||||
</AppShell>
|
||||
</ProtectedRoute>
|
||||
);
|
||||
}
|
||||
342
maternal-web/app/legal/eula/page.tsx
Normal file
342
maternal-web/app/legal/eula/page.tsx
Normal file
@@ -0,0 +1,342 @@
|
||||
'use client';
|
||||
|
||||
import { Box, Container, Typography, Paper } from '@mui/material';
|
||||
import Link from 'next/link';
|
||||
import { AppShell } from '@/components/layouts/AppShell/AppShell';
|
||||
import { ProtectedRoute } from '@/components/common/ProtectedRoute';
|
||||
|
||||
export default function EULAPage() {
|
||||
const lastUpdated = 'October 4, 2025';
|
||||
|
||||
return (
|
||||
<ProtectedRoute>
|
||||
<AppShell>
|
||||
<Container maxWidth="md" sx={{ py: 4 }}>
|
||||
<Paper elevation={0} sx={{ p: 4, border: 1, borderColor: 'divider' }}>
|
||||
<Typography variant="h3" component="h1" gutterBottom>
|
||||
End User License Agreement (EULA)
|
||||
</Typography>
|
||||
|
||||
<Typography variant="body2" color="text.secondary" paragraph>
|
||||
Last Updated: {lastUpdated}
|
||||
</Typography>
|
||||
|
||||
<Box sx={{ mt: 4 }}>
|
||||
<Typography variant="h5" gutterBottom sx={{ mt: 3 }}>
|
||||
1. License Grant
|
||||
</Typography>
|
||||
<Typography paragraph>
|
||||
Subject to your compliance with this End User License Agreement ("EULA"), ParentFlow grants you a limited,
|
||||
non-exclusive, non-transferable, revocable license to use the ParentFlow mobile application (the "App")
|
||||
for your personal, non-commercial use.
|
||||
</Typography>
|
||||
|
||||
<Typography variant="h5" gutterBottom sx={{ mt: 3 }}>
|
||||
2. License Restrictions
|
||||
</Typography>
|
||||
<Typography paragraph>
|
||||
You agree NOT to:
|
||||
</Typography>
|
||||
<Typography component="div" paragraph>
|
||||
<ul>
|
||||
<li>Copy, modify, or create derivative works of the App</li>
|
||||
<li>Reverse engineer, decompile, or disassemble the App</li>
|
||||
<li>Remove or alter any copyright, trademark, or proprietary notices</li>
|
||||
<li>Rent, lease, loan, sell, or sublicense the App</li>
|
||||
<li>Use the App for any commercial purpose without authorization</li>
|
||||
<li>Use the App in any way that violates applicable laws or regulations</li>
|
||||
<li>Use automated tools or bots to access the App</li>
|
||||
<li>Interfere with or disrupt the App's servers or networks</li>
|
||||
</ul>
|
||||
</Typography>
|
||||
|
||||
<Typography variant="h5" gutterBottom sx={{ mt: 3 }}>
|
||||
3. Intellectual Property Rights
|
||||
</Typography>
|
||||
<Typography paragraph>
|
||||
The App and all its components, including but not limited to software code, design, graphics, text, and user interface,
|
||||
are owned by ParentFlow and are protected by copyright, trademark, and other intellectual property laws.
|
||||
</Typography>
|
||||
<Typography paragraph>
|
||||
This EULA does not grant you any ownership rights to the App. All rights not expressly granted are reserved by ParentFlow.
|
||||
</Typography>
|
||||
|
||||
<Typography variant="h5" gutterBottom sx={{ mt: 3 }}>
|
||||
4. User Data and Privacy
|
||||
</Typography>
|
||||
<Typography paragraph>
|
||||
Your use of the App is subject to our{' '}
|
||||
<Link href="/legal/privacy" style={{ color: 'inherit', fontWeight: 'bold' }}>
|
||||
Privacy Policy
|
||||
</Link>
|
||||
, which explains how we collect, use, and protect your information.
|
||||
</Typography>
|
||||
<Typography paragraph>
|
||||
You retain ownership of all data you input into the App, including activity logs, photos, and personal information.
|
||||
By using the App, you grant us a license to process your data to provide the Service.
|
||||
</Typography>
|
||||
|
||||
<Typography variant="h5" gutterBottom sx={{ mt: 3 }}>
|
||||
5. Updates and Modifications
|
||||
</Typography>
|
||||
<Typography paragraph>
|
||||
We may release updates, patches, or new versions of the App from time to time. These updates may:
|
||||
</Typography>
|
||||
<Typography component="div" paragraph>
|
||||
<ul>
|
||||
<li>Add new features or functionality</li>
|
||||
<li>Fix bugs or security vulnerabilities</li>
|
||||
<li>Improve performance</li>
|
||||
<li>Remove or modify existing features</li>
|
||||
</ul>
|
||||
</Typography>
|
||||
<Typography paragraph>
|
||||
By continuing to use the App after an update, you accept the updated version and any changes to this EULA.
|
||||
</Typography>
|
||||
|
||||
<Typography variant="h5" gutterBottom sx={{ mt: 3 }}>
|
||||
6. Medical Disclaimer
|
||||
</Typography>
|
||||
<Typography paragraph sx={{ fontWeight: 'bold', color: 'error.main' }}>
|
||||
THE APP IS NOT A MEDICAL DEVICE AND DOES NOT PROVIDE MEDICAL ADVICE.
|
||||
</Typography>
|
||||
<Typography paragraph>
|
||||
The App's tracking features and AI assistant provide general information and insights only. They are not a substitute
|
||||
for professional medical advice, diagnosis, or treatment. Always seek the advice of qualified healthcare providers
|
||||
with questions regarding your child's health.
|
||||
</Typography>
|
||||
<Typography paragraph>
|
||||
<strong>In medical emergencies, call your local emergency number immediately.</strong>
|
||||
</Typography>
|
||||
|
||||
<Typography variant="h5" gutterBottom sx={{ mt: 3 }}>
|
||||
7. AI Features and Limitations
|
||||
</Typography>
|
||||
<Typography paragraph>
|
||||
The App includes AI-powered features (such as the parenting assistant) that use machine learning models.
|
||||
You acknowledge that:
|
||||
</Typography>
|
||||
<Typography component="div" paragraph>
|
||||
<ul>
|
||||
<li>AI responses may not always be accurate or complete</li>
|
||||
<li>AI cannot replace professional judgment or expertise</li>
|
||||
<li>You use AI features at your own risk</li>
|
||||
<li>We are not liable for decisions made based on AI recommendations</li>
|
||||
</ul>
|
||||
</Typography>
|
||||
|
||||
<Typography variant="h5" gutterBottom sx={{ mt: 3 }}>
|
||||
8. Third-Party Services
|
||||
</Typography>
|
||||
<Typography paragraph>
|
||||
The App may integrate with or link to third-party services (e.g., cloud storage, analytics, payment processors).
|
||||
Your use of these third-party services is governed by their own terms and privacy policies.
|
||||
</Typography>
|
||||
<Typography paragraph>
|
||||
We are not responsible for the availability, content, or practices of third-party services.
|
||||
</Typography>
|
||||
|
||||
<Typography variant="h5" gutterBottom sx={{ mt: 3 }}>
|
||||
9. Termination
|
||||
</Typography>
|
||||
|
||||
<Typography variant="h6" gutterBottom sx={{ mt: 2 }}>
|
||||
9.1 Termination by You
|
||||
</Typography>
|
||||
<Typography paragraph>
|
||||
You may terminate this EULA at any time by:
|
||||
</Typography>
|
||||
<Typography component="div" paragraph>
|
||||
<ul>
|
||||
<li>Deleting your account through the App settings</li>
|
||||
<li>Uninstalling the App from all your devices</li>
|
||||
<li>Ceasing all use of the App</li>
|
||||
</ul>
|
||||
</Typography>
|
||||
|
||||
<Typography variant="h6" gutterBottom sx={{ mt: 2 }}>
|
||||
9.2 Termination by Us
|
||||
</Typography>
|
||||
<Typography paragraph>
|
||||
We may terminate or suspend your license to use the App immediately if you:
|
||||
</Typography>
|
||||
<Typography component="div" paragraph>
|
||||
<ul>
|
||||
<li>Violate any terms of this EULA</li>
|
||||
<li>Engage in illegal or harmful activities</li>
|
||||
<li>Fail to pay subscription fees (if applicable)</li>
|
||||
<li>Pose a security risk to the App or other users</li>
|
||||
</ul>
|
||||
</Typography>
|
||||
|
||||
<Typography variant="h6" gutterBottom sx={{ mt: 2 }}>
|
||||
9.3 Effect of Termination
|
||||
</Typography>
|
||||
<Typography paragraph>
|
||||
Upon termination:
|
||||
</Typography>
|
||||
<Typography component="div" paragraph>
|
||||
<ul>
|
||||
<li>Your license to use the App ends immediately</li>
|
||||
<li>You must uninstall the App from all devices</li>
|
||||
<li>Your data will be deleted in accordance with our Privacy Policy</li>
|
||||
<li>Provisions of this EULA that should survive termination will remain in effect</li>
|
||||
</ul>
|
||||
</Typography>
|
||||
|
||||
<Typography variant="h5" gutterBottom sx={{ mt: 3 }}>
|
||||
10. Disclaimers and Warranties
|
||||
</Typography>
|
||||
<Typography paragraph sx={{ fontWeight: 'bold' }}>
|
||||
THE APP IS PROVIDED "AS IS" AND "AS AVAILABLE" WITHOUT WARRANTIES OF ANY KIND.
|
||||
</Typography>
|
||||
<Typography paragraph>
|
||||
TO THE MAXIMUM EXTENT PERMITTED BY LAW, WE DISCLAIM ALL WARRANTIES, EXPRESS OR IMPLIED, INCLUDING:
|
||||
</Typography>
|
||||
<Typography component="div" paragraph>
|
||||
<ul>
|
||||
<li>Warranties of merchantability</li>
|
||||
<li>Warranties of fitness for a particular purpose</li>
|
||||
<li>Warranties of non-infringement</li>
|
||||
<li>Warranties that the App will be error-free or uninterrupted</li>
|
||||
<li>Warranties regarding data accuracy or completeness</li>
|
||||
</ul>
|
||||
</Typography>
|
||||
|
||||
<Typography variant="h5" gutterBottom sx={{ mt: 3 }}>
|
||||
11. Limitation of Liability
|
||||
</Typography>
|
||||
<Typography paragraph sx={{ fontWeight: 'bold' }}>
|
||||
TO THE MAXIMUM EXTENT PERMITTED BY LAW:
|
||||
</Typography>
|
||||
<Typography component="div" paragraph>
|
||||
<ul>
|
||||
<li>WE SHALL NOT BE LIABLE FOR ANY INDIRECT, INCIDENTAL, CONSEQUENTIAL, SPECIAL, OR PUNITIVE DAMAGES</li>
|
||||
<li>WE SHALL NOT BE LIABLE FOR ANY LOSS OF DATA, REVENUE, PROFITS, OR BUSINESS OPPORTUNITIES</li>
|
||||
<li>OUR TOTAL LIABILITY SHALL NOT EXCEED THE AMOUNT YOU PAID US IN THE 12 MONTHS PRECEDING THE CLAIM, OR $100, WHICHEVER IS GREATER</li>
|
||||
</ul>
|
||||
</Typography>
|
||||
<Typography paragraph>
|
||||
Some jurisdictions do not allow limitations on liability, so these limitations may not apply to you.
|
||||
</Typography>
|
||||
|
||||
<Typography variant="h5" gutterBottom sx={{ mt: 3 }}>
|
||||
12. Indemnification
|
||||
</Typography>
|
||||
<Typography paragraph>
|
||||
You agree to indemnify, defend, and hold harmless ParentFlow, its officers, directors, employees, contractors,
|
||||
and agents from any claims, damages, losses, or expenses (including attorney's fees) arising from:
|
||||
</Typography>
|
||||
<Typography component="div" paragraph>
|
||||
<ul>
|
||||
<li>Your use or misuse of the App</li>
|
||||
<li>Your violation of this EULA</li>
|
||||
<li>Your violation of any laws or regulations</li>
|
||||
<li>Your violation of third-party rights</li>
|
||||
</ul>
|
||||
</Typography>
|
||||
|
||||
<Typography variant="h5" gutterBottom sx={{ mt: 3 }}>
|
||||
13. Export Compliance
|
||||
</Typography>
|
||||
<Typography paragraph>
|
||||
The App may be subject to export control laws and regulations. You agree to comply with all applicable export
|
||||
and import laws and not to export, re-export, or transfer the App in violation of such laws.
|
||||
</Typography>
|
||||
|
||||
<Typography variant="h5" gutterBottom sx={{ mt: 3 }}>
|
||||
14. Governing Law and Dispute Resolution
|
||||
</Typography>
|
||||
<Typography paragraph>
|
||||
This EULA is governed by the laws of [Your Jurisdiction], without regard to conflict of law principles.
|
||||
</Typography>
|
||||
<Typography paragraph>
|
||||
Any disputes arising from this EULA will be resolved through binding arbitration in accordance with the
|
||||
American Arbitration Association rules, except where prohibited by law.
|
||||
</Typography>
|
||||
|
||||
<Typography variant="h5" gutterBottom sx={{ mt: 3 }}>
|
||||
15. Severability
|
||||
</Typography>
|
||||
<Typography paragraph>
|
||||
If any provision of this EULA is found to be invalid or unenforceable, that provision will be limited or eliminated
|
||||
to the minimum extent necessary, and the remaining provisions will remain in full force and effect.
|
||||
</Typography>
|
||||
|
||||
<Typography variant="h5" gutterBottom sx={{ mt: 3 }}>
|
||||
16. Entire Agreement
|
||||
</Typography>
|
||||
<Typography paragraph>
|
||||
This EULA, together with our{' '}
|
||||
<Link href="/legal/terms" style={{ color: 'inherit', fontWeight: 'bold' }}>
|
||||
Terms of Service
|
||||
</Link>{' '}
|
||||
and{' '}
|
||||
<Link href="/legal/privacy" style={{ color: 'inherit', fontWeight: 'bold' }}>
|
||||
Privacy Policy
|
||||
</Link>
|
||||
, constitutes the entire agreement between you and ParentFlow regarding the App.
|
||||
</Typography>
|
||||
|
||||
<Typography variant="h5" gutterBottom sx={{ mt: 3 }}>
|
||||
17. Changes to This EULA
|
||||
</Typography>
|
||||
<Typography paragraph>
|
||||
We may update this EULA from time to time to reflect changes in the App or legal requirements. We will notify you
|
||||
of material changes by email or through the App. Your continued use of the App after changes constitutes acceptance
|
||||
of the updated EULA.
|
||||
</Typography>
|
||||
|
||||
<Typography variant="h5" gutterBottom sx={{ mt: 3 }}>
|
||||
18. Contact Us
|
||||
</Typography>
|
||||
<Typography paragraph>
|
||||
If you have questions about this EULA, please contact us:
|
||||
</Typography>
|
||||
<Typography component="div" paragraph>
|
||||
<strong>Email:</strong> hello@parentflow.com<br />
|
||||
<strong>Address:</strong> Serbota 3, Bucharest, Romania
|
||||
</Typography>
|
||||
|
||||
<Box sx={{ mt: 4, pt: 3, borderTop: 1, borderColor: 'divider' }}>
|
||||
<Typography variant="h6" gutterBottom>
|
||||
Acceptance of EULA
|
||||
</Typography>
|
||||
<Typography paragraph>
|
||||
BY CLICKING "I ACCEPT" DURING APP SETUP, CREATING AN ACCOUNT, OR CONTINUING TO USE THE APP, YOU ACKNOWLEDGE
|
||||
THAT YOU HAVE READ, UNDERSTOOD, AND AGREE TO BE BOUND BY THIS EULA.
|
||||
</Typography>
|
||||
<Typography paragraph>
|
||||
IF YOU DO NOT AGREE TO THIS EULA, DO NOT USE THE APP.
|
||||
</Typography>
|
||||
</Box>
|
||||
|
||||
<Box sx={{ mt: 4, pt: 3, borderTop: 1, borderColor: 'divider' }}>
|
||||
<Typography variant="body2" color="text.secondary">
|
||||
Related Legal Documents:
|
||||
</Typography>
|
||||
<Box sx={{ display: 'flex', gap: 2, mt: 1, flexWrap: 'wrap' }}>
|
||||
<Link href="/legal/privacy" style={{ textDecoration: 'none' }}>
|
||||
<Typography color="primary" sx={{ '&:hover': { textDecoration: 'underline' } }}>
|
||||
Privacy Policy
|
||||
</Typography>
|
||||
</Link>
|
||||
<Link href="/legal/terms" style={{ textDecoration: 'none' }}>
|
||||
<Typography color="primary" sx={{ '&:hover': { textDecoration: 'underline' } }}>
|
||||
Terms of Service
|
||||
</Typography>
|
||||
</Link>
|
||||
<Link href="/legal/cookies" style={{ textDecoration: 'none' }}>
|
||||
<Typography color="primary" sx={{ '&:hover': { textDecoration: 'underline' } }}>
|
||||
Cookie Policy
|
||||
</Typography>
|
||||
</Link>
|
||||
</Box>
|
||||
</Box>
|
||||
</Box>
|
||||
</Paper>
|
||||
</Container>
|
||||
</AppShell>
|
||||
</ProtectedRoute>
|
||||
);
|
||||
}
|
||||
137
maternal-web/app/legal/page.tsx
Normal file
137
maternal-web/app/legal/page.tsx
Normal file
@@ -0,0 +1,137 @@
|
||||
'use client';
|
||||
|
||||
import { Box, Container, Typography, Paper, Grid, Card, CardContent, CardActionArea } from '@mui/material';
|
||||
import Link from 'next/link';
|
||||
import { Gavel, Security, Description, Cookie } from '@mui/icons-material';
|
||||
import { useRouter } from 'next/navigation';
|
||||
import { AppShell } from '@/components/layouts/AppShell/AppShell';
|
||||
import { ProtectedRoute } from '@/components/common/ProtectedRoute';
|
||||
|
||||
export default function LegalPage() {
|
||||
const router = useRouter();
|
||||
|
||||
const legalDocuments = [
|
||||
{
|
||||
title: 'Privacy Policy',
|
||||
description: 'Learn how we collect, use, and protect your personal information and your child\'s data.',
|
||||
icon: <Security sx={{ fontSize: 48, color: 'primary.main' }} />,
|
||||
path: '/legal/privacy',
|
||||
highlights: ['COPPA Compliance', 'GDPR Rights', 'Data Security', 'Children\'s Privacy'],
|
||||
},
|
||||
{
|
||||
title: 'Terms of Service',
|
||||
description: 'Understand the terms and conditions governing your use of ParentFlow.',
|
||||
icon: <Description sx={{ fontSize: 48, color: 'primary.main' }} />,
|
||||
path: '/legal/terms',
|
||||
highlights: ['Acceptable Use', 'Medical Disclaimer', 'User Accounts', 'Subscriptions'],
|
||||
},
|
||||
{
|
||||
title: 'End User License Agreement (EULA)',
|
||||
description: 'Review the license agreement for using the ParentFlow software.',
|
||||
icon: <Gavel sx={{ fontSize: 48, color: 'primary.main' }} />,
|
||||
path: '/legal/eula',
|
||||
highlights: ['License Grant', 'AI Features', 'Intellectual Property', 'Warranties'],
|
||||
},
|
||||
{
|
||||
title: 'Cookie Policy',
|
||||
description: 'Find out how we use cookies and similar tracking technologies.',
|
||||
icon: <Cookie sx={{ fontSize: 48, color: 'primary.main' }} />,
|
||||
path: '/legal/cookies',
|
||||
highlights: ['Cookie Types', 'Third-Party Services', 'Your Choices', 'Analytics'],
|
||||
},
|
||||
];
|
||||
|
||||
return (
|
||||
<ProtectedRoute>
|
||||
<AppShell>
|
||||
<Container maxWidth="lg" sx={{ py: 4 }}>
|
||||
<Paper elevation={0} sx={{ p: 4, mb: 4, border: 1, borderColor: 'divider' }}>
|
||||
<Typography variant="h3" component="h1" gutterBottom>
|
||||
Legal & Privacy
|
||||
</Typography>
|
||||
<Typography variant="body1" color="text.secondary" paragraph>
|
||||
Welcome to our Legal Center. Here you'll find all the legal documents and policies governing your use of ParentFlow.
|
||||
We're committed to transparency and protecting your privacy.
|
||||
</Typography>
|
||||
<Typography variant="body2" color="text.secondary">
|
||||
Last Updated: October 4, 2025
|
||||
</Typography>
|
||||
</Paper>
|
||||
|
||||
<Grid container spacing={3}>
|
||||
{legalDocuments.map((doc) => (
|
||||
<Grid item xs={12} md={6} key={doc.path}>
|
||||
<Card
|
||||
elevation={0}
|
||||
sx={{
|
||||
height: '100%',
|
||||
border: 1,
|
||||
borderColor: 'divider',
|
||||
transition: 'all 0.2s',
|
||||
'&:hover': {
|
||||
borderColor: 'primary.main',
|
||||
boxShadow: 2,
|
||||
},
|
||||
}}
|
||||
>
|
||||
<CardActionArea
|
||||
onClick={() => router.push(doc.path)}
|
||||
sx={{ height: '100%', p: 3 }}
|
||||
>
|
||||
<CardContent sx={{ p: 0 }}>
|
||||
<Box sx={{ display: 'flex', alignItems: 'center', gap: 2, mb: 2 }}>
|
||||
{doc.icon}
|
||||
<Typography variant="h5" component="h2">
|
||||
{doc.title}
|
||||
</Typography>
|
||||
</Box>
|
||||
<Typography variant="body2" color="text.secondary" paragraph>
|
||||
{doc.description}
|
||||
</Typography>
|
||||
<Box sx={{ mt: 2 }}>
|
||||
<Typography variant="caption" color="text.secondary" sx={{ fontWeight: 'bold' }}>
|
||||
Key Topics:
|
||||
</Typography>
|
||||
<Box sx={{ display: 'flex', flexWrap: 'wrap', gap: 1, mt: 1 }}>
|
||||
{doc.highlights.map((highlight) => (
|
||||
<Typography
|
||||
key={highlight}
|
||||
variant="caption"
|
||||
sx={{
|
||||
px: 1.5,
|
||||
py: 0.5,
|
||||
bgcolor: 'primary.light',
|
||||
color: 'primary.contrastText',
|
||||
borderRadius: 1,
|
||||
}}
|
||||
>
|
||||
{highlight}
|
||||
</Typography>
|
||||
))}
|
||||
</Box>
|
||||
</Box>
|
||||
</CardContent>
|
||||
</CardActionArea>
|
||||
</Card>
|
||||
</Grid>
|
||||
))}
|
||||
</Grid>
|
||||
|
||||
<Paper elevation={0} sx={{ p: 4, mt: 4, border: 1, borderColor: 'divider', bgcolor: 'primary.light' }}>
|
||||
<Typography variant="h6" gutterBottom>
|
||||
Questions or Concerns?
|
||||
</Typography>
|
||||
<Typography variant="body2" paragraph>
|
||||
If you have any questions about our legal policies or how we handle your data, please don't hesitate to contact us:
|
||||
</Typography>
|
||||
<Typography variant="body2" component="div">
|
||||
<strong>Email:</strong> hello@parentflow.com<br />
|
||||
<strong>Privacy:</strong> hello@parentflow.com<br />
|
||||
<strong>Data Protection Officer:</strong> hello@parentflow.com
|
||||
</Typography>
|
||||
</Paper>
|
||||
</Container>
|
||||
</AppShell>
|
||||
</ProtectedRoute>
|
||||
);
|
||||
}
|
||||
229
maternal-web/app/legal/privacy/page.tsx
Normal file
229
maternal-web/app/legal/privacy/page.tsx
Normal file
@@ -0,0 +1,229 @@
|
||||
'use client';
|
||||
|
||||
import { Box, Container, Typography, Paper } from '@mui/material';
|
||||
import Link from 'next/link';
|
||||
import { AppShell } from '@/components/layouts/AppShell/AppShell';
|
||||
import { ProtectedRoute } from '@/components/common/ProtectedRoute';
|
||||
|
||||
export default function PrivacyPolicyPage() {
|
||||
const lastUpdated = 'October 4, 2025';
|
||||
|
||||
return (
|
||||
<ProtectedRoute>
|
||||
<AppShell>
|
||||
<Container maxWidth="md" sx={{ py: 4 }}>
|
||||
<Paper elevation={0} sx={{ p: 4, border: 1, borderColor: 'divider' }}>
|
||||
<Typography variant="h3" component="h1" gutterBottom>
|
||||
Privacy Policy
|
||||
</Typography>
|
||||
|
||||
<Typography variant="body2" color="text.secondary" paragraph>
|
||||
Last Updated: {lastUpdated}
|
||||
</Typography>
|
||||
|
||||
<Box sx={{ mt: 4 }}>
|
||||
<Typography variant="h5" gutterBottom sx={{ mt: 3 }}>
|
||||
1. Introduction
|
||||
</Typography>
|
||||
<Typography paragraph>
|
||||
Welcome to ParentFlow ("we," "our," or "us"). We are committed to protecting your privacy and the privacy of your children.
|
||||
This Privacy Policy explains how we collect, use, disclose, and safeguard your information when you use our mobile application
|
||||
and related services (collectively, the "Service").
|
||||
</Typography>
|
||||
<Typography paragraph>
|
||||
Because our Service is designed for parents and caregivers tracking information about children aged 0-6 years, we take extra
|
||||
precautions to comply with the Children's Online Privacy Protection Act (COPPA) and the General Data Protection Regulation (GDPR).
|
||||
</Typography>
|
||||
|
||||
<Typography variant="h5" gutterBottom sx={{ mt: 3 }}>
|
||||
2. Information We Collect
|
||||
</Typography>
|
||||
|
||||
<Typography variant="h6" gutterBottom sx={{ mt: 2 }}>
|
||||
2.1 Personal Information You Provide
|
||||
</Typography>
|
||||
<Typography component="div" paragraph>
|
||||
<ul>
|
||||
<li><strong>Account Information:</strong> Name, email address, date of birth (for COPPA age verification)</li>
|
||||
<li><strong>Profile Information:</strong> Profile photo, timezone, language preferences</li>
|
||||
<li><strong>Child Information:</strong> Child's name, date of birth, gender, photo (optional)</li>
|
||||
<li><strong>Activity Data:</strong> Feeding times, sleep schedules, diaper changes, medication records, milestones</li>
|
||||
<li><strong>AI Chat Messages:</strong> Questions and conversations with our AI assistant</li>
|
||||
<li><strong>Photos and Media:</strong> Photos of children and milestones (optional)</li>
|
||||
</ul>
|
||||
</Typography>
|
||||
|
||||
<Typography variant="h6" gutterBottom sx={{ mt: 2 }}>
|
||||
2.2 Automatically Collected Information
|
||||
</Typography>
|
||||
<Typography component="div" paragraph>
|
||||
<ul>
|
||||
<li><strong>Device Information:</strong> Device type, operating system, unique device identifiers</li>
|
||||
<li><strong>Usage Data:</strong> App features used, session duration, error logs</li>
|
||||
<li><strong>Technical Data:</strong> IP address, browser type, time zone settings</li>
|
||||
</ul>
|
||||
</Typography>
|
||||
|
||||
<Typography variant="h5" gutterBottom sx={{ mt: 3 }}>
|
||||
3. How We Use Your Information
|
||||
</Typography>
|
||||
<Typography component="div" paragraph>
|
||||
We use the collected information for:
|
||||
<ul>
|
||||
<li>Providing and maintaining the Service</li>
|
||||
<li>Tracking your child's activities and patterns</li>
|
||||
<li>Generating insights and analytics about your child's development</li>
|
||||
<li>Providing AI-powered parenting support and answers</li>
|
||||
<li>Syncing data across family members' devices</li>
|
||||
<li>Sending notifications and reminders</li>
|
||||
<li>Improving our Service and developing new features</li>
|
||||
<li>Detecting and preventing fraud and security issues</li>
|
||||
<li>Complying with legal obligations</li>
|
||||
</ul>
|
||||
</Typography>
|
||||
|
||||
<Typography variant="h5" gutterBottom sx={{ mt: 3 }}>
|
||||
4. Children's Privacy (COPPA Compliance)
|
||||
</Typography>
|
||||
<Typography paragraph>
|
||||
Our Service is designed for parents and caregivers to track information about their children. We do not knowingly collect
|
||||
personal information directly from children under 13 years of age.
|
||||
</Typography>
|
||||
<Typography component="div" paragraph>
|
||||
<strong>Parental Rights:</strong>
|
||||
<ul>
|
||||
<li>Review your child's information</li>
|
||||
<li>Request deletion of your child's information</li>
|
||||
<li>Refuse further collection or use of your child's information</li>
|
||||
<li>Export your child's data in a portable format</li>
|
||||
</ul>
|
||||
</Typography>
|
||||
<Typography paragraph>
|
||||
To exercise these rights, please contact us at <strong>hello@parentflow.com</strong>.
|
||||
</Typography>
|
||||
|
||||
<Typography variant="h5" gutterBottom sx={{ mt: 3 }}>
|
||||
5. Data Sharing and Disclosure
|
||||
</Typography>
|
||||
<Typography paragraph>
|
||||
<strong>We do NOT sell your personal information or your child's information.</strong>
|
||||
</Typography>
|
||||
<Typography component="div" paragraph>
|
||||
We may share information with:
|
||||
<ul>
|
||||
<li><strong>Family Members:</strong> Data is shared with family members you invite to your family group</li>
|
||||
<li><strong>Service Providers:</strong> Cloud hosting (AWS/Azure), analytics (anonymized), customer support</li>
|
||||
<li><strong>AI Providers:</strong> OpenAI or Anthropic (for AI chat, with no PII in training data)</li>
|
||||
<li><strong>Legal Compliance:</strong> When required by law or to protect rights and safety</li>
|
||||
</ul>
|
||||
</Typography>
|
||||
|
||||
<Typography variant="h5" gutterBottom sx={{ mt: 3 }}>
|
||||
6. Data Security
|
||||
</Typography>
|
||||
<Typography paragraph>
|
||||
We implement industry-standard security measures to protect your information:
|
||||
</Typography>
|
||||
<Typography component="div" paragraph>
|
||||
<ul>
|
||||
<li>End-to-end encryption for sensitive child data</li>
|
||||
<li>Secure HTTPS connections for all communications</li>
|
||||
<li>Regular security audits and penetration testing</li>
|
||||
<li>Access controls and authentication mechanisms</li>
|
||||
<li>Encrypted database storage</li>
|
||||
</ul>
|
||||
</Typography>
|
||||
|
||||
<Typography variant="h5" gutterBottom sx={{ mt: 3 }}>
|
||||
7. Your Rights (GDPR Compliance)
|
||||
</Typography>
|
||||
<Typography component="div" paragraph>
|
||||
Under GDPR, you have the following rights:
|
||||
<ul>
|
||||
<li><strong>Right to Access:</strong> Request a copy of your personal data</li>
|
||||
<li><strong>Right to Rectification:</strong> Correct inaccurate information</li>
|
||||
<li><strong>Right to Erasure:</strong> Request deletion of your data ("right to be forgotten")</li>
|
||||
<li><strong>Right to Data Portability:</strong> Export your data in a machine-readable format</li>
|
||||
<li><strong>Right to Restrict Processing:</strong> Limit how we use your data</li>
|
||||
<li><strong>Right to Object:</strong> Opt-out of certain data processing</li>
|
||||
<li><strong>Right to Withdraw Consent:</strong> Revoke consent at any time</li>
|
||||
</ul>
|
||||
</Typography>
|
||||
<Typography paragraph>
|
||||
To exercise your rights, visit Settings → Privacy → Data Rights or email <strong>hello@parentflow.com</strong>.
|
||||
</Typography>
|
||||
|
||||
<Typography variant="h5" gutterBottom sx={{ mt: 3 }}>
|
||||
8. Data Retention
|
||||
</Typography>
|
||||
<Typography paragraph>
|
||||
We retain your information for as long as your account is active or as needed to provide the Service.
|
||||
When you delete your account, we will delete your personal information within 30 days, except where we are
|
||||
required to retain it for legal compliance or dispute resolution.
|
||||
</Typography>
|
||||
|
||||
<Typography variant="h5" gutterBottom sx={{ mt: 3 }}>
|
||||
9. International Data Transfers
|
||||
</Typography>
|
||||
<Typography paragraph>
|
||||
Your information may be transferred to and processed in countries other than your country of residence.
|
||||
We ensure appropriate safeguards are in place to protect your information in accordance with this Privacy Policy
|
||||
and applicable laws.
|
||||
</Typography>
|
||||
|
||||
<Typography variant="h5" gutterBottom sx={{ mt: 3 }}>
|
||||
10. Third-Party Links
|
||||
</Typography>
|
||||
<Typography paragraph>
|
||||
Our Service may contain links to third-party websites. We are not responsible for the privacy practices of these
|
||||
external sites. We encourage you to review their privacy policies.
|
||||
</Typography>
|
||||
|
||||
<Typography variant="h5" gutterBottom sx={{ mt: 3 }}>
|
||||
11. Changes to This Privacy Policy
|
||||
</Typography>
|
||||
<Typography paragraph>
|
||||
We may update this Privacy Policy from time to time. We will notify you of significant changes by email or through
|
||||
the app. Your continued use of the Service after changes constitutes acceptance of the updated policy.
|
||||
</Typography>
|
||||
|
||||
<Typography variant="h5" gutterBottom sx={{ mt: 3 }}>
|
||||
12. Contact Us
|
||||
</Typography>
|
||||
<Typography paragraph>
|
||||
If you have questions about this Privacy Policy or our data practices, please contact us:
|
||||
</Typography>
|
||||
<Typography component="div" paragraph>
|
||||
<strong>Email:</strong> hello@parentflow.com<br />
|
||||
<strong>Address:</strong> Serbota 3, Bucharest, Romania
|
||||
</Typography>
|
||||
|
||||
<Box sx={{ mt: 4, pt: 3, borderTop: 1, borderColor: 'divider' }}>
|
||||
<Typography variant="body2" color="text.secondary">
|
||||
Related Legal Documents:
|
||||
</Typography>
|
||||
<Box sx={{ display: 'flex', gap: 2, mt: 1, flexWrap: 'wrap' }}>
|
||||
<Link href="/legal/terms" style={{ textDecoration: 'none' }}>
|
||||
<Typography color="primary" sx={{ '&:hover': { textDecoration: 'underline' } }}>
|
||||
Terms of Service
|
||||
</Typography>
|
||||
</Link>
|
||||
<Link href="/legal/eula" style={{ textDecoration: 'none' }}>
|
||||
<Typography color="primary" sx={{ '&:hover': { textDecoration: 'underline' } }}>
|
||||
EULA
|
||||
</Typography>
|
||||
</Link>
|
||||
<Link href="/legal/cookies" style={{ textDecoration: 'none' }}>
|
||||
<Typography color="primary" sx={{ '&:hover': { textDecoration: 'underline' } }}>
|
||||
Cookie Policy
|
||||
</Typography>
|
||||
</Link>
|
||||
</Box>
|
||||
</Box>
|
||||
</Box>
|
||||
</Paper>
|
||||
</Container>
|
||||
</AppShell>
|
||||
</ProtectedRoute>
|
||||
);
|
||||
}
|
||||
321
maternal-web/app/legal/terms/page.tsx
Normal file
321
maternal-web/app/legal/terms/page.tsx
Normal file
@@ -0,0 +1,321 @@
|
||||
'use client';
|
||||
|
||||
import { Box, Container, Typography, Paper } from '@mui/material';
|
||||
import Link from 'next/link';
|
||||
import { AppShell } from '@/components/layouts/AppShell/AppShell';
|
||||
import { ProtectedRoute } from '@/components/common/ProtectedRoute';
|
||||
|
||||
export default function TermsOfServicePage() {
|
||||
const lastUpdated = 'October 4, 2025';
|
||||
|
||||
return (
|
||||
<ProtectedRoute>
|
||||
<AppShell>
|
||||
<Container maxWidth="md" sx={{ py: 4 }}>
|
||||
<Paper elevation={0} sx={{ p: 4, border: 1, borderColor: 'divider' }}>
|
||||
<Typography variant="h3" component="h1" gutterBottom>
|
||||
Terms of Service
|
||||
</Typography>
|
||||
|
||||
<Typography variant="body2" color="text.secondary" paragraph>
|
||||
Last Updated: {lastUpdated}
|
||||
</Typography>
|
||||
|
||||
<Box sx={{ mt: 4 }}>
|
||||
<Typography variant="h5" gutterBottom sx={{ mt: 3 }}>
|
||||
1. Acceptance of Terms
|
||||
</Typography>
|
||||
<Typography paragraph>
|
||||
By accessing or using ParentFlow (the "Service"), you agree to be bound by these Terms of Service ("Terms").
|
||||
If you do not agree to these Terms, do not use the Service.
|
||||
</Typography>
|
||||
<Typography paragraph>
|
||||
These Terms constitute a legally binding agreement between you and ParentFlow ("we," "us," or "our").
|
||||
</Typography>
|
||||
|
||||
<Typography variant="h5" gutterBottom sx={{ mt: 3 }}>
|
||||
2. Description of Service
|
||||
</Typography>
|
||||
<Typography paragraph>
|
||||
ParentFlow is a parenting organization and tracking application designed to help parents and caregivers manage
|
||||
childcare for children aged 0-6 years. The Service includes:
|
||||
</Typography>
|
||||
<Typography component="div" paragraph>
|
||||
<ul>
|
||||
<li>Activity tracking (feeding, sleep, diapers, medicine, milestones)</li>
|
||||
<li>AI-powered parenting support and guidance</li>
|
||||
<li>Family synchronization and collaboration tools</li>
|
||||
<li>Analytics and insights about your child's patterns</li>
|
||||
<li>Voice input capabilities</li>
|
||||
<li>Photo storage and milestone tracking</li>
|
||||
</ul>
|
||||
</Typography>
|
||||
|
||||
<Typography variant="h5" gutterBottom sx={{ mt: 3 }}>
|
||||
3. User Accounts
|
||||
</Typography>
|
||||
|
||||
<Typography variant="h6" gutterBottom sx={{ mt: 2 }}>
|
||||
3.1 Account Creation
|
||||
</Typography>
|
||||
<Typography paragraph>
|
||||
To use the Service, you must create an account. You agree to:
|
||||
</Typography>
|
||||
<Typography component="div" paragraph>
|
||||
<ul>
|
||||
<li>Provide accurate and complete information</li>
|
||||
<li>Maintain the security of your account credentials</li>
|
||||
<li>Notify us immediately of any unauthorized access</li>
|
||||
<li>Be responsible for all activities under your account</li>
|
||||
</ul>
|
||||
</Typography>
|
||||
|
||||
<Typography variant="h6" gutterBottom sx={{ mt: 2 }}>
|
||||
3.2 Age Requirements
|
||||
</Typography>
|
||||
<Typography paragraph>
|
||||
You must be at least 18 years old (or the age of majority in your jurisdiction) to create an account.
|
||||
Users between 13-17 years old may only use the Service with parental consent.
|
||||
</Typography>
|
||||
|
||||
<Typography variant="h5" gutterBottom sx={{ mt: 3 }}>
|
||||
4. Acceptable Use
|
||||
</Typography>
|
||||
<Typography paragraph>
|
||||
You agree NOT to:
|
||||
</Typography>
|
||||
<Typography component="div" paragraph>
|
||||
<ul>
|
||||
<li>Use the Service for any illegal purpose</li>
|
||||
<li>Violate any laws or regulations</li>
|
||||
<li>Infringe on intellectual property rights</li>
|
||||
<li>Upload malicious code or viruses</li>
|
||||
<li>Attempt to gain unauthorized access to our systems</li>
|
||||
<li>Harass, abuse, or harm other users</li>
|
||||
<li>Share inappropriate content involving minors</li>
|
||||
<li>Use automated tools to access the Service (bots, scrapers)</li>
|
||||
<li>Reverse engineer or decompile the Service</li>
|
||||
</ul>
|
||||
</Typography>
|
||||
|
||||
<Typography variant="h5" gutterBottom sx={{ mt: 3 }}>
|
||||
5. Medical Disclaimer
|
||||
</Typography>
|
||||
<Typography paragraph sx={{ fontWeight: 'bold', color: 'error.main' }}>
|
||||
THE SERVICE IS NOT A SUBSTITUTE FOR PROFESSIONAL MEDICAL ADVICE.
|
||||
</Typography>
|
||||
<Typography paragraph>
|
||||
Our AI assistant and tracking features provide general information and insights only. They do not constitute
|
||||
medical advice, diagnosis, or treatment. Always consult with qualified healthcare professionals for medical concerns.
|
||||
</Typography>
|
||||
<Typography component="div" paragraph>
|
||||
<strong>In case of emergency, call your local emergency services immediately.</strong>
|
||||
<ul>
|
||||
<li>United States: 911</li>
|
||||
<li>United Kingdom: 999</li>
|
||||
<li>European Union: 112</li>
|
||||
</ul>
|
||||
</Typography>
|
||||
|
||||
<Typography variant="h5" gutterBottom sx={{ mt: 3 }}>
|
||||
6. User Content
|
||||
</Typography>
|
||||
|
||||
<Typography variant="h6" gutterBottom sx={{ mt: 2 }}>
|
||||
6.1 Your Content
|
||||
</Typography>
|
||||
<Typography paragraph>
|
||||
You retain ownership of all content you upload to the Service (photos, data, messages).
|
||||
By uploading content, you grant us a license to use, store, and process it to provide the Service.
|
||||
</Typography>
|
||||
|
||||
<Typography variant="h6" gutterBottom sx={{ mt: 2 }}>
|
||||
6.2 Content Responsibility
|
||||
</Typography>
|
||||
<Typography paragraph>
|
||||
You are solely responsible for your content. You represent that you have the necessary rights and permissions
|
||||
to upload and share your content, including photos of your children.
|
||||
</Typography>
|
||||
|
||||
<Typography variant="h5" gutterBottom sx={{ mt: 3 }}>
|
||||
7. Intellectual Property
|
||||
</Typography>
|
||||
<Typography paragraph>
|
||||
The Service, including its design, features, code, and content (excluding user content), is owned by ParentFlow
|
||||
and protected by copyright, trademark, and other intellectual property laws.
|
||||
</Typography>
|
||||
<Typography paragraph>
|
||||
You may not copy, modify, distribute, sell, or create derivative works based on the Service without our written permission.
|
||||
</Typography>
|
||||
|
||||
<Typography variant="h5" gutterBottom sx={{ mt: 3 }}>
|
||||
8. Subscription and Payment
|
||||
</Typography>
|
||||
|
||||
<Typography variant="h6" gutterBottom sx={{ mt: 2 }}>
|
||||
8.1 Free and Premium Features
|
||||
</Typography>
|
||||
<Typography paragraph>
|
||||
We offer both free and premium subscription tiers. Premium features may include unlimited AI queries, advanced analytics,
|
||||
and priority support.
|
||||
</Typography>
|
||||
|
||||
<Typography variant="h6" gutterBottom sx={{ mt: 2 }}>
|
||||
8.2 Billing
|
||||
</Typography>
|
||||
<Typography paragraph>
|
||||
Premium subscriptions are billed monthly or annually. Payments are processed through third-party payment processors.
|
||||
By subscribing, you authorize us to charge your payment method.
|
||||
</Typography>
|
||||
|
||||
<Typography variant="h6" gutterBottom sx={{ mt: 2 }}>
|
||||
8.3 Cancellation and Refunds
|
||||
</Typography>
|
||||
<Typography paragraph>
|
||||
You may cancel your subscription at any time. Cancellations take effect at the end of the current billing period.
|
||||
We do not offer refunds for partial subscription periods, except as required by law.
|
||||
</Typography>
|
||||
|
||||
<Typography variant="h5" gutterBottom sx={{ mt: 3 }}>
|
||||
9. Privacy
|
||||
</Typography>
|
||||
<Typography paragraph>
|
||||
Your use of the Service is also governed by our{' '}
|
||||
<Link href="/legal/privacy" style={{ color: 'inherit', fontWeight: 'bold' }}>
|
||||
Privacy Policy
|
||||
</Link>
|
||||
. Please review it to understand how we collect, use, and protect your information.
|
||||
</Typography>
|
||||
|
||||
<Typography variant="h5" gutterBottom sx={{ mt: 3 }}>
|
||||
10. Termination
|
||||
</Typography>
|
||||
|
||||
<Typography variant="h6" gutterBottom sx={{ mt: 2 }}>
|
||||
10.1 Termination by You
|
||||
</Typography>
|
||||
<Typography paragraph>
|
||||
You may terminate your account at any time through the app settings. Upon termination, your data will be deleted
|
||||
in accordance with our Privacy Policy.
|
||||
</Typography>
|
||||
|
||||
<Typography variant="h6" gutterBottom sx={{ mt: 2 }}>
|
||||
10.2 Termination by Us
|
||||
</Typography>
|
||||
<Typography paragraph>
|
||||
We reserve the right to suspend or terminate your account if you violate these Terms or engage in harmful behavior.
|
||||
We will provide notice where reasonably possible.
|
||||
</Typography>
|
||||
|
||||
<Typography variant="h5" gutterBottom sx={{ mt: 3 }}>
|
||||
11. Disclaimers
|
||||
</Typography>
|
||||
<Typography paragraph sx={{ fontWeight: 'bold' }}>
|
||||
THE SERVICE IS PROVIDED "AS IS" AND "AS AVAILABLE" WITHOUT WARRANTIES OF ANY KIND.
|
||||
</Typography>
|
||||
<Typography paragraph>
|
||||
We disclaim all warranties, express or implied, including warranties of merchantability, fitness for a particular purpose,
|
||||
and non-infringement. We do not guarantee that the Service will be error-free, secure, or uninterrupted.
|
||||
</Typography>
|
||||
|
||||
<Typography variant="h5" gutterBottom sx={{ mt: 3 }}>
|
||||
12. Limitation of Liability
|
||||
</Typography>
|
||||
<Typography paragraph>
|
||||
TO THE MAXIMUM EXTENT PERMITTED BY LAW, WE SHALL NOT BE LIABLE FOR ANY INDIRECT, INCIDENTAL, CONSEQUENTIAL, OR PUNITIVE
|
||||
DAMAGES ARISING FROM YOUR USE OF THE SERVICE.
|
||||
</Typography>
|
||||
<Typography paragraph>
|
||||
Our total liability shall not exceed the amount you paid us in the 12 months preceding the claim, or $100, whichever is greater.
|
||||
</Typography>
|
||||
|
||||
<Typography variant="h5" gutterBottom sx={{ mt: 3 }}>
|
||||
13. Indemnification
|
||||
</Typography>
|
||||
<Typography paragraph>
|
||||
You agree to indemnify and hold harmless ParentFlow and its officers, directors, employees, and agents from any claims,
|
||||
damages, or expenses arising from your use of the Service or violation of these Terms.
|
||||
</Typography>
|
||||
|
||||
<Typography variant="h5" gutterBottom sx={{ mt: 3 }}>
|
||||
14. Dispute Resolution
|
||||
</Typography>
|
||||
|
||||
<Typography variant="h6" gutterBottom sx={{ mt: 2 }}>
|
||||
14.1 Informal Resolution
|
||||
</Typography>
|
||||
<Typography paragraph>
|
||||
Before filing a legal claim, you agree to contact us at <strong>hello@parentflow.com</strong> to attempt to resolve
|
||||
the dispute informally.
|
||||
</Typography>
|
||||
|
||||
<Typography variant="h6" gutterBottom sx={{ mt: 2 }}>
|
||||
14.2 Arbitration
|
||||
</Typography>
|
||||
<Typography paragraph>
|
||||
Any disputes that cannot be resolved informally will be settled by binding arbitration in accordance with the
|
||||
American Arbitration Association rules, except where prohibited by law.
|
||||
</Typography>
|
||||
|
||||
<Typography variant="h5" gutterBottom sx={{ mt: 3 }}>
|
||||
15. Governing Law
|
||||
</Typography>
|
||||
<Typography paragraph>
|
||||
These Terms are governed by the laws of [Your Jurisdiction], without regard to conflict of law principles.
|
||||
</Typography>
|
||||
|
||||
<Typography variant="h5" gutterBottom sx={{ mt: 3 }}>
|
||||
16. Changes to Terms
|
||||
</Typography>
|
||||
<Typography paragraph>
|
||||
We may update these Terms from time to time. We will notify you of material changes by email or through the app.
|
||||
Your continued use of the Service after changes constitutes acceptance of the updated Terms.
|
||||
</Typography>
|
||||
|
||||
<Typography variant="h5" gutterBottom sx={{ mt: 3 }}>
|
||||
17. Severability
|
||||
</Typography>
|
||||
<Typography paragraph>
|
||||
If any provision of these Terms is found to be invalid or unenforceable, the remaining provisions will continue in full force.
|
||||
</Typography>
|
||||
|
||||
<Typography variant="h5" gutterBottom sx={{ mt: 3 }}>
|
||||
18. Contact Us
|
||||
</Typography>
|
||||
<Typography paragraph>
|
||||
If you have questions about these Terms, please contact us:
|
||||
</Typography>
|
||||
<Typography component="div" paragraph>
|
||||
<strong>Email:</strong> hello@parentflow.com<br />
|
||||
<strong>Address:</strong> Serbota 3, Bucharest, Romania
|
||||
</Typography>
|
||||
|
||||
<Box sx={{ mt: 4, pt: 3, borderTop: 1, borderColor: 'divider' }}>
|
||||
<Typography variant="body2" color="text.secondary">
|
||||
Related Legal Documents:
|
||||
</Typography>
|
||||
<Box sx={{ display: 'flex', gap: 2, mt: 1, flexWrap: 'wrap' }}>
|
||||
<Link href="/legal/privacy" style={{ textDecoration: 'none' }}>
|
||||
<Typography color="primary" sx={{ '&:hover': { textDecoration: 'underline' } }}>
|
||||
Privacy Policy
|
||||
</Typography>
|
||||
</Link>
|
||||
<Link href="/legal/eula" style={{ textDecoration: 'none' }}>
|
||||
<Typography color="primary" sx={{ '&:hover': { textDecoration: 'underline' } }}>
|
||||
EULA
|
||||
</Typography>
|
||||
</Link>
|
||||
<Link href="/legal/cookies" style={{ textDecoration: 'none' }}>
|
||||
<Typography color="primary" sx={{ '&:hover': { textDecoration: 'underline' } }}>
|
||||
Cookie Policy
|
||||
</Typography>
|
||||
</Link>
|
||||
</Box>
|
||||
</Box>
|
||||
</Box>
|
||||
</Paper>
|
||||
</Container>
|
||||
</AppShell>
|
||||
</ProtectedRoute>
|
||||
);
|
||||
}
|
||||
Reference in New Issue
Block a user