CSC/ECE 517 Fall 2024 - E2460 Mentor-Meeting Management: Difference between revisions

From Expertiza_Wiki
Jump to navigation Jump to search
(Backbone for E2460 - sligtly modified problem statement and included deliverables for scope. Now we each just need to fill in our sections.)
 
m (some reformatting)
Line 1: Line 1:
CSC/ECE 517 Spring 2024 - E2403 Mentor-Meeting Management
= CSC/ECE 517 Spring 2024 - E2403 Mentor-Meeting Management =


Contents
__TOC__
1 Background
2 What is a Mentor?
3 Problem Statement
4 Tasks
4.1 Email Notifications
4.2 Mentor Meeting Management
5 Implementation
5.1 Email Notifications
5.1.1 add_member
5.1.2 New Code in add_member
5.1.3 send_team_confirmation_mail_to_user
5.1.4 Modified generic_message
5.1.5 Student HTML Partial
5.1.6 Mentor HTML Partial
5.2 Mentor Meeting Management
5.2.1 New Mentor Meeting Management View
5.2.2 Code changes in the views
5.2.3 Code changes in the controller
5.2.4 Helper code
6 Relevant Links
7 Team
7.1 Mentor
7.2 Team Members


Background
==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 the Expertiza wiki[1], or the GitHub page [2]. For our project in particular, we were tasked with improving the mentor management system within Expertiza.
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 the Expertiza wiki[1], or the GitHub page [2]. For our project in particular, we were tasked with improving the mentor management system within Expertiza.


What is a Mentor?
== 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.
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
== 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. Team listing should be improved to be sortable by team name, mentor name, or meeting date.  
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. Team listing should be improved to be sortable by team name, mentor name, or meeting date.  


Line 41: Line 18:
Our project sought to fix these issues.
Our project sought to fix these issues.


Tasks
== Tasks ==
Email Notifications
=== Email Notifications ===
- understand and reimplement previous team's code (or improve upon it)
- understand and reimplement previous team's code (or improve upon it)


Mentor Meeting Management
=== Mentor Meeting Management ===
- Create a view showing teams, members, and mentors, with meeting date fields.
- Create a view showing teams, members, and mentors, with meeting date fields.
- Add input fields for each team where mentors and instructors can enter new, view, edit dates when mentor meetings were conducted.
- Add input fields for each team where mentors and instructors can enter new, view, edit dates when mentor meetings were conducted.
Line 53: Line 30:
- The meeting dates should not be editable for teams having capacity less than 50%.
- The meeting dates should not be editable for teams having capacity less than 50%.


Backend Controller Updates
=== Backend Controller Updates ===
- Implement a new controller to handle CRUD operations for mentor meetings
- Implement a new controller to handle CRUD operations for mentor meetings
- Update models to manage mentor meetings and trigger notifications.
- Update models to manage mentor meetings and trigger notifications.


Implementation
== Implementation ==
Email Notifications
=== Email Notifications ===




Mentor Meeting Management
=== Mentor Meeting Management ===




Backend Controller Updates
=== Backend Controller Updates ===




Line 79: Line 56:




Relevant Links
== Relevant Links ==
Github Repository: https://github.com/ExtremeMachine12/expertiza
Github Repository: https://github.com/ExtremeMachine12/expertiza
Pull Request: https://github.com/expertiza/expertiza/pull/2769
Pull Request: https://github.com/expertiza/expertiza/pull/2769
Pull Request: https://github.com/expertiza/expertiza/pull/2772
Pull Request: https://github.com/expertiza/expertiza/pull/2772


Team
== Team Mentor ==
Mentor
Nainisha Bhallamudi
Nainisha Bhallamudi
Team Members
 
== Team Members ==
Anusha Akkireddy (aakkire)
Anusha Akkireddy (aakkire)
Simon Getahun (sgetahu)
Simon Getahun (sgetahu)
Gavin Teague (gwteague)
Gavin Teague (gwteague)

Revision as of 00:33, 29 October 2024

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 the Expertiza wiki[1], or the GitHub page [2]. For our project in particular, we were tasked with improving the mentor management system within 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. Team listing should be improved to be sortable by team name, mentor name, or meeting date.

Expertiza doesn’t know when mentors met with teams, so there would have to be text fields where this information could be entered.

The page would have to be accessible to all mentors and course instructors, but a mentor could only enter meetings for the teams they mentored (except that the instructor could edit any of the meeting dates for any mentor).

Our project sought to fix these issues.

Tasks

Email Notifications

- understand and reimplement previous team's code (or improve upon it)

Mentor Meeting Management

- Create a view showing teams, members, and mentors, with meeting date fields. - Add input fields for each team where mentors and instructors can enter new, view, edit dates when mentor meetings were conducted. - Instructors can edit all dates for mentor meetings regardless of the team. - Mentors can also edit dates but only for the team they are mentoring. - Add more than three dates for the mentor meetings easily by pressing the + icon at the end of the view. - The meeting dates should not be editable for teams having capacity less than 50%.

Backend Controller Updates

- Implement a new controller to handle CRUD operations for mentor meetings - Update models to manage mentor meetings and trigger notifications.

Implementation

Email Notifications

Mentor Meeting Management

Backend Controller Updates

Code changes in the controller We added a new controller(mentor_meeting.rb) to perform the CRUD operations on the mentor meeting table.


Helper code We also wrote a helper code to map all the team IDs in the mentor meeting table to the appropriate meeting dates.


Relevant Links

Github Repository: https://github.com/ExtremeMachine12/expertiza Pull Request: https://github.com/expertiza/expertiza/pull/2769 Pull Request: https://github.com/expertiza/expertiza/pull/2772

Team Mentor

Nainisha Bhallamudi

Team Members

Anusha Akkireddy (aakkire) Simon Getahun (sgetahu) Gavin Teague (gwteague)