Skip to content

Feat: Add new student fields#1359

Merged
JeangelLF merged 4 commits intomasterfrom
feat/add-new-student-fields
Feb 26, 2026
Merged

Feat: Add new student fields#1359
JeangelLF merged 4 commits intomasterfrom
feat/add-new-student-fields

Conversation

@JeangelLF
Copy link
Contributor

Ticket

Backend part of https://github.com/corona-school/project-user/issues/1588

What was done?

  • Added new fields for student experience
  • Added new enums
  • Adjusted studentUpdate mutation to include new fields

Note

I decided to include the jobStatus field on the student table as it make more sense there than in the screening tables.
I'll make in a moment a separate PR to "deprecate" those fields on the screenings tables.
I'll also write a migration for that so we can deprecate the other fields on the screening tables

@realmayus realmayus temporarily deployed to backend-feat-add-new-st-fqzm0t February 23, 2026 11:41 Inactive
Jonasdoubleyou
Jonasdoubleyou previously approved these changes Feb 23, 2026
Copy link
Member

@Jonasdoubleyou Jonasdoubleyou left a comment

Choose a reason for hiding this comment

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

I am wondering a bit of this "middle ground" here of storing it as "just some JSON" but then typing it with enums. Do we plan to build backend logic on top of it? If yes, I would prefer to type it more explicitly also in the DB to ensure a consistent DB state to build the logic on. If no, then IMO we don't even need the enums and can just store some free text information or a generic experience: { name: string, duration: number }[] that the screener frontend can fill as they want ...

@Jonasdoubleyou
Copy link
Member

I decided to include the jobStatus field on the student table as it make more sense there than in the screening tables.

Do we need to track this over time? So "when the screening was done, the student was ..."

@Jonasdoubleyou
Copy link
Member

I could think of the following usecases: (1) Statistics on top of the experience and (2) matching with experience as constraint? Then maybe rather make it explicit in the DB:

model student_experience {
  studentId    Int
  experience experience
  student      student     @relation(fields: [studentId], references: [id], onDelete: NoAction)
}

Also as a sidenote, while I am all for sensitive language in the UI / our user communication, it sometimes is really generic - i.e. "experience" really could be anything. Not sure if a more explicit term would be better internally?

@JeangelLF
Copy link
Contributor Author

JeangelLF commented Feb 24, 2026

Thank you for the feedback @Jonasdoubleyou!
As I see it, this probably won't be a constraint in the matching process, so yeah, I'll go without the enums, something like:

  formalEducation                String?
  // adhs, dyslexia, etc...
  specialTeachingExperience      String[]                    @default([])

wdyt?

@JeangelLF JeangelLF temporarily deployed to backend-feat-add-new-st-fqzm0t February 24, 2026 13:54 Inactive
@JeangelLF JeangelLF merged commit 36ef43a into master Feb 26, 2026
2 checks passed
@JeangelLF JeangelLF deleted the feat/add-new-student-fields branch February 26, 2026 06:42
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.

3 participants