Subjects
- List for Selection
- Get list of all subjects
Auth
- Login
- SignUp
- VerifyEmail
- Forgot Password
- GoogleAuth
Classes
- Class List
- Get list of classes with userId
- Class Creation
- Put class
- Join Class
- Put Class-User based on class code and teacher last name
-
Assignments
- Sample Assignments
- Get list of assignments with sample true
- List of Assignments
- Get list of assignments by classId
- Create assignment
- Based on template id and teacher id and mark not live
- Take assignment live
- Populate fields and mark isLive = True
Attempts
- Get Submissions
- Get list of attempts with submitted at field and assignment Id
- Get submission percentage by assignmentId
- Divide list of attempts with submitted at fields by total users that are students in the class
- Average and median Score
- Get list scores of all the attempts with assignmentId and submitted at and compute median and average
- Concept Scores
- Get explanations from final explanationIds in the list of attempts with submitted at field matching assignmentId
- Iterate through explanations and extract count of correct concept nodes
- Get list of assignment template - concept and extract the concept texts from the concept ids along with position
- Use the count of concept node and return the concept text along with a value dividing the count of each node in explanations by the total people in the class
- View Submission
- Get a single submission object
- Get a list of answers matching the explanation id from the final explanation in the subject
- Get the concept map from the assignment template (attempt -> assignmentId -> assignmentTemplateId) and provide also the correct concept list
- Create Attempt
- Create attempt using assignmentId and user Id
- Submit Attempt
- Update attempt submitted at field
- Update final explanationId by searching for the last explanation
- Update score by getting answers with last explanationId and checking correctness
Explanation
- Check explanation (to stream)
- Create explanation object
- Compare explanation embedding to concept explanation text embeddings and based on threshold generate correct concepts
- Update correct concepts in explanation object
- For each question in assignment template
- Run explanation through the AI and get a computed answer as well as explanation text
- Create answer object. Compute isCorrect by comparing computed answer with the question's actual answer
- Return list of answer objects and the explanation object
Class User
- List of people
- Get all Class-User based on classId - can filter by type for screen later
- Add Student
- Add item to Class-User
- TO DO: Handle if user is not present