Missão

Complete Parish & Church Community App with Admin Panel

Version 1.0.0

Who Is This Product For?

Important: This product is designed for intermediate to advanced Flutter developers with prior experience in Firebase. Basic knowledge of Clean Architecture and state management is recommended.

This product IS for you if:

  • You have experience building Flutter apps
  • You're familiar with Firebase (Auth, Firestore, Functions)
  • You understand dependency injection and state management
  • You can configure API keys and environment variables
  • You want a production-ready, well-architected codebase

This product is NOT for you if:

  • You're just starting to learn Flutter
  • You've never worked with Firebase before
  • You expect a no-code or drag-and-drop solution
  • You're not comfortable with command-line tools
  • You need extensive hand-holding for basic setup

Estimated setup time: 1-2 hours for experienced developers | Support: Installation issues and bug fixes

App Preview

A beautiful, modern mobile application for Catholic communities.

Login Screen

Login

Home Screen

Home

Parishes List

Parishes

Parish Details

Parish Details

Events

Events

User Profile

Profile

Dark Mode

Dark Mode

Admin Panel Preview

A powerful web-based dashboard for managing your parish community.

Admin Dashboard

Dashboard with real-time metrics and charts

Parish Management

Parish management with search and filters

Event Management

Event creation and scheduling

Push Notifications

Push notification management

User Management

User management and analytics

Admin Management

Admin roles and permissions

Try the Demo: Access the live admin panel at missaoapp-d0400.web.app
Demo Account: demo@missao.app / demo123

Getting Started

Thank you for purchasing Missão! This documentation will guide you through the installation, configuration, and deployment of your parish community application.

What's Included: Flutter Mobile App (iOS & Android), Web Admin Panel, Firebase Backend (Cloud Functions), Custom Design System Package, and complete source code.

Package Contents

📱

Mobile App

Cross-platform Flutter app for iOS and Android with parish search, maps, events, and user profiles.

🖥️

Admin Panel

Web-based admin dashboard for managing parishes, events, users, and notifications.

☁️

Cloud Backend

Firebase Cloud Functions for secure server-side operations and data management.

🎨

Design System

Custom UI component library (Possas DS) with tokens, themes, and reusable widgets.

Key Features

Multi-language support (PT/EN)
Email & Social Authentication
Google Maps Integration
Nearby Parish Search
Push Notifications (FCM)
Real-time Dashboard
Event Management
User Management
Light/Dark Theme
White-label Ready
Clean Architecture
75%+ Test Coverage

Requirements

Tool Minimum Version Recommended
Flutter SDK 3.24.0 3.38.0+
Dart SDK 3.10.0 Latest stable
Node.js 18.x 22.x
Firebase CLI 13.0.0 Latest
Xcode (iOS) 14.0 15.0+
Android Studio Flamingo Hedgehog+

Installation

Follow these steps to set up the project on your local machine.

Step 1: Extract the Package

Extract the downloaded ZIP file to your preferred location.

unzip missao-v1.0.0.zip -d ~/projects/
cd ~/projects/missao

Step 2: Install Flutter Dependencies

# Install main app dependencies
flutter pub get

# Install Design System package dependencies
cd packages/possas_ds
flutter pub get
cd ../..

Step 3: Install Cloud Functions Dependencies

cd functions
npm install
cd ..

Step 4: Configure Environment Files

Copy the example environment files and configure them with your credentials:

# Copy environment templates
cp .env.example .env.dev
cp .env.example .env.prod
Important: Never commit your .env files with real credentials to version control.

Step 5: Run the App

# Run in development mode
flutter run --dart-define-from-file=.env.dev

# Run for web (Admin Panel)
flutter run -d chrome --dart-define-from-file=.env.dev

Continue to Firebase Setup to configure your backend.

Firebase Setup

Missão uses Firebase as its backend. Follow these steps to set up your Firebase project.

Step 1: Create a Firebase Project

  1. Go to Firebase Console
  2. Click "Add project"
  3. Enter your project name (e.g., "my-church-app")
  4. Enable Google Analytics (recommended)
  5. Click "Create project"

Step 2: Enable Firebase Services

Enable the following services in your Firebase Console:

Service Location Configuration
Authentication Build > Authentication Enable Email/Password, Google, Apple
Firestore Database Build > Firestore Database Start in production mode, choose region
Cloud Storage Build > Storage Start in production mode
Cloud Functions Build > Functions Upgrade to Blaze plan required
Cloud Messaging Engage > Messaging Enabled by default
Region Recommendation: Choose a region close to your users. For Brazil, use southamerica-east1 (São Paulo).

Step 3: Configure FlutterFire

# Install FlutterFire CLI
dart pub global activate flutterfire_cli

# Configure Firebase for your project
flutterfire configure --project=YOUR_PROJECT_ID

This will generate lib/firebase_options.dart and platform-specific configuration files.

Step 4: Deploy Security Rules

# Deploy Firestore rules
firebase deploy --only firestore:rules

# Deploy Storage rules
firebase deploy --only storage

Step 5: Deploy Cloud Functions

# Deploy all functions
firebase deploy --only functions

See Configuration for detailed environment setup.

Configuration

Configure your application with the following environment variables and settings.

Environment Variables (.env)

# App Configuration
FLAVOR=dev                          # dev or prod
APP_NAME=My Church App              # Your app name

# Firebase Configuration
FIREBASE_API_KEY=your_api_key
FIREBASE_APP_ID=your_app_id
FIREBASE_PROJECT_ID=your_project_id

# Feature Flags
USE_FIREBASE_EMULATORS=false        # true for local development
ENABLE_ANALYTICS=true
ENABLE_CRASHLYTICS=true
ENABLE_DEBUG_LOGS=false

# Google Maps
GOOGLE_MAPS_API_KEY_ANDROID=your_android_key
GOOGLE_MAPS_API_KEY_IOS=your_ios_key
GEOCODING_API_KEY=your_geocoding_key

Google Maps API Setup

  1. Go to Google Cloud Console
  2. Enable Maps SDK for Android, Maps SDK for iOS, and Geocoding API
  3. Create API keys with appropriate restrictions
  4. Add keys to your environment files

SendGrid Email Setup (Optional)

For admin invitation emails, configure the Firebase Trigger Email extension:

# extensions/firestore-send-email.env
LOCATION=your-region
MAIL_COLLECTION=mail
DEFAULT_FROM=noreply@yourdomain.com
SMTP_CONNECTION_URI=smtps://apikey:YOUR_SENDGRID_API_KEY@smtp.sendgrid.net:465

iOS Configuration

Update ios/Runner/Info.plist with your app-specific information:

Android Configuration

Update android/app/build.gradle.kts:

Deployment

Deploy Admin Panel (Web)

# Build the admin panel
flutter build web --dart-define-from-file=.env.prod

# Deploy to Firebase Hosting
firebase deploy --only hosting:admin

Build Android APK

# Build release APK
flutter build apk --release --dart-define-from-file=.env.prod

# Build App Bundle (recommended for Play Store)
flutter build appbundle --dart-define-from-file=.env.prod

Build iOS App

# Build for iOS
flutter build ios --release --dart-define-from-file=.env.prod

# Open Xcode for archive and submission
open ios/Runner.xcworkspace

Deploy Cloud Functions

# Deploy all functions
firebase deploy --only functions

# Deploy specific function
firebase deploy --only functions:inviteAdmin
Tip: Use the included scripts in scripts/ folder for automated deployments.

Customization

Changing App Name & Branding

  1. Update APP_NAME in your .env files
  2. Replace app icons in android/app/src/main/res/ and ios/Runner/Assets.xcassets/
  3. Update splash screen in respective platform folders

Customizing Colors & Theme

Edit the Design System package tokens:

// packages/possas_ds/lib/src/tokens/colors.dart
class PDSColors {
  static const Color primary500 = Color(0xFF3498DB);  // Your primary color
  static const Color secondary500 = Color(0xFF2C3E50);
  // ... more colors
}

Adding New Languages

  1. Create new ARB file: lib/l10n/app_XX.arb
  2. Add translations following the existing format
  3. Run flutter gen-l10n
  4. Add locale to supportedLocales in main.dart

Modifying Features

Each feature follows Clean Architecture:

lib/features/YOUR_FEATURE/
├── domain/           # Business logic
│   ├── entities/     # Data models
│   ├── repositories/ # Abstract interfaces
│   └── usecases/     # Use case implementations
├── data/             # Data layer
│   ├── datasources/  # API calls
│   ├── models/       # DTOs
│   └── repositories/ # Repository implementations
└── presentation/     # UI layer
    ├── viewmodels/   # State management
    ├── pages/        # Screens
    └── widgets/      # Components

FAQ & Troubleshooting

Common Issues

Firebase initialization failed

Solution: Ensure firebase_options.dart was generated correctly. Run flutterfire configure again.

Google Maps not showing

Solution: Verify your API keys are correct and the Maps SDK is enabled in Google Cloud Console.

Cloud Functions deploy fails

Solution: Ensure you're on the Firebase Blaze plan and Node.js 22 is installed.

iOS build fails with signing error

Solution: Configure your Apple Developer account in Xcode and select a valid team.

Admin panel shows blank page

Solution: Check browser console for errors. Ensure Firebase Hosting rewrites are configured correctly.

Getting Support

If you encounter issues not covered here:

  1. Check the comments section on CodeCanyon
  2. Email support at: contato@douglaspossasdev.com.br
  3. Response time: Within 24-48 hours (business days)
Note: Support covers installation issues and bug fixes. Customization services are available for additional fees.