Skip to content

Latest commit

 

History

History
203 lines (158 loc) · 4.73 KB

File metadata and controls

203 lines (158 loc) · 4.73 KB

FileDoc Mini Admin - Setup Guide

Prerequisites

  • Flutter SDK (latest stable version)
  • Firebase CLI
  • Android Studio / Xcode (for mobile development)
  • Git

Firebase Setup

1. Create Firebase Project

  1. Go to Firebase Console
  2. Create a new project or use existing one
  3. Enable Authentication, Firestore, and Storage

2. Configure Firebase for Flutter

Install FlutterFire CLI

dart pub global activate flutterfire_cli

Configure Firebase

flutterfire configure

3. Manual Configuration (Alternative)

Android Setup

  1. Copy your google-services.json from Firebase Console
  2. Place it in android/app/google-services.json
  3. NEVER commit this file to version control

iOS Setup

  1. Download GoogleService-Info.plist from Firebase Console
  2. Add it to ios/Runner/ directory in Xcode
  3. NEVER commit this file to version control

Web/Desktop Setup

  1. Copy the template lib/firebase_options.template.dart to lib/firebase_options.dart
  2. Replace placeholder values with your Firebase configuration
  3. NEVER commit the actual firebase_options.dart to version control

Environment Variables

Create a .env file in the root directory (this file is gitignored):

# Firebase Configuration
FIREBASE_PROJECT_ID=your_project_id
FIREBASE_API_KEY=your_api_key
FIREBASE_MESSAGING_SENDER_ID=your_sender_id

# External APIs
EXCHANGE_RATE_API_KEY=your_exchange_rate_api_key

Installation

  1. Clone the repository:
git clone <repository-url>
cd FileDoc_mini_admin
  1. Install dependencies:
flutter pub get
  1. Set up Firebase configuration (see Firebase Setup above)

  2. Run the app:

flutter run

Required Firebase Services

Authentication

  • Enable Email/Password authentication
  • Configure OAuth providers if needed

Firestore Database

Create the following collections:

  • users - User profiles and data
  • analytics - User analytics data
  • withdrawals - Withdrawal requests
  • files - File metadata

Storage

  • Configure storage rules for file uploads
  • Set up appropriate security rules

Security Rules

Firestore Rules

rules_version = '2';
service cloud.firestore {
  match /databases/{database}/documents {
    // Users can only access their own data
    match /users/{userId} {
      allow read, write: if request.auth != null && request.auth.uid == userId;
    }
    
    // Analytics data - user specific
    match /analytics/{userId}/{document=**} {
      allow read, write: if request.auth != null && request.auth.uid == userId;
    }
    
    // Withdrawals - user specific
    match /withdrawals/{document} {
      allow read, write: if request.auth != null && 
        request.auth.uid == resource.data.userId;
    }
  }
}

Storage Rules

rules_version = '2';
service firebase.storage {
  match /b/{bucket}/o {
    match /users/{userId}/{allPaths=**} {
      allow read, write: if request.auth != null && request.auth.uid == userId;
    }
  }
}

Development

Project Structure

lib/
├── constant/          # App constants and colors
├── controllers/       # GetX controllers
├── model/            # Data models
├── screens/          # UI screens
├── services/         # Business logic services
├── widget/           # Reusable widgets
├── firebase_options.dart  # Firebase configuration (DO NOT COMMIT)
└── main.dart         # App entry point

Key Features

  • User authentication
  • File management
  • Analytics dashboard
  • Billing and withdrawals
  • Multi-platform support

Deployment

Android

  1. Configure signing keys
  2. Build release APK: flutter build apk --release
  3. Upload to Play Store

iOS

  1. Configure provisioning profiles
  2. Build for iOS: flutter build ios --release
  3. Upload to App Store

Web

  1. Build for web: flutter build web --release
  2. Deploy to Firebase Hosting or your preferred platform

Security Considerations

  • Never commit Firebase configuration files
  • Use environment variables for sensitive data
  • Implement proper Firestore security rules
  • Enable Firebase App Check for additional security
  • Regular security audits of dependencies

Troubleshooting

Common Issues

  1. Firebase not initialized: Ensure firebase_options.dart is properly configured
  2. Build errors: Run flutter clean && flutter pub get
  3. Authentication issues: Check Firebase Auth configuration

Getting Help

  • Check Flutter documentation
  • Review Firebase documentation
  • Create issues in the repository

Contributing

  1. Fork the repository
  2. Create a feature branch
  3. Make your changes
  4. Test thoroughly
  5. Submit a pull request

License

[Add your license information here]