A new Flutter project.
This project is a starting point for a Flutter application.
A few resources to get you started if this is your first Flutter project:
For help getting started with Flutter development, view the online documentation, which offers tutorials, samples, guidance on mobile development, and a full API reference.
This app uses Firebase email/password authentication. New accounts are created only after the user enters the 6-digit code sent to their email, and forgotten passwords are reset with the same code-based flow.
Before running on devices, complete these setup steps:
- Create a Firebase project and add Android and iOS apps.
- Enable Email/Password in Firebase Console -> Authentication -> Sign-in method.
- Add platform config files:
android/app/google-services.jsonios/Runner/GoogleService-Info.plist
- Run
flutterfire configure(recommended) to generatefirebase_options.dart. - Copy
functions/.env.exampletofunctions/.envfor local development and putSMTP_PASSWORD=...infunctions/.secret.local. Both local files are ignored by Git. - Store the production SMTP password in Firebase Secret Manager before deploy:
firebase functions:secrets:set SMTP_PASSWORDThe configured mail server is mail.peatechservice.com:465 with SSL, the SMTP
username is info@peatechservice.com, and messages are sent as
PEATECH SERVICES LLC <mail@peatechservice.com>.
Help-request workflow mutations now go through a Python Firebase Functions HTTPS endpoint named workflow_api.
Deploy the backend with:
firebase deploy --only functionsBy default, the Flutter app calls:
https://us-central1-<firebase-project-id>.cloudfunctions.net/workflow_api
The project ID is read from firebase_options.dart.
If you need to point the app at a different deployed endpoint, pass a Dart define when running the app:
flutter run --dart-define=GHMERA_WORKFLOW_API_URL=https://<your-url>/workflow_apiYou can also override the function region if needed:
flutter run --dart-define=GHMERA_FUNCTIONS_REGION=<region>Bundle ID: com.peatechservices.ghmera
Display name: Ghmera
Apple team: 5FA87UK5LY
- Bump the build number in
pubspec.yaml(the+suffix must be higher than the last build uploaded to App Store Connect). - Build the IPA:
./scripts/ios_app_store_release.sh- Upload
build/ios/ipa/*.ipawith Transporter or Xcode Organizer.
- Open the Ghmera app (create it with bundle ID
com.peatechservices.ghmeraif it does not exist). - Attach the new build under TestFlight or App Store → version 1.0.1.
- Complete App Privacy, screenshots, description, support URL, and review notes.
- Enable Sign in with Apple if the capability is required (entitlements already include it).
- Submit for review.
Export compliance: ITSAppUsesNonExemptEncryption is false in ios/Runner/Info.plist (standard encryption only).