Skip to content

feat: collaborative learning spaces and peer tutoring GSSoC#463

Open
Akshita-2307 wants to merge 3 commits into
MRIARC-08:mainfrom
Akshita-2307:feat-273-collaborative-learning
Open

feat: collaborative learning spaces and peer tutoring GSSoC#463
Akshita-2307 wants to merge 3 commits into
MRIARC-08:mainfrom
Akshita-2307:feat-273-collaborative-learning

Conversation

@Akshita-2307

Copy link
Copy Markdown
Contributor

Summary

Implements collaborative learning spaces and peer tutoring system for VidyaSetu.

Changes

Prisma Schema

  • StudyGroup - groups for collaborative study with named membership
  • GroupMember - many-to-many membership with roles (OWNER/MODERATOR/MEMBER)
  • TutoringRequest - peer tutoring requests from students to tutors
  • TutoringSession - scheduled one-on-one tutoring sessions with status tracking
  • Enums: GroupRole, TutoringStatus, SessionStatus
  • Relations added to User and Subject models

Backend Module (modules/collaboration/)

  • types - DTOs: StudyGroupDTO, StudyGroupDetailDTO, TutoringRequestDTO, TutoringSessionDTO, CollaborationSummary
  • validator - Zod schemas for all create/update operations
  • repository - Prisma queries with proper pagination and relations
  • service - business logic for group membership, request lifecycle, session scheduling
  • controller - request handling with auth context
  • index - barrel exports

API Routes

  • GET/POST /api/collaboration/groups - list/create groups
  • GET/DELETE /api/collaboration/groups/[id] - group detail / leave
  • POST /api/collaboration/groups/join - join a group
  • GET/POST /api/collaboration/requests - tutoring requests
  • PATCH /api/collaboration/requests/[id] - accept/cancel request
  • GET/POST /api/collaboration/sessions - tutoring sessions
  • PATCH /api/collaboration/sessions/[id] - update session status
  • GET /api/collaboration/summary - user dashboard stats

Frontend Pages

  • /collaboration - dashboard with summary cards and quick links
  • /collaboration/groups - group listing with create/join
  • /collaboration/groups/[groupId] - group detail with members
  • /collaboration/tutoring - request tutoring, manage incoming/outgoing requests
  • /collaboration/sessions - schedule/manage tutoring sessions with status transitions

Client Library

  • lib/collaboration.ts - typed authFetch wrapper for all endpoints

Fixes

  • Next.js 16 route handler params type (now Promise)
  • TypeScript cast pre-existing errors in quiz pages

Security

  • All routes use SetCookies.verifyCookies() for auth
  • Group membership verified before operations
  • Users can only manage their own requests/sessions

Closes #273

GSSoC

- Add StudyGroup, GroupMember, TutoringRequest, TutoringSession models + enums
- Create collaboration module: types, validator, repository, service, controller
- Add API routes: groups CRUD, tutoring requests, sessions, summary
- Create frontend pages: dashboard, groups list/detail, tutoring, sessions
- Add client-side library (authFetch wrapper) for collaboration API
- Fix pre-existing TS errors (Next.js 16 params as Promise, type casts)

Closes MRIARC-08#273
@vercel

vercel Bot commented Jul 13, 2026

Copy link
Copy Markdown

@Akshita-2307 is attempting to deploy a commit to the Adarsh's projects Team on Vercel.

A member of the Team first needs to authorize it.

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.

Enhancement: Add collaborative learning spaces and peer tutoring

1 participant