The Groups feature manages the spaces where users collaborate, share expenses, and settle balances.
- Group Management: Users can create, edit, delete, and join groups.
- Roles & Permissions: Fine-grained access control (Owner, Admin, Member).
- Invitations: Invite users via email or invite links.
- Members List: View and manage active participants in the group.
This module strictly follows the Clean Architecture pattern with Data, Domain, and Presentation layers.
- Entity:
Group,GroupMember,GroupRole - Use Cases:
CreateGroupUseCase,JoinGroupUseCase,GetGroupsUseCase
- Models:
GroupModel(Freezed classes for JSON serialization) - Repositories:
GroupsRepositoryImplimplementation backed by Supabase.
- State Management: Uses BLoC for page-specific state (
GroupBloc,GroupState). - Pages:
GroupsListScreen,GroupDetailScreen,CreateGroupScreen.
Groups form the foundation for tracking Expenses and calculating Balances.