✨ Major Features: - Dark mode toggle with app-wide theme switching - Sort inventory by Expiration Date, Name, or Location - Toggle between Grid and List view for inventory - Export inventory data to CSV with share functionality - Custom sage leaf app icon with adaptive icon support 🔄 FOSS Compliance (F-Droid Ready): - Replaced Firebase with Supabase (open-source backend) - Anonymous authentication (no user accounts required) - Cloud-first with hosted Supabase as default - Optional self-hosting support - 100% FOSS-compliant dependencies 🎨 UI/UX Improvements: - Dynamic version display from package.json (was hardcoded) - Added edit buttons for household and user names - Removed non-functional search button - Replaced Recipes placeholder with Settings button - Improved settings organization with clear sections 📦 Dependencies: Added: - supabase_flutter: ^2.8.4 (FOSS backend sync) - package_info_plus: ^8.1.0 (dynamic version) - csv: ^6.0.0 (data export) - share_plus: ^10.1.2 (file sharing) - image: ^4.5.4 (dev, icon generation) Removed: - firebase_core (replaced with Supabase) - cloud_firestore (replaced with Supabase) 🗑️ Cleanup: - Removed Firebase setup files and google-services.json - Removed unimplemented features (Recipes, Search) - Removed firebase_household_service.dart - Removed inventory_sync_service.dart (replaced with Supabase) 📄 New Files: - lib/features/household/services/supabase_household_service.dart - web/privacy-policy.html (Play Store requirement) - web/terms-of-service.html (Play Store requirement) - PLAY_STORE_LISTING.md (marketing copy) - tool/generate_icons.dart (icon generation script) - assets/icon/sage_leaf.png (1024x1024) - assets/icon/sage_leaf_foreground.png (adaptive icon) 🐛 Bug Fixes: - Fixed version display showing hardcoded "1.0.0" - Fixed Sort By and Default View showing static text - Fixed ConsumerWidget build signatures - Fixed Location.displayName import issues - Added clearAllData method to Hive database 📊 Stats: +1,728 additions, -756 deletions across 42 files 🤖 Generated with Claude Code (https://claude.com/claude-code) Co-Authored-By: Claude <noreply@anthropic.com>
192 lines
7.8 KiB
HTML
192 lines
7.8 KiB
HTML
<!DOCTYPE html>
|
|
<html lang="en">
|
|
<head>
|
|
<meta charset="UTF-8">
|
|
<meta name="viewport" content="width=device-width, initial-scale=1.0">
|
|
<title>Privacy Policy - Sage Kitchen Management</title>
|
|
<style>
|
|
* {
|
|
margin: 0;
|
|
padding: 0;
|
|
box-sizing: border-box;
|
|
}
|
|
body {
|
|
font-family: -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, Oxygen, Ubuntu, Cantarell, sans-serif;
|
|
line-height: 1.6;
|
|
color: #333;
|
|
background: linear-gradient(135deg, #667eea 0%, #764ba2 100%);
|
|
min-height: 100vh;
|
|
padding: 20px;
|
|
}
|
|
.container {
|
|
max-width: 800px;
|
|
margin: 0 auto;
|
|
background: white;
|
|
padding: 40px;
|
|
border-radius: 10px;
|
|
box-shadow: 0 10px 40px rgba(0,0,0,0.1);
|
|
}
|
|
h1 {
|
|
color: #4CAF50;
|
|
margin-bottom: 10px;
|
|
font-size: 2.5em;
|
|
}
|
|
.last-updated {
|
|
color: #666;
|
|
font-size: 0.9em;
|
|
margin-bottom: 30px;
|
|
}
|
|
h2 {
|
|
color: #4CAF50;
|
|
margin-top: 30px;
|
|
margin-bottom: 15px;
|
|
font-size: 1.5em;
|
|
}
|
|
p {
|
|
margin-bottom: 15px;
|
|
}
|
|
ul {
|
|
margin-left: 20px;
|
|
margin-bottom: 15px;
|
|
}
|
|
li {
|
|
margin-bottom: 8px;
|
|
}
|
|
.highlight {
|
|
background: #e8f5e9;
|
|
padding: 15px;
|
|
border-left: 4px solid #4CAF50;
|
|
margin: 20px 0;
|
|
}
|
|
a {
|
|
color: #4CAF50;
|
|
text-decoration: none;
|
|
}
|
|
a:hover {
|
|
text-decoration: underline;
|
|
}
|
|
</style>
|
|
</head>
|
|
<body>
|
|
<div class="container">
|
|
<h1>🌿 Privacy Policy</h1>
|
|
<p class="last-updated">Last Updated: October 4, 2025</p>
|
|
|
|
<div class="highlight">
|
|
<strong>TL;DR:</strong> Sage is built privacy-first. Your data stays on YOUR device. Optional cloud sync uses open-source Supabase. We don't sell data, track you, or show ads. Ever.
|
|
</div>
|
|
|
|
<h2>1. Information We Collect</h2>
|
|
<p>Sage is designed to respect your privacy. Here's what we do and don't collect:</p>
|
|
|
|
<h3>Local Data (Stored on Your Device)</h3>
|
|
<ul>
|
|
<li><strong>Food inventory items</strong> - names, quantities, expiration dates, barcodes, photos, notes</li>
|
|
<li><strong>User preferences</strong> - app settings, Discord webhook URL (if configured), household name</li>
|
|
<li><strong>Household information</strong> - household name, member names (if using household sharing)</li>
|
|
</ul>
|
|
|
|
<h3>Cloud Sync Data (Optional - Supabase)</h3>
|
|
<p>If you choose to use household sharing features, the following data is synced to Supabase (an open-source backend):</p>
|
|
<ul>
|
|
<li>Food inventory items from your household</li>
|
|
<li>Household name and member names</li>
|
|
<li>Anonymous authentication tokens (no email or personal info required)</li>
|
|
</ul>
|
|
|
|
<h3>What We DON'T Collect</h3>
|
|
<ul>
|
|
<li>❌ No email addresses</li>
|
|
<li>❌ No phone numbers</li>
|
|
<li>❌ No location tracking</li>
|
|
<li>❌ No analytics or usage tracking</li>
|
|
<li>❌ No advertising IDs</li>
|
|
<li>❌ No personal identifiable information</li>
|
|
</ul>
|
|
|
|
<h2>2. How We Use Your Information</h2>
|
|
<p>Your data is used ONLY for these purposes:</p>
|
|
<ul>
|
|
<li><strong>Local inventory management</strong> - Track your food items on your device</li>
|
|
<li><strong>Household sharing</strong> - Sync inventory with family members (if enabled)</li>
|
|
<li><strong>Expiration notifications</strong> - Send alerts via Discord webhook (if configured by you)</li>
|
|
<li><strong>Barcode lookup</strong> - Fetch product information from public APIs (Open Food Facts, UPCItemDB)</li>
|
|
</ul>
|
|
|
|
<h2>3. Data Storage & Security</h2>
|
|
|
|
<h3>Local Storage (Hive Database)</h3>
|
|
<p>All your data is stored locally on your device using Hive, an encrypted local database. This data never leaves your device unless you explicitly enable household sharing.</p>
|
|
|
|
<h3>Cloud Storage (Supabase - Optional)</h3>
|
|
<p>If you enable household sharing:</p>
|
|
<ul>
|
|
<li>Data is stored in Supabase (open-source Firebase alternative)</li>
|
|
<li>You can use our hosted Supabase instance OR self-host your own</li>
|
|
<li>Data is transmitted over HTTPS</li>
|
|
<li>Anonymous authentication - no email or password required</li>
|
|
</ul>
|
|
|
|
<h2>4. Third-Party Services</h2>
|
|
<p>Sage may interact with these third-party services:</p>
|
|
|
|
<h3>Barcode Lookup APIs</h3>
|
|
<ul>
|
|
<li><strong>Open Food Facts</strong> - Free, open database of food products</li>
|
|
<li><strong>UPCItemDB</strong> - Product information database</li>
|
|
<li>These services receive ONLY the barcode number when you scan items</li>
|
|
</ul>
|
|
|
|
<h3>Discord Webhooks (Optional)</h3>
|
|
<p>If you configure a Discord webhook URL, Sage will send expiration notifications to your Discord channel. We don't store or have access to your webhook URL on any server.</p>
|
|
|
|
<h3>Supabase (Optional)</h3>
|
|
<p>If you enable household sharing, your inventory data is synced via Supabase. See their privacy policy at <a href="https://supabase.com/privacy" target="_blank">supabase.com/privacy</a></p>
|
|
|
|
<h2>5. Data Sharing</h2>
|
|
<p><strong>We DO NOT sell, rent, or share your data with anyone.</strong></p>
|
|
<p>The ONLY data sharing happens when:</p>
|
|
<ul>
|
|
<li>You explicitly enable household sharing (data shared with your household members via Supabase)</li>
|
|
<li>You configure Discord notifications (sent to YOUR Discord webhook)</li>
|
|
</ul>
|
|
|
|
<h2>6. Your Rights & Control</h2>
|
|
<p>You have complete control over your data:</p>
|
|
<ul>
|
|
<li><strong>Delete your data</strong> - Uninstall the app to remove all local data</li>
|
|
<li><strong>Export your data</strong> - Contact us for a data export (coming soon in-app)</li>
|
|
<li><strong>Disable cloud sync</strong> - Leave household to stop syncing</li>
|
|
<li><strong>Self-host</strong> - Run your own Supabase instance for full control</li>
|
|
</ul>
|
|
|
|
<h2>7. Children's Privacy</h2>
|
|
<p>Sage does not knowingly collect information from children under 13. The app is designed for household management and is intended for use by adults.</p>
|
|
|
|
<h2>8. Open Source & Transparency</h2>
|
|
<p>Sage is 100% FOSS (Free and Open Source Software). You can inspect the entire codebase, including:</p>
|
|
<ul>
|
|
<li>How data is stored locally</li>
|
|
<li>What data is sent to Supabase</li>
|
|
<li>How barcode APIs are used</li>
|
|
<li>No hidden tracking or analytics</li>
|
|
</ul>
|
|
|
|
<h2>9. Changes to This Policy</h2>
|
|
<p>We may update this privacy policy from time to time. We'll notify you of any material changes by updating the "Last Updated" date at the top of this policy.</p>
|
|
|
|
<h2>10. Contact Us</h2>
|
|
<p>Questions about this privacy policy? Contact us:</p>
|
|
<ul>
|
|
<li>GitHub Issues: <a href="https://github.com/yourusername/sage" target="_blank">github.com/yourusername/sage</a></li>
|
|
<li>Email: [Your contact email]</li>
|
|
</ul>
|
|
|
|
<div class="highlight">
|
|
<strong>🌿 Built with Privacy in Mind</strong><br>
|
|
Sage is local-first, open-source, and respects your data. Your kitchen, your data, your control.
|
|
</div>
|
|
</div>
|
|
</body>
|
|
</html>
|