{"id":13305692,"url":"https://github.com/mahmoodhamdi/flutter_google_workspace_integration","last_synced_at":"2026-05-18T15:37:04.451Z","repository":{"id":249348035,"uuid":"831262914","full_name":"mahmoodhamdi/flutter_google_workspace_integration","owner":"mahmoodhamdi","description":"An open-source Flutter application integrating various Google Workspace APIs, including Google Calendar, Google Drive, Google Docs, Google Sheets, Google Keep, Gmail, Google Analytics, Google Maps, and Google Meet. Designed for seamless interaction with these services through a unified interface.","archived":false,"fork":false,"pushed_at":"2024-08-08T19:50:54.000Z","size":343,"stargazers_count":2,"open_issues_count":0,"forks_count":0,"subscribers_count":1,"default_branch":"main","last_synced_at":"2025-03-12T12:18:22.601Z","etag":null,"topics":["firebase-auth","firebase-functions","flutter","flutter-apps","flutter-examples","google-analytics","google-api","google-apis","google-apis-sheets","google-cloud","google-drive","google-maps-api","google-sheets","google-workspace","integration","open-source","open-source-community","open-source-project","open-sources-code-github"],"latest_commit_sha":null,"homepage":"","language":"Dart","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/mahmoodhamdi.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":null,"code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2024-07-20T04:38:29.000Z","updated_at":"2024-12-19T16:33:50.000Z","dependencies_parsed_at":"2024-08-08T22:10:15.808Z","dependency_job_id":null,"html_url":"https://github.com/mahmoodhamdi/flutter_google_workspace_integration","commit_stats":null,"previous_names":["mahmoodhamdi/google_apis_flutter"],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/mahmoodhamdi/flutter_google_workspace_integration","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/mahmoodhamdi%2Fflutter_google_workspace_integration","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/mahmoodhamdi%2Fflutter_google_workspace_integration/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/mahmoodhamdi%2Fflutter_google_workspace_integration/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/mahmoodhamdi%2Fflutter_google_workspace_integration/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/mahmoodhamdi","download_url":"https://codeload.github.com/mahmoodhamdi/flutter_google_workspace_integration/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/mahmoodhamdi%2Fflutter_google_workspace_integration/sbom","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":265418438,"owners_count":23761817,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["firebase-auth","firebase-functions","flutter","flutter-apps","flutter-examples","google-analytics","google-api","google-apis","google-apis-sheets","google-cloud","google-drive","google-maps-api","google-sheets","google-workspace","integration","open-source","open-source-community","open-source-project","open-sources-code-github"],"created_at":"2024-07-29T17:53:59.919Z","updated_at":"2026-05-18T15:37:04.444Z","avatar_url":"https://github.com/mahmoodhamdi.png","language":"Dart","funding_links":[],"categories":[],"sub_categories":[],"readme":"# Workspace Hub — Flutter × Google Workspace\n\n[![Analyze](https://github.com/mahmoodhamdi/flutter_google_workspace_integration/actions/workflows/analyze.yml/badge.svg)](https://github.com/mahmoodhamdi/flutter_google_workspace_integration/actions/workflows/analyze.yml)\n[![Test](https://github.com/mahmoodhamdi/flutter_google_workspace_integration/actions/workflows/test.yml/badge.svg)](https://github.com/mahmoodhamdi/flutter_google_workspace_integration/actions/workflows/test.yml)\n[![Build](https://github.com/mahmoodhamdi/flutter_google_workspace_integration/actions/workflows/build.yml/badge.svg)](https://github.com/mahmoodhamdi/flutter_google_workspace_integration/actions/workflows/build.yml)\n\nProduction-ready Flutter starter kit integrating Google Workspace APIs. **Same codebase ships as 5 distinct products** via Flutter flavors:\n\n| Flavor          | Product          | Focus |\n|-----------------|------------------|-------|\n| `base`          | Workspace Hub    | All 7 integrations (starter kit) |\n| `bizcalendar`   | BizCalendar      | Team calendar for SMBs |\n| `drivevault`    | DriveVault       | Drive backup \u0026 archive |\n| `sheetsops`     | SheetsOps        | Mobile dashboards from Sheets |\n| `meetcompanion` | MeetCompanion    | Meeting productivity layer |\n\n## What's included\n\n**7 Workspace integrations** — all using SENSITIVE OAuth scopes (no CASA assessment required):\n\n| Feature   | Scope (sensitive only)                            |\n|-----------|---------------------------------------------------|\n| Calendar  | `calendar` — full CRUD + recurrence + Meet links  |\n| Drive     | `drive.file` + `drive.metadata.readonly`          |\n| Sheets    | `spreadsheets`                                    |\n| Gmail     | `gmail.send` (send-only, NO inbox read)           |\n| Contacts  | `contacts`                                        |\n| Maps      | API key (no OAuth)                                |\n| Meet      | via Calendar `conferenceData`                     |\n\n**Production foundation**:\n- Multi-account Google Sign-In + Firebase email/password fallback\n- Automatic token refresh (Dio interceptor with retry-on-401)\n- Encrypted Hive cache (AES-256 keyed from secure storage)\n- Sync queue for offline writes\n- Riverpod state, freezed models, dartz Either errors, go_router navigation\n- AR + EN localization with RTL\n- Material 3 theme with per-flavor seed colors\n- Biometric lock (opt-in)\n- Full CI: analyze, test, build matrix per flavor, release-on-tag\n- **170+ tests** (unit + widget + golden)\n\n**Sales infrastructure**:\n- 5 static landing pages (`marketing-sites/`)\n- Video storyboards + social media launch copy\n- 8 sales documents in `sales/` covering 3 sales models (starter kit, verticals, services)\n\n## Quick start\n\n```bash\nflutter pub get\ndart run build_runner build --delete-conflicting-outputs\n\n# Run the base starter kit\nflutter run --dart-define=FLAVOR=base\n\n# Or run a vertical\nflutter run -t lib/main_bizcalendar.dart --dart-define=FLAVOR=bizcalendar\n\n# Run tests\nflutter test\n```\n\n## Build all 5 verticals at once\n\n```bash\n./scripts/build-all-verticals.sh\n# APKs land in verticals-builds/\n```\n\n## OAuth Configuration\n\n1. Create Google Cloud project at https://console.cloud.google.com/\n2. Enable: Calendar API, Drive API, Sheets API, Gmail API, People API\n3. Configure OAuth consent screen — select only SENSITIVE scopes (see `sales/OAUTH_SCOPES_EXPLAINED.md`)\n4. Generate client IDs for Android/iOS/Web\n5. Drop `google-services.json` into `android/app/`\n6. Drop `GoogleService-Info.plist` into `ios/Runner/`\n7. Set `GOOGLE_MAPS_API_KEY` via `--dart-define` if using Maps\n\nFull publishing guide: `sales/GOOGLE_WORKSPACE_MARKETPLACE_PUBLISHING.md`\n\n## Architecture\n\nClean architecture per feature (`lib/features/\u003cfeature\u003e/`):\n\n```\ndomain/       # Pure Dart entities, repository interfaces, use cases\ndata/         # Implementations, datasources, model mappers\npresentation/ # Riverpod providers, screens, widgets\n```\n\nCore layer (`lib/core/`):\n- `auth/` — multi-account OAuth + Firebase, secure token store, biometric gate\n- `errors/` — AppError (freezed sealed), error mapper, guard helpers, Result type\n- `network/` — Dio with auth interceptor + retry policy\n- `storage/` — Hive bootstrap + sync queue + cached-read pattern\n- `routing/` — GoRouter with auth-aware redirects\n- `theme/` — per-flavor M3 theme derived from primary color\n- `config/` — AppConfig + AppFlavor + AppFeature feature flags\n- `notifications/` — local notifications + FCM (optional)\n\n## Sales documentation\n\nRead `sales/MASTER_PRICING.md` first for the full pricing matrix.\n\n| Model | What | Pricing |\n|-------|------|---------|\n| Starter Kit | Source license | $99 / $199 / $299 |\n| Vertical Products | Per-vertical license | $1K–$20K |\n| Services | Integration-as-a-Service | $3K–$15K per project |\n\n## Project status\n\n**v1.0.0 — production ready.** See `sales/STARTER_KIT_SALES.md` for go-to-market.\n\n## License\n\nCommercial. See `LICENSE` (when added) — by default, single-developer use only; contact for white-label or enterprise licensing.\n\n## Contact\n\n- Email: hmdy7486@gmail.com\n- Issues: https://github.com/mahmoodhamdi/flutter_google_workspace_integration/issues\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fmahmoodhamdi%2Fflutter_google_workspace_integration","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fmahmoodhamdi%2Fflutter_google_workspace_integration","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fmahmoodhamdi%2Fflutter_google_workspace_integration/lists"}