CSC/ECE 517 Spring 2024 - E2403 Mentor-Meeting Management
Background
Expertiza is an open-source course management web application, that is maintained by students and teaching staff across NC State and other universities. Specifically, Expertiza is used as a platform to help students learn how to work collaboratively on large Object Oriented Programming Assignments. If you would like to learn more about Expertiza please check either the wiki here, or the GitHub page here. For our project in particular we were tasked with improving the mentor management system on Expertiza.
What is a Mentor?
On Expertiza some users are known as mentors. These mentors can both be added to teams manually and automatically assigned if the assignment moderator chooses to select an option where mentors are automatically assigned to teams above 50% capacity. In practice, this means that if you have a max team size of 3, and 2 teammates have been added to team X then team X will automatically be given a mentor.
Problem Statement
The problem we have been faced with is multifaceted. First, we found that when teams are automatically built, students are not getting notified of when they are added to a team. Even more alarming is that when mentors are being added to teams, they aren't getting any type of specialized notification letting them know. Mentors should know when they are mentoring a new team, and students should know when they've been added to a team. Our project sought to fix these issues.
Tasks
Email Notifications
For Phase 1 of the project we have focused working on the below mentioned issues.
-Refactor assign_reviewer_dynamically function
-Corresponding changes to the tests for assign_reviewer_dynamically
-Refactor add_reviewer function
-Corresponding changes to the tests for add_reviewer
-Correct comments and add additional comments
-Methods are named descriptively to indicate their purpose
-Fixed Code climate issues
Mentor Meeting Management
For Phase 2 of the project we plan working on the below mentioned issues.
-Refactor automatic_review_mapping function
-Refactor peer_review_strategy function
-Replace switch statements with subclasses methods
-Increase the test coverage
-Remove hardcoded parameters
-Create models for the subclasses
Implementation
Email Notifications
Students
Mentors
Design Pattern
Relevant Links
- Github Repository: https://github.com/
- Pull Request: https://github.com/expertiza/expertiza/pull/
- Pull Request: https://github.com/expertiza/expertiza/pull/
Team
Mentor
- Ed Gehringer (efg)
Team Members
- Samuel Kwiatkowski-Martin (slkwiatk)
- Tanmay Pardeshi (tpardes)
- Bala Logesh Sudalaimuthu Pandian (bsudala)