Skip to content

Conversation

@TheRealSeber
Copy link
Contributor

No description provided.

Copy link
Contributor

Copilot AI left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Pull request overview

This PR implements a comprehensive groups management feature for the teacher dashboard, allowing teachers to create and manage user groups, assign group collaborators with different permission levels, and associate groups with contests.

Changes:

  • Added complete groups management functionality with CRUD operations for groups, members, and collaborators
  • Implemented access control for group collaborators with Edit, Manage, and Owner permission levels
  • Integrated groups with contests, allowing teachers to add/remove groups from contests
  • Added full i18n support for both English and Polish

Reviewed changes

Copilot reviewed 35 out of 35 changed files in this pull request and generated 20 comments.

Show a summary per file
File Description
src/routes/dashboard/teacher/groups/groups.remote.ts Remote functions for listing and creating groups
src/routes/dashboard/teacher/groups/[groupId]/group.remote.ts Remote functions for group details, members management (get, add, remove users)
src/routes/dashboard/teacher/groups/[groupId]/collaborators/collaborators.remote.ts Remote functions for group collaborators access control
src/routes/dashboard/teacher/contests/[contestId]/groups/groups.remote.ts Remote functions for managing groups assigned to contests
src/lib/services/GroupsManagementService.ts Service class for groups API operations
src/lib/services/ContestsManagementService.ts Added methods for contest-group relationships
src/lib/dto/group.ts Type definitions for Group entities and DTOs
src/lib/dto/accessControl.ts Added Groups to ResourceType enum
UI Components (GroupCard, CreateGroupButton, etc.) 10 new Svelte components for groups UI
messages/en.json and messages/pl.json Added 130 i18n strings for groups feature
src/lib/routes.ts Added TeacherGroups route constant
src/lib/components/dashboard/utils.ts Added title translations for group routes
CLAUDE.md New documentation file for AI code assistant guidance

Comment on lines 72 to 76
name: v.pipe(
v.string(),
v.nonEmpty('Group name is required'),
v.minLength(3, 'Group name must be at least 3 characters'),
v.maxLength(50, 'Group name must be at most 50 characters')
Copy link

Copilot AI Jan 11, 2026

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Validation error messages should use i18n translation keys instead of hardcoded English strings. According to the project guidelines, user-facing strings must use Paraglide messages. Replace these hardcoded strings with references to message keys like m.groups_form_name_required(), m.groups_form_name_min_length(), and m.groups_form_name_max_length() (which are already defined in the i18n files).

Copilot uses AI. Check for mistakes.
@TheRealSeber TheRealSeber merged commit 05e9cf2 into master Jan 11, 2026
1 check 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.

2 participants