Firebase configuration, authentication setup, and Firestore admin guide for the AZ GPA Calculator backend.
The official Firebase project for AZ GPA Calculator. Use this configuration to initialize the SDK in your Flutter or web app.
Project ID
az-gpa-calculator-d9990
Auth Domain
az-gpa-calculator-d9990.firebaseapp.com
Storage Bucket
az-gpa-calculator-d9990.firebasestorage.app
Measurement ID
G-K577QWXKGS
Both Email/Password and Google sign-in are enabled in the Firebase Authentication console.
Open the Firebase Console
Go to console.firebase.google.com and select the az-gpa-calculator project.
Navigate to Authentication
In the left sidebar, under Build, click Authentication.
Open Sign-in Method tab
Click the Sign-in method tab at the top of the Authentication page.
Add and enable providers
Click Add new provider, choose Email/Password, toggle it Enabled, and save. Repeat for Google, providing a support email.
Manually create an admin account or promote an existing user using Firebase Authentication and Firestore.
Use the Firebase Console to add a user that will serve as the administrator.
admins Collection in FirestoreFirestore stores admin roles so the app can check them at runtime.
admins.isAdmin → type boolean → value true.Protect the admins collection so only authenticated admins can read it.
Query Firestore after sign-in to determine whether the current user is an admin.
The step-by-step workflow the AZ GPA Calculator team follows from initial research through to feature delivery. Follow this procedure to keep everyone aligned and the codebase stable.
Before writing any code, open a GitHub Issue describing the problem, the expected behaviour, and the
acceptance criteria. Tag it with the appropriate label (feature,
bug, or
research) so the team can triage it in the weekly sync.
Each researcher spins up a throwaway Flutter project or Firebase sandbox to validate the approach. Document findings in the GitHub Issue comments with code snippets, screenshots, and benchmark numbers. If more than one approach is viable, record the trade-offs so the team can decide together.
Share a Figma / wireframe link or an ASCII flow diagram in the Issue before implementation begins. At least one team member must approve the design. UX decisions affecting end-users must also be reviewed by the team lead (Francis).
Open a Pull Request from a feature branch into main.
The PR description must reference the Issue (Closes #<issue>),
include a short summary of changes, and list any new dependencies.
At least one reviewer must approve before merging.
Run the Flutter unit and widget test suite locally (flutter test)
before pushing. All new business logic must be covered by at least one unit test.
For features touching Firestore, run integration tests against the Firebase Emulator Suite.
Document manual test steps in the PR for any UI changes.
After merging, the team lead publishes a new build via the Firebase App Distribution channel for
internal beta testers. Monitor Firebase Crashlytics and Analytics (ID
G-K577QWXKGS) for any regressions
over the following 48 hours. Update the Idea & Roadmap page to reflect the completed milestone.
Close the GitHub Issue and leave a comment summarising what was built, any known limitations, and follow-up action items. Update the relevant web documentation page (Research, Idea, or Contracts) to keep the team knowledge base current. A brief retrospective note in the weekly Slack/Discord thread ensures the whole team stays informed.
Results from the GPA Calculator user-research survey distributed to university students. 53 responses collected via WhatsApp and peer referrals.
Total Responses
53
Would Use App
92%
Definitely / Maybe
Willing to Pay
74%
Yes / Maybe
Email/Password & Google OAuth 2.0 via Firebase Auth
NoSQL cloud database for user profiles, GPA records & admin roles
Firebase Analytics with measurement ID G-K577QWXKGS