Skip to content

feat(auth): release v0.3.0 - complete authentication system - #7

Merged
CowboyGH merged 18 commits into
mainfrom
develop
Feb 3, 2026
Merged

CowboyGH merged 18 commits into
mainfrom
develop

Conversation

@CowboyGH

@CowboyGH CowboyGH commented Feb 3, 2026

Copy link
Copy Markdown
Owner

🚀 Summary

Release v0.3.0: Complete production-ready authentication system (email/password + Google Sign-In) with full domain layer, UI, auth-aware routing, modern form handling, and comprehensive tests. Template now ships with secure auth out-of-the-box.

✨ Changes

  • ✅ Complete auth stack: User entity, AuthRepository (interface + Firebase impl), typed AuthFailure hierarchy, AuthBloc + full unit tests
  • ✅ Production UI: SignInPage with sign-in/sign-up toggle, form validation, localized errors, Google button
  • ✅ Auth-aware routing: GoRouter guards (/auth/* public, others require auth) + analytics logging
  • ✅ Modern form UX: TextEditingController → FormKey + onSaved() (no dispose())
  • ✅ Enhanced validators: Real email/password regex checks + button debounce (no double-clicks)
  • 🧹 BlocConsumer → BlocListener, CI build_runner fix, docs cleanup, .gitignore update

⚠️ Breaking Changes

  • AppFailure: Changed parameter order and types. message is now the first positional argument, others are named.

🧪 Verification

  • Unit tests: 100% coverage (AuthBloc, AuthRepository - all flows + edge cases)
  • Manual tests (iOS/Android): SignInPage → email/password → auth state change → protected routes → DebugScreen sign-out
  • Google Sign-In: Full flow (success/cancel/config error) → typed failures + l10n
  • CI/CD: Docker build_runner generates Freezed files, tests pass
  • Routing: Unauth → /auth, auth → app routes (no redirect loops)

CowboyGH and others added 17 commits January 9, 2026 14:02
…ct and localized errors (#5)

* refactor(core): simplify AppFailure ctor and remove AsyncResult alias

* feat(auth): add User entity and AuthRepository interface for authentication operations

* feat(auth): add typed AuthFailure and Firebase mappers

* feat(auth): implement AuthRepository using Firebase Authentication

* test(auth): cover AuthRepositoryImpl

* test(auth): enhance AuthRepositoryImpl tests with signOut and authStateChanges verifications

* chore: add *.freezed.dart to .gitignore for Build Runner generated files

* feat(auth): implement AuthBloc with authentication events and states

* test(auth): cover AuthBloc

* feat(auth): implement SignInPage and update routing for authentication

* feat(debug): add Sign Out button to DebugScreen for testing AuthBloc

* feat(auth): implement redirect logic and auth state listener in router

* feat(auth): add localized error messages for authentication failures

* docs(core): add descriptive comments for authentication failure classes

* refactor(auth): simplify comments and documentation in authentication files and di

* chore: remove empty .gitkeep files from unnecessary directories

* chore: update Firebase dependencies to latest versions

* fix(ci): add code generation step to CI/CD pipeline and Dockerfile

* docs(core): update documentation for authentication failure classes

* docs: update CHANGELOG.md
* chore(ios): add Google Sign-In Info.plist config

* feat(deps): add google_sign_in package to pubspec.yaml

* feat(auth): add signInWithGoogle method to AuthRepository

* feat(core): implement new AuthFailure classes for google auth integration, enhance l10n mapper and make it nullable

* feat(auth): implement mapper for converting exceptions from google auth to AuthFailure

* feat(auth): implement signInWithGoogle method in AuthRepositoryImpl

* test(auth): cover signInWithGoogle method with tests

* feat(core): register dependencies for google auth in DI and make setupDI method async

* fix(auth): fix snack bar error handling on sign-in page

* feat(auth): add google sign-in handler method to AuthBloc

* test(auth): cover sign-in handler method with tests

* feat(auth): add button for sign-in with google

* docs: update CHANGELOG.md
…ding state tracking for improved state handling
@CowboyGH CowboyGH self-assigned this Feb 3, 2026
@CowboyGH
CowboyGH merged commit 8062862 into main Feb 3, 2026
4 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant