Skip to content

New Phase: Add presentation scheduling, materials, and instructor feedback#1939

Draft
rappm wants to merge 7 commits into
mainfrom
1931-presentation-phase-scheduling-material-upload-multi-instructor-feedback
Draft

New Phase: Add presentation scheduling, materials, and instructor feedback#1939
rappm wants to merge 7 commits into
mainfrom
1931-presentation-phase-scheduling-material-upload-multi-instructor-feedback

Conversation

@rappm

@rappm rappm commented Jul 16, 2026

Copy link
Copy Markdown
Member

📝 Pull Request Template

Use this template to provide all necessary information for reviewing and testing your changes.

✨ What is the change?

Adds a dedicated Presentation course phase covering the complete presentation lifecycle:

  • staff-managed scheduling for individual students or teams, including overlapping slots and optional locations
  • multi-file presentation material uploads through S3-compatible storage, with student deadlines at slot start
  • predefined written feedback categories and independent or shared multi-instructor evaluation
  • author-private drafts, submitted staff-visible evaluations, optimistic category revisions, and SSE live collaboration
  • named feedback release, unrelease, revision, and re-release flows
  • optional teams and teamAllocation phase inputs with dynamic team membership authorization
  • Module Federation, Docker, CI, deployment, e2e, and documentation integration

The implementation is split into focused commits for core contracts, the React remote, the Go service, infrastructure, integration testing, and documentation.

📌 Reason for the change / Link to issue

Presentation scheduling, materials, and instructor feedback were previously handled outside PROMPT, resulting in fragmented workflows and no central record of evaluations.

Closes #1931.

🧪 How to Test

  1. Copy .env.template and .env.dev.template to the local environment files and start the stack with docker compose up --build.
  2. Add a Presentation phase in the Course Configurator. Leave the optional team inputs disconnected for individual mode, or connect teams and teamAllocation for team mode.
  3. As a course lecturer, configure the target mode, feedback mode, and feedback categories.
  4. Create overlapping or sequential slots, optionally add locations, and assign students or teams.
  5. As an assigned student or team member, upload multiple presentation files before the slot starts and verify download/delete behavior.
  6. As multiple editors, enter independent feedback or edit a shared form concurrently; verify live presence and optimistic conflict handling.
  7. Submit all feedback, release it with a name, verify student visibility, then unrelease, revise, and release again.
  8. Run go test ./... in servers/core, servers/team_allocation, and servers/presentation.
  9. Run yarn workspace client typecheck, yarn workspace client build, and the Presentation remote's TypeScript, Biome, and production Rspack checks from clients/.
  10. Run docker compose --env-file e2e/.env.e2e -f docker-compose.e2e.yml up --build --abort-on-container-exit --exit-code-from e2e-runner to exercise the Presentation Module Federation smoke test.

🖼️ Screenshots (if UI changes are included)

Screenshots are not attached yet; this is intentionally opened as a draft while deployment-level review is pending.

Before After
N/A Presentation overview, schedule, settings, materials, and feedback workspaces

✅ PR Checklist

  • Tested locally or on the dev environment
  • Code is clean, readable, and documented
  • Tests added or updated (if needed)
  • Screenshots attached for UI changes (if any)
  • Documentation updated (if relevant)

@github-actions github-actions Bot added the Migration Pull Requests that introduce a database migration label Jul 16, 2026
@coderabbitai

coderabbitai Bot commented Jul 16, 2026

Copy link
Copy Markdown
Contributor

Important

Review skipped

Draft detected.

Please check the settings in the CodeRabbit UI or the .coderabbit.yaml file in this repository. To trigger a single review, invoke the @coderabbitai review command.

⚙️ Run configuration

Configuration used: defaults

Review profile: CHILL

Plan: Pro

Run ID: 4f3a4305-a8cb-474e-a036-a3686c5612d9

You can disable this status message by setting the reviews.review_status to false in the CodeRabbit configuration file.

Use the checkbox below for a quick retry:

  • 🔍 Trigger review
✨ Finishing Touches
🧪 Generate unit tests (beta)
  • Create PR with unit tests
  • Commit unit tests in branch 1931-presentation-phase-scheduling-material-upload-multi-instructor-feedback

Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out.

❤️ Share

Comment @coderabbitai help to get the list of available commands.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

Migration Pull Requests that introduce a database migration

Projects

None yet

Development

Successfully merging this pull request may close these issues.

Presentation phase (scheduling, material upload, multi-instructor feedback)

1 participant