Skip to content

Victor-Zarzar/flutter-dev-metrics

Repository files navigation

Dev Metrics - Flutter Multi-Platform Developer Analytics

Dart Flutter Supabase PostgreSQL Material Design 3 MVVM Provider

A multi-platform Flutter app for tracking and visualizing developer productivity metrics. Built with MVVM architecture, Supabase (PostgreSQL + Auth), FL Chart, PDF export, i18n, Dark Mode, GoRouter, Provider, Responsive Layout, Sentry, Google Fonts, and Material Design 3.


Tech Stack

Core Technologies

  • Dart - Programming language
  • Flutter - Cross-platform UI framework
  • Material Design 3 - Modern design system
  • MVVM - Architecture pattern (Model - View - ViewModel)
  • Provider - State management solution

Backend & Data

  • Supabase - Backend-as-a-Service (BaaS)
  • PostgreSQL - Relational database via Supabase
  • Supabase Auth - Authentication (email/password, OAuth, magic link)
  • Supabase Realtime - Live data sync across devices

Features & Integrations

  • Multi-Platform Support - Android & iOS
  • FL Chart - Rich, animated charts and graphs for metrics visualization
  • PDF Export - Generate and download metric reports as PDF
  • Printing - Print reports and dashboards directly from the app
  • Google Fonts - Beautiful typography
  • i18n - Multi-language support (EN / PT-BR / ES)
  • Dark Mode Provider - Theme switching
  • GoRouter - Declarative routing with adaptive navigation (mobile/web)
  • Flutter Local Notifications - Push notifications
  • Responsive Layout - Adaptive UI
  • Sentry Logs - Error tracking and monitoring

Prerequisites

Before starting, ensure you have the following installed:

Note: This project uses FVM for Flutter version management. You don't need to install Flutter globally.

Optional: VS Code or Android Studio with Flutter plugins for IDE support.


Installation & Setup

1. Clone the Repository

git clone https://github.com/Victor-Zarzar/flutter-dev-metrics
cd flutter-dev-metrics

2. Open in your editor (example: Zed Editor)

zed .

3. Install Dependencies

make install

4. Configure Supabase

Pass the variables via --dart-define when running or building the app:

flutter run -d "iPhone 17" \
  --dart-define=SUPABASE_URL=https://your-project.supabase.co \
  --dart-define=SUPABASE_ANON_KEY=your-anon-key \
  --dart-define=SENTRY_DSN=your-sentry-dsn \
  --dart-define=SENTRY_ENV=development

Then initialize Supabase in your app entry point:

import 'package:dev_metrics/app/config/app_config.dart';

await AppConfig.init();

Note: For release builds, --dart-define flags are already included via the Makefile targets. Make sure to pass them when invoking make.

5. Run Database Migrations

Apply the provided SQL migrations to your Supabase project via the Supabase dashboard or CLI:

supabase db push

Usage

Local Development

Mobile (iOS Simulator)

make run-ios

Inspect Devtools

dart devtools

Development

Code Analysis

Check for code issues:

flutter analyze

Testing

Run all tests:

flutter test

Format Code

Format all files:

dart format .

Clean Build Artifacts

make clean

Deployment

All release builds are handled via the Makefile and include --obfuscate and --split-debug-info automatically. Make sure your environment variables are set before building.

Android (Google Play Store)

Build release APK:

make build-apk-release

Build release AppBundle:

make build-appbundle-release

The generated files will be at:

  • APK: build/app/outputs/flutter-apk/app-release.apk
  • AppBundle: build/app/outputs/bundle/release/app-release.aab
  • Debug symbols: build/debug-info/

iOS (App Store)

make build-ios-release

The generated files will be at:

  • IPA: build/ios/ipa/
  • Debug symbols: build/debug-info/

Sentry Configuration

All production builds include:

  • Error tracking with Sentry DSN
  • Code obfuscation for security
  • Debug symbols upload for crash symbolication

Make sure to:

  1. Set your SENTRY_DSN and SENTRY_ENV in your environment or .env file
  2. Upload debug symbols to Sentry after each release for proper stack traces
  3. Keep build/debug-info/ directory for symbolication

Contributing

  1. Fork the project
  2. Create your feature branch
  3. Commit your changes
  4. Push to the branch
  5. Open a Pull Request

Report issues at: https://github.com/Victor-Zarzar/flutter-dev-metrics/issues


License

This project is licensed under the MIT License - see the LICENSE file for details.


Contact

Victor Zarzar - @Victor-Zarzar

Project Link: https://github.com/Victor-Zarzar/flutter-dev-metrics


About

Multi-platform Flutter app for tracking developer productivity metrics. Supabase (PostgreSQL + Auth), FL Chart, PDF export, Dark Mode, i18n, MVVM + State management Provider.

Topics

Resources

License

Contributing

Stars

Watchers

Forks

Packages

 
 
 

Contributors