πŸ“¦ Export Documentation

Complete guide to export and deploy this app to organizemyrecipes.com

Complete Export Guide
# Grandma's Recipe Box - Complete Export Guide

## 🎯 App Overview
**Original App:** grandmasrecipebox.app
**New App:** organizemyrecipes.com
**Platform:** Base44
**Version:** 1.0.0

---

## πŸ“‹ Prerequisites

### Required Accounts:
- Base44 account (https://base44.com)
- Stripe account for payments
- Twilio account for SMS
- GitHub account (for version control)

### Tech Stack:
- **Frontend:** React, TailwindCSS, Shadcn/UI
- **Backend:** Deno Deploy (Base44 functions)
- **Database:** PostgreSQL with RLS
- **Auth:** Base44 built-in
- **Payments:** Stripe
- **SMS:** Twilio

---

## πŸ—„οΈ Database Entities (49 files)

All entities include Row-Level Security (RLS):

1. Recipe - Main recipe storage
2. User - Extended user profiles
3. RecipeLike - Like tracking
4. Review - Recipe reviews/ratings
5. Collection - Recipe collections
6. RecipeCollection - Collection links
7. Follow - User following
8. ShoppingListItem - Shopping lists
9. CommunityPost - Forum posts
10. CommunityReply - Post replies
11. CommunityLike - Post likes
12. AffiliateReferral - Referral tracking
13. PromoCode - Discount codes
14. RecipeComment - Recipe comments
15. MealPlan - Meal planning
16. EmergencyRecipe - Recovery backup
17. RecipeFolder - Organization folders
18. PantryItem - Pantry inventory
19. FridgeItem - Fridge inventory
20. CulinaryTerm - Glossary terms
21. AppSettings - App configuration
22. PdfCookbook - PDF cookbooks
23. Feedback - User feedback
24. AggregatedRecipe - Trending recipes
25. UserBoard - User boards
26. BoardRecipe - Board links
27. TikTokRecipe - Social imports
28. Lead - Lead generation
29. SmsVerification - SMS OTP
30. UserSession - Session tracking
31. SmsMarketingCampaign - SMS campaigns
32. GiftPurchase - Gift certificates
33. RecipeMemory - Recipe memories
34. PdfBookmark - PDF bookmarks
35. PdfCollectionLink - PDF collections
36. HeirloomOrder - Product orders
37. HeirloomTemplate - Print templates
38. HeirloomProduct - Products catalog
39. HeirloomSettings - Shop settings
40. PdfChunk - PDF upload chunks
41. PdfAccess - PDF permissions
42. PdfViewToken - Secure PDF viewing
43. SupportTicket - Support system
44. AgentMessage - Agent notifications
45. SiteHealthIssue - System monitoring
46. AggregationSourceStatus - Source tracking
47. EngagementLog - User engagement
48. ExtractorLog - Extraction logs
49. BlogPost - Blog system

---

## πŸ“± Frontend Pages (50+ files)

### Public Pages:
- Landing.js - Homepage
- Blog.js - Blog listing
- BlogPost.js - Blog article view
- TermsOfService.js
- PrivacyPolicy.js
- SignInHelp.js
- AuthRedirect.js

### User Pages:
- Home.js - User dashboard
- MyRecipes.js - Recipe library
- AddRecipe.js - Create recipe
- EditRecipe.js - Edit recipe
- RecipeDetail.js - View recipe
- Profile.js - User profile
- EditProfile.js - Edit profile
- Subscription.js - Manage subscription

### Recipe Management:
- Folders.js - Folder organization
- Collections.js - Collections view
- CollectionDetail.js - Collection detail
- CreateCollection.js - New collection
- UserBoards.js - Pinterest-style boards
- DiscoverRecipes.js - Discover feed
- IngredientSearch.js - Search by ingredients

### Meal Planning:
- MealPlanner.js - Meal planning
- ShoppingList.js - Shopping lists
- PantryInventory.js - Pantry tracking
- FridgeInventory.js - Fridge tracking

### Import/Export:
- AddTikTokRecipe.js - TikTok import
- TikTokRecipes.js - TikTok library
- TikTokRecipeDetail.js - TikTok detail
- UploadHandwrittenRecipe.js - Scan recipes
- TypeYourRecipe.js - Manual entry
- MyOnlineRecipeWishList.js - Wishlist

### Cookbooks:
- Cookbooks.js - Cookbook library
- CookbookDetail.js - View cookbook
- CreateRecipeBook.js - Create cookbook
- CookbookExtractor.js - Extract from PDFs

### Community:
- Community.js - Forum
- CommunityPost.js - Post detail
- CreatePost.js - New post

### Special Features:
- CookingMode.js - Hands-free cooking
- VoiceCapture.js - Voice recording
- CulinaryGlossary.js - Cooking terms
- KeepsakeLedger.js - Recipe memories
- GrandmaShirley.js - AI assistant

### Gifts & Shop:
- HeirloomGifts.js - Custom gifts
- ReadyMadeGifts.js - Pre-made gifts
- GiftCertificatePreview.js - Gift preview
- OfferSuccess.js - Purchase success
- OfferCancel.js - Purchase cancel

### Admin Pages:
- AdminDashboard.js - Analytics
- AdminUsers.js - User management
- AdminSettings.js - App settings
- AdminPromoCodes.js - Promo management
- AdminAffiliates.js - Affiliate management
- AdminFeedback.js - Feedback review
- AdminOrphanedRecipes.js - Data recovery
- AdminSmsMarketing.js - SMS campaigns
- AdminLeads.js - Lead management
- AdminTickets.js - Support tickets
- AdminSiteHealth.js - System health
- AdminHeirloomDashboard.js - Shop dashboard
- AdminHeirloomTemplates.js - Template management
- AdminHeirloomProducts.js - Product catalog
- AdminHeirloomSettings.js - Shop settings

---

## 🧩 Components (40+ files)

### Core Components:
- RecipeCard.js - Recipe display card
- CategoryFilter.js - Category filtering
- DietaryFilter.js - Dietary filtering
- FeaturedRecipes.js - Featured section
- ShareRecipeDialog.js - Share modal
- RecipeComments.js - Comments section
- ServingSizeAdjuster.js - Serving adjuster
- IngredientSubstitution.js - Substitutions
- RecipeScanner.js - Image scanning
- ImageEditor.js - Photo editing
- CSVImportDialog.js - CSV import
- TikTokFavorites.js - TikTok favorites

### Reviews:
- reviews/StarRating.js - Star rating
- reviews/ReviewSection.js - Review list

### Subscription:
- subscription/PremiumFeatureGate.js - Paywall
- subscription/UpgradeModal.js - Upgrade prompt
- subscription/UpgradePrompts.js - Smart prompts
- subscription/CookbookUpgradeModal.js - Cookbook paywall
- subscription/StrategicPaywall.js - Strategic blocking
- subscription/PaymentGateModal.js - Payment gate

### Community:
- community/CommunityPostCard.js - Post card

### Meal Planning:
- meal-planner/AddRecipeToPlanDialog.js - Add to plan

### Recipes:
- recipes/NutritionCalculatorButton.js - Nutrition
- recipes/QrCodeModal.js - QR codes
- recipes/UnitConverterModal.js - Unit converter
- recipes/DuplicateFinderModal.js - Find duplicates
- recipes/EquipmentToolsSection.js - Equipment display
- recipes/EquipmentToolsEditor.js - Equipment editor
- recipes/SocialRecipeEditor.js - Social editor
- recipes/CoverDesignStudio.js - Cover designer

### Boards:
- boards/BoardSelectionModal.js - Board selector

### Auth:
- auth/SecureSigninDialog.js - Secure login
- auth/AuthUpdateBanner.js - Auth updates
- auth/LoginHelperBanner.js - Login help
- auth/EmailPasswordLoginDialog.js - Email login

### Media:
- media/ImageWithFallback.js - Image loader

### Offers:
- offers/GiftDialog.js - Gift modal
- offers/LaunchOffer.js - Launch offer
- offers/GiftCertificate.js - Certificate
- offers/GiftCertificateModal.js - Certificate modal

### PDF:
- pdf/ResumablePdfUploader.js - Resume uploads
- pdf/SecurePdfViewer.js - Secure viewing
- pdf/ChunkedPdfUploader.js - Chunked uploads
- pdf/PdfDiagnosticModal.js - PDF diagnostics
- pdf/RobustPdfViewer.js - Robust viewer

### Photos:
- photos/PhotoEditorModal.js - Photo editor

### Social:
- social/TikTokEmbed.js - TikTok embed

### Cookbooks:
- cookbooks/ExtractedCookbookRenderer.js - Cookbook renderer

### Assistant:
- assistant/VoiceAssistant.js - Voice assistant
- assistant/grandmaTerryPrompt.js - Terry prompt
- assistant/TerryAvatar.js - Terry avatar
- assistant/GrandmaTerryHeader.js - Terry header
- assistant/AgentNotifications.js - Agent notifications
- assistant/VoiceToggle.js - Voice toggle

### Utility:
- DevelopmentBanner.js - Dev banner
- FeedbackChatbot.js - Feedback chat
- AppProtection.js - App protection
- FeedbackResponseNotification.js - Feedback notification
- ErrorBoundary.js - Error handling
- SessionProvider.js - Session context
- ErrorHandlingModal.js - Error modal
- SaveSuccessModal.js - Save success
- LeadMagnetDownloadModal.js - Lead magnet
- LivestreamPlayer.js - Livestream
- GrandmaShirleyWidget.js - Shirley widget
- PrivacyNotice.js - Privacy notice
- WhatYouGet.js - Feature list
- AddToHomeScreen.js - PWA prompt
- PdfUploadOptions.js - PDF options
- hooks/useWindowSize.js - Window size hook

---

## βš™οΈ Backend Functions (45 files)

### Stripe Functions:
- createCheckoutSession.js - Create payment
- createCustomerPortal.js - Manage subscription
- stripeWebhook.js - Handle webhooks
- createLimitedTimeCheckout.js - Limited offers
- finalizeLimitedOffer.js - Finalize offer

### Recipe Functions:
- saveRecipe.js - Save recipe
- extractRecipeFromUrl.js - Extract from URL
- extractSocialMediaRecipe.js - Social extract
- extractRecipeImage.js - OCR scanning
- saveImportedRecipe.js - Save imported
- uploadImageFromUrl.js - Image upload
- claimRecipeOwnership.js - Claim recipe

### Export/Import:
- exportRecipesCSV.js - Export CSV
- importRecipesCSV.js - Import CSV
- exportUserEmails.js - Export emails

### PDF Functions:
- generateRecipeBook.js - Generate cookbook
- generateRecipePdf.js - Recipe PDF
- generateShoppingListPdf.js - Shopping PDF
- generateMealPlanPdf.js - Meal plan PDF
- generateSignedPdfUrl.js - Signed URLs
- finalizeUpload.js - Finalize upload
- getSecurePdfUrl.js - Secure URL
- initiateChunkedUpload.js - Start chunk
- uploadPdfChunk.js - Upload chunk
- finalizeChunkedUpload.js - Finish chunk
- streamCookbookPdf.js - Stream PDF
- uploadSmallCookbook.js - Small upload
- cookbooksView.js - View cookbook
- generateCookbookViewToken.js - View token
- extractCookbookRecipes.js - Extract recipes
- diagnosePdfCookbook.js - Diagnose PDF

### SMS Functions:
- sendSmsCode.js - Send OTP
- verifySmsCode.js - Verify OTP
- sendMarketingSms.js - Marketing SMS

### Admin Functions:
- processReferral.js - Process referral
- applyPromoCode.js - Apply promo
- sendFeedbackResponse.js - Feedback reply
- logApplicationError.js - Error logging
- johnAggregateRecipes.js - Aggregate recipes
- siteIntegrityCheck.js - Health check
- engagementPulse.js - Engagement tracking
- generateAdminReport.js - Admin reports

### Social Functions:
- socialMediaRecipeExtractor.js - Social extract
- getTikTokMeta.js - TikTok metadata
- migrateTikTokEmbeds.js - Migrate embeds
- migrateTikTokRecipes.js - Migrate recipes

### Recovery Functions:
- getOrphanedRecipes.js - Find orphans
- bulkRecoverAllRecipes.js - Bulk recover
- databaseDiagnostic.js - Database check
- emergencySaveRecipe.js - Emergency save
- emergencyTextSave.js - Text save
- ultimateRecipeTest.js - Test save
- emergencyFixAllRecipes.js - Fix all

### Auth Functions:
- emailPasswordLogin.js - Email login

---

## πŸ€– AI Agents (2 files)

### John (Backend Automation):
**File:** agents/john.json

**Responsibilities:**
- Daily recipe aggregation
- Support ticket management
- Site health monitoring
- Admin reporting
- User engagement tracking

**Entities Access:**
- AggregatedRecipe
- AggregationSourceStatus
- SupportTicket
- Feedback
- SiteHealthIssue
- EngagementLog
- AgentMessage
- User (read/update)
- Recipe (read)

### Grandma Terry (Community Guide):
**File:** agents/grandma_terry.json

**Responsibilities:**
- Welcome new users
- Answer cooking questions
- Community engagement
- Recipe assistance
- User retention

**Entities Access:**
- AgentMessage
- CommunityPost
- CommunityReply
- User (read)
- Recipe (read)
- Review (read)

---

## πŸ” Secrets Configuration

### Required Secrets:

```env
# Stripe (Required)
STRIPE_SECRET_KEY=sk_live_...
STRIPE_WEBHOOK_SECRET=whsec_...

# Twilio (Required)
TWILIO_ACCOUNT_SID=AC...
TWILIO_AUTH_TOKEN=...
TWILIO_PHONE_NUMBER=+1...

# Auto-populated by Base44:
BASE44_APP_ID=auto
```

### How to Get Secrets:

**Stripe:**
1. Go to https://dashboard.stripe.com
2. Navigate to Developers β†’ API keys
3. Copy "Secret key" (starts with sk_live_ or sk_test_)
4. Create webhook endpoint: https://your-domain.com/functions/stripeWebhook
5. Select events:
   - checkout.session.completed
   - customer.subscription.created
   - customer.subscription.updated
   - customer.subscription.deleted
   - invoice.payment_succeeded
   - invoice.payment_failed
6. Copy webhook secret (starts with whsec_)

**Twilio:**
1. Go to https://console.twilio.com
2. Copy Account SID from dashboard
3. Copy Auth Token from dashboard
4. Buy a phone number (Phone Numbers β†’ Buy a number)
5. Copy phone number in E.164 format (+1234567890)

---

## πŸš€ Deployment Steps

### Step 1: Create Base44 Project
1. Log into Base44 dashboard
2. Create new project: "Organize My Recipes"
3. Set domain: organizemyrecipes.com

### Step 2: Upload All Entities (49 files)
1. Go to "Data" tab
2. Create each entity from entities/ folder
3. Ensure RLS policies are configured

### Step 3: Upload All Pages (50+ files)
1. Go to "Pages" tab
2. Upload each page from pages/ folder

### Step 4: Upload All Components (40+ files)
1. Go to "Components" tab
2. Upload each component from components/ folder

### Step 5: Upload All Functions (45 files)
1. Go to "Functions" tab
2. Deploy each function from functions/ folder

### Step 6: Upload Agents (2 files)
1. Go to "Agents" tab
2. Upload john.json and grandma_terry.json

### Step 7: Upload Layout
1. Go to "Layout" tab
2. Upload Layout.js

### Step 8: Configure Secrets
1. Go to Settings β†’ Environment Variables
2. Add all required secrets

### Step 9: Configure Stripe Webhooks
1. Point webhook to your function URL
2. Test webhook delivery

### Step 10: Test Everything
- User registration
- Recipe creation
- Payment flow
- All major features

### Step 11: Go Live! πŸŽ‰

---

## πŸ“Š File Structure Summary

```
organize-my-recipes/
β”œβ”€β”€ entities/          (49 JSON files)
β”œβ”€β”€ pages/            (50+ JS files)
β”œβ”€β”€ components/       (40+ JS files)
β”œβ”€β”€ functions/        (45 JS files)
β”œβ”€β”€ agents/           (2 JSON files)
└── Layout.js         (1 JS file)

Total: ~187 files
```

---

## πŸ”„ Migration Checklist

### Pre-Migration:
- [ ] Backup original app data
- [ ] Document custom configurations
- [ ] Export user list (if needed)
- [ ] Take screenshots of current app

### During Migration:
- [ ] Create new Base44 project
- [ ] Upload all entities
- [ ] Upload all pages
- [ ] Upload all components
- [ ] Upload all functions
- [ ] Upload agents
- [ ] Upload layout
- [ ] Configure secrets
- [ ] Test each feature

### Post-Migration:
- [ ] DNS configuration
- [ ] SSL certificate (auto)
- [ ] Test payment flow
- [ ] Test email/SMS
- [ ] Monitor for errors
- [ ] User acceptance testing

---

## πŸ“ž Support Resources

- **Base44:** support@base44.com
- **Stripe:** https://support.stripe.com
- **Twilio:** https://support.twilio.com
- **GitHub:** https://github.com/YOUR_USERNAME/organize-my-recipes

---

## 🎯 Success Criteria

Your migration is successful when:
- βœ… All pages load without errors
- βœ… Users can register and login
- βœ… Recipes can be created and edited
- βœ… Payments process correctly
- βœ… SMS notifications work
- βœ… All admin features function
- βœ… Mobile responsive works
- βœ… No console errors

---

**Export Date:** January 2025
**Version:** 1.0.0
**Platform:** Base44

πŸ“ž Need Help?

Base44 Support

support@base44.com

Stripe Support

support.stripe.com

Twilio Support

support.twilio.com