Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
23 commits
Select commit Hold shift + click to select a range
7bedc99
chore: manually rebased lara-paper onto main
alexander-schefe Aug 15, 2025
c1e8eff
chore: rebase onto main
alexander-schefe Oct 8, 2025
56695a8
fix: fixed trainee paper dashboard page spaghetti code. Why did it sh…
alexander-schefe Oct 8, 2025
e56dc82
fix: trainee paper briefing chechmark behaviour
alexander-schefe Oct 8, 2025
b76a4b5
feat: made mentors visibly reusable and implemented automatic clean u…
alexander-schefe Oct 9, 2025
84acda1
feat: feedback for mentor
Julian-Wogersien Oct 16, 2025
532f92f
Merge pull request #328 from lara-learning/feat/feedback-for-mentor
Julian-Wogersien Oct 17, 2025
1b0beb0
feat: discussion page
LauraWitulskiMorales Oct 22, 2025
088c92d
fix: discussion page'
Julian-Wogersien Nov 4, 2025
a55887e
fix: random ai generated code && fix progressbar
Julian-Wogersien Nov 10, 2025
77a271f
Merge pull request #342 from lara-learning/lara-paper-feedback-discus…
Julian-Wogersien Nov 10, 2025
722598c
feat: allow trainers to comment
Julian-Wogersien Nov 11, 2025
605b506
chore: fix tests
Julian-Wogersien Nov 11, 2025
cd79ab6
Merge pull request #379 from lara-learning/feat/trainer-can-make-comm…
Julian-Wogersien Nov 11, 2025
c5a3547
feat: lp3
Julian-Wogersien Nov 13, 2025
a3b0891
feat: fazit done & fazit
Julian-Wogersien Nov 21, 2025
4980aed
fix: comment bug fixed
LauraWitulskiMorales Nov 25, 2025
a393ecc
feat: added check before finishing fazit
LauraWitulskiMorales Nov 27, 2025
6f37ad5
fix: added button text cases to the trainee, to match the mentor
LauraWitulskiMorales Nov 27, 2025
69a7cad
fix: change text in de.ts and en.ts for paperBriefing
demiquart3 Dec 1, 2025
91f9ef0
fix: Pdf download
maxn92 Dec 11, 2025
9ca5825
fix: pdf template includes both trainee and mentor feedback
LauraWitulskiMorales Dec 17, 2025
2005d52
fix: Pdf download
maxn92 Dec 19, 2025
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 2 additions & 0 deletions packages/api/codegen.yml
Original file line number Diff line number Diff line change
Expand Up @@ -21,4 +21,6 @@ generates:
Report: ./models#Report
Trainer: ./models#Trainer
Trainee: ./models#Trainee
Mentor: ./models#Mentor
UserInterface: ./models#UserInterface
Paper: ./models#Paper
280 changes: 280 additions & 0 deletions packages/api/schema.gql
Original file line number Diff line number Diff line change
Expand Up @@ -6,6 +6,14 @@ type Comment {
published: Boolean!
}

type PaperComment {
text: String!
userId: ID!
lastName: String!
firstName: String!
published: Boolean!
}

"""
An object that can have comments
"""
Expand Down Expand Up @@ -113,6 +121,70 @@ type UpdateReportPayload {
report: Report!
}

input MentorInput {
name: String
email: String
signature: String
}

input PaperEntryInput {
id: ID!
questionId: ID!
question: String!
answer: String
hint: String
comments: [PaperCommentInput!]!
}

type MutatePaperPayload {
papers: [Paper]
}

input PaperInput {
traineeId: ID!
trainerId: ID!
client: String!
mentorId: ID!
periodStart: String
periodEnd: String
schoolPeriodStart: String
schoolPeriodEnd: String
subject: String!
status: PaperStatus!
briefing: [PaperEntryInput!]!
feedbackTrainee: [PaperEntryInput!]!
feedbackMentor: [PaperEntryInput!]!
}

input PaperUpdateInput {
id: ID!
traineeId: ID!
trainerId: ID!
client: String!
mentorId: ID!
periodStart: String
periodEnd: String
schoolPeriodStart: String
schoolPeriodEnd: String
subject: String!
didSendEmail: Boolean!
status: PaperStatus!
briefing: [PaperEntryInput!]!
feedbackTrainee: [PaperEntryInput!]!
feedbackMentor: [PaperEntryInput!]!
fazit: FazitUpdateInput
mentorDone: Boolean
traineeDone: Boolean
}

input AnswerPaperInput {
id: ID!
questionId: ID!
question: String!
answer: String!
hint: String!
}

type Mutation {
"""
[DEV] Login as a user.
Expand Down Expand Up @@ -236,6 +308,16 @@ type Mutation {
"""
createAdmin(input: CreateAdminInput!): Admin

"""
Creates Mentor.
"""
createMentor(input: CreateMentorInput!): Mentor

"""
Get a User by Email
"""
getUserByEmail(email: String!): UserInterface

"""
Marks User to be deleted
"""
Expand All @@ -261,6 +343,11 @@ type Mutation {
"""
updateAdmin(input: UpdateAdminInput!, id: ID!): Admin

"""
Updates Mentor.
"""
updateMentor(input: UpdateMentorInput!, id: ID!): Mentor

"""
Link Alexa account
"""
Expand All @@ -280,6 +367,55 @@ type Mutation {
Get Avatar Bucket Upload URL
"""
getAvatarSignedUrl(id: String!): String

"""
Create Paper
"""
createPaper(input: PaperInput!): Paper!

"""
Update Paper
"""
updatePaper(input: PaperUpdateInput!): Paper!

"""
Delete Paper
"""
deletePaper(paperId: ID!): [Paper]!

"""
Updates Entry for Lara Paper
"""
updatePaperEntry(input: AnswerPaperInput!): PaperFormData!

"""
Creates Entry for Lara Paper
"""
createPaperEntry(input: AnswerPaperInput!): PaperFormData!

"""
Deletes Entry for Lara Paper
"""
deletePaperEntry(id: ID!): PaperFormData!

"""
Updates a Fazit
"""
updateFazit(id: ID! content: String! version: Int! cursorPosition: CursorInput! mentorDone: Boolean traineeDone: Boolean): FazitUpdateResponse!

"""
Update Fazit cursor position
"""
updateFazitCursorPos(id: ID!, cursorPosition: CursorInput!): Cursor

"""
Updates if the pdf email was already sent
"""
didSendEmail(id: ID!, didSendEmail: Boolean!): didSendEmailResponse
}

type didSendEmailResponse {
didSendEmail: Boolean
}

type LaraConfig {
Expand Down Expand Up @@ -347,11 +483,21 @@ type Query {
"""
admins: [Admin!]!

"""
Get all Mentors
"""
mentors: [Mentor!]!

"""
Print single report or report batch
"""
print(ids: [ID!]!): PrintPayload!

"""
Print single paper
"""
printPaper(ids: [ID!]! userType: UserTypeEnum!): PrintPayload!

"""
Get a User by ID
"""
Expand All @@ -366,10 +512,21 @@ type Query {
Get the alexa account linking url
"""
alexaLinkingUrl: String

"""
Get the fazit with Id
"""
getFazit(id: ID!): Fazit

"""
Get Paper with Id
"""
getPaper(id: ID!): Paper
}

type PrintPayload {
estimatedWaitingTime: Int!
pdfUrl: String
}

type Report implements CommentableInterface {
Expand All @@ -388,6 +545,14 @@ type Report implements CommentableInterface {
nextReportLink: String
}

input PaperCommentInput {
text: String!
userId: ID!
firstName: String!
lastName: String!
published: Boolean!
}

"""
Represents the current state of the report
"""
Expand Down Expand Up @@ -425,6 +590,7 @@ type Trainee implements UserInterface {
lastName: String!
notification: Boolean
reports: [Report!]!
papers: [Paper]
signature: String
startDate: String
startOfToolUsage: String
Expand Down Expand Up @@ -467,19 +633,69 @@ input CreateTrainerInput {
lastName: String!
}

input CreateMentorInput {
email: String!
firstName: String!
lastName: String!
startDate: String
endDate: String
}

input UpdateTrainerInput {
email: String
firstName: String
lastName: String
}

input UpdateMentorInput {
email: String
firstName: String
lastName: String
startDate: String
endDate: String
}

type Cursor {
position: Int!
owner: String!
}

input CursorInput {
position: Int!
owner: String!
}

type Fazit {
id: ID!
content: String!
version: Int!
cursorPositions: [Cursor!]!
mentorDone: Boolean
traineeDone: Boolean
}

type FazitUpdateResponse {
success: Boolean!
newFazit: Fazit!
}

input FazitUpdateInput {
id: ID!
content: String!
version: Int!
cursorPositions: [CursorInput!]!
mentorDone: Boolean
traineeDone: Boolean
}

type Trainer implements UserInterface {
createdAt: String!
firstName: String!
id: ID!
language: String
lastName: String!
notification: Boolean
papers: [Paper]
signature: String
theme: String
trainees: [Trainee!]!
Expand All @@ -501,6 +717,24 @@ input UpdateAdminInput {
lastName: String
}

type Mentor implements UserInterface {
createdAt: String!
firstName: String!
id: ID!
language: String
lastName: String!
notification: Boolean
signature: String
theme: String
type: UserTypeEnum!
papers: [Paper]
startDate: String
endDate: String
email: String!
deleteAt: String
alexaSkillLinked: Boolean
}

type Admin implements UserInterface {
createdAt: String!
firstName: String!
Expand Down Expand Up @@ -553,8 +787,54 @@ enum UserTypeEnum {
"""
Trainer

"""
User is a Mentor
"""
Mentor

"""
User is an Admin
"""
Admin
}

enum PaperStatus {
NotStarted
InProgress
TraineeDone
MentorDone
InReview
ReviewDone
Archived
}

type PaperFormData {
id: ID!
questionId: ID!
question: String!
answer: String
hint: String
comments: [PaperComment!]!
}

type Paper {
id: ID!
traineeId: ID!
trainerId: ID!
status: PaperStatus!
briefing: [PaperFormData!]!
feedbackTrainee: [PaperFormData!]!
feedbackMentor: [PaperFormData!]!
conclusion: String
archivedAt: String
createdAt: String
client: String!
mentorId: ID!
didSendEmail: Boolean!
periodStart: String
periodEnd: String
schoolPeriodStart: String
schoolPeriodEnd: String
subject: String!
fazit: Fazit
}
Loading