Skip to content

barbidoux/Vayne

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

3 Commits
 
 
 
 

Repository files navigation

Vayne Budget Manager - Deployment Instructions

Prerequisites

  1. Flutter SDK (3.0.0 or higher)

  2. Development Tools

    • Android Studio or VS Code with Flutter extensions
    • Xcode (for iOS development on macOS)
    • Git
  3. Accounts Required

    • Supabase Account
    • Plaid Account (for banking integration)
    • Google Play Console (for Android deployment)
    • Apple Developer Account (for iOS deployment)

Step 1: Supabase Setup

1.1 Create Supabase Project

  1. Go to app.supabase.com
  2. Click "New Project"
  3. Fill in:
    • Organization: Select or create
    • Project name: "Vayne Budget Manager"
    • Database Password: Generate a strong password
    • Region: Choose closest to your users
    • Pricing Plan: Free tier is fine for development

1.2 Configure Database

  1. Go to SQL Editor in your Supabase dashboard
  2. Copy the entire SQL schema from vayne_database_schema.sql
  3. Run the schema to create all tables, indexes, and policies

1.3 Configure Authentication

  1. Go to Authentication → Settings
  2. Enable Email Auth
  3. Configure email templates:
    • Confirmation Email
    • Password Reset Email
  4. Set Site URL to your app's deep link URL

1.4 Get API Keys

  1. Go to Settings → API
  2. Copy:
    • Project URL (SUPABASE_URL)
    • Anon/Public Key (SUPABASE_ANON_KEY)

Step 2: Plaid Setup

2.1 Create Plaid Account

  1. Sign up at dashboard.plaid.com
  2. Create a new app in the dashboard
  3. For development, use Sandbox environment

2.2 Configure Plaid

  1. In Plaid Dashboard, configure:
    • Products: Enable "Transactions"
    • Countries: United States (or your target countries)
    • Redirect URIs: Add your app's deep link

2.3 Get API Keys

  1. Copy from dashboard:
    • Client ID (PLAID_CLIENT_ID)
    • Sandbox Secret (PLAID_SECRET)

Step 3: Flutter Project Setup

3.1 Clone and Configure

# Create project directory
mkdir vayne_budget_manager
cd vayne_budget_manager

# Initialize Flutter project
flutter create . --org com.yourcompany --project-name vayne

# Copy all the provided code files to their respective locations

3.2 Environment Configuration

  1. Create .env file in project root:
SUPABASE_URL=your_supabase_project_url
SUPABASE_ANON_KEY=your_supabase_anon_key
PLAID_CLIENT_ID=your_plaid_client_id
PLAID_SECRET=your_plaid_secret_key
PLAID_ENV=sandbox
  1. Add .env to .gitignore:
.env
.env.*

3.3 Install Dependencies

flutter pub get

Step 4: Platform-Specific Configuration

4.1 Android Configuration

  1. Update android/app/build.gradle:

    • Set minSdkVersion to 21
    • Configure signing for release builds
  2. Add internet permission in android/app/src/main/AndroidManifest.xml:

<uses-permission android:name="android.permission.INTERNET"/>
  1. Configure Plaid for Android:
    • Add Plaid repository to android/build.gradle
    • Configure ProGuard rules if using minification

4.2 iOS Configuration

  1. Update ios/Runner/Info.plist:

    • Add required permissions
    • Configure URL schemes for deep linking
  2. Run in iOS folder:

cd ios
pod install
  1. Configure signing in Xcode:
    • Open ios/Runner.xcworkspace
    • Select your team
    • Configure bundle identifier

Step 5: Security Configuration

5.1 API Key Security

  1. Never commit .env files
  2. For production, use:
    • Environment variables on CI/CD
    • Secret management services
    • Platform-specific secure storage

5.2 Enable Certificate Pinning

For production apps, implement certificate pinning for Supabase and Plaid connections.

Step 6: Testing

6.1 Run Development Build

# For Android
flutter run

# For iOS (macOS only)
flutter run -d ios

# For Web (limited functionality)
flutter run -d chrome

6.2 Test Key Features

  1. Authentication Flow

    • Sign up with email
    • Sign in
    • Password reset
  2. Budget Management

    • Create budgets
    • View budget progress
    • Edit/Delete budgets
  3. Transaction Tracking

    • Add manual transactions
    • Categorize transactions
    • View transaction history
  4. Banking Integration

    • Connect Plaid account (Sandbox)
    • Sync transactions
    • View account balances

Step 7: Build for Production

7.1 Android Release

  1. Generate keystore:
keytool -genkey -v -keystore upload-keystore.jks -keyalg RSA -keysize 2048 -validity 10000 -alias upload
  1. Configure signing in android/key.properties

  2. Build APK:

flutter build apk --release
  1. Build App Bundle:
flutter build appbundle --release

7.2 iOS Release

  1. Configure in Xcode:

    • Set deployment target
    • Configure app capabilities
    • Set up provisioning profiles
  2. Build:

flutter build ios --release
  1. Archive and upload via Xcode

Step 8: Deployment

8.1 Google Play Store

  1. Create app in Google Play Console

  2. Upload App Bundle

  3. Fill in store listing:

    • App description
    • Screenshots
    • Privacy policy
    • Content rating
  4. Submit for review

8.2 Apple App Store

  1. Create app in App Store Connect

  2. Upload build via Xcode

  3. Fill in app information:

    • App description
    • Screenshots
    • Privacy policy
    • Age rating
  4. Submit for review

Step 9: Post-Deployment

9.1 Monitor Performance

  1. Set up crash reporting (Firebase Crashlytics)
  2. Monitor Supabase usage
  3. Track Plaid API usage

9.2 Regular Updates

  1. Keep dependencies updated
  2. Monitor security advisories
  3. Respond to user feedback

Troubleshooting

Common Issues

  1. Build Errors

    • Clean build: flutter clean
    • Update dependencies: flutter pub upgrade
    • Check Flutter doctor: flutter doctor
  2. Supabase Connection Issues

    • Verify API keys
    • Check RLS policies
    • Monitor Supabase logs
  3. Plaid Integration Issues

    • Verify environment (sandbox/production)
    • Check redirect URIs
    • Monitor webhook events

Support Resources

Production Checklist

  • Environment variables secured
  • API keys rotated from development
  • Database backups configured
  • Error tracking implemented
  • Performance monitoring active
  • Privacy policy published
  • Terms of service published
  • GDPR compliance (if applicable)
  • App store assets prepared
  • Release notes written

About

Simple budget application

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages