Skip to content

feat: Build Student Onboarding Workflow#600

Open
NewtonLC wants to merge 5 commits into
freeCodeCamp:mainfrom
NewtonLC:feat/student-invitation-workflow
Open

feat: Build Student Onboarding Workflow#600
NewtonLC wants to merge 5 commits into
freeCodeCamp:mainfrom
NewtonLC:feat/student-invitation-workflow

Conversation

@NewtonLC

@NewtonLC NewtonLC commented May 30, 2026

Copy link
Copy Markdown
Contributor

Checklist:

Closes #596

This PR fixes the Classroom Join Page and added instructions for enabling permission on FreeCodeCamp Proper.

Description

Here's a description of the Student Invitation / Onboarding from Start to Finish:

  1. A teacher obtains the invite code for their class by clicking the "Invite" button in the dropdown for their class.
  2. The teacher shares this invite link with their students. This can be done through a group email, sharing the link via Peardeck, Canvas, Google Classroom, etc.
  3. The students click on the join link, which takes them to FCC Classroom.
  4. The students are not logged in at this point, so Classroom prompts them to log in.
  5. Upon sign in, the students see a Join Page prompting them to connect to their teacher's classroom, along with instructions to enable Classroom Access on FCC Proper before connecting to the classroom.
  6. The students are taken to their settings page in FCC Proper.
    6a. If a student does not have an FCC Proper account, FCC Proper will ask them to sign in first.
  7. The students return to the Join Page and click the "Connect" button.

How to test

These instructions will guide you on setting up a teacher and student account and onboarding the student into FreeCodeCamp Classroom.

  1. Get 2 gmails, one to be a student and one to be a teacher.

  2. Update FCC Proper - Use my branch: NewtonLC/freeCodeCamp at feat/classroom

  • Do a git fetch from my remote, then git checkout -b /feat/classroom
  • Update .env with all of the new variables in sample.env. If needed, run cp sample.env .env and then re-do the FCC Proper AUTH0 variables. Then change the values for FCC_ENABLE_CLASSROOM to true and TPA_API_BEARER_TOKEN to local-test-secret-123. Set FCC_ENABLE_DEV_LOGIN_MODE to false.
  • In client/config/growthbook-features-default.json, scroll down to classroom-mode and set the default value to true.
  • Make sure your node version is 24.x
  • Run pnpm install
  • Open Docker, run docker start mongodb and pnpm run develop
  • Log in with your student account.
  • Go to your Settings. On the left side there should be a "Classroom Mode" section. Click the button for allowing Classroom to use your data.
  1. Update FCC Classroom - Use my branch: NewtonLC/classroom at feat/student-invitation-workflow
  • Add TPA_API_BEARER_TOKEN=local-test-secret-123 to the .env file
  • Run npx prisma migrate reset
  • Run npm run develop and npx prisma studio in two different terminals
  • Log in with Auth0 on one account, the teacher
  • Set that account to TEACHER in prisma
  • Create a classroom
  • Copy the join code and paste it into an incognito tab. This is where the student will be logging in from.
  • Log in with Auth0 on the student account
  • Click "Connect to Classroom"
  • Check Prisma, your student's id should be in the classroom, and on the Join Page, the Connect button should be disabled.

What's Blocking this PR from fully working?

  • PR #66063 needs to be merged in, as it implements the FCC Classroom permission feature as well as the get-user-id endpoint, which is required for the "Connect" feature to work.

Fixed Join Page and added instructions for enabling permission on FreeCodeCamp Proper
TODO: Implement 'Connect' button functionality. This requires Mrugesh's PR #66063 to be implemented.
Currently, the Connect button just adds the user to the Classroom without verification.
@NewtonLC NewtonLC requested a review from a team as a code owner May 30, 2026 05:22
@NewtonLC NewtonLC changed the title [WIP'Added UI Elements for Student Onboarding Workflow [WIP] feat: Build Student Onboarding Workflow May 30, 2026
@NewtonLC NewtonLC marked this pull request as draft May 30, 2026 05:44
NewtonLC added 4 commits May 29, 2026 23:05
Previously, when a user enters a join link for a classroom that does not exist,
it would allow the user to enter the Join page and fail silently.
Now calls get-user-id endpoint in FreeCodeCamp Proper
Disables Connect button upon successfully connecting to classroom
Adds user to Classroom and adds user's FCC Proper ID to their account.
@NewtonLC NewtonLC marked this pull request as ready for review June 1, 2026 22:44
@NewtonLC NewtonLC changed the title [WIP] feat: Build Student Onboarding Workflow feat: Build Student Onboarding Workflow Jun 2, 2026
@CarlyAThomas

Copy link
Copy Markdown
Contributor

I got an error saying that the TPA API error token was not the same. I added TPA_API_BEARER_TOKEN=local-test-secret-123 to the .env file in classroom and that fixed the error. You should probably include this in the instructions. Everything is working!

@NewtonLC

NewtonLC commented Jun 2, 2026

Copy link
Copy Markdown
Contributor Author

I just updated the instructions. Thank you for taking a look at this!

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.

Feature: Build a Student Onboarding Workflow

2 participants