User Story: As a user, I want to create and manage reading groups so that I can read books together with friends.
Acceptance Criteria:
Given I am an authenticated user, When I navigate to the groups section and tap "Create Group", Then I should be able to enter a group name and description, and the group should be created with me as the admin.
Given I am a group admin, When I view the group settings, Then I should see options to invite members, remove members, and transfer admin role.
Given I am a group admin, When I generate an invite link, Then I should receive a shareable URL that allows other users to request to join the group.
Given I have an invite link, When I open it while authenticated, Then I should see a confirmation to join the group, and my request should appear for admin approval if the group requires approval.
Given I am a group member (non-admin), When I view the group, Then I should see the group name, description, member list, and current book being read.
Given I am a group admin, When I remove a member from the group, Then the member should be notified and removed from the group immediately.
Given I am a group member, When I choose to leave the group, Then I should be removed from the member list, and if I was the admin, the group should either be dissolved or prompt to assign a new admin.
Given I am a group admin, When I transfer admin role to another member, Then the selected member should become the new admin and I should become a regular member.
Subtasks (checklist):
Create Group model with name, description, admin_user_id
Create GroupMember model with roles (admin, member)
Implement group CRUD API endpoints
Implement invite link generation and validation
Implement join request flow (direct/approval)
Implement member removal by admin
Implement leave group functionality
Implement admin transfer functionality
Create frontend group management UI
Add mobile support for group features
User Story: As a user, I want to create and manage reading groups so that I can read books together with friends.
Acceptance Criteria:
* **Given** I am an authenticated user, **When** I navigate to the groups section and tap "Create Group", **Then** I should be able to enter a group name and description, and the group should be created with me as the admin.
* **Given** I am a group admin, **When** I view the group settings, **Then** I should see options to invite members, remove members, and transfer admin role.
* **Given** I am a group admin, **When** I generate an invite link, **Then** I should receive a shareable URL that allows other users to request to join the group.
* **Given** I have an invite link, **When** I open it while authenticated, **Then** I should see a confirmation to join the group, and my request should appear for admin approval if the group requires approval.
* **Given** I am a group member (non-admin), **When** I view the group, **Then** I should see the group name, description, member list, and current book being read.
* **Given** I am a group admin, **When** I remove a member from the group, **Then** the member should be notified and removed from the group immediately.
* **Given** I am a group member, **When** I choose to leave the group, **Then** I should be removed from the member list, and if I was the admin, the group should either be dissolved or prompt to assign a new admin.
* **Given** I am a group admin, **When** I transfer admin role to another member, **Then** the selected member should become the new admin and I should become a regular member.
Subtasks (checklist):
- [ ] Create Group model with name, description, admin_user_id
- [ ] Create GroupMember model with roles (admin, member)
- [ ] Implement group CRUD API endpoints
- [ ] Implement invite link generation and validation
- [ ] Implement join request flow (direct/approval)
- [ ] Implement member removal by admin
- [ ] Implement leave group functionality
- [ ] Implement admin transfer functionality
- [ ] Create frontend group management UI
- [ ] Add mobile support for group features
Blocking a user prevents them from interacting with repositories, such as opening or commenting on pull requests or issues. Learn more about blocking a user.
User Story: As a user, I want to create and manage reading groups so that I can read books together with friends.
Acceptance Criteria:
Subtasks (checklist):