<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="en">
	<id>https://wiki.expertiza.ncsu.edu/api.php?action=feedcontributions&amp;feedformat=atom&amp;user=Jmwinte3</id>
	<title>Expertiza_Wiki - User contributions [en]</title>
	<link rel="self" type="application/atom+xml" href="https://wiki.expertiza.ncsu.edu/api.php?action=feedcontributions&amp;feedformat=atom&amp;user=Jmwinte3"/>
	<link rel="alternate" type="text/html" href="https://wiki.expertiza.ncsu.edu/index.php?title=Special:Contributions/Jmwinte3"/>
	<updated>2026-08-15T19:21:33Z</updated>
	<subtitle>User contributions</subtitle>
	<generator>MediaWiki 1.41.0</generator>
	<entry>
		<id>https://wiki.expertiza.ncsu.edu/index.php?title=CSC/ECE_517_Spring_2025_-_E2527._Mentor-meeting_management:_assignments_with_topics&amp;diff=163990</id>
		<title>CSC/ECE 517 Spring 2025 - E2527. Mentor-meeting management: assignments with topics</title>
		<link rel="alternate" type="text/html" href="https://wiki.expertiza.ncsu.edu/index.php?title=CSC/ECE_517_Spring_2025_-_E2527._Mentor-meeting_management:_assignments_with_topics&amp;diff=163990"/>
		<updated>2025-04-16T22:38:14Z</updated>

		<summary type="html">&lt;p&gt;Jmwinte3: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;__TOC__&lt;br /&gt;
&lt;br /&gt;
==Background==&lt;br /&gt;
In Project E2504, implementation was added for mentors to record their meetings with the teams they were mentoring. It worked for projects where mentors were automatically assigned. To expand the functionality of the mentor management system, we want to incorporate mentors into assignment topics.&lt;br /&gt;
&lt;br /&gt;
==Project Overview==&lt;br /&gt;
The main objective of this project is to extend the mentor management system by having it collaborate with the assignment topics system. When an assignment with topics is created, topics are imported from a spreadsheet into the assignment table. This project will focus on including pre-selected mentors (entered in the spreadsheet) in the assignment table and having the mentor assigned to the team automatically upon topic selection.&lt;br /&gt;
&lt;br /&gt;
==Implementation==&lt;br /&gt;
&lt;br /&gt;
====Checkbox to alter the Assignment Creation or Import====&lt;br /&gt;
Implementation will include adding a checkbox option when importing topics to include mentors. This checkbox will toggle whether or not the mentors will be included in the assignment/import. This checkbox will also reload the table to include the additional column required for the mentor's name. Once saved, these mentor names will be stored as an additional attribute in the sign_up_topic.&lt;br /&gt;
&lt;br /&gt;
[[File:mentor_checkbox_mockup.png|600px|thumb|Right|Mockup illustrating the proposed location for the mentor checkbox within the user interface form.]]&lt;br /&gt;
&lt;br /&gt;
It's important to note that this will not affect how teams and mentors are managed for projects where the entire class has the same project. That will still be handled by the mentors being assigned to a team once that team has reached half capacity. This feature will allow mentors to be associated with project topics in projects where each team has a different topic (e.g., ECE 517 Expertiza-based projects).&lt;br /&gt;
&lt;br /&gt;
====Automatic Assignment of Mentors====&lt;br /&gt;
After a team has been created and is allowed to choose a topic from the assignment, the mentor who was assigned to the topic will automatically be assigned to the team. This will be done by adding the mentor to the team (likely via the `TeamsUser` association) and ensuring their `can_mentor` participant value is true. Given the logic of the previous mentor management implementations, this ensures the participant on the team is recognized as a mentor.&lt;br /&gt;
&lt;br /&gt;
The outcome should be that the assigned mentor appears associated with the team in relevant views.&lt;br /&gt;
[[File:Mentor_shows_up_within_teams.png|600px|thumb|Right|Screenshot demonstrating that the assigned mentor's information is now visible within the teams management view after automatic assignment.]]&lt;br /&gt;
&lt;br /&gt;
This automatic assignment upon topic selection complements the existing logic where mentors are assigned when a team reaches half strength, as seen in the `MentorManagement` model: [https://github.com/jmwinte3/expertiza/blob/e566f88436d4c833111086631d0f30c76a5970a2/app/models/mentor_management.rb#L43 MentorManagement#assign_mentor].&lt;br /&gt;
&lt;br /&gt;
====Importing Topics====&lt;br /&gt;
In order for assignments/topics to have mentors assigned to them before teams are formed, there needs to be a minor change to the way that topics are imported into Expertiza (accessible from the Topics tab of an assignment, e.g., `http://152.7.178.121:8080/assignments/1028/edit`).&lt;br /&gt;
&lt;br /&gt;
There should be an optional field in the import file (spreadsheet) that, when included, associates a mentor with a topic. This requires modifying the import logic to handle this optional mentor column.&lt;br /&gt;
[[File:Import_menu_changes.png|600px|thumb|Right|Screenshot highlighting modifications to the import menu, likely including the checkbox or instructions for the mentor column.]]&lt;br /&gt;
&lt;br /&gt;
[[File:Imported_column_change.png|600px|thumb|Right|View showing the changes in the topic table data column after an import, displaying the imported mentor information associated with topics.]]&lt;br /&gt;
&lt;br /&gt;
[[File:Successfully_imported_topics_with_mentors.png|600px|thumb|Right|Confirmation view indicating the successful import of topics along with their assigned mentors.]]&lt;br /&gt;
&lt;br /&gt;
The system should still support importing topics without mentors. Furthermore, there should be a way to manually add or edit the assigned mentor for a topic after it has been created or imported, whether it initially had a mentor or not.&lt;br /&gt;
[[File:Adding_individual_topic_with_mentor.png|600px|thumb|Right|Interface view demonstrating the process of adding or editing an individual topic and assigning a mentor to it manually.]]&lt;br /&gt;
&lt;br /&gt;
==Database==&lt;br /&gt;
We will likely leverage the existing `teams_users` table structure, potentially using the `duty_id` field or similar mechanisms to signify the mentor role within the context of a team, consistent with how other roles might be managed. The `SignUpTopic` model will need an attribute to store the pre-assigned mentor's identifier before a team signs up.&lt;br /&gt;
&lt;br /&gt;
==Files That May Be Modified==&lt;br /&gt;
The following files are likely candidates for modification during this project:&lt;br /&gt;
&lt;br /&gt;
Models:&lt;br /&gt;
* [https://github.com/jmwinte3/expertiza/blob/mentor_meetings/app/models/signed_up_team.rb  SignedUpTeam] - Potentially modified to trigger mentor assignment upon topic selection.&lt;br /&gt;
* [https://github.com/jmwinte3/expertiza/blob/mentor_meetings/app/models/sign_up_topic.rb  SignUpTopic] - To add an attribute for storing the assigned mentor identifier.&lt;br /&gt;
* [https://github.com/jmwinte3/expertiza/blob/mentor_meetings/app/models/sign_up_sheet.rb  SignUpSheet]&lt;br /&gt;
* [https://github.com/jmwinte3/expertiza/blob/mentor_meetings/app/models/team.rb  Team]&lt;br /&gt;
&lt;br /&gt;
Controller:&lt;br /&gt;
* [https://github.com/jmwinte3/expertiza/blob/mentor_meetings/app/controllers/import_file_controller.rb  import_file_controller.rb] - To handle the new import format including the optional mentor column and the checkbox logic.&lt;br /&gt;
* [https://github.com/jmwinte3/expertiza/blob/mentor_meetings/app/controllers/sign_up_sheet_controller.rb  sign_up_sheet_controller.rb]&lt;br /&gt;
&lt;br /&gt;
Views:&lt;br /&gt;
* [https://github.com/jmwinte3/expertiza/blob/mentor_meetings/app/views/assignments/edit/_topics.html.erb  views/assignments/edit/_topics.html.erb] - To display the mentor column when editing topics if the feature is enabled.&lt;br /&gt;
* [https://github.com/jmwinte3/expertiza/blob/e566f88436d4c833111086631d0f30c76a5970a2/app/views/import_file/start.html.erb  views/import_file/start.html.erb] - To add the &amp;quot;include mentors&amp;quot; checkbox and potentially update instructions.&lt;br /&gt;
* [https://github.com/jmwinte3/expertiza/blob/mentor_meetings/app/views/sign_up_sheet/_add_topics.html.erb  views/sign_up_sheet/_add_topics.html.erb] - To include mentor information when adding/displaying topics.&lt;br /&gt;
* [https://github.com/jmwinte3/expertiza/blob/mentor_meetings/app/views/sign_up_sheet/_table_line.html.erb  views/sign_up_sheet/_table_line.html.erb] - To display the mentor associated with a topic in the sign-up sheet.&lt;br /&gt;
* [https://github.com/jmwinte3/expertiza/blob/mentor_meetings/app/views/sign_up_sheet/_table_header.html.erb  views/sign_up_sheet/_table_header.html.erb] - To add a header for the mentor column in the sign-up sheet.&lt;br /&gt;
* [https://github.com/jmwinte3/expertiza/blob/mentor_meetings/app/views/sign_up_sheet/_topic_names.html.erb  views/sign_up_sheet/_topic_names.html.erb] - Potentially adjust topic display.&lt;br /&gt;
* [https://github.com/jmwinte3/expertiza/blob/mentor_meetings/app/views/sign_up_sheet/_add_topic.html.erb  views/sign_up_sheet/_add_topic.html.erb]&lt;br /&gt;
* [https://github.com/jmwinte3/expertiza/blob/mentor_meetings/app/views/sign_up_sheet/_topic.html.erb  views/sign_up_sheet/_topic.html.erb]&lt;br /&gt;
* [https://github.com/jmwinte3/expertiza/blob/mentor_meetings/app/views/import_file/_sign_up_topic.html.erb  app/views/import_file/_sign_up_topic.html.erb]&lt;br /&gt;
* [https://github.com/jmwinte3/expertiza/blob/mentor_meetings/app/views/sign_up_sheet/new.html.erb  app/views/sign_up_sheet/new.html.erb]&lt;br /&gt;
&lt;br /&gt;
Helpers:&lt;br /&gt;
* [https://github.com/jmwinte3/expertiza/blob/mentor_meetings/app/helpers/import_topics_helper.rb  import_topics_helper.rb]&lt;br /&gt;
&lt;br /&gt;
Migrations:&lt;br /&gt;
* [https://github.com/jmwinte3/expertiza/blob/mentor_meetings/db/migrate/20250301220548_create_meetings  db/migrate/20250301220548_create_meetings]&lt;br /&gt;
* [https://github.com/jmwinte3/expertiza/blob/mentor_meetings/db/migrate/20250301220548_create_meetings.rb  db/migrate/20250301220548_create_meetings.rb]&lt;br /&gt;
* [https://github.com/jmwinte3/expertiza/blob/mentor_meetings/db/migrate/20250415151755_add_mentor_id_to_sign_up_topics.rb  db/migrate/20250415151755_add_mentor_id_to_sign_up_topics.rb]&lt;br /&gt;
* [https://github.com/jmwinte3/expertiza/blob/mentor_meetings/db/schema.rb  db/schema.rb]&lt;br /&gt;
&lt;br /&gt;
==Testing==&lt;br /&gt;
===Test Plan===&lt;br /&gt;
The overarching purpose of these tests is to verify that the system correctly handles mentor assignments in projects where mentors are associated with topics. Tests should cover both success and failure scenarios for each feature. Key areas include:&lt;br /&gt;
&lt;br /&gt;
* '''Storing Mentors with Topics:''' &lt;br /&gt;
** Ensuring that topics can hold information about their assigned mentors (e.g., via the new attribute in `SignUpTopic`).&lt;br /&gt;
* '''Assigning Mentors During Topic Sign-up:''' &lt;br /&gt;
** Confirming that when a team chooses a topic, the topic's pre-assigned mentor is automatically added to the team with the correct role/permissions.&lt;br /&gt;
* '''Compatibility with Existing Assignment Logic:''' &lt;br /&gt;
** Ensuring that the existing logic for assigning mentors (e.g., when teams reach half strength in non-topic-based assignments) remains unaffected or correctly integrated if applicable.&lt;br /&gt;
* '''Displaying Mentor Information:''' &lt;br /&gt;
** Validating that team views and topic views accurately show mentor information for mentored assignments and topics, and correctly hide or omit it otherwise.&lt;br /&gt;
* '''Importing Topics with Mentors:'''&lt;br /&gt;
** Checking that topics imported from files correctly capture and store mentor assignments when the mentor column is present.&lt;br /&gt;
** Verifying that topics are imported correctly when the mentor column is absent.&lt;br /&gt;
** Confirming the &amp;quot;Include mentors&amp;quot; checkbox correctly updates the UI (e.g., topic table columns) and influences the import behavior.&lt;br /&gt;
* '''Manual Mentor Assignment:''' Testing the ability to manually add or edit a mentor for a topic via the UI.&lt;br /&gt;
&lt;br /&gt;
===Test Coverage===&lt;br /&gt;
Once tests are created and modifications are implemented, we will run the test suite and provide evidence (e.g., screenshots of coverage reports) demonstrating the extent to which the new and modified code paths are covered by automated tests. The goal is comprehensive coverage for the implemented features.&lt;br /&gt;
&lt;br /&gt;
==Relevant Links==&lt;br /&gt;
* Github Repository: https://github.com/jmwinte3/expertiza&lt;br /&gt;
* E2504 Wiki (Previous Project): https://wiki.expertiza.ncsu.edu/index.php?title=CSC/ECE_517_Spring_2025_-_E2504._Mentor-meeting_management&lt;br /&gt;
* Project Description Document: https://docs.google.com/document/d/1jjbqggRDiOHrxdsMlliY62JnP34bGTNHVWAZNz89kT8/edit?tab=t.0#heading=h.yeys674t35p3&lt;br /&gt;
&lt;br /&gt;
== Team ==&lt;br /&gt;
===Mentor===&lt;br /&gt;
- Ed Gehringer&lt;br /&gt;
&lt;br /&gt;
=== Members ===&lt;br /&gt;
- Jacob Winters&lt;br /&gt;
- Alex Wakefield&lt;br /&gt;
- John Buchanan&lt;/div&gt;</summary>
		<author><name>Jmwinte3</name></author>
	</entry>
	<entry>
		<id>https://wiki.expertiza.ncsu.edu/index.php?title=CSC/ECE_517_Spring_2025_-_E2527._Mentor-meeting_management:_assignments_with_topics&amp;diff=163989</id>
		<title>CSC/ECE 517 Spring 2025 - E2527. Mentor-meeting management: assignments with topics</title>
		<link rel="alternate" type="text/html" href="https://wiki.expertiza.ncsu.edu/index.php?title=CSC/ECE_517_Spring_2025_-_E2527._Mentor-meeting_management:_assignments_with_topics&amp;diff=163989"/>
		<updated>2025-04-16T22:28:42Z</updated>

		<summary type="html">&lt;p&gt;Jmwinte3: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;__TOC__&lt;br /&gt;
&lt;br /&gt;
==Background==&lt;br /&gt;
In Project E2504, implementation was added for mentors to record their meetings with the teams they were mentoring. It worked for projects where mentors were automatically assigned. To expand the functionality of the mentor management system, we want to incorporate mentors into assignment topics.&lt;br /&gt;
&lt;br /&gt;
==Project Overview==&lt;br /&gt;
The main objective of this project is to extend the mentor management system by having it collaborate with the assignment topics system. When an assignment with topics is created, topics are imported from a spreadsheet into the assignment table. This project will focus on including pre-selected mentors (entered in the spreadsheet) in the assignment table and having the mentor assigned to the team automatically upon topic selection.&lt;br /&gt;
&lt;br /&gt;
==Implementation==&lt;br /&gt;
&lt;br /&gt;
====Checkbox to alter the Assignment Creation or Import====&lt;br /&gt;
Implementation will include adding a checkbox option when importing topics to include mentors. This checkbox will toggle whether or not the mentors will be included in the assignment/import. This checkbox will also reload the table to include the additional column required for the mentor's name. Once saved, these mentor names will be stored as an additional attribute in the sign_up_topic.&lt;br /&gt;
&lt;br /&gt;
[[File:mentor_checkbox_mockup.png|600px|thumb|Right|Mockup illustrating the proposed location for the mentor checkbox within the user interface form.]]&lt;br /&gt;
&lt;br /&gt;
It's important to note that this will not affect how teams and mentors are managed for projects where the entire class has the same project. That will still be handled by the mentors being assigned to a team once that team has reached half capacity. This feature will allow mentors to be associated with project topics in projects where each team has a different topic (e.g., ECE 517 Expertiza-based projects).&lt;br /&gt;
&lt;br /&gt;
====Automatic Assignment of Mentors====&lt;br /&gt;
After a team has been created and is allowed to choose a topic from the assignment, the mentor who was assigned to the topic will automatically be assigned to the team. This will be done by adding the mentor to the team (likely via the `TeamsUser` association) and ensuring their `can_mentor` participant value is true. Given the logic of the previous mentor management implementations, this ensures the participant on the team is recognized as a mentor.&lt;br /&gt;
&lt;br /&gt;
The outcome should be that the assigned mentor appears associated with the team in relevant views.&lt;br /&gt;
[[File:Mentor_shows_up_within_teams.png|600px|thumb|Right|Screenshot demonstrating that the assigned mentor's information is now visible within the teams management view after automatic assignment.]]&lt;br /&gt;
&lt;br /&gt;
This automatic assignment upon topic selection complements the existing logic where mentors are assigned when a team reaches half strength, as seen in the `MentorManagement` model: [https://github.com/jmwinte3/expertiza/blob/e566f88436d4c833111086631d0f30c76a5970a2/app/models/mentor_management.rb#L43 MentorManagement#assign_mentor].&lt;br /&gt;
&lt;br /&gt;
====Importing Topics====&lt;br /&gt;
In order for assignments/topics to have mentors assigned to them before teams are formed, there needs to be a minor change to the way that topics are imported into Expertiza (accessible from the Topics tab of an assignment, e.g., `http://152.7.178.121:8080/assignments/1028/edit`).&lt;br /&gt;
&lt;br /&gt;
There should be an optional field in the import file (spreadsheet) that, when included, associates a mentor with a topic. This requires modifying the import logic to handle this optional mentor column.&lt;br /&gt;
[[File:Import_menu_changes.png|600px|thumb|Right|Screenshot highlighting modifications to the import menu, likely including the checkbox or instructions for the mentor column.]]&lt;br /&gt;
&lt;br /&gt;
[[File:Imported_column_change.png|600px|thumb|Right|View showing the changes in the topic table data column after an import, displaying the imported mentor information associated with topics.]]&lt;br /&gt;
&lt;br /&gt;
[[File:Successfully_imported_topics_with_mentors.png|600px|thumb|Right|Confirmation view indicating the successful import of topics along with their assigned mentors.]]&lt;br /&gt;
&lt;br /&gt;
The system should still support importing topics without mentors. Furthermore, there should be a way to manually add or edit the assigned mentor for a topic after it has been created or imported, whether it initially had a mentor or not.&lt;br /&gt;
[[File:Adding_individual_topic_with_mentor.png|600px|thumb|Right|Interface view demonstrating the process of adding or editing an individual topic and assigning a mentor to it manually.]]&lt;br /&gt;
&lt;br /&gt;
==Database==&lt;br /&gt;
We will likely leverage the existing `teams_users` table structure, potentially using the `duty_id` field or similar mechanisms to signify the mentor role within the context of a team, consistent with how other roles might be managed. The `SignUpTopic` model will need an attribute to store the pre-assigned mentor's identifier before a team signs up.&lt;br /&gt;
&lt;br /&gt;
==Files That May Be Modified==&lt;br /&gt;
The following files are likely candidates for modification during this project:&lt;br /&gt;
&lt;br /&gt;
===Models===&lt;br /&gt;
* [https://github.com/jmwinte3/expertiza/blob/mentor_meetings/app/models/signed_up_team.rb SignedUpTeam] - Potentially modified to trigger mentor assignment upon topic selection.&lt;br /&gt;
* [https://github.com/jmwinte3/expertiza/blob/mentor_meetings/app/models/sign_up_topic.rb SignUpTopic] - To add an attribute for storing the assigned mentor identifier.&lt;br /&gt;
&lt;br /&gt;
===Controller===&lt;br /&gt;
* [https://github.com/jmwinte3/expertiza/blob/mentor_meetings/app/controllers/import_file_controller.rb import_file_controller.rb] - To handle the new import format including the optional mentor column and the checkbox logic.&lt;br /&gt;
&lt;br /&gt;
===Views===&lt;br /&gt;
* [https://github.com/jmwinte3/expertiza/blob/mentor_meetings/app/views/assignments/edit/_topics.html.erb views/assignments/edit/_topics.html.erb] - To display the mentor column when editing topics if the feature is enabled.&lt;br /&gt;
* [https://github.com/jmwinte3/expertiza/blob/e566f88436d4c833111086631d0f30c76a5970a2/app/views/import_file/start.html.erb views/import_file/start.html.erb] - To add the &amp;quot;include mentors&amp;quot; checkbox and potentially update instructions.&lt;br /&gt;
* [https://github.com/jmwinte3/expertiza/blob/mentor_meetings/app/views/sign_up_sheet/_add_topics.html.erb views/sign_up_sheet/_add_topics.html.erb] - To include mentor information when adding/displaying topics.&lt;br /&gt;
* [https://github.com/jmwinte3/expertiza/blob/mentor_meetings/app/views/sign_up_sheet/_table_line.html.erb views/sign_up_sheet/_table_line.html.erb] - To display the mentor associated with a topic in the sign-up sheet.&lt;br /&gt;
* [https://github.com/jmwinte3/expertiza/blob/mentor_meetings/app/views/sign_up_sheet/_table_header.html.erb views/sign_up_sheet/_table_header.html.erb] - To add a header for the mentor column in the sign-up sheet.&lt;br /&gt;
* [https://github.com/jmwinte3/expertiza/blob/mentor_meetings/app/views/sign_up_sheet/_topic_names.html.erb views/sign_up_sheet/_topic_names.html.erb] - Potentially adjust topic display.&lt;br /&gt;
* [https://github.com/jmwinte3/expertiza/blob/mentor_meetings/app/views/sign_up_sheet/_add_topic.html.erb views/sign_up_sheet/_add_topic.html.erb] - To add the field for selecting a mentor when adding a topic manually.&lt;br /&gt;
* [https://github.com/jmwinte3/expertiza/blob/mentor_meetings/app/views/sign_up_sheet/_topic.html.erb views/sign_up_sheet/_topic.html.erb] - To display mentor information for an individual topic.&lt;br /&gt;
&lt;br /&gt;
==Testing==&lt;br /&gt;
===Test Plan===&lt;br /&gt;
The overarching purpose of these tests is to verify that the system correctly handles mentor assignments in projects where mentors are associated with topics. Tests should cover both success and failure scenarios for each feature. Key areas include:&lt;br /&gt;
&lt;br /&gt;
* '''Storing Mentors with Topics:''' &lt;br /&gt;
** Ensuring that topics can hold information about their assigned mentors (e.g., via the new attribute in `SignUpTopic`).&lt;br /&gt;
* '''Assigning Mentors During Topic Sign-up:''' &lt;br /&gt;
** Confirming that when a team chooses a topic, the topic's pre-assigned mentor is automatically added to the team with the correct role/permissions.&lt;br /&gt;
* '''Compatibility with Existing Assignment Logic:''' &lt;br /&gt;
** Ensuring that the existing logic for assigning mentors (e.g., when teams reach half strength in non-topic-based assignments) remains unaffected or correctly integrated if applicable.&lt;br /&gt;
* '''Displaying Mentor Information:''' &lt;br /&gt;
** Validating that team views and topic views accurately show mentor information for mentored assignments and topics, and correctly hide or omit it otherwise.&lt;br /&gt;
* '''Importing Topics with Mentors:'''&lt;br /&gt;
** Checking that topics imported from files correctly capture and store mentor assignments when the mentor column is present.&lt;br /&gt;
** Verifying that topics are imported correctly when the mentor column is absent.&lt;br /&gt;
** Confirming the &amp;quot;Include mentors&amp;quot; checkbox correctly updates the UI (e.g., topic table columns) and influences the import behavior.&lt;br /&gt;
* '''Manual Mentor Assignment:''' Testing the ability to manually add or edit a mentor for a topic via the UI.&lt;br /&gt;
&lt;br /&gt;
===Test Coverage===&lt;br /&gt;
Once tests are created and modifications are implemented, we will run the test suite and provide evidence (e.g., screenshots of coverage reports) demonstrating the extent to which the new and modified code paths are covered by automated tests. The goal is comprehensive coverage for the implemented features.&lt;br /&gt;
&lt;br /&gt;
==Relevant Links==&lt;br /&gt;
* Github Repository: https://github.com/jmwinte3/expertiza&lt;br /&gt;
* E2504 Wiki (Previous Project): https://wiki.expertiza.ncsu.edu/index.php?title=CSC/ECE_517_Spring_2025_-_E2504._Mentor-meeting_management&lt;br /&gt;
* Project Description Document: https://docs.google.com/document/d/1jjbqggRDiOHrxdsMlliY62JnP34bGTNHVWAZNz89kT8/edit?tab=t.0#heading=h.yeys674t35p3&lt;br /&gt;
&lt;br /&gt;
== Team ==&lt;br /&gt;
===Mentor===&lt;br /&gt;
- Ed Gehringer&lt;br /&gt;
&lt;br /&gt;
=== Members ===&lt;br /&gt;
- Jacob Winters&lt;br /&gt;
- Alex Wakefield&lt;br /&gt;
- John Buchanan&lt;/div&gt;</summary>
		<author><name>Jmwinte3</name></author>
	</entry>
	<entry>
		<id>https://wiki.expertiza.ncsu.edu/index.php?title=CSC/ECE_517_Spring_2025_-_E2527._Mentor-meeting_management:_assignments_with_topics&amp;diff=163988</id>
		<title>CSC/ECE 517 Spring 2025 - E2527. Mentor-meeting management: assignments with topics</title>
		<link rel="alternate" type="text/html" href="https://wiki.expertiza.ncsu.edu/index.php?title=CSC/ECE_517_Spring_2025_-_E2527._Mentor-meeting_management:_assignments_with_topics&amp;diff=163988"/>
		<updated>2025-04-16T22:28:12Z</updated>

		<summary type="html">&lt;p&gt;Jmwinte3: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;__TOC__&lt;br /&gt;
&lt;br /&gt;
==Background==&lt;br /&gt;
In Project E2504, implementation was added for mentors to record their meetings with the teams they were mentoring. It worked for projects where mentors were automatically assigned. To expand the functionality of the mentor management system, we want to incorporate mentors into assignment topics.&lt;br /&gt;
&lt;br /&gt;
==Project Overview==&lt;br /&gt;
The main objective of this project is to extend the mentor management system by having it collaborate with the assignment topics system. When an assignment with topics is created, topics are imported from a spreadsheet into the assignment table. This project will focus on including pre-selected mentors (entered in the spreadsheet) in the assignment table and having the mentor assigned to the team automatically upon topic selection.&lt;br /&gt;
&lt;br /&gt;
==Implementation==&lt;br /&gt;
&lt;br /&gt;
====Checkbox to alter the Assignment Creation or Import====&lt;br /&gt;
Implementation will include adding a checkbox option when importing topics to include mentors. This checkbox will toggle whether or not the mentors will be included in the assignment/import. This checkbox will also reload the table to include the additional column required for the mentor's name. Once saved, these mentor names will be stored as an additional attribute in the sign_up_topic.&lt;br /&gt;
&lt;br /&gt;
[[File:mentor_checkbox_mockup.png|600px|thumb|Right|Mockup illustrating the proposed location for the mentor checkbox within the user interface form.]]&lt;br /&gt;
&lt;br /&gt;
It's important to note that this will not affect how teams and mentors are managed for projects where the entire class has the same project. That will still be handled by the mentors being assigned to a team once that team has reached half capacity. This feature will allow mentors to be associated with project topics in projects where each team has a different topic (e.g., ECE 517 Expertiza-based projects).&lt;br /&gt;
&lt;br /&gt;
====Automatic Assignment of Mentors====&lt;br /&gt;
After a team has been created and is allowed to choose a topic from the assignment, the mentor who was assigned to the topic will automatically be assigned to the team. This will be done by adding the mentor to the team (likely via the `TeamsUser` association) and ensuring their `can_mentor` participant value is true. Given the logic of the previous mentor management implementations, this ensures the participant on the team is recognized as a mentor.&lt;br /&gt;
&lt;br /&gt;
The outcome should be that the assigned mentor appears associated with the team in relevant views.&lt;br /&gt;
[[File:Mentor_shows_up_within_teams.png|600px|thumb|Right|Screenshot demonstrating that the assigned mentor's information is now visible within the teams management view after automatic assignment.]]&lt;br /&gt;
&lt;br /&gt;
This automatic assignment upon topic selection complements the existing logic where mentors are assigned when a team reaches half strength, as seen in the `MentorManagement` model: [https://github.com/jmwinte3/expertiza/blob/e566f88436d4c833111086631d0f30c76a5970a2/app/models/mentor_management.rb#L43 MentorManagement#assign_mentor].&lt;br /&gt;
&lt;br /&gt;
====Importing Topics====&lt;br /&gt;
In order for assignments/topics to have mentors assigned to them before teams are formed, there needs to be a minor change to the way that topics are imported into Expertiza (accessible from the Topics tab of an assignment, e.g., `http://152.7.178.121:8080/assignments/1028/edit`).&lt;br /&gt;
&lt;br /&gt;
There should be an optional field in the import file (spreadsheet) that, when included, associates a mentor with a topic. This requires modifying the import logic to handle this optional mentor column.&lt;br /&gt;
[[File:Import_menu_changes.png|600px|thumb|Right|Screenshot highlighting modifications to the import menu, likely including the checkbox or instructions for the mentor column.]]&lt;br /&gt;
&lt;br /&gt;
[[File:Imported_column_change.png|600px|thumb|Right|View showing the changes in the topic table data column after an import, displaying the imported mentor information associated with topics.]]&lt;br /&gt;
&lt;br /&gt;
[[File:Successfully_imported_topics_with_mentors.png|600px|thumb|Right|Confirmation view indicating the successful import of topics along with their assigned mentors.]]&lt;br /&gt;
&lt;br /&gt;
The system should still support importing topics without mentors. Furthermore, there should be a way to manually add or edit the assigned mentor for a topic after it has been created or imported, whether it initially had a mentor or not.&lt;br /&gt;
[[File:Adding_individual_topic_with_mentor.png|600px|thumb|Right|Interface view demonstrating the process of adding or editing an individual topic and assigning a mentor to it manually.]]&lt;br /&gt;
&lt;br /&gt;
==Database==&lt;br /&gt;
We will likely leverage the existing `teams_users` table structure, potentially using the `duty_id` field or similar mechanisms to signify the mentor role within the context of a team, consistent with how other roles might be managed. The `SignUpTopic` model will need an attribute to store the pre-assigned mentor's identifier before a team signs up.&lt;br /&gt;
&lt;br /&gt;
==Files That May Be Modified==&lt;br /&gt;
The following files are likely candidates for modification during this project:&lt;br /&gt;
&lt;br /&gt;
===Models===&lt;br /&gt;
* [https://github.com/jmwinte3/expertiza/blob/mentor_meetings/app/models/signed_up_team.rb SignedUpTeam] - Potentially modified to trigger mentor assignment upon topic selection.&lt;br /&gt;
* [https://github.com/jmwinte3/expertiza/blob/mentor_meetings/app/models/sign_up_topic.rb SignUpTopic] - To add an attribute for storing the assigned mentor identifier.&lt;br /&gt;
&lt;br /&gt;
===Controller===&lt;br /&gt;
* [https://github.com/jmwinte3/expertiza/blob/mentor_meetings/app/controllers/import_file_controller.rb import_file_controller.rb] - To handle the new import format including the optional mentor column and the checkbox logic.&lt;br /&gt;
&lt;br /&gt;
===Views===&lt;br /&gt;
* [https://github.com/jmwinte3/expertiza/blob/mentor_meetings/app/views/assignments/edit/_topics.html.erb views/assignments/edit/_topics.html.erb] - To display the mentor column when editing topics if the feature is enabled.&lt;br /&gt;
* [https://github.com/jmwinte3/expertiza/blob/e566f88436d4c833111086631d0f30c76a5970a2/app/views/import_file/start.html.erb views/import_file/start.html.erb] - To add the &amp;quot;include mentors&amp;quot; checkbox and potentially update instructions.&lt;br /&gt;
* [https://github.com/jmwinte3/expertiza/blob/mentor_meetings/app/views/sign_up_sheet/_add_topics.html.erb views/sign_up_sheet/_add_topics.html.erb] - To include mentor information when adding/displaying topics.&lt;br /&gt;
* [https://github.com/jmwinte3/expertiza/blob/mentor_meetings/app/views/sign_up_sheet/_table_line.html.erb views/sign_up_sheet/_table_line.html.erb] - To display the mentor associated with a topic in the sign-up sheet.&lt;br /&gt;
* [https://github.com/jmwinte3/expertiza/blob/mentor_meetings/app/views/sign_up_sheet/_table_header.html.erb views/sign_up_sheet/_table_header.html.erb] - To add a header for the mentor column in the sign-up sheet.&lt;br /&gt;
* [https://github.com/jmwinte3/expertiza/blob/mentor_meetings/app/views/sign_up_sheet/_topic_names.html.erb views/sign_up_sheet/_topic_names.html.erb] - Potentially adjust topic display.&lt;br /&gt;
* [https://github.com/jmwinte3/expertiza/blob/mentor_meetings/app/views/sign_up_sheet/_add_topic.html.erb views/sign_up_sheet/_add_topic.html.erb] - To add the field for selecting a mentor when adding a topic manually.&lt;br /&gt;
* [https://github.com/jmwinte3/expertiza/blob/mentor_meetings/app/views/sign_up_sheet/_topic.html.erb views/sign_up_sheet/_topic.html.erb] - To display mentor information for an individual topic.&lt;br /&gt;
&lt;br /&gt;
==Testing==&lt;br /&gt;
===Test Plan===&lt;br /&gt;
The overarching purpose of these tests is to verify that the system correctly handles mentor assignments in projects where mentors are associated with topics. Tests should cover both success and failure scenarios for each feature. Key areas include:&lt;br /&gt;
&lt;br /&gt;
 '''Storing Mentors with Topics:''' &lt;br /&gt;
* Ensuring that topics can hold information about their assigned mentors (e.g., via the new attribute in `SignUpTopic`).&lt;br /&gt;
 '''Assigning Mentors During Topic Sign-up:''' &lt;br /&gt;
* Confirming that when a team chooses a topic, the topic's pre-assigned mentor is automatically added to the team with the correct role/permissions.&lt;br /&gt;
 '''Compatibility with Existing Assignment Logic:''' &lt;br /&gt;
* Ensuring that the existing logic for assigning mentors (e.g., when teams reach half strength in non-topic-based assignments) remains unaffected or correctly integrated if applicable.&lt;br /&gt;
 '''Displaying Mentor Information:''' &lt;br /&gt;
* Validating that team views and topic views accurately show mentor information for mentored assignments and topics, and correctly hide or omit it otherwise.&lt;br /&gt;
 '''Importing Topics with Mentors:'''&lt;br /&gt;
* Checking that topics imported from files correctly capture and store mentor assignments when the mentor column is present.&lt;br /&gt;
* Verifying that topics are imported correctly when the mentor column is absent.&lt;br /&gt;
* Confirming the &amp;quot;Include mentors&amp;quot; checkbox correctly updates the UI (e.g., topic table columns) and influences the import behavior.&lt;br /&gt;
 '''Manual Mentor Assignment:''' Testing the ability to manually add or edit a mentor for a topic via the UI.&lt;br /&gt;
&lt;br /&gt;
===Test Coverage===&lt;br /&gt;
Once tests are created and modifications are implemented, we will run the test suite and provide evidence (e.g., screenshots of coverage reports) demonstrating the extent to which the new and modified code paths are covered by automated tests. The goal is comprehensive coverage for the implemented features.&lt;br /&gt;
&lt;br /&gt;
==Relevant Links==&lt;br /&gt;
* Github Repository: https://github.com/jmwinte3/expertiza&lt;br /&gt;
* E2504 Wiki (Previous Project): https://wiki.expertiza.ncsu.edu/index.php?title=CSC/ECE_517_Spring_2025_-_E2504._Mentor-meeting_management&lt;br /&gt;
* Project Description Document: https://docs.google.com/document/d/1jjbqggRDiOHrxdsMlliY62JnP34bGTNHVWAZNz89kT8/edit?tab=t.0#heading=h.yeys674t35p3&lt;br /&gt;
&lt;br /&gt;
== Team ==&lt;br /&gt;
===Mentor===&lt;br /&gt;
- Ed Gehringer&lt;br /&gt;
&lt;br /&gt;
=== Members ===&lt;br /&gt;
- Jacob Winters&lt;br /&gt;
- Alex Wakefield&lt;br /&gt;
- John Buchanan&lt;/div&gt;</summary>
		<author><name>Jmwinte3</name></author>
	</entry>
	<entry>
		<id>https://wiki.expertiza.ncsu.edu/index.php?title=CSC/ECE_517_Spring_2025_-_E2527._Mentor-meeting_management:_assignments_with_topics&amp;diff=163987</id>
		<title>CSC/ECE 517 Spring 2025 - E2527. Mentor-meeting management: assignments with topics</title>
		<link rel="alternate" type="text/html" href="https://wiki.expertiza.ncsu.edu/index.php?title=CSC/ECE_517_Spring_2025_-_E2527._Mentor-meeting_management:_assignments_with_topics&amp;diff=163987"/>
		<updated>2025-04-16T22:24:22Z</updated>

		<summary type="html">&lt;p&gt;Jmwinte3: Undo revision 163986 by Jmwinte3 (talk)&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;__TOC__&lt;br /&gt;
&lt;br /&gt;
==Background==&lt;br /&gt;
In Project E2504, implementation was added for mentors to record their meetings with the teams they were mentoring. It worked for projects where mentors were automatically assigned. To expand the functionality of the mentor management system, we want to incorporate mentors into assignment topics.&lt;br /&gt;
&lt;br /&gt;
==Project Overview==&lt;br /&gt;
The main objective of this project is to extend the mentor management system by having it collaborate with the assignment topics system. When an assignment with topics is created, topics are imported from a spreadsheet into the assignment table. This project will focus on including pre-selected mentors (entered in the spreadsheet) in the assignment table and having the mentor assigned to the team automatically upon topic selection.&lt;br /&gt;
&lt;br /&gt;
==Implementation==&lt;br /&gt;
====Checkbox to alter the Assignment Creation or Import====&lt;br /&gt;
Implementation will include adding a checkbox option when importing to include mentors. This checkbox will toggle whether or not the mentors will be included in the assignment/import. This checkbox will also reload the table to include the additional column required for the mentor's name. Once saved, these mentor names will be stored as an additional attribute in the sign_up_topic. Its important to note that this will not affect how teams and mentors are managed for projects where the entire class has the same project. That will still be handled by the mentors being assigned to a team once that team has reached half capacity. This feature will allow mentors to be associated with project topics in projects where each team has a different topic. For ECE 517 these projects would be the last two Expertiza based projects.&lt;br /&gt;
&lt;br /&gt;
====Automatic Assignment of Mentors====&lt;br /&gt;
After a team has been created, and is allowed to choose a topic from the assignment, the mentor which was assigned to the topic will automatically be assigned to the team. This will be done by adding the mentor to the team and ensuring their can_mentor participant value is true. Given the logic of the previous mentor management implementations, this ensures the participant on the team is recognized as a mentor of any team they are on.&lt;br /&gt;
&lt;br /&gt;
====Importing Topics====&lt;br /&gt;
In order for assignments/topics to have mentors assigned to them before teams are assigned, there needs to be a minor change to the way that topics are imported into expertiza. There should be an optional field that when included associates a mentor with a topic. This will requiring a modification to both the way that topics without associated mentors are imported and the option to import topics with mentors. There should still be a way to edit the mentor manually as well once the topic is imported with or without a mentor&lt;br /&gt;
&lt;br /&gt;
[[File:mentor_checkbox_mockup.png|600px|thumb|Right|Mockup illustrating the proposed location for the mentor checkbox within the user interface form.]]&lt;br /&gt;
&lt;br /&gt;
[[File:Adding_individual_topic_with_mentor.png|600px|thumb|Right|Interface view demonstrating the process of adding an individual topic and assigning a mentor to it.]]&lt;br /&gt;
&lt;br /&gt;
[[File:Import_menu_changes.png|600px|thumb|Right|Screenshot highlighting modifications to the import menu, likely to support importing mentor-related data.]]&lt;br /&gt;
&lt;br /&gt;
[[File:Imported_column_change.png|600px|thumb|Right|View showing the changes in a data column after an import, displaying the imported mentor information.]]&lt;br /&gt;
&lt;br /&gt;
[[File:Successfully_imported_topics_with_mentors.png|600px|thumb|Right|Confirmation view indicating the successful import of topics along with their assigned mentors.]]&lt;br /&gt;
&lt;br /&gt;
[[File:Mentor_shows_up_within_teams.png|600px|thumb|Right|Screenshot demonstrating that the assigned mentor's information is now visible within the teams management view.]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
When project topics are imported (from the Topics tab of the assignment “Import topics” at the bottom of the page) there must be an optional field for mentor&lt;br /&gt;
At the bottom of this page for example http://152.7.178.121:8080/assignments/1028/edit&lt;br /&gt;
&lt;br /&gt;
just as is done now when the team reaches half strength.&lt;br /&gt;
&lt;br /&gt;
this is happening within the mentor_management model here:&lt;br /&gt;
#https://github.com/jmwinte3/expertiza/blob/e566f88436d4c833111086631d0f30c76a5970a2/app/models/mentor_management.rb#L43&lt;br /&gt;
&lt;br /&gt;
====Database====&lt;br /&gt;
We will be implementing the same database as 'teams_users' for our project, specifically using duty_id for assignments of mentors.&lt;br /&gt;
&lt;br /&gt;
==Files That May Be Modified==&lt;br /&gt;
Models:&lt;br /&gt;
#[https://github.com/jmwinte3/expertiza/blob/mentor_meetings/app/models/signed_up_team.rb SignedUpTeam]&lt;br /&gt;
#[https://github.com/jmwinte3/expertiza/blob/mentor_meetings/app/models/sign_up_topic.rb SignUpTopic]&lt;br /&gt;
&lt;br /&gt;
Controller:&lt;br /&gt;
#[https://github.com/jmwinte3/expertiza/blob/mentor_meetings/app/controllers/import_file_controller.rb import_file_controller.rb]&lt;br /&gt;
&lt;br /&gt;
Views:&lt;br /&gt;
#[https://github.com/jmwinte3/expertiza/blob/mentor_meetings/app/views/assignments/edit.html.erb views/assignments/edit/_topics.html.erb]&lt;br /&gt;
#[https://github.com/jmwinte3/expertiza/blob/e566f88436d4c833111086631d0f30c76a5970a2/app/views/import_file/start.html.erb#L2 views/import_file/start]&lt;br /&gt;
#[https://github.com/jmwinte3/expertiza/blob/mentor_meetings/app/views/sign_up_sheet/_add_topics.html.erb views/sign_up_sheet/_add_topics.html.erb]&lt;br /&gt;
#[https://github.com/jmwinte3/expertiza/blob/mentor_meetings/app/views/sign_up_sheet/_table_line.html.erb views/sign_up_sheet/_table_line.html.erb]&lt;br /&gt;
#[https://github.com/jmwinte3/expertiza/blob/mentor_meetings/app/views/sign_up_sheet/_table_header.html.erb views/sign_up_sheet/_table_header.html.erb]&lt;br /&gt;
#[https://github.com/jmwinte3/expertiza/blob/mentor_meetings/app/views/sign_up_sheet/_topic_names.html.erb views/sign_up_sheet/_topic_names.html.erb]&lt;br /&gt;
#[https://github.com/jmwinte3/expertiza/blob/mentor_meetings/app/views/sign_up_sheet/_add_topic.html.erb views/sign_up_sheet/_add_topic.html.erb]&lt;br /&gt;
#[https://github.com/jmwinte3/expertiza/blob/mentor_meetings/app/views/sign_up_sheet/_topic.html.erb views/sign_up_sheet/_topic.html.erb]&lt;br /&gt;
==Testing==&lt;br /&gt;
===Test Plan===&lt;br /&gt;
&lt;br /&gt;
The overarching purpose of these tests is to verify that the system correctly handles mentor assignments in projects where mentors are associated with topics, not directly with teams. Each of these cases will have multiple tests to ensure the proper functionality when there is both a failure and a success. The topics include:&lt;br /&gt;
&lt;br /&gt;
Storing Mentors with Topics: &lt;br /&gt;
  Ensuring that topics can hold information about their assigned mentors.&lt;br /&gt;
  &lt;br /&gt;
Assigning Mentors During Topic Sign-up: &lt;br /&gt;
  Confirming that when a team chooses a topic, the topic's mentor is automatically assigned to that team.&lt;br /&gt;
  &lt;br /&gt;
Assigning Mentors when Teams Reach Half Strength: Ensuring that the existing logic for intelligent assignments still applies.&lt;br /&gt;
  Displaying Mentor Information: Validating that team views accurately show mentor information for mentored assignments and correctly hide it for non-mentored ones.&lt;br /&gt;
    &lt;br /&gt;
Importing Topics with Mentors: Checking that topics imported from files correctly capture and store mentor assignments.&lt;br /&gt;
  Include mentors checkbox updates table: Confirm the table columns are properly updated to include the mentors in the topic&lt;br /&gt;
&lt;br /&gt;
===Test Coverage===&lt;br /&gt;
  Once we have created our tests and made the modifications to the expertiza repository that we have described we will include screenshots of what percentage of the tests fail and show that all functions will hopefully have some coverage in the tests&lt;br /&gt;
&lt;br /&gt;
==Relevant Links==&lt;br /&gt;
* Github: https://github.com/jmwinte3/expertiza &lt;br /&gt;
* E2504 Wiki: https://wiki.expertiza.ncsu.edu/index.php?title=CSC/ECE_517_Spring_2025_-_E2504._Mentor-meeting_management&lt;br /&gt;
* Project Description: https://docs.google.com/document/d/1jjbqggRDiOHrxdsMlliY62JnP34bGTNHVWAZNz89kT8/edit?tab=t.0#heading=h.yeys674t35p3&lt;br /&gt;
&lt;br /&gt;
== Team ==&lt;br /&gt;
===Mentor===&lt;br /&gt;
&lt;br /&gt;
    Ed Gehringer&lt;br /&gt;
&lt;br /&gt;
=== Members ===&lt;br /&gt;
&lt;br /&gt;
    Jacob Winters&lt;br /&gt;
    Alex Wakefield&lt;br /&gt;
    John Buchanan&lt;/div&gt;</summary>
		<author><name>Jmwinte3</name></author>
	</entry>
	<entry>
		<id>https://wiki.expertiza.ncsu.edu/index.php?title=CSC/ECE_517_Spring_2025_-_E2527._Mentor-meeting_management:_assignments_with_topics&amp;diff=163986</id>
		<title>CSC/ECE 517 Spring 2025 - E2527. Mentor-meeting management: assignments with topics</title>
		<link rel="alternate" type="text/html" href="https://wiki.expertiza.ncsu.edu/index.php?title=CSC/ECE_517_Spring_2025_-_E2527._Mentor-meeting_management:_assignments_with_topics&amp;diff=163986"/>
		<updated>2025-04-16T22:23:00Z</updated>

		<summary type="html">&lt;p&gt;Jmwinte3: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;__TOC__&lt;br /&gt;
&lt;br /&gt;
==Background==&lt;br /&gt;
In Project E2504, functionality was implemented allowing mentors to record meetings with the teams they mentor. This system worked effectively for projects where mentors were automatically assigned based on team formation (e.g., when a team reached half capacity). To enhance the mentor management capabilities, this project aims to integrate mentor assignments with the assignment topics system.&lt;br /&gt;
&lt;br /&gt;
==Project Overview==&lt;br /&gt;
The primary goal is to extend the mentor management system to collaborate with assignment topics. Currently, when an assignment requiring topic selection is created, topics are often imported from a spreadsheet. This project will enhance this process by:&lt;br /&gt;
&lt;br /&gt;
* Allowing pre-selected mentors (specified in the import spreadsheet) to be associated with specific topics in the assignment table.&lt;br /&gt;
* Automatically assigning the topic's designated mentor to a team as soon as that team selects the topic.&lt;br /&gt;
&lt;br /&gt;
This will provide more granular mentor assignment capabilities, particularly suited for assignments where different teams work on different topics, each potentially requiring a specific mentor.&lt;br /&gt;
&lt;br /&gt;
==Implementation==&lt;br /&gt;
&lt;br /&gt;
===Checkbox to Alter Assignment Creation or Import===&lt;br /&gt;
During the topic import process (or potentially during manual assignment creation), a new checkbox option will be added.&lt;br /&gt;
&lt;br /&gt;
[[File:mentor_checkbox_mockup.png|600px|thumb|Right|Mockup illustrating the proposed location for the mentor checkbox within the user interface form.]]&lt;br /&gt;
&lt;br /&gt;
* **Functionality:** This checkbox will toggle whether mentor information should be included during the topic import.&lt;br /&gt;
* **UI Update:** Selecting the checkbox will dynamically update the topic table view (e.g., reloading it via AJAX or similar) to display an additional column for mentor usernames.&lt;br /&gt;
* **Data Storage:** When saved, the associated mentor's username (or ID) will be stored as an additional attribute within the `sign_up_topic` data structure for each relevant topic.&lt;br /&gt;
&lt;br /&gt;
It's important to note that this new feature is designed for topic-specific mentoring and '''will not affect''' the existing mechanism for projects where all teams work on the same project. In those cases, mentors will still be assigned based on team capacity (e.g., reaching half strength), managed separately. This feature specifically enables mentor association with distinct project topics, such as those used in the later Expertiza-based projects for courses like ECE 517.&lt;br /&gt;
&lt;br /&gt;
===Automatic Assignment of Mentors===&lt;br /&gt;
Once the topics are set up with their associated mentors:&lt;br /&gt;
&lt;br /&gt;
1.  A team is created for the assignment.&lt;br /&gt;
2.  The team selects a topic from the available list.&lt;br /&gt;
3.  Upon successful topic selection, the system will automatically assign the mentor linked to that specific topic to the team.&lt;br /&gt;
&lt;br /&gt;
[[File:Mentor_shows_up_within_teams.png|600px|thumb|Right|Screenshot demonstrating that the assigned mentor's information is now visible within the teams management view after topic selection.]]&lt;br /&gt;
&lt;br /&gt;
This automatic assignment will be implemented by adding the designated mentor as a participant to the team roster and ensuring their `can_mentor` participant flag is set to true. Leveraging the logic from previous mentor management implementations, this flag ensures the participant is correctly identified and treated as a mentor for any team they are associated with.&lt;br /&gt;
&lt;br /&gt;
*(Note: The existing logic for assigning mentors when teams reach half-strength, relevant for non-topic-specific assignments, resides in the `mentor_management` model, specifically around [https://github.com/jmwinte3/expertiza/blob/e566f88436d4c833111086631d0f30c76a5970a2/app/models/mentor_management.rb#L43 this section]).*&lt;br /&gt;
&lt;br /&gt;
===Importing Topics===&lt;br /&gt;
To facilitate assigning mentors during setup, the topic import process needs modification.&lt;br /&gt;
&lt;br /&gt;
[[File:Import_menu_changes.png|600px|thumb|Right|Screenshot highlighting modifications to the import menu, likely including the new checkbox option.]]&lt;br /&gt;
&lt;br /&gt;
* **Optional Mentor Field:** The spreadsheet format used for importing topics will need to accommodate an optional column for mentor usernames.&lt;br /&gt;
* **Import Logic Update:** The import controller (`import_file_controller.rb`) will be updated to:&lt;br /&gt;
    * Recognize the optional mentor column if present.&lt;br /&gt;
    * Parse the mentor username.&lt;br /&gt;
    * Associate the specified mentor with the corresponding topic during the import process, but only if the &amp;quot;Include Mentors&amp;quot; checkbox is selected.&lt;br /&gt;
    * Gracefully handle imports where the mentor column is absent or the checkbox is unchecked (maintaining current functionality).&lt;br /&gt;
&lt;br /&gt;
[[File:Imported_column_change.png|600px|thumb|Right|View showing the topic table changes after an import, displaying the imported mentor information in a new column.]]&lt;br /&gt;
&lt;br /&gt;
[[File:Successfully_imported_topics_with_mentors.png|600px|thumb|Right|Confirmation view indicating the successful import of topics along with their assigned mentors.]]&lt;br /&gt;
&lt;br /&gt;
* **Manual Editing:** Even after import (with or without mentors), there should remain a way to manually edit topic details, including adding, changing, or removing the assigned mentor through the standard assignment/topic editing interface.&lt;br /&gt;
&lt;br /&gt;
[[File:Adding_individual_topic_with_mentor.png|600px|thumb|Right|Interface view demonstrating the process of manually adding or editing an individual topic and assigning a mentor to it.]]&lt;br /&gt;
&lt;br /&gt;
*(Example page context for import: The import functionality is typically found at the bottom of the assignment edit page, e.g., `http://&amp;lt;your_expertiza_instance_address&amp;gt;/assignments/&amp;lt;assignment_id&amp;gt;/edit` under the &amp;quot;Topics&amp;quot; tab)*.&lt;br /&gt;
&lt;br /&gt;
===Database===&lt;br /&gt;
No new database tables are anticipated. The association between teams and their assigned mentors will likely utilize the existing `teams_users` table structure, potentially leveraging the `duty_id` field or similar participant roles to signify the mentor relationship, consistent with current practices. The association between a topic and its potential mentor will be stored as an attribute of the `SignUpTopic` model/table.&lt;br /&gt;
&lt;br /&gt;
==Files That May Be Modified==&lt;br /&gt;
&lt;br /&gt;
* '''Models:'''&lt;br /&gt;
    * [https://github.com/jmwinte3/expertiza/blob/mentor_meetings/app/models/signed_up_team.rb SignedUpTeam] (`signed_up_team.rb`) - Potentially modified to handle actions upon topic selection.&lt;br /&gt;
    * [https://github.com/jmwinte3/expertiza/blob/mentor_meetings/app/models/sign_up_topic.rb SignUpTopic] (`sign_up_topic.rb`) - Will be modified to add the mentor attribute.&lt;br /&gt;
* '''Controllers:'''&lt;br /&gt;
    * [https://github.com/jmwinte3/expertiza/blob/mentor_meetings/app/controllers/import_file_controller.rb import_file_controller.rb] - Will be modified to handle the new import format and checkbox logic.&lt;br /&gt;
    * Controllers related to topic selection/team formation might need adjustments for automatic mentor assignment.&lt;br /&gt;
* '''Views:''' (Related to assignments, topics, and import)&lt;br /&gt;
    * [https://github.com/jmwinte3/expertiza/blob/mentor_meetings/app/views/assignments/edit.html.erb views/assignments/edit/_topics.html.erb] - Likely needs changes for displaying mentor column and manual editing.&lt;br /&gt;
    * [https://github.com/jmwinte3/expertiza/blob/e566f88436d4c833111086631d0f30c76a5970a2/app/views/import_file/start.html.erb#L2 views/import_file/start.html.erb] - To add the new checkbox for mentor import.&lt;br /&gt;
    * Sign up sheet partials may need updates to display or handle mentor info:&lt;br /&gt;
        * [https://github.com/jmwinte3/expertiza/blob/mentor_meetings/app/views/sign_up_sheet/_add_topics.html.erb views/sign_up_sheet/_add_topics.html.erb]&lt;br /&gt;
        * [https://github.com/jmwinte3/expertiza/blob/mentor_meetings/app/views/sign_up_sheet/_table_line.html.erb views/sign_up_sheet/_table_line.html.erb]&lt;br /&gt;
        * [https://github.com/jmwinte3/expertiza/blob/mentor_meetings/app/views/sign_up_sheet/_table_header.html.erb views/sign_up_sheet/_table_header.html.erb]&lt;br /&gt;
        * [https://github.com/jmwinte3/expertiza/blob/mentor_meetings/app/views/sign_up_sheet/_topic_names.html.erb views/sign_up_sheet/_topic_names.html.erb]&lt;br /&gt;
        * [https://github.com/jmwinte3/expertiza/blob/mentor_meetings/app/views/sign_up_sheet/_add_topic.html.erb views/sign_up_sheet/_add_topic.html.erb]&lt;br /&gt;
        * [https://github.com/jmwinte3/expertiza/blob/mentor_meetings/app/views/sign_up_sheet/_topic.html.erb views/sign_up_sheet/_topic.html.erb]&lt;br /&gt;
&lt;br /&gt;
==Testing==&lt;br /&gt;
&lt;br /&gt;
===Test Plan===&lt;br /&gt;
The test plan focuses on verifying the correct handling of mentor assignments specifically linked to topics. Tests should cover both success and failure scenarios for each area:&lt;br /&gt;
&lt;br /&gt;
* '''Storing Mentors with Topics:'''&lt;br /&gt;
    * Ensure that topic data structures can correctly store and retrieve assigned mentor information (e.g., after manual assignment or import).&lt;br /&gt;
    * Verify that topics without assigned mentors are handled correctly.&lt;br /&gt;
* '''Assigning Mentors During Topic Sign-up:'''&lt;br /&gt;
    * Confirm that when a team selects a topic with an assigned mentor, that mentor is automatically added to the team roster with the correct role/permissions.&lt;br /&gt;
    * Test scenarios where a topic has no mentor assigned – ensure no mentor is automatically added.&lt;br /&gt;
* '''Coexistence with Existing Mentor Assignment Logic:'''&lt;br /&gt;
    * Ensure that the existing logic for assigning mentors based on team capacity (half-strength rule for non-topic assignments) remains unaffected and functional for relevant assignment types.&lt;br /&gt;
* '''Displaying Mentor Information:'''&lt;br /&gt;
    * Validate that team views (e.g., team roster page) accurately display the assigned mentor's information when applicable (topic-based or capacity-based).&lt;br /&gt;
    * Confirm that mentor information is appropriately hidden or not displayed for assignments/teams where no mentor is assigned.&lt;br /&gt;
* '''Importing Topics with Mentors:'''&lt;br /&gt;
    * Check that topics imported using the new format (with the optional mentor column and checkbox selected) correctly capture and store mentor associations.&lt;br /&gt;
    * Test imports where the mentor column is missing or the checkbox is unselected – ensure topics are imported without mentors as expected.&lt;br /&gt;
    * Verify error handling for invalid mentor usernames in the import file.&lt;br /&gt;
* '''Import Checkbox UI Behavior:'''&lt;br /&gt;
    * Confirm that toggling the &amp;quot;Include mentors&amp;quot; checkbox correctly updates the topic table display (adds/removes mentor column) on the import/setup page.&lt;br /&gt;
&lt;br /&gt;
===Test Coverage===&lt;br /&gt;
After implementing the features and writing corresponding tests (e.g., RSpec unit/feature tests), we will run the test suite and report the coverage metrics. Screenshots documenting the test results (pass/fail counts) and coverage percentage will be provided, aiming for comprehensive coverage of the modified and new functions.&lt;br /&gt;
&lt;br /&gt;
==Relevant Links==&lt;br /&gt;
* Project Repository: https://github.com/jmwinte3/expertiza&lt;br /&gt;
* Previous Project (E2504) Wiki: https://wiki.expertiza.ncsu.edu/index.php?title=CSC/ECE_517_Spring_2025_-_E2504._Mentor-meeting_management&lt;br /&gt;
* Detailed Project Description: https://docs.google.com/document/d/1jjbqggRDiOHrxdsMlliY62JnP34bGTNHVWAZNz89kT8/edit?tab=t.0#heading=h.yeys674t35p3&lt;br /&gt;
&lt;br /&gt;
==Team==&lt;br /&gt;
* '''Mentor'''&lt;br /&gt;
    * Ed Gehringer&lt;br /&gt;
* '''Members'''&lt;br /&gt;
    * Jacob Winters&lt;br /&gt;
    * Alex Wakefield&lt;br /&gt;
    * John Buchanan&lt;/div&gt;</summary>
		<author><name>Jmwinte3</name></author>
	</entry>
	<entry>
		<id>https://wiki.expertiza.ncsu.edu/index.php?title=CSC/ECE_517_Spring_2025_-_E2527._Mentor-meeting_management:_assignments_with_topics&amp;diff=163985</id>
		<title>CSC/ECE 517 Spring 2025 - E2527. Mentor-meeting management: assignments with topics</title>
		<link rel="alternate" type="text/html" href="https://wiki.expertiza.ncsu.edu/index.php?title=CSC/ECE_517_Spring_2025_-_E2527._Mentor-meeting_management:_assignments_with_topics&amp;diff=163985"/>
		<updated>2025-04-16T22:21:19Z</updated>

		<summary type="html">&lt;p&gt;Jmwinte3: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;__TOC__&lt;br /&gt;
&lt;br /&gt;
==Background==&lt;br /&gt;
In Project E2504, implementation was added for mentors to record their meetings with the teams they were mentoring. It worked for projects where mentors were automatically assigned. To expand the functionality of the mentor management system, we want to incorporate mentors into assignment topics.&lt;br /&gt;
&lt;br /&gt;
==Project Overview==&lt;br /&gt;
The main objective of this project is to extend the mentor management system by having it collaborate with the assignment topics system. When an assignment with topics is created, topics are imported from a spreadsheet into the assignment table. This project will focus on including pre-selected mentors (entered in the spreadsheet) in the assignment table and having the mentor assigned to the team automatically upon topic selection.&lt;br /&gt;
&lt;br /&gt;
==Implementation==&lt;br /&gt;
====Checkbox to alter the Assignment Creation or Import====&lt;br /&gt;
Implementation will include adding a checkbox option when importing to include mentors. This checkbox will toggle whether or not the mentors will be included in the assignment/import. This checkbox will also reload the table to include the additional column required for the mentor's name. Once saved, these mentor names will be stored as an additional attribute in the sign_up_topic. Its important to note that this will not affect how teams and mentors are managed for projects where the entire class has the same project. That will still be handled by the mentors being assigned to a team once that team has reached half capacity. This feature will allow mentors to be associated with project topics in projects where each team has a different topic. For ECE 517 these projects would be the last two Expertiza based projects.&lt;br /&gt;
&lt;br /&gt;
====Automatic Assignment of Mentors====&lt;br /&gt;
After a team has been created, and is allowed to choose a topic from the assignment, the mentor which was assigned to the topic will automatically be assigned to the team. This will be done by adding the mentor to the team and ensuring their can_mentor participant value is true. Given the logic of the previous mentor management implementations, this ensures the participant on the team is recognized as a mentor of any team they are on.&lt;br /&gt;
&lt;br /&gt;
====Importing Topics====&lt;br /&gt;
In order for assignments/topics to have mentors assigned to them before teams are assigned, there needs to be a minor change to the way that topics are imported into expertiza. There should be an optional field that when included associates a mentor with a topic. This will requiring a modification to both the way that topics without associated mentors are imported and the option to import topics with mentors. There should still be a way to edit the mentor manually as well once the topic is imported with or without a mentor&lt;br /&gt;
&lt;br /&gt;
[[File:mentor_checkbox_mockup.png|600px|thumb|Right|Mockup illustrating the proposed location for the mentor checkbox within the user interface form.]]&lt;br /&gt;
&lt;br /&gt;
[[File:Adding_individual_topic_with_mentor.png|600px|thumb|Right|Interface view demonstrating the process of adding an individual topic and assigning a mentor to it.]]&lt;br /&gt;
&lt;br /&gt;
[[File:Import_menu_changes.png|600px|thumb|Right|Screenshot highlighting modifications to the import menu, likely to support importing mentor-related data.]]&lt;br /&gt;
&lt;br /&gt;
[[File:Imported_column_change.png|600px|thumb|Right|View showing the changes in a data column after an import, displaying the imported mentor information.]]&lt;br /&gt;
&lt;br /&gt;
[[File:Successfully_imported_topics_with_mentors.png|600px|thumb|Right|Confirmation view indicating the successful import of topics along with their assigned mentors.]]&lt;br /&gt;
&lt;br /&gt;
[[File:Mentor_shows_up_within_teams.png|600px|thumb|Right|Screenshot demonstrating that the assigned mentor's information is now visible within the teams management view.]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
When project topics are imported (from the Topics tab of the assignment “Import topics” at the bottom of the page) there must be an optional field for mentor&lt;br /&gt;
At the bottom of this page for example http://152.7.178.121:8080/assignments/1028/edit&lt;br /&gt;
&lt;br /&gt;
just as is done now when the team reaches half strength.&lt;br /&gt;
&lt;br /&gt;
this is happening within the mentor_management model here:&lt;br /&gt;
#https://github.com/jmwinte3/expertiza/blob/e566f88436d4c833111086631d0f30c76a5970a2/app/models/mentor_management.rb#L43&lt;br /&gt;
&lt;br /&gt;
====Database====&lt;br /&gt;
We will be implementing the same database as 'teams_users' for our project, specifically using duty_id for assignments of mentors.&lt;br /&gt;
&lt;br /&gt;
==Files That May Be Modified==&lt;br /&gt;
Models:&lt;br /&gt;
#[https://github.com/jmwinte3/expertiza/blob/mentor_meetings/app/models/signed_up_team.rb SignedUpTeam]&lt;br /&gt;
#[https://github.com/jmwinte3/expertiza/blob/mentor_meetings/app/models/sign_up_topic.rb SignUpTopic]&lt;br /&gt;
&lt;br /&gt;
Controller:&lt;br /&gt;
#[https://github.com/jmwinte3/expertiza/blob/mentor_meetings/app/controllers/import_file_controller.rb import_file_controller.rb]&lt;br /&gt;
&lt;br /&gt;
Views:&lt;br /&gt;
#[https://github.com/jmwinte3/expertiza/blob/mentor_meetings/app/views/assignments/edit.html.erb views/assignments/edit/_topics.html.erb]&lt;br /&gt;
#[https://github.com/jmwinte3/expertiza/blob/e566f88436d4c833111086631d0f30c76a5970a2/app/views/import_file/start.html.erb#L2 views/import_file/start]&lt;br /&gt;
#[https://github.com/jmwinte3/expertiza/blob/mentor_meetings/app/views/sign_up_sheet/_add_topics.html.erb views/sign_up_sheet/_add_topics.html.erb]&lt;br /&gt;
#[https://github.com/jmwinte3/expertiza/blob/mentor_meetings/app/views/sign_up_sheet/_table_line.html.erb views/sign_up_sheet/_table_line.html.erb]&lt;br /&gt;
#[https://github.com/jmwinte3/expertiza/blob/mentor_meetings/app/views/sign_up_sheet/_table_header.html.erb views/sign_up_sheet/_table_header.html.erb]&lt;br /&gt;
#[https://github.com/jmwinte3/expertiza/blob/mentor_meetings/app/views/sign_up_sheet/_topic_names.html.erb views/sign_up_sheet/_topic_names.html.erb]&lt;br /&gt;
#[https://github.com/jmwinte3/expertiza/blob/mentor_meetings/app/views/sign_up_sheet/_add_topic.html.erb views/sign_up_sheet/_add_topic.html.erb]&lt;br /&gt;
#[https://github.com/jmwinte3/expertiza/blob/mentor_meetings/app/views/sign_up_sheet/_topic.html.erb views/sign_up_sheet/_topic.html.erb]&lt;br /&gt;
==Testing==&lt;br /&gt;
===Test Plan===&lt;br /&gt;
&lt;br /&gt;
The overarching purpose of these tests is to verify that the system correctly handles mentor assignments in projects where mentors are associated with topics, not directly with teams. Each of these cases will have multiple tests to ensure the proper functionality when there is both a failure and a success. The topics include:&lt;br /&gt;
&lt;br /&gt;
Storing Mentors with Topics: &lt;br /&gt;
  Ensuring that topics can hold information about their assigned mentors.&lt;br /&gt;
  &lt;br /&gt;
Assigning Mentors During Topic Sign-up: &lt;br /&gt;
  Confirming that when a team chooses a topic, the topic's mentor is automatically assigned to that team.&lt;br /&gt;
  &lt;br /&gt;
Assigning Mentors when Teams Reach Half Strength: Ensuring that the existing logic for intelligent assignments still applies.&lt;br /&gt;
  Displaying Mentor Information: Validating that team views accurately show mentor information for mentored assignments and correctly hide it for non-mentored ones.&lt;br /&gt;
    &lt;br /&gt;
Importing Topics with Mentors: Checking that topics imported from files correctly capture and store mentor assignments.&lt;br /&gt;
  Include mentors checkbox updates table: Confirm the table columns are properly updated to include the mentors in the topic&lt;br /&gt;
&lt;br /&gt;
===Test Coverage===&lt;br /&gt;
  Once we have created our tests and made the modifications to the expertiza repository that we have described we will include screenshots of what percentage of the tests fail and show that all functions will hopefully have some coverage in the tests&lt;br /&gt;
&lt;br /&gt;
==Relevant Links==&lt;br /&gt;
* Github: https://github.com/jmwinte3/expertiza &lt;br /&gt;
* E2504 Wiki: https://wiki.expertiza.ncsu.edu/index.php?title=CSC/ECE_517_Spring_2025_-_E2504._Mentor-meeting_management&lt;br /&gt;
* Project Description: https://docs.google.com/document/d/1jjbqggRDiOHrxdsMlliY62JnP34bGTNHVWAZNz89kT8/edit?tab=t.0#heading=h.yeys674t35p3&lt;br /&gt;
&lt;br /&gt;
== Team ==&lt;br /&gt;
===Mentor===&lt;br /&gt;
&lt;br /&gt;
    Ed Gehringer&lt;br /&gt;
&lt;br /&gt;
=== Members ===&lt;br /&gt;
&lt;br /&gt;
    Jacob Winters&lt;br /&gt;
    Alex Wakefield&lt;br /&gt;
    John Buchanan&lt;/div&gt;</summary>
		<author><name>Jmwinte3</name></author>
	</entry>
	<entry>
		<id>https://wiki.expertiza.ncsu.edu/index.php?title=CSC/ECE_517_Spring_2025_-_E2527._Mentor-meeting_management:_assignments_with_topics&amp;diff=163984</id>
		<title>CSC/ECE 517 Spring 2025 - E2527. Mentor-meeting management: assignments with topics</title>
		<link rel="alternate" type="text/html" href="https://wiki.expertiza.ncsu.edu/index.php?title=CSC/ECE_517_Spring_2025_-_E2527._Mentor-meeting_management:_assignments_with_topics&amp;diff=163984"/>
		<updated>2025-04-16T22:19:52Z</updated>

		<summary type="html">&lt;p&gt;Jmwinte3: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;__TOC__&lt;br /&gt;
&lt;br /&gt;
==Background==&lt;br /&gt;
In Project E2504, implementation was added for mentors to record their meetings with the teams they were mentoring. It worked for projects where mentors were automatically assigned. To expand the functionality of the mentor management system, we want to incorporate mentors into assignment topics.&lt;br /&gt;
&lt;br /&gt;
==Project Overview==&lt;br /&gt;
The main objective of this project is to extend the mentor management system by having it collaborate with the assignment topics system. When an assignment with topics is created, topics are imported from a spreadsheet into the assignment table. This project will focus on including pre-selected mentors (entered in the spreadsheet) in the assignment table and having the mentor assigned to the team automatically upon topic selection.&lt;br /&gt;
&lt;br /&gt;
==Implementation==&lt;br /&gt;
====Checkbox to alter the Assignment Creation or Import====&lt;br /&gt;
Implementation will include adding a checkbox option when importing to include mentors. This checkbox will toggle whether or not the mentors will be included in the assignment/import. This checkbox will also reload the table to include the additional column required for the mentor's name. Once saved, these mentor names will be stored as an additional attribute in the sign_up_topic. Its important to note that this will not affect how teams and mentors are managed for projects where the entire class has the same project. That will still be handled by the mentors being assigned to a team once that team has reached half capacity. This feature will allow mentors to be associated with project topics in projects where each team has a different topic. For ECE 517 these projects would be the last two Expertiza based projects.&lt;br /&gt;
&lt;br /&gt;
====Automatic Assignment of Mentors====&lt;br /&gt;
After a team has been created, and is allowed to choose a topic from the assignment, the mentor which was assigned to the topic will automatically be assigned to the team. This will be done by adding the mentor to the team and ensuring their can_mentor participant value is true. Given the logic of the previous mentor management implementations, this ensures the participant on the team is recognized as a mentor of any team they are on.&lt;br /&gt;
&lt;br /&gt;
====Importing Topics====&lt;br /&gt;
In order for assignments/topics to have mentors assigned to them before teams are assigned, there needs to be a minor change to the way that topics are imported into expertiza. There should be an optional field that when included associates a mentor with a topic. This will requiring a modification to both the way that topics without associated mentors are imported and the option to import topics with mentors. There should still be a way to edit the mentor manually as well once the topic is imported with or without a mentor&lt;br /&gt;
&lt;br /&gt;
[[File:mentor_checkbox_mockup.png|600px|thumb|Right|This shows where the checkbox will be added as an option to the existing form]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[File:Adding_individual_topic_with_mentor.png|600px|thumb|Right|This shows where the checkbox will be added as an option to the existing form]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[File:Import_menu_changes.png|600px|thumb|Right|This shows where the checkbox will be added as an option to the existing form]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[File:Imported_column_change.png|600px|thumb|Right|This shows where the checkbox will be added as an option to the existing form]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[File:Successfully_imported_topics_with_mentors.png|600px|thumb|Right|This shows where the checkbox will be added as an option to the existing form]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[File:Mentor_shows_up_within_teams.png|600px|thumb|Right|This shows where the checkbox will be added as an option to the existing form]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
When project topics are imported (from the Topics tab of the assignment “Import topics” at the bottom of the page) there must be an optional field for mentor&lt;br /&gt;
At the bottom of this page for example http://152.7.178.121:8080/assignments/1028/edit&lt;br /&gt;
&lt;br /&gt;
just as is done now when the team reaches half strength.&lt;br /&gt;
&lt;br /&gt;
this is happening within the mentor_management model here:&lt;br /&gt;
#https://github.com/jmwinte3/expertiza/blob/e566f88436d4c833111086631d0f30c76a5970a2/app/models/mentor_management.rb#L43&lt;br /&gt;
&lt;br /&gt;
====Database====&lt;br /&gt;
We will be implementing the same database as 'teams_users' for our project, specifically using duty_id for assignments of mentors.&lt;br /&gt;
&lt;br /&gt;
==Files That May Be Modified==&lt;br /&gt;
Models:&lt;br /&gt;
#[https://github.com/jmwinte3/expertiza/blob/mentor_meetings/app/models/signed_up_team.rb SignedUpTeam]&lt;br /&gt;
#[https://github.com/jmwinte3/expertiza/blob/mentor_meetings/app/models/sign_up_topic.rb SignUpTopic]&lt;br /&gt;
&lt;br /&gt;
Controller:&lt;br /&gt;
#[https://github.com/jmwinte3/expertiza/blob/mentor_meetings/app/controllers/import_file_controller.rb import_file_controller.rb]&lt;br /&gt;
&lt;br /&gt;
Views:&lt;br /&gt;
#[https://github.com/jmwinte3/expertiza/blob/mentor_meetings/app/views/assignments/edit.html.erb views/assignments/edit/_topics.html.erb]&lt;br /&gt;
#[https://github.com/jmwinte3/expertiza/blob/e566f88436d4c833111086631d0f30c76a5970a2/app/views/import_file/start.html.erb#L2 views/import_file/start]&lt;br /&gt;
#[https://github.com/jmwinte3/expertiza/blob/mentor_meetings/app/views/sign_up_sheet/_add_topics.html.erb views/sign_up_sheet/_add_topics.html.erb]&lt;br /&gt;
#[https://github.com/jmwinte3/expertiza/blob/mentor_meetings/app/views/sign_up_sheet/_table_line.html.erb views/sign_up_sheet/_table_line.html.erb]&lt;br /&gt;
#[https://github.com/jmwinte3/expertiza/blob/mentor_meetings/app/views/sign_up_sheet/_table_header.html.erb views/sign_up_sheet/_table_header.html.erb]&lt;br /&gt;
#[https://github.com/jmwinte3/expertiza/blob/mentor_meetings/app/views/sign_up_sheet/_topic_names.html.erb views/sign_up_sheet/_topic_names.html.erb]&lt;br /&gt;
#[https://github.com/jmwinte3/expertiza/blob/mentor_meetings/app/views/sign_up_sheet/_add_topic.html.erb views/sign_up_sheet/_add_topic.html.erb]&lt;br /&gt;
#[https://github.com/jmwinte3/expertiza/blob/mentor_meetings/app/views/sign_up_sheet/_topic.html.erb views/sign_up_sheet/_topic.html.erb]&lt;br /&gt;
==Testing==&lt;br /&gt;
===Test Plan===&lt;br /&gt;
&lt;br /&gt;
The overarching purpose of these tests is to verify that the system correctly handles mentor assignments in projects where mentors are associated with topics, not directly with teams. Each of these cases will have multiple tests to ensure the proper functionality when there is both a failure and a success. The topics include:&lt;br /&gt;
&lt;br /&gt;
Storing Mentors with Topics: &lt;br /&gt;
  Ensuring that topics can hold information about their assigned mentors.&lt;br /&gt;
  &lt;br /&gt;
Assigning Mentors During Topic Sign-up: &lt;br /&gt;
  Confirming that when a team chooses a topic, the topic's mentor is automatically assigned to that team.&lt;br /&gt;
  &lt;br /&gt;
Assigning Mentors when Teams Reach Half Strength: Ensuring that the existing logic for intelligent assignments still applies.&lt;br /&gt;
  Displaying Mentor Information: Validating that team views accurately show mentor information for mentored assignments and correctly hide it for non-mentored ones.&lt;br /&gt;
    &lt;br /&gt;
Importing Topics with Mentors: Checking that topics imported from files correctly capture and store mentor assignments.&lt;br /&gt;
  Include mentors checkbox updates table: Confirm the table columns are properly updated to include the mentors in the topic&lt;br /&gt;
&lt;br /&gt;
===Test Coverage===&lt;br /&gt;
  Once we have created our tests and made the modifications to the expertiza repository that we have described we will include screenshots of what percentage of the tests fail and show that all functions will hopefully have some coverage in the tests&lt;br /&gt;
&lt;br /&gt;
==Relevant Links==&lt;br /&gt;
* Github: https://github.com/jmwinte3/expertiza &lt;br /&gt;
* E2504 Wiki: https://wiki.expertiza.ncsu.edu/index.php?title=CSC/ECE_517_Spring_2025_-_E2504._Mentor-meeting_management&lt;br /&gt;
* Project Description: https://docs.google.com/document/d/1jjbqggRDiOHrxdsMlliY62JnP34bGTNHVWAZNz89kT8/edit?tab=t.0#heading=h.yeys674t35p3&lt;br /&gt;
&lt;br /&gt;
== Team ==&lt;br /&gt;
===Mentor===&lt;br /&gt;
&lt;br /&gt;
    Ed Gehringer&lt;br /&gt;
&lt;br /&gt;
=== Members ===&lt;br /&gt;
&lt;br /&gt;
    Jacob Winters&lt;br /&gt;
    Alex Wakefield&lt;br /&gt;
    John Buchanan&lt;/div&gt;</summary>
		<author><name>Jmwinte3</name></author>
	</entry>
	<entry>
		<id>https://wiki.expertiza.ncsu.edu/index.php?title=File:Mentor_shows_up_within_teams.png&amp;diff=163983</id>
		<title>File:Mentor shows up within teams.png</title>
		<link rel="alternate" type="text/html" href="https://wiki.expertiza.ncsu.edu/index.php?title=File:Mentor_shows_up_within_teams.png&amp;diff=163983"/>
		<updated>2025-04-16T22:18:02Z</updated>

		<summary type="html">&lt;p&gt;Jmwinte3: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;/div&gt;</summary>
		<author><name>Jmwinte3</name></author>
	</entry>
	<entry>
		<id>https://wiki.expertiza.ncsu.edu/index.php?title=File:Successfully_imported_topics_with_mentors.png&amp;diff=163982</id>
		<title>File:Successfully imported topics with mentors.png</title>
		<link rel="alternate" type="text/html" href="https://wiki.expertiza.ncsu.edu/index.php?title=File:Successfully_imported_topics_with_mentors.png&amp;diff=163982"/>
		<updated>2025-04-16T22:17:26Z</updated>

		<summary type="html">&lt;p&gt;Jmwinte3: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;/div&gt;</summary>
		<author><name>Jmwinte3</name></author>
	</entry>
	<entry>
		<id>https://wiki.expertiza.ncsu.edu/index.php?title=File:Imported_column_change.png&amp;diff=163981</id>
		<title>File:Imported column change.png</title>
		<link rel="alternate" type="text/html" href="https://wiki.expertiza.ncsu.edu/index.php?title=File:Imported_column_change.png&amp;diff=163981"/>
		<updated>2025-04-16T22:16:58Z</updated>

		<summary type="html">&lt;p&gt;Jmwinte3: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;/div&gt;</summary>
		<author><name>Jmwinte3</name></author>
	</entry>
	<entry>
		<id>https://wiki.expertiza.ncsu.edu/index.php?title=File:Import_menu_changes.png&amp;diff=163980</id>
		<title>File:Import menu changes.png</title>
		<link rel="alternate" type="text/html" href="https://wiki.expertiza.ncsu.edu/index.php?title=File:Import_menu_changes.png&amp;diff=163980"/>
		<updated>2025-04-16T22:16:34Z</updated>

		<summary type="html">&lt;p&gt;Jmwinte3: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;/div&gt;</summary>
		<author><name>Jmwinte3</name></author>
	</entry>
	<entry>
		<id>https://wiki.expertiza.ncsu.edu/index.php?title=File:Example_import_topic.png&amp;diff=163979</id>
		<title>File:Example import topic.png</title>
		<link rel="alternate" type="text/html" href="https://wiki.expertiza.ncsu.edu/index.php?title=File:Example_import_topic.png&amp;diff=163979"/>
		<updated>2025-04-16T22:14:27Z</updated>

		<summary type="html">&lt;p&gt;Jmwinte3: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;/div&gt;</summary>
		<author><name>Jmwinte3</name></author>
	</entry>
	<entry>
		<id>https://wiki.expertiza.ncsu.edu/index.php?title=File:Adding_individual_topic_with_mentor.png&amp;diff=163978</id>
		<title>File:Adding individual topic with mentor.png</title>
		<link rel="alternate" type="text/html" href="https://wiki.expertiza.ncsu.edu/index.php?title=File:Adding_individual_topic_with_mentor.png&amp;diff=163978"/>
		<updated>2025-04-16T22:13:54Z</updated>

		<summary type="html">&lt;p&gt;Jmwinte3: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;/div&gt;</summary>
		<author><name>Jmwinte3</name></author>
	</entry>
	<entry>
		<id>https://wiki.expertiza.ncsu.edu/index.php?title=CSC/ECE_517_Spring_2025_-_E2527._Mentor-meeting_management:_assignments_with_topics&amp;diff=163977</id>
		<title>CSC/ECE 517 Spring 2025 - E2527. Mentor-meeting management: assignments with topics</title>
		<link rel="alternate" type="text/html" href="https://wiki.expertiza.ncsu.edu/index.php?title=CSC/ECE_517_Spring_2025_-_E2527._Mentor-meeting_management:_assignments_with_topics&amp;diff=163977"/>
		<updated>2025-04-15T16:10:26Z</updated>

		<summary type="html">&lt;p&gt;Jmwinte3: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;__TOC__&lt;br /&gt;
&lt;br /&gt;
==Background==&lt;br /&gt;
In Project E2504, implementation was added for mentors to record their meetings with the teams they were mentoring. It worked for projects where mentors were automatically assigned. To expand the functionality of the mentor management system, we want to incorporate mentors into assignment topics.&lt;br /&gt;
&lt;br /&gt;
==Project Overview==&lt;br /&gt;
The main objective of this project is to extend the mentor management system by having it collaborate with the assignment topics system. When an assignment with topics is created, topics are imported from a spreadsheet into the assignment table. This project will focus on including pre-selected mentors (entered in the spreadsheet) in the assignment table and having the mentor assigned to the team automatically upon topic selection.&lt;br /&gt;
&lt;br /&gt;
==Implementation==&lt;br /&gt;
====Checkbox to alter the Assignment Creation or Import====&lt;br /&gt;
Implementation will include adding a checkbox option when importing to include mentors. This checkbox will toggle whether or not the mentors will be included in the assignment/import. This checkbox will also reload the table to include the additional column required for the mentor's name. Once saved, these mentor names will be stored as an additional attribute in the sign_up_topic. Its important to note that this will not affect how teams and mentors are managed for projects where the entire class has the same project. That will still be handled by the mentors being assigned to a team once that team has reached half capacity. This feature will allow mentors to be associated with project topics in projects where each team has a different topic. For ECE 517 these projects would be the last two Expertiza based projects.&lt;br /&gt;
&lt;br /&gt;
====Automatic Assignment of Mentors====&lt;br /&gt;
After a team has been created, and is allowed to choose a topic from the assignment, the mentor which was assigned to the topic will automatically be assigned to the team. This will be done by adding the mentor to the team and ensuring their can_mentor participant value is true. Given the logic of the previous mentor management implementations, this ensures the participant on the team is recognized as a mentor of any team they are on.&lt;br /&gt;
&lt;br /&gt;
====Importing Topics====&lt;br /&gt;
In order for assignments/topics to have mentors assigned to them before teams are assigned, there needs to be a minor change to the way that topics are imported into expertiza. There should be an optional field that when included associates a mentor with a topic. This will requiring a modification to both the way that topics without associated mentors are imported and the option to import topics with mentors. There should still be a way to edit the mentor manually as well once the topic is imported with or without a mentor&lt;br /&gt;
&lt;br /&gt;
[[File:mentor_checkbox_mockup.png|600px|thumb|Right|This shows where the checkbox will be added as an option to the existing form]]&lt;br /&gt;
&lt;br /&gt;
When project topics are imported (from the Topics tab of the assignment “Import topics” at the bottom of the page) there must be an optional field for mentor&lt;br /&gt;
At the bottom of this page for example http://152.7.178.121:8080/assignments/1028/edit&lt;br /&gt;
&lt;br /&gt;
just as is done now when the team reaches half strength.&lt;br /&gt;
&lt;br /&gt;
this is happening within the mentor_management model here:&lt;br /&gt;
#https://github.com/jmwinte3/expertiza/blob/e566f88436d4c833111086631d0f30c76a5970a2/app/models/mentor_management.rb#L43&lt;br /&gt;
&lt;br /&gt;
====Database====&lt;br /&gt;
We will be implementing the same database as 'teams_users' for our project, specifically using duty_id for assignments of mentors.&lt;br /&gt;
&lt;br /&gt;
==Files That May Be Modified==&lt;br /&gt;
Models:&lt;br /&gt;
#[https://github.com/jmwinte3/expertiza/blob/mentor_meetings/app/models/signed_up_team.rb SignedUpTeam]&lt;br /&gt;
#[https://github.com/jmwinte3/expertiza/blob/mentor_meetings/app/models/sign_up_topic.rb SignUpTopic]&lt;br /&gt;
&lt;br /&gt;
Controller:&lt;br /&gt;
#[https://github.com/jmwinte3/expertiza/blob/mentor_meetings/app/controllers/import_file_controller.rb import_file_controller.rb]&lt;br /&gt;
&lt;br /&gt;
Views:&lt;br /&gt;
#[https://github.com/jmwinte3/expertiza/blob/mentor_meetings/app/views/assignments/edit.html.erb views/assignments/edit/_topics.html.erb]&lt;br /&gt;
#[https://github.com/jmwinte3/expertiza/blob/e566f88436d4c833111086631d0f30c76a5970a2/app/views/import_file/start.html.erb#L2 views/import_file/start]&lt;br /&gt;
#[https://github.com/jmwinte3/expertiza/blob/mentor_meetings/app/views/sign_up_sheet/_add_topics.html.erb views/sign_up_sheet/_add_topics.html.erb]&lt;br /&gt;
#[https://github.com/jmwinte3/expertiza/blob/mentor_meetings/app/views/sign_up_sheet/_table_line.html.erb views/sign_up_sheet/_table_line.html.erb]&lt;br /&gt;
#[https://github.com/jmwinte3/expertiza/blob/mentor_meetings/app/views/sign_up_sheet/_table_header.html.erb views/sign_up_sheet/_table_header.html.erb]&lt;br /&gt;
#[https://github.com/jmwinte3/expertiza/blob/mentor_meetings/app/views/sign_up_sheet/_topic_names.html.erb views/sign_up_sheet/_topic_names.html.erb]&lt;br /&gt;
#[https://github.com/jmwinte3/expertiza/blob/mentor_meetings/app/views/sign_up_sheet/_add_topic.html.erb views/sign_up_sheet/_add_topic.html.erb]&lt;br /&gt;
#[https://github.com/jmwinte3/expertiza/blob/mentor_meetings/app/views/sign_up_sheet/_topic.html.erb views/sign_up_sheet/_topic.html.erb]&lt;br /&gt;
==Testing==&lt;br /&gt;
===Test Plan===&lt;br /&gt;
&lt;br /&gt;
The overarching purpose of these tests is to verify that the system correctly handles mentor assignments in projects where mentors are associated with topics, not directly with teams. Each of these cases will have multiple tests to ensure the proper functionality when there is both a failure and a success. The topics include:&lt;br /&gt;
&lt;br /&gt;
Storing Mentors with Topics: &lt;br /&gt;
  Ensuring that topics can hold information about their assigned mentors.&lt;br /&gt;
  &lt;br /&gt;
Assigning Mentors During Topic Sign-up: &lt;br /&gt;
  Confirming that when a team chooses a topic, the topic's mentor is automatically assigned to that team.&lt;br /&gt;
  &lt;br /&gt;
Assigning Mentors when Teams Reach Half Strength: Ensuring that the existing logic for intelligent assignments still applies.&lt;br /&gt;
  Displaying Mentor Information: Validating that team views accurately show mentor information for mentored assignments and correctly hide it for non-mentored ones.&lt;br /&gt;
    &lt;br /&gt;
Importing Topics with Mentors: Checking that topics imported from files correctly capture and store mentor assignments.&lt;br /&gt;
  Include mentors checkbox updates table: Confirm the table columns are properly updated to include the mentors in the topic&lt;br /&gt;
&lt;br /&gt;
===Test Coverage===&lt;br /&gt;
  Once we have created our tests and made the modifications to the expertiza repository that we have described we will include screenshots of what percentage of the tests fail and show that all functions will hopefully have some coverage in the tests&lt;br /&gt;
&lt;br /&gt;
==Relevant Links==&lt;br /&gt;
* Github: https://github.com/jmwinte3/expertiza &lt;br /&gt;
* E2504 Wiki: https://wiki.expertiza.ncsu.edu/index.php?title=CSC/ECE_517_Spring_2025_-_E2504._Mentor-meeting_management&lt;br /&gt;
* Project Description: https://docs.google.com/document/d/1jjbqggRDiOHrxdsMlliY62JnP34bGTNHVWAZNz89kT8/edit?tab=t.0#heading=h.yeys674t35p3&lt;br /&gt;
&lt;br /&gt;
== Team ==&lt;br /&gt;
===Mentor===&lt;br /&gt;
&lt;br /&gt;
    Ed Gehringer&lt;br /&gt;
&lt;br /&gt;
=== Members ===&lt;br /&gt;
&lt;br /&gt;
    Jacob Winters&lt;br /&gt;
    Alex Wakefield&lt;br /&gt;
    John Buchanan&lt;/div&gt;</summary>
		<author><name>Jmwinte3</name></author>
	</entry>
	<entry>
		<id>https://wiki.expertiza.ncsu.edu/index.php?title=CSC/ECE_517_Spring_2025_-_E2527._Mentor-meeting_management:_assignments_with_topics&amp;diff=163976</id>
		<title>CSC/ECE 517 Spring 2025 - E2527. Mentor-meeting management: assignments with topics</title>
		<link rel="alternate" type="text/html" href="https://wiki.expertiza.ncsu.edu/index.php?title=CSC/ECE_517_Spring_2025_-_E2527._Mentor-meeting_management:_assignments_with_topics&amp;diff=163976"/>
		<updated>2025-04-15T14:13:46Z</updated>

		<summary type="html">&lt;p&gt;Jmwinte3: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;__TOC__&lt;br /&gt;
&lt;br /&gt;
==Background==&lt;br /&gt;
In Project E2504, implementation was added for mentors to record their meetings with the teams they were mentoring. It worked for projects where mentors were automatically assigned. To expand the functionality of the mentor management system, we want to incorporate mentors into assignment topics.&lt;br /&gt;
&lt;br /&gt;
==Project Overview==&lt;br /&gt;
The main objective of this project is to extend the mentor management system by having it collaborate with the assignment topics system. When an assignment with topics is created, topics are imported from a spreadsheet into the assignment table. This project will focus on including pre-selected mentors (entered in the spreadsheet) in the assignment table and having the mentor assigned to the team automatically upon topic selection.&lt;br /&gt;
&lt;br /&gt;
==Implementation==&lt;br /&gt;
====Checkbox to alter the Assignment Creation or Import====&lt;br /&gt;
Implementation will include adding a checkbox option when importing to include mentors. This checkbox will toggle whether or not the mentors will be included in the assignment/import. This checkbox will also reload the table to include the additional column required for the mentor's name. Once saved, these mentor names will be stored as an additional attribute in the sign_up_topic. Its important to note that this will not affect how teams and mentors are managed for projects where the entire class has the same project. That will still be handled by the mentors being assigned to a team once that team has reached half capacity. This feature will allow mentors to be associated with project topics in projects where each team has a different topic. For ECE 517 these projects would be the last two Expertiza based projects.&lt;br /&gt;
&lt;br /&gt;
====Automatic Assignment of Mentors====&lt;br /&gt;
After a team has been created, and is allowed to choose a topic from the assignment, the mentor which was assigned to the topic will automatically be assigned to the team. This will be done by adding the mentor to the team and ensuring their can_mentor participant value is true. Given the logic of the previous mentor management implementations, this ensures the participant on the team is recognized as a mentor of any team they are on.&lt;br /&gt;
&lt;br /&gt;
====Importing Topics====&lt;br /&gt;
In order for assignments/topics to have mentors assigned to them before teams are assigned, there needs to be a minor change to the way that topics are imported into expertiza. There should be an optional field that when included associates a mentor with a topic. This will requiring a modification to both the way that topics without associated mentors are imported and the option to import topics with mentors. There should still be a way to edit the mentor manually as well once the topic is imported with or without a mentor&lt;br /&gt;
&lt;br /&gt;
[[File:mentor_checkbox_mockup.png|600px|thumb|Right|This shows where the checkbox will be added as an option to the existing form]]&lt;br /&gt;
&lt;br /&gt;
When project topics are imported (from the Topics tab of the assignment “Import topics” at the bottom of the page) there must be an optional field for mentor&lt;br /&gt;
At the bottom of this page for example http://152.7.178.121:8080/assignments/1028/edit&lt;br /&gt;
&lt;br /&gt;
just as is done now when the team reaches half strength.&lt;br /&gt;
&lt;br /&gt;
this is happening within the mentor_management model here:&lt;br /&gt;
#https://github.com/jmwinte3/expertiza/blob/e566f88436d4c833111086631d0f30c76a5970a2/app/models/mentor_management.rb#L43&lt;br /&gt;
&lt;br /&gt;
====Database====&lt;br /&gt;
We will be implementing the same database as 'teams_users' for our project, specifically using duty_id for assignments of mentors.&lt;br /&gt;
&lt;br /&gt;
==Files That May Be Modified==&lt;br /&gt;
Models:&lt;br /&gt;
#[https://github.com/jmwinte3/expertiza/blob/mentor_meetings/app/models/signed_up_team.rb SignedUpTeam]&lt;br /&gt;
#[https://github.com/jmwinte3/expertiza/blob/mentor_meetings/app/models/sign_up_topic.rb SignUpTopic]&lt;br /&gt;
&lt;br /&gt;
Controller:&lt;br /&gt;
#[https://github.com/jmwinte3/expertiza/blob/mentor_meetings/app/controllers/import_file_controller.rb import_file_controller.rb]&lt;br /&gt;
&lt;br /&gt;
Views:&lt;br /&gt;
#[https://github.com/jmwinte3/expertiza/blob/mentor_meetings/app/views/assignments/edit.html.erb views/assignments/edit/_topics.html.erb]&lt;br /&gt;
#[https://github.com/jmwinte3/expertiza/blob/e566f88436d4c833111086631d0f30c76a5970a2/app/views/import_file/start.html.erb#L2 views/import_file/start]&lt;br /&gt;
#[https://github.com/jmwinte3/expertiza/blob/mentor_meetings/app/views/sign_up_sheet/_add_topics.html.erb views/sign_up_sheet/_add_topics.html.erb]&lt;br /&gt;
#[https://github.com/jmwinte3/expertiza/blob/mentor_meetings/app/views/sign_up_sheet/_table_line.html.erb views/sign_up_sheet/_table_line.html.erb]&lt;br /&gt;
#[https://github.com/jmwinte3/expertiza/blob/mentor_meetings/app/views/sign_up_sheet/_table_header.html.erb views/sign_up_sheet/_table_header.html.erb]&lt;br /&gt;
#[https://github.com/jmwinte3/expertiza/blob/mentor_meetings/app/views/sign_up_sheet/_topic_names.html.erb views/sign_up_sheet/_topic_names.html.erb]&lt;br /&gt;
#[https://github.com/jmwinte3/expertiza/blob/mentor_meetings/app/views/sign_up_sheet/_add_topic.html.erb views/sign_up_sheet/_add_topic.html.erb]&lt;br /&gt;
&lt;br /&gt;
==Testing==&lt;br /&gt;
===Test Plan===&lt;br /&gt;
&lt;br /&gt;
The overarching purpose of these tests is to verify that the system correctly handles mentor assignments in projects where mentors are associated with topics, not directly with teams. Each of these cases will have multiple tests to ensure the proper functionality when there is both a failure and a success. The topics include:&lt;br /&gt;
&lt;br /&gt;
Storing Mentors with Topics: &lt;br /&gt;
  Ensuring that topics can hold information about their assigned mentors.&lt;br /&gt;
  &lt;br /&gt;
Assigning Mentors During Topic Sign-up: &lt;br /&gt;
  Confirming that when a team chooses a topic, the topic's mentor is automatically assigned to that team.&lt;br /&gt;
  &lt;br /&gt;
Assigning Mentors when Teams Reach Half Strength: Ensuring that the existing logic for intelligent assignments still applies.&lt;br /&gt;
  Displaying Mentor Information: Validating that team views accurately show mentor information for mentored assignments and correctly hide it for non-mentored ones.&lt;br /&gt;
    &lt;br /&gt;
Importing Topics with Mentors: Checking that topics imported from files correctly capture and store mentor assignments.&lt;br /&gt;
  Include mentors checkbox updates table: Confirm the table columns are properly updated to include the mentors in the topic&lt;br /&gt;
&lt;br /&gt;
===Test Coverage===&lt;br /&gt;
  Once we have created our tests and made the modifications to the expertiza repository that we have described we will include screenshots of what percentage of the tests fail and show that all functions will hopefully have some coverage in the tests&lt;br /&gt;
&lt;br /&gt;
==Relevant Links==&lt;br /&gt;
* Github: https://github.com/jmwinte3/expertiza &lt;br /&gt;
* E2504 Wiki: https://wiki.expertiza.ncsu.edu/index.php?title=CSC/ECE_517_Spring_2025_-_E2504._Mentor-meeting_management&lt;br /&gt;
* Project Description: https://docs.google.com/document/d/1jjbqggRDiOHrxdsMlliY62JnP34bGTNHVWAZNz89kT8/edit?tab=t.0#heading=h.yeys674t35p3&lt;br /&gt;
&lt;br /&gt;
== Team ==&lt;br /&gt;
===Mentor===&lt;br /&gt;
&lt;br /&gt;
    Ed Gehringer&lt;br /&gt;
&lt;br /&gt;
=== Members ===&lt;br /&gt;
&lt;br /&gt;
    Jacob Winters&lt;br /&gt;
    Alex Wakefield&lt;br /&gt;
    John Buchanan&lt;/div&gt;</summary>
		<author><name>Jmwinte3</name></author>
	</entry>
	<entry>
		<id>https://wiki.expertiza.ncsu.edu/index.php?title=CSC/ECE_517_Spring_2025_-_E2527._Mentor-meeting_management:_assignments_with_topics&amp;diff=163969</id>
		<title>CSC/ECE 517 Spring 2025 - E2527. Mentor-meeting management: assignments with topics</title>
		<link rel="alternate" type="text/html" href="https://wiki.expertiza.ncsu.edu/index.php?title=CSC/ECE_517_Spring_2025_-_E2527._Mentor-meeting_management:_assignments_with_topics&amp;diff=163969"/>
		<updated>2025-04-14T20:13:49Z</updated>

		<summary type="html">&lt;p&gt;Jmwinte3: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;__TOC__&lt;br /&gt;
&lt;br /&gt;
==Background==&lt;br /&gt;
In Project E2504, implementation was added for mentors to record their meetings with the teams they were mentoring. It worked for projects where mentors were automatically assigned. To expand the functionality of the mentor management system, we want to incorporate mentors into assignment topics.&lt;br /&gt;
&lt;br /&gt;
==Project Overview==&lt;br /&gt;
The main objective of this project is to extend the mentor management system by having it collaborate with the assignment topics system. When an assignment with topics is created, topics are imported from a spreadsheet into the assignment table. This project will focus on including pre-selected mentors (entered in the spreadsheet) in the assignment table and having the mentor assigned to the team automatically upon topic selection.&lt;br /&gt;
&lt;br /&gt;
==Implementation==&lt;br /&gt;
====Checkbox to alter the Assignment Creation or Import====&lt;br /&gt;
Implementation will include adding a checkbox option when importing to include mentors. This checkbox will toggle whether or not the mentors will be included in the assignment/import. This checkbox will also reload the table to include the additional column required for the mentor's name. Once saved, these mentor names will be stored as an additional attribute in the sign_up_topic. Its important to note that this will not affect how teams and mentors are managed for projects where the entire class has the same project. That will still be handled by the mentors being assigned to a team once that team has reached half capacity. This feature will allow mentors to be associated with project topics in projects where each team has a different topic. For ECE 517 these projects would be the last two Expertiza based projects.&lt;br /&gt;
&lt;br /&gt;
====Automatic Assignment of Mentors====&lt;br /&gt;
After a team has been created, and is allowed to choose a topic from the assignment, the mentor which was assigned to the topic will automatically be assigned to the team. This will be done by adding the mentor to the team and ensuring their can_mentor participant value is true. Given the logic of the previous mentor management implementations, this ensures the participant on the team is recognized as a mentor of any team they are on.&lt;br /&gt;
&lt;br /&gt;
====Importing Topics====&lt;br /&gt;
In order for assignments/topics to have mentors assigned to them before teams are assigned, there needs to be a minor change to the way that topics are imported into expertiza. There should be an optional field that when included associates a mentor with a topic. This will requiring a modification to both the way that topics without associated mentors are imported and the option to import topics with mentors. There should still be a way to edit the mentor manually as well once the topic is imported with or without a mentor&lt;br /&gt;
&lt;br /&gt;
[[File:mentor_checkbox_mockup.png|600px|thumb|Right|This shows where the checkbox will be added as an option to the existing form]]&lt;br /&gt;
&lt;br /&gt;
When project topics are imported (from the Topics tab of the assignment “Import topics” at the bottom of the page) there must be an optional field for mentor&lt;br /&gt;
At the bottom of this page for example http://152.7.178.121:8080/assignments/1028/edit&lt;br /&gt;
&lt;br /&gt;
just as is done now when the team reaches half strength.&lt;br /&gt;
&lt;br /&gt;
this is happening within the mentor_management model here:&lt;br /&gt;
#https://github.com/jmwinte3/expertiza/blob/e566f88436d4c833111086631d0f30c76a5970a2/app/models/mentor_management.rb#L43&lt;br /&gt;
&lt;br /&gt;
====Database====&lt;br /&gt;
We will be implementing the same database as 'teams_users' for our project, specifically using duty_id for assignments of mentors.&lt;br /&gt;
&lt;br /&gt;
==Files That May Be Modified==&lt;br /&gt;
Models:&lt;br /&gt;
#[https://github.com/jmwinte3/expertiza/blob/mentor_meetings/app/models/signed_up_team.rb SignedUpTeam]&lt;br /&gt;
#[https://github.com/jmwinte3/expertiza/blob/mentor_meetings/app/models/sign_up_topic.rb SignUpTopic]&lt;br /&gt;
&lt;br /&gt;
Controller:&lt;br /&gt;
#[https://github.com/jmwinte3/expertiza/blob/mentor_meetings/app/controllers/import_file_controller.rb import_file_controller.rb]&lt;br /&gt;
&lt;br /&gt;
Views:&lt;br /&gt;
#[https://github.com/jmwinte3/expertiza/blob/mentor_meetings/app/views/assignments/edit.html.erb views/assignments/edit/_topics.html.erb]&lt;br /&gt;
#[https://github.com/jmwinte3/expertiza/blob/e566f88436d4c833111086631d0f30c76a5970a2/app/views/import_file/start.html.erb#L2 views/import_file/start]&lt;br /&gt;
#[https://github.com/jmwinte3/expertiza/blob/mentor_meetings/app/views/sign_up_sheet/_add_topics.html.erb views/sign_up_sheet/_add_topics.html.erb]&lt;br /&gt;
#[https://github.com/jmwinte3/expertiza/blob/mentor_meetings/app/views/sign_up_sheet/_table_line.html.erb views/sign_up_sheet/_table_line.html.erb]&lt;br /&gt;
#[https://github.com/jmwinte3/expertiza/blob/mentor_meetings/app/views/sign_up_sheet/_topic_names.html.erb views/sign_up_sheet/_topic_names.html.erb]&lt;br /&gt;
#[https://github.com/jmwinte3/expertiza/blob/mentor_meetings/app/views/sign_up_sheet/_add_topic.html.erb views/sign_up_sheet/_add_topic.html.erb]&lt;br /&gt;
&lt;br /&gt;
==Testing==&lt;br /&gt;
===Test Plan===&lt;br /&gt;
&lt;br /&gt;
The overarching purpose of these tests is to verify that the system correctly handles mentor assignments in projects where mentors are associated with topics, not directly with teams. Each of these cases will have multiple tests to ensure the proper functionality when there is both a failure and a success. The topics include:&lt;br /&gt;
&lt;br /&gt;
Storing Mentors with Topics: &lt;br /&gt;
  Ensuring that topics can hold information about their assigned mentors.&lt;br /&gt;
  &lt;br /&gt;
Assigning Mentors During Topic Sign-up: &lt;br /&gt;
  Confirming that when a team chooses a topic, the topic's mentor is automatically assigned to that team.&lt;br /&gt;
  &lt;br /&gt;
Assigning Mentors when Teams Reach Half Strength: Ensuring that the existing logic for intelligent assignments still applies.&lt;br /&gt;
  Displaying Mentor Information: Validating that team views accurately show mentor information for mentored assignments and correctly hide it for non-mentored ones.&lt;br /&gt;
    &lt;br /&gt;
Importing Topics with Mentors: Checking that topics imported from files correctly capture and store mentor assignments.&lt;br /&gt;
  Include mentors checkbox updates table: Confirm the table columns are properly updated to include the mentors in the topic&lt;br /&gt;
&lt;br /&gt;
===Test Coverage===&lt;br /&gt;
  Once we have created our tests and made the modifications to the expertiza repository that we have described we will include screenshots of what percentage of the tests fail and show that all functions will hopefully have some coverage in the tests&lt;br /&gt;
&lt;br /&gt;
==Relevant Links==&lt;br /&gt;
* Github: https://github.com/jmwinte3/expertiza &lt;br /&gt;
* E2504 Wiki: https://wiki.expertiza.ncsu.edu/index.php?title=CSC/ECE_517_Spring_2025_-_E2504._Mentor-meeting_management&lt;br /&gt;
* Project Description: https://docs.google.com/document/d/1jjbqggRDiOHrxdsMlliY62JnP34bGTNHVWAZNz89kT8/edit?tab=t.0#heading=h.yeys674t35p3&lt;br /&gt;
&lt;br /&gt;
== Team ==&lt;br /&gt;
===Mentor===&lt;br /&gt;
&lt;br /&gt;
    Ed Gehringer&lt;br /&gt;
&lt;br /&gt;
=== Members ===&lt;br /&gt;
&lt;br /&gt;
    Jacob Winters&lt;br /&gt;
    Alex Wakefield&lt;br /&gt;
    John Buchanan&lt;/div&gt;</summary>
		<author><name>Jmwinte3</name></author>
	</entry>
	<entry>
		<id>https://wiki.expertiza.ncsu.edu/index.php?title=CSC/ECE_517_Spring_2025_-_E2527._Mentor-meeting_management:_assignments_with_topics&amp;diff=163968</id>
		<title>CSC/ECE 517 Spring 2025 - E2527. Mentor-meeting management: assignments with topics</title>
		<link rel="alternate" type="text/html" href="https://wiki.expertiza.ncsu.edu/index.php?title=CSC/ECE_517_Spring_2025_-_E2527._Mentor-meeting_management:_assignments_with_topics&amp;diff=163968"/>
		<updated>2025-04-14T20:13:00Z</updated>

		<summary type="html">&lt;p&gt;Jmwinte3: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;__TOC__&lt;br /&gt;
&lt;br /&gt;
==Background==&lt;br /&gt;
In Project E2504, implementation was added for mentors to record their meetings with the teams they were mentoring. It worked for projects where mentors were automatically assigned. To expand the functionality of the mentor management system, we want to incorporate mentors into assignment topics.&lt;br /&gt;
&lt;br /&gt;
==Project Overview==&lt;br /&gt;
The main objective of this project is to extend the mentor management system by having it collaborate with the assignment topics system. When an assignment with topics is created, topics are imported from a spreadsheet into the assignment table. This project will focus on including pre-selected mentors (entered in the spreadsheet) in the assignment table and having the mentor assigned to the team automatically upon topic selection.&lt;br /&gt;
&lt;br /&gt;
==Implementation==&lt;br /&gt;
====Checkbox to alter the Assignment Creation or Import====&lt;br /&gt;
Implementation will include adding a checkbox option when importing to include mentors. This checkbox will toggle whether or not the mentors will be included in the assignment/import. This checkbox will also reload the table to include the additional column required for the mentor's name. Once saved, these mentor names will be stored as an additional attribute in the sign_up_topic. Its important to note that this will not affect how teams and mentors are managed for projects where the entire class has the same project. That will still be handled by the mentors being assigned to a team once that team has reached half capacity. This feature will allow mentors to be associated with project topics in projects where each team has a different topic. For ECE 517 these projects would be the last two Expertiza based projects.&lt;br /&gt;
&lt;br /&gt;
====Automatic Assignment of Mentors====&lt;br /&gt;
After a team has been created, and is allowed to choose a topic from the assignment, the mentor which was assigned to the topic will automatically be assigned to the team. This will be done by adding the mentor to the team and ensuring their can_mentor participant value is true. Given the logic of the previous mentor management implementations, this ensures the participant on the team is recognized as a mentor of any team they are on.&lt;br /&gt;
&lt;br /&gt;
====Importing Topics====&lt;br /&gt;
In order for assignments/topics to have mentors assigned to them before teams are assigned, there needs to be a minor change to the way that topics are imported into expertiza. There should be an optional field that when included associates a mentor with a topic. This will requiring a modification to both the way that topics without associated mentors are imported and the option to import topics with mentors. There should still be a way to edit the mentor manually as well once the topic is imported with or without a mentor&lt;br /&gt;
&lt;br /&gt;
[[File:mentor_checkbox_mockup.png|600px|thumb|Right|This shows where the checkbox will be added as an option to the existing form]]&lt;br /&gt;
&lt;br /&gt;
When project topics are imported (from the Topics tab of the assignment “Import topics” at the bottom of the page) there must be an optional field for mentor&lt;br /&gt;
At the bottom of this page for example http://152.7.178.121:8080/assignments/1028/edit&lt;br /&gt;
&lt;br /&gt;
just as is done now when the team reaches half strength.&lt;br /&gt;
&lt;br /&gt;
this is happening within the mentor_management model here:&lt;br /&gt;
#https://github.com/jmwinte3/expertiza/blob/e566f88436d4c833111086631d0f30c76a5970a2/app/models/mentor_management.rb#L43&lt;br /&gt;
&lt;br /&gt;
====Database====&lt;br /&gt;
We will be implementing the same database as 'teams_users' for our project, specifically using duty_id for assignments of mentors.&lt;br /&gt;
&lt;br /&gt;
==Files That May Be Modified==&lt;br /&gt;
Models:&lt;br /&gt;
#SignedUpTeam: https://github.com/jmwinte3/expertiza/blob/mentor_meetings/app/models/signed_up_team.rb&lt;br /&gt;
#SignUpTopic: https://github.com/jmwinte3/expertiza/blob/mentor_meetings/app/models/sign_up_topic.rb&lt;br /&gt;
&lt;br /&gt;
Controller:&lt;br /&gt;
#import_file_controller.rb https://github.com/jmwinte3/expertiza/blob/mentor_meetings/app/controllers/import_file_controller.rb&lt;br /&gt;
&lt;br /&gt;
Views:&lt;br /&gt;
#[https://github.com/jmwinte3/expertiza/blob/mentor_meetings/app/views/assignments/edit.html.erb views/assignments/edit/_topics.html.erb]&lt;br /&gt;
#[https://github.com/jmwinte3/expertiza/blob/e566f88436d4c833111086631d0f30c76a5970a2/app/views/import_file/start.html.erb#L2 views/import_file/start]&lt;br /&gt;
#[https://github.com/jmwinte3/expertiza/blob/mentor_meetings/app/views/sign_up_sheet/_add_topics.html.erb views/sign_up_sheet/_add_topics.html.erb]&lt;br /&gt;
#[https://github.com/jmwinte3/expertiza/blob/mentor_meetings/app/views/sign_up_sheet/_table_line.html.erb views/sign_up_sheet/_table_line.html.erb]&lt;br /&gt;
#[https://github.com/jmwinte3/expertiza/blob/mentor_meetings/app/views/sign_up_sheet/_topic_names.html.erb views/sign_up_sheet/_topic_names.html.erb]&lt;br /&gt;
#[https://github.com/jmwinte3/expertiza/blob/mentor_meetings/app/views/sign_up_sheet/_add_topic.html.erb views/sign_up_sheet/_add_topic.html.erb]&lt;br /&gt;
&lt;br /&gt;
==Testing==&lt;br /&gt;
===Test Plan===&lt;br /&gt;
&lt;br /&gt;
The overarching purpose of these tests is to verify that the system correctly handles mentor assignments in projects where mentors are associated with topics, not directly with teams. Each of these cases will have multiple tests to ensure the proper functionality when there is both a failure and a success. The topics include:&lt;br /&gt;
&lt;br /&gt;
Storing Mentors with Topics: &lt;br /&gt;
  Ensuring that topics can hold information about their assigned mentors.&lt;br /&gt;
  &lt;br /&gt;
Assigning Mentors During Topic Sign-up: &lt;br /&gt;
  Confirming that when a team chooses a topic, the topic's mentor is automatically assigned to that team.&lt;br /&gt;
  &lt;br /&gt;
Assigning Mentors when Teams Reach Half Strength: Ensuring that the existing logic for intelligent assignments still applies.&lt;br /&gt;
  Displaying Mentor Information: Validating that team views accurately show mentor information for mentored assignments and correctly hide it for non-mentored ones.&lt;br /&gt;
    &lt;br /&gt;
Importing Topics with Mentors: Checking that topics imported from files correctly capture and store mentor assignments.&lt;br /&gt;
  Include mentors checkbox updates table: Confirm the table columns are properly updated to include the mentors in the topic&lt;br /&gt;
&lt;br /&gt;
===Test Coverage===&lt;br /&gt;
  Once we have created our tests and made the modifications to the expertiza repository that we have described we will include screenshots of what percentage of the tests fail and show that all functions will hopefully have some coverage in the tests&lt;br /&gt;
&lt;br /&gt;
==Relevant Links==&lt;br /&gt;
* Github: https://github.com/jmwinte3/expertiza &lt;br /&gt;
* E2504 Wiki: https://wiki.expertiza.ncsu.edu/index.php?title=CSC/ECE_517_Spring_2025_-_E2504._Mentor-meeting_management&lt;br /&gt;
* Project Description: https://docs.google.com/document/d/1jjbqggRDiOHrxdsMlliY62JnP34bGTNHVWAZNz89kT8/edit?tab=t.0#heading=h.yeys674t35p3&lt;br /&gt;
&lt;br /&gt;
== Team ==&lt;br /&gt;
===Mentor===&lt;br /&gt;
&lt;br /&gt;
    Ed Gehringer&lt;br /&gt;
&lt;br /&gt;
=== Members ===&lt;br /&gt;
&lt;br /&gt;
    Jacob Winters&lt;br /&gt;
    Alex Wakefield&lt;br /&gt;
    John Buchanan&lt;/div&gt;</summary>
		<author><name>Jmwinte3</name></author>
	</entry>
	<entry>
		<id>https://wiki.expertiza.ncsu.edu/index.php?title=CSC/ECE_517_Spring_2025_-_E2527._Mentor-meeting_management:_assignments_with_topics&amp;diff=163967</id>
		<title>CSC/ECE 517 Spring 2025 - E2527. Mentor-meeting management: assignments with topics</title>
		<link rel="alternate" type="text/html" href="https://wiki.expertiza.ncsu.edu/index.php?title=CSC/ECE_517_Spring_2025_-_E2527._Mentor-meeting_management:_assignments_with_topics&amp;diff=163967"/>
		<updated>2025-04-14T20:11:17Z</updated>

		<summary type="html">&lt;p&gt;Jmwinte3: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;__TOC__&lt;br /&gt;
&lt;br /&gt;
==Background==&lt;br /&gt;
In Project E2504, implementation was added for mentors to record their meetings with the teams they were mentoring. It worked for projects where mentors were automatically assigned. To expand the functionality of the mentor management system, we want to incorporate mentors into assignment topics.&lt;br /&gt;
&lt;br /&gt;
==Project Overview==&lt;br /&gt;
The main objective of this project is to extend the mentor management system by having it collaborate with the assignment topics system. When an assignment with topics is created, topics are imported from a spreadsheet into the assignment table. This project will focus on including pre-selected mentors (entered in the spreadsheet) in the assignment table and having the mentor assigned to the team automatically upon topic selection.&lt;br /&gt;
&lt;br /&gt;
==Implementation==&lt;br /&gt;
====Checkbox to alter the Assignment Creation or Import====&lt;br /&gt;
Implementation will include adding a checkbox option when importing to include mentors. This checkbox will toggle whether or not the mentors will be included in the assignment/import. This checkbox will also reload the table to include the additional column required for the mentor's name. Once saved, these mentor names will be stored as an additional attribute in the sign_up_topic. Its important to note that this will not affect how teams and mentors are managed for projects where the entire class has the same project. That will still be handled by the mentors being assigned to a team once that team has reached half capacity. This feature will allow mentors to be associated with project topics in projects where each team has a different topic. For ECE 517 these projects would be the last two Expertiza based projects.&lt;br /&gt;
&lt;br /&gt;
====Automatic Assignment of Mentors====&lt;br /&gt;
After a team has been created, and is allowed to choose a topic from the assignment, the mentor which was assigned to the topic will automatically be assigned to the team. This will be done by adding the mentor to the team and ensuring their can_mentor participant value is true. Given the logic of the previous mentor management implementations, this ensures the participant on the team is recognized as a mentor of any team they are on.&lt;br /&gt;
&lt;br /&gt;
====Importing Topics====&lt;br /&gt;
In order for assignments/topics to have mentors assigned to them before teams are assigned, there needs to be a minor change to the way that topics are imported into expertiza. There should be an optional field that when included associates a mentor with a topic. This will requiring a modification to both the way that topics without associated mentors are imported and the option to import topics with mentors. There should still be a way to edit the mentor manually as well once the topic is imported with or without a mentor&lt;br /&gt;
&lt;br /&gt;
[[File:mentor_checkbox_mockup.png|600px|thumb|Right|This shows where the checkbox will be added as an option to the existing form]]&lt;br /&gt;
&lt;br /&gt;
When project topics are imported (from the Topics tab of the assignment “Import topics” at the bottom of the page) there must be an optional field for mentor&lt;br /&gt;
At the bottom of this page for example http://152.7.178.121:8080/assignments/1028/edit&lt;br /&gt;
&lt;br /&gt;
just as is done now when the team reaches half strength.&lt;br /&gt;
&lt;br /&gt;
this is happening within the mentor_management model here:&lt;br /&gt;
#https://github.com/jmwinte3/expertiza/blob/e566f88436d4c833111086631d0f30c76a5970a2/app/models/mentor_management.rb#L43&lt;br /&gt;
&lt;br /&gt;
====Database====&lt;br /&gt;
We will be implementing the same database as 'teams_users' for our project, specifically using duty_id for assignments of mentors.&lt;br /&gt;
&lt;br /&gt;
==Files That May Be Modified==&lt;br /&gt;
Models:&lt;br /&gt;
#SignedUpTeam: https://github.com/jmwinte3/expertiza/blob/mentor_meetings/app/models/signed_up_team.rb&lt;br /&gt;
#SignUpTopic: https://github.com/jmwinte3/expertiza/blob/mentor_meetings/app/models/sign_up_topic.rb&lt;br /&gt;
&lt;br /&gt;
Controller:&lt;br /&gt;
#import_file_controller.rb https://github.com/jmwinte3/expertiza/blob/mentor_meetings/app/controllers/import_file_controller.rb&lt;br /&gt;
&lt;br /&gt;
Views:&lt;br /&gt;
#its in [https://github.com/jmwinte3/expertiza/blob/mentor_meetings/app/views/assignments/edit.html.erb views/assignments/edit/_topics.html.erb]&lt;br /&gt;
#views/import_file/start: https://github.com/jmwinte3/expertiza/blob/e566f88436d4c833111086631d0f30c76a5970a2/app/views/import_file/start.html.erb#L2&lt;br /&gt;
#views/sign_up_sheet/_add_topics.html.erb https://github.com/jmwinte3/expertiza/blob/mentor_meetings/app/views/sign_up_sheet/_add_topics.html.erb&lt;br /&gt;
#views/sign_up_sheet/_table_line.html.erb https://github.com/jmwinte3/expertiza/blob/mentor_meetings/app/views/sign_up_sheet/_table_line.html.erb&lt;br /&gt;
#views/sign_up_sheet/_topic_names .html.erb https://github.com/jmwinte3/expertiza/blob/mentor_meetings/app/views/sign_up_sheet/_topic_names.html.erb&lt;br /&gt;
#views/sign_up_sheet/_add_topic.html.erb https://github.com/jmwinte3/expertiza/blob/mentor_meetings/app/views/sign_up_sheet/_add_topic.html.erb&lt;br /&gt;
&lt;br /&gt;
==Testing==&lt;br /&gt;
===Test Plan===&lt;br /&gt;
&lt;br /&gt;
The overarching purpose of these tests is to verify that the system correctly handles mentor assignments in projects where mentors are associated with topics, not directly with teams. Each of these cases will have multiple tests to ensure the proper functionality when there is both a failure and a success. The topics include:&lt;br /&gt;
&lt;br /&gt;
Storing Mentors with Topics: &lt;br /&gt;
  Ensuring that topics can hold information about their assigned mentors.&lt;br /&gt;
  &lt;br /&gt;
Assigning Mentors During Topic Sign-up: &lt;br /&gt;
  Confirming that when a team chooses a topic, the topic's mentor is automatically assigned to that team.&lt;br /&gt;
  &lt;br /&gt;
Assigning Mentors when Teams Reach Half Strength: Ensuring that the existing logic for intelligent assignments still applies.&lt;br /&gt;
  Displaying Mentor Information: Validating that team views accurately show mentor information for mentored assignments and correctly hide it for non-mentored ones.&lt;br /&gt;
    &lt;br /&gt;
Importing Topics with Mentors: Checking that topics imported from files correctly capture and store mentor assignments.&lt;br /&gt;
  Include mentors checkbox updates table: Confirm the table columns are properly updated to include the mentors in the topic&lt;br /&gt;
&lt;br /&gt;
===Test Coverage===&lt;br /&gt;
  Once we have created our tests and made the modifications to the expertiza repository that we have described we will include screenshots of what percentage of the tests fail and show that all functions will hopefully have some coverage in the tests&lt;br /&gt;
&lt;br /&gt;
==Relevant Links==&lt;br /&gt;
* Github: https://github.com/jmwinte3/expertiza &lt;br /&gt;
* E2504 Wiki: https://wiki.expertiza.ncsu.edu/index.php?title=CSC/ECE_517_Spring_2025_-_E2504._Mentor-meeting_management&lt;br /&gt;
* Project Description: https://docs.google.com/document/d/1jjbqggRDiOHrxdsMlliY62JnP34bGTNHVWAZNz89kT8/edit?tab=t.0#heading=h.yeys674t35p3&lt;br /&gt;
&lt;br /&gt;
== Team ==&lt;br /&gt;
===Mentor===&lt;br /&gt;
&lt;br /&gt;
    Ed Gehringer&lt;br /&gt;
&lt;br /&gt;
=== Members ===&lt;br /&gt;
&lt;br /&gt;
    Jacob Winters&lt;br /&gt;
    Alex Wakefield&lt;br /&gt;
    John Buchanan&lt;/div&gt;</summary>
		<author><name>Jmwinte3</name></author>
	</entry>
	<entry>
		<id>https://wiki.expertiza.ncsu.edu/index.php?title=CSC/ECE_517_Spring_2025_-_E2527._Mentor-meeting_management:_assignments_with_topics&amp;diff=163966</id>
		<title>CSC/ECE 517 Spring 2025 - E2527. Mentor-meeting management: assignments with topics</title>
		<link rel="alternate" type="text/html" href="https://wiki.expertiza.ncsu.edu/index.php?title=CSC/ECE_517_Spring_2025_-_E2527._Mentor-meeting_management:_assignments_with_topics&amp;diff=163966"/>
		<updated>2025-04-14T20:08:37Z</updated>

		<summary type="html">&lt;p&gt;Jmwinte3: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;__TOC__&lt;br /&gt;
&lt;br /&gt;
==Background==&lt;br /&gt;
In Project E2504, implementation was added for mentors to record their meetings with the teams they were mentoring. It worked for projects where mentors were automatically assigned. To expand the functionality of the mentor management system, we want to incorporate mentors into assignment topics.&lt;br /&gt;
&lt;br /&gt;
==Project Overview==&lt;br /&gt;
The main objective of this project is to extend the mentor management system by having it collaborate with the assignment topics system. When an assignment with topics is created, topics are imported from a spreadsheet into the assignment table. This project will focus on including pre-selected mentors (entered in the spreadsheet) in the assignment table and having the mentor assigned to the team automatically upon topic selection.&lt;br /&gt;
&lt;br /&gt;
==Implementation==&lt;br /&gt;
====Checkbox to alter the Assignment Creation or Import====&lt;br /&gt;
Implementation will include adding a checkbox option when importing to include mentors. This checkbox will toggle whether or not the mentors will be included in the assignment/import. This checkbox will also reload the table to include the additional column required for the mentor's name. Once saved, these mentor names will be stored as an additional attribute in the sign_up_topic. Its important to note that this will not affect how teams and mentors are managed for projects where the entire class has the same project. That will still be handled by the mentors being assigned to a team once that team has reached half capacity. This feature will allow mentors to be associated with project topics in projects where each team has a different topic. For ECE 517 these projects would be the last two Expertiza based projects.&lt;br /&gt;
&lt;br /&gt;
====Automatic Assignment of Mentors====&lt;br /&gt;
After a team has been created, and is allowed to choose a topic from the assignment, the mentor which was assigned to the topic will automatically be assigned to the team. This will be done by adding the mentor to the team and ensuring their can_mentor participant value is true. Given the logic of the previous mentor management implementations, this ensures the participant on the team is recognized as a mentor of any team they are on.&lt;br /&gt;
&lt;br /&gt;
====Importing Topics====&lt;br /&gt;
In order for assignments/topics to have mentors assigned to them before teams are assigned, there needs to be a minor change to the way that topics are imported into expertiza. There should be an optional field that when included associates a mentor with a topic. This will requiring a modification to both the way that topics without associated mentors are imported and the option to import topics with mentors. There should still be a way to edit the mentor manually as well once the topic is imported with or without a mentor&lt;br /&gt;
&lt;br /&gt;
[[File:mentor_checkbox_mockup.png|600px|thumb|Right|This shows where the checkbox will be added as an option to the existing form]]&lt;br /&gt;
&lt;br /&gt;
When project topics are imported (from the Topics tab of the assignment “Import topics” at the bottom of the page) there must be an optional field for mentor&lt;br /&gt;
At the bottom of this page for example http://152.7.178.121:8080/assignments/1028/edit&lt;br /&gt;
&lt;br /&gt;
just as is done now when the team reaches half strength.&lt;br /&gt;
&lt;br /&gt;
this is happening within the mentor_management model here:&lt;br /&gt;
#https://github.com/jmwinte3/expertiza/blob/e566f88436d4c833111086631d0f30c76a5970a2/app/models/mentor_management.rb#L43&lt;br /&gt;
&lt;br /&gt;
====Database====&lt;br /&gt;
We will be implementing the same database as 'teams_users' for our project, specifically using duty_id for assignments of mentors.&lt;br /&gt;
&lt;br /&gt;
==Files That May Be Modified==&lt;br /&gt;
Models:&lt;br /&gt;
#SignedUpTeam: https://github.com/jmwinte3/expertiza/blob/mentor_meetings/app/models/signed_up_team.rb&lt;br /&gt;
#SignUpTopic: https://github.com/jmwinte3/expertiza/blob/mentor_meetings/app/models/sign_up_topic.rb&lt;br /&gt;
&lt;br /&gt;
Controller:&lt;br /&gt;
#import_file_controller.rb https://github.com/jmwinte3/expertiza/blob/mentor_meetings/app/controllers/import_file_controller.rb&lt;br /&gt;
&lt;br /&gt;
Views:&lt;br /&gt;
#its in views/assignments/edit/_topics.html.erb: https://github.com/jmwinte3/expertiza/blob/mentor_meetings/app/views/assignments/edit.html.erb &lt;br /&gt;
#views/import_file/start: https://github.com/jmwinte3/expertiza/blob/e566f88436d4c833111086631d0f30c76a5970a2/app/views/import_file/start.html.erb#L2&lt;br /&gt;
#views/sign_up_sheet/_add_topics.html.erb https://github.com/jmwinte3/expertiza/blob/mentor_meetings/app/views/sign_up_sheet/_add_topics.html.erb&lt;br /&gt;
#views/sign_up_sheet/_table_line.html.erb https://github.com/jmwinte3/expertiza/blob/mentor_meetings/app/views/sign_up_sheet/_table_line.html.erb&lt;br /&gt;
#views/sign_up_sheet/_topic_names .html.erb https://github.com/jmwinte3/expertiza/blob/mentor_meetings/app/views/sign_up_sheet/_topic_names.html.erb&lt;br /&gt;
#views/sign_up_sheet/_add_topic.html.erb https://github.com/jmwinte3/expertiza/blob/mentor_meetings/app/views/sign_up_sheet/_add_topic.html.erb&lt;br /&gt;
&lt;br /&gt;
==Testing==&lt;br /&gt;
===Test Plan===&lt;br /&gt;
&lt;br /&gt;
The overarching purpose of these tests is to verify that the system correctly handles mentor assignments in projects where mentors are associated with topics, not directly with teams. Each of these cases will have multiple tests to ensure the proper functionality when there is both a failure and a success. The topics include:&lt;br /&gt;
&lt;br /&gt;
Storing Mentors with Topics: &lt;br /&gt;
  Ensuring that topics can hold information about their assigned mentors.&lt;br /&gt;
  &lt;br /&gt;
Assigning Mentors During Topic Sign-up: &lt;br /&gt;
  Confirming that when a team chooses a topic, the topic's mentor is automatically assigned to that team.&lt;br /&gt;
  &lt;br /&gt;
Assigning Mentors when Teams Reach Half Strength: Ensuring that the existing logic for intelligent assignments still applies.&lt;br /&gt;
  Displaying Mentor Information: Validating that team views accurately show mentor information for mentored assignments and correctly hide it for non-mentored ones.&lt;br /&gt;
    &lt;br /&gt;
Importing Topics with Mentors: Checking that topics imported from files correctly capture and store mentor assignments.&lt;br /&gt;
  Include mentors checkbox updates table: Confirm the table columns are properly updated to include the mentors in the topic&lt;br /&gt;
&lt;br /&gt;
===Test Coverage===&lt;br /&gt;
  Once we have created our tests and made the modifications to the expertiza repository that we have described we will include screenshots of what percentage of the tests fail and show that all functions will hopefully have some coverage in the tests&lt;br /&gt;
&lt;br /&gt;
==Relevant Links==&lt;br /&gt;
* Github: https://github.com/jmwinte3/expertiza &lt;br /&gt;
* E2504 Wiki: https://wiki.expertiza.ncsu.edu/index.php?title=CSC/ECE_517_Spring_2025_-_E2504._Mentor-meeting_management&lt;br /&gt;
* Project Description: https://docs.google.com/document/d/1jjbqggRDiOHrxdsMlliY62JnP34bGTNHVWAZNz89kT8/edit?tab=t.0#heading=h.yeys674t35p3&lt;br /&gt;
&lt;br /&gt;
== Team ==&lt;br /&gt;
===Mentor===&lt;br /&gt;
&lt;br /&gt;
    Ed Gehringer&lt;br /&gt;
&lt;br /&gt;
=== Members ===&lt;br /&gt;
&lt;br /&gt;
    Jacob Winters&lt;br /&gt;
    Alex Wakefield&lt;br /&gt;
    John Buchanan&lt;/div&gt;</summary>
		<author><name>Jmwinte3</name></author>
	</entry>
	<entry>
		<id>https://wiki.expertiza.ncsu.edu/index.php?title=CSC/ECE_517_Spring_2025_-_E2527._Mentor-meeting_management:_assignments_with_topics&amp;diff=163462</id>
		<title>CSC/ECE 517 Spring 2025 - E2527. Mentor-meeting management: assignments with topics</title>
		<link rel="alternate" type="text/html" href="https://wiki.expertiza.ncsu.edu/index.php?title=CSC/ECE_517_Spring_2025_-_E2527._Mentor-meeting_management:_assignments_with_topics&amp;diff=163462"/>
		<updated>2025-04-07T22:50:16Z</updated>

		<summary type="html">&lt;p&gt;Jmwinte3: /* Test Plan */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;__TOC__&lt;br /&gt;
&lt;br /&gt;
==Background==&lt;br /&gt;
In Project E2504, implementation was added for mentors to record their meetings with the teams they were mentoring. It worked for projects where mentors were automatically assigned. To expand the functionality of the mentor management system, we want to incorporate mentors into assignment topics.&lt;br /&gt;
&lt;br /&gt;
==Project Overview==&lt;br /&gt;
The main objective of this project is to extend the mentor management system by having it collaborate with the assignment topics system. When an assignment with topics is created, topics are imported from a spreadsheet into the assignment table. This project will focus on including pre-selected mentors (entered in the spreadsheet) in the assignment table and having the mentor assigned to the team automatically upon topic selection.&lt;br /&gt;
&lt;br /&gt;
==Implementation==&lt;br /&gt;
====Checkbox to alter the Assignment Creation or Import====&lt;br /&gt;
Implementation will include adding a checkbox option at the top of the page with the other checkbox options. This checkbox will toggle whether or not the mentors will be included in the assignment/import. This checkbox will also reload the table to include the additional column required for the mentor's name. Once saved, these mentor names will be stored as an additional attribute in the sign_up_topic&lt;br /&gt;
&lt;br /&gt;
====Automatic Assignment of Mentors====&lt;br /&gt;
After a team has been created, and is allowed to choose a topic from the assignment, the mentor which was assigned to the topic will automatically be assigned to the team. This will be done by adding the mentor to the team and ensuring their can_mentor participant value is true. Given the logic of the previous mentor management implementations, this ensures the participant on the team is recognized as a mentor of any team they are on.&lt;br /&gt;
&lt;br /&gt;
====Importing Topics====&lt;br /&gt;
In order for assignments/topics to have mentors assigned to them before teams are assigned, there needs to be a minor change to the way that files are imported into expertiza. There should be an optional field that when included associates a mentor with a topic. This will requiring a modification to both the way that normal topics are imported and the option to import topics with mentors.&lt;br /&gt;
&lt;br /&gt;
[[File:mentor_checkbox_mockup.png|600px|thumb|Right|This shows where the checkbox will be added as an option to the existing form]]&lt;br /&gt;
&lt;br /&gt;
When project topics are imported (from the Topics tab of the assignment “Import topics” at the bottom of the page) there must be an optional field for mentor&lt;br /&gt;
At the bottom of this page for example http://152.7.178.121:8080/assignments/1028/edit&lt;br /&gt;
&lt;br /&gt;
just as is done now when the team reaches half strength.&lt;br /&gt;
&lt;br /&gt;
this is happening within the mentor_management model here:&lt;br /&gt;
#https://github.com/jmwinte3/expertiza/blob/e566f88436d4c833111086631d0f30c76a5970a2/app/models/mentor_management.rb#L43&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Files That May Be Modified==&lt;br /&gt;
Models:&lt;br /&gt;
#SignedUpTeam: https://github.com/jmwinte3/expertiza/blob/mentor_meetings/app/models/signed_up_team.rb&lt;br /&gt;
#SignUpTopic: https://github.com/jmwinte3/expertiza/blob/mentor_meetings/app/models/sign_up_topic.rb&lt;br /&gt;
&lt;br /&gt;
Controller:&lt;br /&gt;
#import_file_controller.rb https://github.com/jmwinte3/expertiza/blob/mentor_meetings/app/controllers/import_file_controller.rb&lt;br /&gt;
&lt;br /&gt;
Views:&lt;br /&gt;
#its in views/assignments/edit/_topics.html.erb: https://github.com/jmwinte3/expertiza/blob/mentor_meetings/app/views/assignments/edit.html.erb &lt;br /&gt;
#views/import_file/start: https://github.com/jmwinte3/expertiza/blob/e566f88436d4c833111086631d0f30c76a5970a2/app/views/import_file/start.html.erb#L2&lt;br /&gt;
#views/sign_up_sheet/_add_topics.html.erb https://github.com/jmwinte3/expertiza/blob/mentor_meetings/app/views/sign_up_sheet/_add_topics.html.erb&lt;br /&gt;
#views/sign_up_sheet/_table_line.html.erb https://github.com/jmwinte3/expertiza/blob/mentor_meetings/app/views/sign_up_sheet/_table_line.html.erb&lt;br /&gt;
#views/sign_up_sheet/_topic_names .html.erb https://github.com/jmwinte3/expertiza/blob/mentor_meetings/app/views/sign_up_sheet/_topic_names.html.erb&lt;br /&gt;
#views/sign_up_sheet/_add_topic.html.erb https://github.com/jmwinte3/expertiza/blob/mentor_meetings/app/views/sign_up_sheet/_add_topic.html.erb&lt;br /&gt;
&lt;br /&gt;
==Testing==&lt;br /&gt;
===Test Plan===&lt;br /&gt;
&lt;br /&gt;
The overarching purpose of these tests is to verify that the system correctly handles mentor assignments in projects where mentors are associated with topics, not directly with teams. Each of these cases will have multiple tests to ensure the proper functionality when there is both a failure and a success. The topics include:&lt;br /&gt;
&lt;br /&gt;
  Storing Mentors with Topics: &lt;br /&gt;
    Ensuring that topics can hold information about their assigned mentors.&lt;br /&gt;
  &lt;br /&gt;
  Assigning Mentors During Topic Sign-up: &lt;br /&gt;
    Confirming that when a team chooses a topic, the topic's mentor is automatically assigned to that team.&lt;br /&gt;
  &lt;br /&gt;
  Assigning Mentors when Teams Reach Half Strength: Ensuring that the existing logic for intelligent assignments still applies.&lt;br /&gt;
    Displaying Mentor Information: Validating that team views accurately show mentor information for mentored assignments and correctly hide it for non-mentored ones.&lt;br /&gt;
    &lt;br /&gt;
  Importing Topics with Mentors: Checking that topics imported from files correctly capture and store mentor assignments.&lt;br /&gt;
    Include mentors checkbox updates table: Confirm the table columns are properly updated to include the mentors in the topic&lt;br /&gt;
&lt;br /&gt;
===Test Coverage===&lt;br /&gt;
  Once we have created our tests and made the modifications to the expertiza repository that we have described we will include screenshots of what percentage of the tests fail and show that all functions will hopefully have some coverage in the tests&lt;br /&gt;
&lt;br /&gt;
==Relevant Links==&lt;br /&gt;
* Github: https://github.com/jmwinte3/expertiza &lt;br /&gt;
* E2504 Wiki: https://wiki.expertiza.ncsu.edu/index.php?title=CSC/ECE_517_Spring_2025_-_E2504._Mentor-meeting_management&lt;br /&gt;
* Project Description: https://docs.google.com/document/d/1jjbqggRDiOHrxdsMlliY62JnP34bGTNHVWAZNz89kT8/edit?tab=t.0#heading=h.yeys674t35p3&lt;br /&gt;
&lt;br /&gt;
== Team ==&lt;br /&gt;
===Mentor===&lt;br /&gt;
&lt;br /&gt;
    Ed Gehringer&lt;br /&gt;
&lt;br /&gt;
=== Members ===&lt;br /&gt;
&lt;br /&gt;
    Jacob Winters&lt;br /&gt;
    Alex Wakefield&lt;br /&gt;
    John Buchanan&lt;/div&gt;</summary>
		<author><name>Jmwinte3</name></author>
	</entry>
	<entry>
		<id>https://wiki.expertiza.ncsu.edu/index.php?title=CSC/ECE_517_Spring_2025_-_E2527._Mentor-meeting_management:_assignments_with_topics&amp;diff=163461</id>
		<title>CSC/ECE 517 Spring 2025 - E2527. Mentor-meeting management: assignments with topics</title>
		<link rel="alternate" type="text/html" href="https://wiki.expertiza.ncsu.edu/index.php?title=CSC/ECE_517_Spring_2025_-_E2527._Mentor-meeting_management:_assignments_with_topics&amp;diff=163461"/>
		<updated>2025-04-07T22:42:18Z</updated>

		<summary type="html">&lt;p&gt;Jmwinte3: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;__TOC__&lt;br /&gt;
&lt;br /&gt;
==Background==&lt;br /&gt;
In Project E2504, implementation was added for mentors to record their meetings with the teams they were mentoring. It worked for projects where mentors were automatically assigned. To expand the functionality of the mentor management system, we want to incorporate mentors into assignment topics.&lt;br /&gt;
&lt;br /&gt;
==Project Overview==&lt;br /&gt;
The main objective of this project is to extend the mentor management system by having it collaborate with the assignment topics system. When an assignment with topics is created, topics are imported from a spreadsheet into the assignment table. This project will focus on including pre-selected mentors (entered in the spreadsheet) in the assignment table and having the mentor assigned to the team automatically upon topic selection.&lt;br /&gt;
&lt;br /&gt;
==Implementation==&lt;br /&gt;
====Checkbox to alter the Assignment Creation or Import====&lt;br /&gt;
Implementation will include adding a checkbox option at the top of the page with the other checkbox options. This checkbox will toggle whether or not the mentors will be included in the assignment/import. This checkbox will also reload the table to include the additional column required for the mentor's name. Once saved, these mentor names will be stored as an additional attribute in the sign_up_topic&lt;br /&gt;
&lt;br /&gt;
====Automatic Assignment of Mentors====&lt;br /&gt;
After a team has been created, and is allowed to choose a topic from the assignment, the mentor which was assigned to the topic will automatically be assigned to the team. This will be done by adding the mentor to the team and ensuring their can_mentor participant value is true. Given the logic of the previous mentor management implementations, this ensures the participant on the team is recognized as a mentor of any team they are on.&lt;br /&gt;
&lt;br /&gt;
====Importing Topics====&lt;br /&gt;
In order for assignments/topics to have mentors assigned to them before teams are assigned, there needs to be a minor change to the way that files are imported into expertiza. There should be an optional field that when included associates a mentor with a topic. This will requiring a modification to both the way that normal topics are imported and the option to import topics with mentors.&lt;br /&gt;
&lt;br /&gt;
[[File:mentor_checkbox_mockup.png|600px|thumb|Right|This shows where the checkbox will be added as an option to the existing form]]&lt;br /&gt;
&lt;br /&gt;
When project topics are imported (from the Topics tab of the assignment “Import topics” at the bottom of the page) there must be an optional field for mentor&lt;br /&gt;
At the bottom of this page for example http://152.7.178.121:8080/assignments/1028/edit&lt;br /&gt;
&lt;br /&gt;
just as is done now when the team reaches half strength.&lt;br /&gt;
&lt;br /&gt;
this is happening within the mentor_management model here:&lt;br /&gt;
#https://github.com/jmwinte3/expertiza/blob/e566f88436d4c833111086631d0f30c76a5970a2/app/models/mentor_management.rb#L43&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Files That May Be Modified==&lt;br /&gt;
Models:&lt;br /&gt;
#SignedUpTeam: https://github.com/jmwinte3/expertiza/blob/mentor_meetings/app/models/signed_up_team.rb&lt;br /&gt;
#SignUpTopic: https://github.com/jmwinte3/expertiza/blob/mentor_meetings/app/models/sign_up_topic.rb&lt;br /&gt;
&lt;br /&gt;
Controller:&lt;br /&gt;
#import_file_controller.rb https://github.com/jmwinte3/expertiza/blob/mentor_meetings/app/controllers/import_file_controller.rb&lt;br /&gt;
&lt;br /&gt;
Views:&lt;br /&gt;
#its in views/assignments/edit/_topics.html.erb: https://github.com/jmwinte3/expertiza/blob/mentor_meetings/app/views/assignments/edit.html.erb &lt;br /&gt;
#views/import_file/start: https://github.com/jmwinte3/expertiza/blob/e566f88436d4c833111086631d0f30c76a5970a2/app/views/import_file/start.html.erb#L2&lt;br /&gt;
#views/sign_up_sheet/_add_topics.html.erb https://github.com/jmwinte3/expertiza/blob/mentor_meetings/app/views/sign_up_sheet/_add_topics.html.erb&lt;br /&gt;
#views/sign_up_sheet/_table_line.html.erb https://github.com/jmwinte3/expertiza/blob/mentor_meetings/app/views/sign_up_sheet/_table_line.html.erb&lt;br /&gt;
#views/sign_up_sheet/_topic_names .html.erb https://github.com/jmwinte3/expertiza/blob/mentor_meetings/app/views/sign_up_sheet/_topic_names.html.erb&lt;br /&gt;
#views/sign_up_sheet/_add_topic.html.erb https://github.com/jmwinte3/expertiza/blob/mentor_meetings/app/views/sign_up_sheet/_add_topic.html.erb&lt;br /&gt;
&lt;br /&gt;
==Testing==&lt;br /&gt;
===Test Plan===&lt;br /&gt;
&lt;br /&gt;
The overarching purpose of these tests is to verify that the system correctly handles mentor assignments in projects where mentors are associated with topics, not directly with teams. This includes:&lt;br /&gt;
&lt;br /&gt;
  Storing Mentors with Topics: &lt;br /&gt;
    Ensuring that topics can hold information about their assigned mentors.&lt;br /&gt;
  &lt;br /&gt;
  Assigning Mentors During Topic Sign-up: &lt;br /&gt;
    Confirming that when a team chooses a topic, the topic's mentor is automatically assigned to that team.&lt;br /&gt;
  &lt;br /&gt;
  Assigning Mentors when Teams Reach Half Strength: Ensuring that the existing logic for intelligent assignments still applies.&lt;br /&gt;
    Displaying Mentor Information: Validating that team views accurately show mentor information for mentored assignments and correctly hide it for non-mentored ones.&lt;br /&gt;
    &lt;br /&gt;
  Importing Topics with Mentors: Checking that topics imported from files correctly capture and store mentor assignments.&lt;br /&gt;
    Include mentors checkbox updates table: Confirm the table columns are properly updated to include the mentors in the topic&lt;br /&gt;
&lt;br /&gt;
===Test Coverage===&lt;br /&gt;
  Once we have created our tests and made the modifications to the expertiza repository that we have described we will include screenshots of what percentage of the tests fail and show that all functions will hopefully have some coverage in the tests&lt;br /&gt;
&lt;br /&gt;
==Relevant Links==&lt;br /&gt;
* Github: https://github.com/jmwinte3/expertiza &lt;br /&gt;
* E2504 Wiki: https://wiki.expertiza.ncsu.edu/index.php?title=CSC/ECE_517_Spring_2025_-_E2504._Mentor-meeting_management&lt;br /&gt;
* Project Description: https://docs.google.com/document/d/1jjbqggRDiOHrxdsMlliY62JnP34bGTNHVWAZNz89kT8/edit?tab=t.0#heading=h.yeys674t35p3&lt;br /&gt;
&lt;br /&gt;
== Team ==&lt;br /&gt;
===Mentor===&lt;br /&gt;
&lt;br /&gt;
    Ed Gehringer&lt;br /&gt;
&lt;br /&gt;
=== Members ===&lt;br /&gt;
&lt;br /&gt;
    Jacob Winters&lt;br /&gt;
    Alex Wakefield&lt;br /&gt;
    John Buchanan&lt;/div&gt;</summary>
		<author><name>Jmwinte3</name></author>
	</entry>
	<entry>
		<id>https://wiki.expertiza.ncsu.edu/index.php?title=CSC/ECE_517_Spring_2025_-_E2527._Mentor-meeting_management:_assignments_with_topics&amp;diff=163460</id>
		<title>CSC/ECE 517 Spring 2025 - E2527. Mentor-meeting management: assignments with topics</title>
		<link rel="alternate" type="text/html" href="https://wiki.expertiza.ncsu.edu/index.php?title=CSC/ECE_517_Spring_2025_-_E2527._Mentor-meeting_management:_assignments_with_topics&amp;diff=163460"/>
		<updated>2025-04-07T22:41:23Z</updated>

		<summary type="html">&lt;p&gt;Jmwinte3: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;__TOC__&lt;br /&gt;
&lt;br /&gt;
==Background==&lt;br /&gt;
In Project E2504, implementation was added for mentors to record their meetings with the teams they were mentoring. It worked for projects where mentors were automatically assigned. To expand the functionality of the mentor management system, we want to incorporate mentors into assignment topics.&lt;br /&gt;
&lt;br /&gt;
==Project Overview==&lt;br /&gt;
The main objective of this project is to extend the mentor management system by having it collaborate with the assignment topics system. When an assignment with topics is created, topics are imported from a spreadsheet into the assignment table. This project will focus on including pre-selected mentors (entered in the spreadsheet) in the assignment table and having the mentor assigned to the team automatically upon topic selection.&lt;br /&gt;
&lt;br /&gt;
==Implementation==&lt;br /&gt;
====Checkbox to alter the Assignment Creation or Import====&lt;br /&gt;
Implementation will include adding a checkbox option at the top of the page with the other checkbox options. This checkbox will toggle whether or not the mentors will be included in the assignment/import. This checkbox will also reload the table to include the additional column required for the mentor's name. Once saved, these mentor names will be stored as an additional attribute in the sign_up_topic&lt;br /&gt;
&lt;br /&gt;
====Automatic Assignment of Mentors====&lt;br /&gt;
After a team has been created, and is allowed to choose a topic from the assignment, the mentor which was assigned to the topic will automatically be assigned to the team. This will be done by adding the mentor to the team and ensuring their can_mentor participant value is true. Given the logic of the previous mentor management implementations, this ensures the participant on the team is recognized as a mentor of any team they are on.&lt;br /&gt;
&lt;br /&gt;
====Importing Topics====&lt;br /&gt;
In order for assignments/topics to have mentors assigned to them before teams are assigned, there needs to be a minor change to the way that files are imported into expertiza. There should be an optional field that when included associates a mentor with a topic. This will requiring a modification to both the way that normal topics are imported and the option to import topics with mentors.&lt;br /&gt;
&lt;br /&gt;
[[File:mentor_checkbox_mockup.png|200px|thumb|left|Caption]]&lt;br /&gt;
&lt;br /&gt;
When project topics are imported (from the Topics tab of the assignment “Import topics” at the bottom of the page) there must be an optional field for mentor&lt;br /&gt;
At the bottom of this page for example http://152.7.178.121:8080/assignments/1028/edit&lt;br /&gt;
&lt;br /&gt;
just as is done now when the team reaches half strength.&lt;br /&gt;
&lt;br /&gt;
this is happening within the mentor_management model here:&lt;br /&gt;
#https://github.com/jmwinte3/expertiza/blob/e566f88436d4c833111086631d0f30c76a5970a2/app/models/mentor_management.rb#L43&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Files That May Be Modified==&lt;br /&gt;
Models:&lt;br /&gt;
#SignedUpTeam: https://github.com/jmwinte3/expertiza/blob/mentor_meetings/app/models/signed_up_team.rb&lt;br /&gt;
#SignUpTopic: https://github.com/jmwinte3/expertiza/blob/mentor_meetings/app/models/sign_up_topic.rb&lt;br /&gt;
&lt;br /&gt;
Controller:&lt;br /&gt;
#import_file_controller.rb https://github.com/jmwinte3/expertiza/blob/mentor_meetings/app/controllers/import_file_controller.rb&lt;br /&gt;
&lt;br /&gt;
Views:&lt;br /&gt;
#its in views/assignments/edit/_topics.html.erb: https://github.com/jmwinte3/expertiza/blob/mentor_meetings/app/views/assignments/edit.html.erb &lt;br /&gt;
#views/import_file/start: https://github.com/jmwinte3/expertiza/blob/e566f88436d4c833111086631d0f30c76a5970a2/app/views/import_file/start.html.erb#L2&lt;br /&gt;
#views/sign_up_sheet/_add_topics.html.erb https://github.com/jmwinte3/expertiza/blob/mentor_meetings/app/views/sign_up_sheet/_add_topics.html.erb&lt;br /&gt;
#views/sign_up_sheet/_table_line.html.erb https://github.com/jmwinte3/expertiza/blob/mentor_meetings/app/views/sign_up_sheet/_table_line.html.erb&lt;br /&gt;
#views/sign_up_sheet/_topic_names .html.erb https://github.com/jmwinte3/expertiza/blob/mentor_meetings/app/views/sign_up_sheet/_topic_names.html.erb&lt;br /&gt;
#views/sign_up_sheet/_add_topic.html.erb https://github.com/jmwinte3/expertiza/blob/mentor_meetings/app/views/sign_up_sheet/_add_topic.html.erb&lt;br /&gt;
&lt;br /&gt;
==Testing==&lt;br /&gt;
===Test Plan===&lt;br /&gt;
&lt;br /&gt;
The overarching purpose of these tests is to verify that the system correctly handles mentor assignments in projects where mentors are associated with topics, not directly with teams. This includes:&lt;br /&gt;
&lt;br /&gt;
  Storing Mentors with Topics: &lt;br /&gt;
    Ensuring that topics can hold information about their assigned mentors.&lt;br /&gt;
  &lt;br /&gt;
  Assigning Mentors During Topic Sign-up: &lt;br /&gt;
    Confirming that when a team chooses a topic, the topic's mentor is automatically assigned to that team.&lt;br /&gt;
  &lt;br /&gt;
  Assigning Mentors when Teams Reach Half Strength: Ensuring that the existing logic for intelligent assignments still applies.&lt;br /&gt;
    Displaying Mentor Information: Validating that team views accurately show mentor information for mentored assignments and correctly hide it for non-mentored ones.&lt;br /&gt;
    &lt;br /&gt;
  Importing Topics with Mentors: Checking that topics imported from files correctly capture and store mentor assignments.&lt;br /&gt;
    Include mentors checkbox updates table: Confirm the table columns are properly updated to include the mentors in the topic&lt;br /&gt;
&lt;br /&gt;
===Test Coverage===&lt;br /&gt;
  Once we have created our tests and made the modifications to the expertiza repository that we have described we will include screenshots of what percentage of the tests fail and show that all functions will hopefully have some coverage in the tests&lt;br /&gt;
&lt;br /&gt;
==Relevant Links==&lt;br /&gt;
* Github: https://github.com/jmwinte3/expertiza &lt;br /&gt;
* E2504 Wiki: https://wiki.expertiza.ncsu.edu/index.php?title=CSC/ECE_517_Spring_2025_-_E2504._Mentor-meeting_management&lt;br /&gt;
* Project Description: https://docs.google.com/document/d/1jjbqggRDiOHrxdsMlliY62JnP34bGTNHVWAZNz89kT8/edit?tab=t.0#heading=h.yeys674t35p3&lt;br /&gt;
&lt;br /&gt;
== Team ==&lt;br /&gt;
===Mentor===&lt;br /&gt;
&lt;br /&gt;
    Ed Gehringer&lt;br /&gt;
&lt;br /&gt;
=== Members ===&lt;br /&gt;
&lt;br /&gt;
    Jacob Winters&lt;br /&gt;
    Alex Wakefield&lt;br /&gt;
    John Buchanan&lt;/div&gt;</summary>
		<author><name>Jmwinte3</name></author>
	</entry>
	<entry>
		<id>https://wiki.expertiza.ncsu.edu/index.php?title=File:Mentor_checkbox_mockup.png&amp;diff=163459</id>
		<title>File:Mentor checkbox mockup.png</title>
		<link rel="alternate" type="text/html" href="https://wiki.expertiza.ncsu.edu/index.php?title=File:Mentor_checkbox_mockup.png&amp;diff=163459"/>
		<updated>2025-04-07T22:40:45Z</updated>

		<summary type="html">&lt;p&gt;Jmwinte3: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;/div&gt;</summary>
		<author><name>Jmwinte3</name></author>
	</entry>
	<entry>
		<id>https://wiki.expertiza.ncsu.edu/index.php?title=CSC/ECE_517_Spring_2025_-_E2527._Mentor-meeting_management:_assignments_with_topics&amp;diff=163458</id>
		<title>CSC/ECE 517 Spring 2025 - E2527. Mentor-meeting management: assignments with topics</title>
		<link rel="alternate" type="text/html" href="https://wiki.expertiza.ncsu.edu/index.php?title=CSC/ECE_517_Spring_2025_-_E2527._Mentor-meeting_management:_assignments_with_topics&amp;diff=163458"/>
		<updated>2025-04-07T22:36:31Z</updated>

		<summary type="html">&lt;p&gt;Jmwinte3: /* Files That May Be Modified */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;__TOC__&lt;br /&gt;
&lt;br /&gt;
==Background==&lt;br /&gt;
In Project E2504, implementation was added for mentors to record their meetings with the teams they were mentoring. It worked for projects where mentors were automatically assigned. To expand the functionality of the mentor management system, we want to incorporate mentors into assignment topics.&lt;br /&gt;
&lt;br /&gt;
==Project Overview==&lt;br /&gt;
The main objective of this project is to extend the mentor management system by having it collaborate with the assignment topics system. When an assignment with topics is created, topics are imported from a spreadsheet into the assignment table. This project will focus on including pre-selected mentors (entered in the spreadsheet) in the assignment table and having the mentor assigned to the team automatically upon topic selection.&lt;br /&gt;
&lt;br /&gt;
==Implementation==&lt;br /&gt;
====Checkbox to alter the Assignment Creation or Import====&lt;br /&gt;
Implementation will include adding a checkbox option at the top of the page with the other checkbox options. This checkbox will toggle whether or not the mentors will be included in the assignment/import. This checkbox will also reload the table to include the additional column required for the mentor's name. Once saved, these mentor names will be stored as an additional attribute in the sign_up_topic&lt;br /&gt;
&lt;br /&gt;
====Automatic Assignment of Mentors====&lt;br /&gt;
After a team has been created, and is allowed to choose a topic from the assignment, the mentor which was assigned to the topic will automatically be assigned to the team. This will be done by adding the mentor to the team and ensuring their can_mentor participant value is true. Given the logic of the previous mentor management implementations, this ensures the participant on the team is recognized as a mentor of any team they are on.&lt;br /&gt;
&lt;br /&gt;
====Importing Topics====&lt;br /&gt;
In order for assignments/topics to have mentors assigned to them before teams are assigned, there needs to be a minor change to the way that files are imported into expertiza. There should be an optional field that when included associates a mentor with a topic. This will requiring a modification to both the way that normal topics are imported and the option to import topics with mentors.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
When project topics are imported (from the Topics tab of the assignment “Import topics” at the bottom of the page) there must be an optional field for mentor&lt;br /&gt;
At the bottom of this page for example http://152.7.178.121:8080/assignments/1028/edit&lt;br /&gt;
&lt;br /&gt;
just as is done now when the team reaches half strength.&lt;br /&gt;
&lt;br /&gt;
this is happening within the mentor_management model here:&lt;br /&gt;
#https://github.com/jmwinte3/expertiza/blob/e566f88436d4c833111086631d0f30c76a5970a2/app/models/mentor_management.rb#L43&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Files That May Be Modified==&lt;br /&gt;
Models:&lt;br /&gt;
#SignedUpTeam: https://github.com/jmwinte3/expertiza/blob/mentor_meetings/app/models/signed_up_team.rb&lt;br /&gt;
#SignUpTopic: https://github.com/jmwinte3/expertiza/blob/mentor_meetings/app/models/sign_up_topic.rb&lt;br /&gt;
&lt;br /&gt;
Controller:&lt;br /&gt;
#import_file_controller.rb https://github.com/jmwinte3/expertiza/blob/mentor_meetings/app/controllers/import_file_controller.rb&lt;br /&gt;
&lt;br /&gt;
Views:&lt;br /&gt;
#its in views/assignments/edit/_topics.html.erb: https://github.com/jmwinte3/expertiza/blob/mentor_meetings/app/views/assignments/edit.html.erb &lt;br /&gt;
#views/import_file/start: https://github.com/jmwinte3/expertiza/blob/e566f88436d4c833111086631d0f30c76a5970a2/app/views/import_file/start.html.erb#L2&lt;br /&gt;
#views/sign_up_sheet/_add_topics.html.erb https://github.com/jmwinte3/expertiza/blob/mentor_meetings/app/views/sign_up_sheet/_add_topics.html.erb&lt;br /&gt;
#views/sign_up_sheet/_table_line.html.erb https://github.com/jmwinte3/expertiza/blob/mentor_meetings/app/views/sign_up_sheet/_table_line.html.erb&lt;br /&gt;
#views/sign_up_sheet/_topic_names .html.erb https://github.com/jmwinte3/expertiza/blob/mentor_meetings/app/views/sign_up_sheet/_topic_names.html.erb&lt;br /&gt;
#views/sign_up_sheet/_add_topic.html.erb https://github.com/jmwinte3/expertiza/blob/mentor_meetings/app/views/sign_up_sheet/_add_topic.html.erb&lt;br /&gt;
&lt;br /&gt;
==Testing==&lt;br /&gt;
===Test Plan===&lt;br /&gt;
&lt;br /&gt;
The overarching purpose of these tests is to verify that the system correctly handles mentor assignments in projects where mentors are associated with topics, not directly with teams. This includes:&lt;br /&gt;
&lt;br /&gt;
  Storing Mentors with Topics: &lt;br /&gt;
    Ensuring that topics can hold information about their assigned mentors.&lt;br /&gt;
  &lt;br /&gt;
  Assigning Mentors During Topic Sign-up: &lt;br /&gt;
    Confirming that when a team chooses a topic, the topic's mentor is automatically assigned to that team.&lt;br /&gt;
  &lt;br /&gt;
  Assigning Mentors when Teams Reach Half Strength: Ensuring that the existing logic for intelligent assignments still applies.&lt;br /&gt;
    Displaying Mentor Information: Validating that team views accurately show mentor information for mentored assignments and correctly hide it for non-mentored ones.&lt;br /&gt;
    &lt;br /&gt;
  Importing Topics with Mentors: Checking that topics imported from files correctly capture and store mentor assignments.&lt;br /&gt;
    Include mentors checkbox updates table: Confirm the table columns are properly updated to include the mentors in the topic&lt;br /&gt;
&lt;br /&gt;
===Test Coverage===&lt;br /&gt;
  Once we have created our tests and made the modifications to the expertiza repository that we have described we will include screenshots of what percentage of the tests fail and show that all functions will hopefully have some coverage in the tests&lt;br /&gt;
&lt;br /&gt;
==Relevant Links==&lt;br /&gt;
* Github: https://github.com/jmwinte3/expertiza &lt;br /&gt;
* E2504 Wiki: https://wiki.expertiza.ncsu.edu/index.php?title=CSC/ECE_517_Spring_2025_-_E2504._Mentor-meeting_management&lt;br /&gt;
* Project Description: https://docs.google.com/document/d/1jjbqggRDiOHrxdsMlliY62JnP34bGTNHVWAZNz89kT8/edit?tab=t.0#heading=h.yeys674t35p3&lt;br /&gt;
&lt;br /&gt;
== Team ==&lt;br /&gt;
===Mentor===&lt;br /&gt;
&lt;br /&gt;
    Ed Gehringer&lt;br /&gt;
&lt;br /&gt;
=== Members ===&lt;br /&gt;
&lt;br /&gt;
    Jacob Winters&lt;br /&gt;
    Alex Wakefield&lt;br /&gt;
    John Buchanan&lt;/div&gt;</summary>
		<author><name>Jmwinte3</name></author>
	</entry>
	<entry>
		<id>https://wiki.expertiza.ncsu.edu/index.php?title=CSC/ECE_517_Spring_2025_-_E2527._Mentor-meeting_management:_assignments_with_topics&amp;diff=163457</id>
		<title>CSC/ECE 517 Spring 2025 - E2527. Mentor-meeting management: assignments with topics</title>
		<link rel="alternate" type="text/html" href="https://wiki.expertiza.ncsu.edu/index.php?title=CSC/ECE_517_Spring_2025_-_E2527._Mentor-meeting_management:_assignments_with_topics&amp;diff=163457"/>
		<updated>2025-04-07T22:36:05Z</updated>

		<summary type="html">&lt;p&gt;Jmwinte3: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;__TOC__&lt;br /&gt;
&lt;br /&gt;
==Background==&lt;br /&gt;
In Project E2504, implementation was added for mentors to record their meetings with the teams they were mentoring. It worked for projects where mentors were automatically assigned. To expand the functionality of the mentor management system, we want to incorporate mentors into assignment topics.&lt;br /&gt;
&lt;br /&gt;
==Project Overview==&lt;br /&gt;
The main objective of this project is to extend the mentor management system by having it collaborate with the assignment topics system. When an assignment with topics is created, topics are imported from a spreadsheet into the assignment table. This project will focus on including pre-selected mentors (entered in the spreadsheet) in the assignment table and having the mentor assigned to the team automatically upon topic selection.&lt;br /&gt;
&lt;br /&gt;
==Implementation==&lt;br /&gt;
====Checkbox to alter the Assignment Creation or Import====&lt;br /&gt;
Implementation will include adding a checkbox option at the top of the page with the other checkbox options. This checkbox will toggle whether or not the mentors will be included in the assignment/import. This checkbox will also reload the table to include the additional column required for the mentor's name. Once saved, these mentor names will be stored as an additional attribute in the sign_up_topic&lt;br /&gt;
&lt;br /&gt;
====Automatic Assignment of Mentors====&lt;br /&gt;
After a team has been created, and is allowed to choose a topic from the assignment, the mentor which was assigned to the topic will automatically be assigned to the team. This will be done by adding the mentor to the team and ensuring their can_mentor participant value is true. Given the logic of the previous mentor management implementations, this ensures the participant on the team is recognized as a mentor of any team they are on.&lt;br /&gt;
&lt;br /&gt;
====Importing Topics====&lt;br /&gt;
In order for assignments/topics to have mentors assigned to them before teams are assigned, there needs to be a minor change to the way that files are imported into expertiza. There should be an optional field that when included associates a mentor with a topic. This will requiring a modification to both the way that normal topics are imported and the option to import topics with mentors.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
When project topics are imported (from the Topics tab of the assignment “Import topics” at the bottom of the page) there must be an optional field for mentor&lt;br /&gt;
At the bottom of this page for example http://152.7.178.121:8080/assignments/1028/edit&lt;br /&gt;
&lt;br /&gt;
just as is done now when the team reaches half strength.&lt;br /&gt;
&lt;br /&gt;
this is happening within the mentor_management model here:&lt;br /&gt;
#https://github.com/jmwinte3/expertiza/blob/e566f88436d4c833111086631d0f30c76a5970a2/app/models/mentor_management.rb#L43&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Files That May Be Modified==&lt;br /&gt;
Models:&lt;br /&gt;
#SignedUpTeam: https://github.com/jmwinte3/expertiza/blob/mentor_meetings/app/models/signed_up_team.rb&lt;br /&gt;
#SignUpTopic: https://github.com/jmwinte3/expertiza/blob/mentor_meetings/app/models/sign_up_topic.rb&lt;br /&gt;
&lt;br /&gt;
Controller:&lt;br /&gt;
#import_file_controller.rb https://github.com/jmwinte3/expertiza/blob/mentor_meetings/app/controllers/import_file_controller.rb&lt;br /&gt;
&lt;br /&gt;
Views:&lt;br /&gt;
#its in views/assignments/edit/_topics.html.erb: https://github.com/jmwinte3/expertiza/blob/mentor_meetings/app/views/assignments/edit.html.erb &lt;br /&gt;
#views/import_file/start: https://github.com/jmwinte3/expertiza/blob/e566f88436d4c833111086631d0f30c76a5970a2/app/views/import_file/start.html.erb#L2&lt;br /&gt;
#views/sign_up_sheet/_add_topics.html.erb https://github.com/jmwinte3/expertiza/blob/mentor_meetings/app/views/sign_up_sheet/_add_topics.html.erb&lt;br /&gt;
#views/sign_up_sheet/_table_line.html.erb https://github.com/jmwinte3/expertiza/blob/mentor_meetings/app/views/sign_up_sheet/_table_line.html.erb&lt;br /&gt;
#views/sign_up_sheet/_topic_names .html.erb https://github.com/jmwinte3/expertiza/blob/mentor_meetings/app/views/sign_up_sheet/_topic_names.html.erb&lt;br /&gt;
#views/sign_up_sheet/_add_topic.html.erb https://github.com/jmwinte3/expertiza/blob/mentor_meetings/app/views/sign_up_sheet/_add_topic.html.erb&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
TODO: Add Files Modified&lt;br /&gt;
&lt;br /&gt;
==Testing==&lt;br /&gt;
===Test Plan===&lt;br /&gt;
&lt;br /&gt;
The overarching purpose of these tests is to verify that the system correctly handles mentor assignments in projects where mentors are associated with topics, not directly with teams. This includes:&lt;br /&gt;
&lt;br /&gt;
  Storing Mentors with Topics: &lt;br /&gt;
    Ensuring that topics can hold information about their assigned mentors.&lt;br /&gt;
  &lt;br /&gt;
  Assigning Mentors During Topic Sign-up: &lt;br /&gt;
    Confirming that when a team chooses a topic, the topic's mentor is automatically assigned to that team.&lt;br /&gt;
  &lt;br /&gt;
  Assigning Mentors when Teams Reach Half Strength: Ensuring that the existing logic for intelligent assignments still applies.&lt;br /&gt;
    Displaying Mentor Information: Validating that team views accurately show mentor information for mentored assignments and correctly hide it for non-mentored ones.&lt;br /&gt;
    &lt;br /&gt;
  Importing Topics with Mentors: Checking that topics imported from files correctly capture and store mentor assignments.&lt;br /&gt;
    Include mentors checkbox updates table: Confirm the table columns are properly updated to include the mentors in the topic&lt;br /&gt;
&lt;br /&gt;
===Test Coverage===&lt;br /&gt;
  Once we have created our tests and made the modifications to the expertiza repository that we have described we will include screenshots of what percentage of the tests fail and show that all functions will hopefully have some coverage in the tests&lt;br /&gt;
&lt;br /&gt;
==Relevant Links==&lt;br /&gt;
* Github: https://github.com/jmwinte3/expertiza &lt;br /&gt;
* E2504 Wiki: https://wiki.expertiza.ncsu.edu/index.php?title=CSC/ECE_517_Spring_2025_-_E2504._Mentor-meeting_management&lt;br /&gt;
* Project Description: https://docs.google.com/document/d/1jjbqggRDiOHrxdsMlliY62JnP34bGTNHVWAZNz89kT8/edit?tab=t.0#heading=h.yeys674t35p3&lt;br /&gt;
&lt;br /&gt;
== Team ==&lt;br /&gt;
===Mentor===&lt;br /&gt;
&lt;br /&gt;
    Ed Gehringer&lt;br /&gt;
&lt;br /&gt;
=== Members ===&lt;br /&gt;
&lt;br /&gt;
    Jacob Winters&lt;br /&gt;
    Alex Wakefield&lt;br /&gt;
    John Buchanan&lt;/div&gt;</summary>
		<author><name>Jmwinte3</name></author>
	</entry>
	<entry>
		<id>https://wiki.expertiza.ncsu.edu/index.php?title=CSC/ECE_517_Spring_2025_-_E2527._Mentor-meeting_management:_assignments_with_topics&amp;diff=163456</id>
		<title>CSC/ECE 517 Spring 2025 - E2527. Mentor-meeting management: assignments with topics</title>
		<link rel="alternate" type="text/html" href="https://wiki.expertiza.ncsu.edu/index.php?title=CSC/ECE_517_Spring_2025_-_E2527._Mentor-meeting_management:_assignments_with_topics&amp;diff=163456"/>
		<updated>2025-04-07T22:31:12Z</updated>

		<summary type="html">&lt;p&gt;Jmwinte3: /* Test Coverage */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;__TOC__&lt;br /&gt;
&lt;br /&gt;
==Background==&lt;br /&gt;
In Project E2504, implementation was added for mentors to record their meetings with the teams they were mentoring. It worked for projects where mentors were automatically assigned. To expand the functionality of the mentor management system, we want to incorporate mentors into assignment topics.&lt;br /&gt;
&lt;br /&gt;
==Project Overview==&lt;br /&gt;
The main objective of this project is to extend the mentor management system by having it collaborate with the assignment topics system. When an assignment with topics is created, topics are imported from a spreadsheet into the assignment table. This project will focus on including pre-selected mentors (entered in the spreadsheet) in the assignment table and having the mentor assigned to the team automatically upon topic selection.&lt;br /&gt;
&lt;br /&gt;
==Implementation==&lt;br /&gt;
Implementation will include adding a checkbox option at the top of the page with the other checkbox options. This checkbox will toggle whether or not the mentors will be included in the assignment/import. This checkbox will also reload the table to include the additional column required for the mentor's name. Once saved, these mentor names will be stored as an additional attribute in the sign_up_topic&lt;br /&gt;
&lt;br /&gt;
After a team has been created, and is allowed to choose a topic from the assignment, the mentor which was assigned to the topic will automatically be assigned to the team. This will be done by adding the mentor to the team and ensuring their can_mentor participant value is true (1). Given the logic of the previous mentor management implementations, this ensures the participant on the team is recognized as a mentor of any team they are on.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
When project topics are imported (from the Topics tab of the assignment “Import topics” at the bottom of the page) there must be an optional field for mentor&lt;br /&gt;
At the bottom of this page for example http://152.7.178.121:8080/assignments/1028/edit&lt;br /&gt;
&lt;br /&gt;
just as is done now when the team reaches half strength.&lt;br /&gt;
&lt;br /&gt;
this is happening within the mentor_management model here:&lt;br /&gt;
#https://github.com/jmwinte3/expertiza/blob/e566f88436d4c833111086631d0f30c76a5970a2/app/models/mentor_management.rb#L43&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
TODO: Add Implementation&lt;br /&gt;
&lt;br /&gt;
==Files That May Be Modified==&lt;br /&gt;
Models:&lt;br /&gt;
#SignedUpTeam: https://github.com/jmwinte3/expertiza/blob/mentor_meetings/app/models/signed_up_team.rb&lt;br /&gt;
#SignUpTopic: https://github.com/jmwinte3/expertiza/blob/mentor_meetings/app/models/sign_up_topic.rb&lt;br /&gt;
&lt;br /&gt;
Controller:&lt;br /&gt;
#import_file_controller.rb https://github.com/jmwinte3/expertiza/blob/mentor_meetings/app/controllers/import_file_controller.rb&lt;br /&gt;
&lt;br /&gt;
Views:&lt;br /&gt;
#its in views/assignments/edit/_topics.html.erb: https://github.com/jmwinte3/expertiza/blob/mentor_meetings/app/views/assignments/edit.html.erb &lt;br /&gt;
#views/import_file/start: https://github.com/jmwinte3/expertiza/blob/e566f88436d4c833111086631d0f30c76a5970a2/app/views/import_file/start.html.erb#L2&lt;br /&gt;
#views/sign_up_sheet/_add_topics.html.erb https://github.com/jmwinte3/expertiza/blob/mentor_meetings/app/views/sign_up_sheet/_add_topics.html.erb&lt;br /&gt;
#views/sign_up_sheet/_table_line.html.erb https://github.com/jmwinte3/expertiza/blob/mentor_meetings/app/views/sign_up_sheet/_table_line.html.erb&lt;br /&gt;
#views/sign_up_sheet/_topic_names .html.erb https://github.com/jmwinte3/expertiza/blob/mentor_meetings/app/views/sign_up_sheet/_topic_names.html.erb&lt;br /&gt;
#views/sign_up_sheet/_add_topic.html.erb https://github.com/jmwinte3/expertiza/blob/mentor_meetings/app/views/sign_up_sheet/_add_topic.html.erb&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
TODO: Add Files Modified&lt;br /&gt;
&lt;br /&gt;
==Testing==&lt;br /&gt;
===Test Plan===&lt;br /&gt;
&lt;br /&gt;
The overarching purpose of these tests is to verify that the system correctly handles mentor assignments in projects where mentors are associated with topics, not directly with teams. This includes:&lt;br /&gt;
&lt;br /&gt;
  Storing Mentors with Topics: &lt;br /&gt;
    Ensuring that topics can hold information about their assigned mentors.&lt;br /&gt;
  &lt;br /&gt;
  Assigning Mentors During Topic Sign-up: &lt;br /&gt;
    Confirming that when a team chooses a topic, the topic's mentor is automatically assigned to that team.&lt;br /&gt;
  &lt;br /&gt;
  Assigning Mentors when Teams Reach Half Strength: Ensuring that the existing logic for intelligent assignments still applies.&lt;br /&gt;
    Displaying Mentor Information: Validating that team views accurately show mentor information for mentored assignments and correctly hide it for non-mentored ones.&lt;br /&gt;
    &lt;br /&gt;
  Importing Topics with Mentors: Checking that topics imported from files correctly capture and store mentor assignments.&lt;br /&gt;
    Include mentors checkbox updates table: Confirm the table columns are properly updated to include the mentors in the topic&lt;br /&gt;
&lt;br /&gt;
===Test Coverage===&lt;br /&gt;
  Once we have created our tests and made the modifications to the expertiza repository that we have described we will include screenshots of what percentage of the tests fail and show that all functions will hopefully have some coverage in the tests&lt;br /&gt;
&lt;br /&gt;
==Relevant Links==&lt;br /&gt;
* Github: https://github.com/jmwinte3/expertiza &lt;br /&gt;
* E2504 Wiki: https://wiki.expertiza.ncsu.edu/index.php?title=CSC/ECE_517_Spring_2025_-_E2504._Mentor-meeting_management&lt;br /&gt;
* Project Description: https://docs.google.com/document/d/1jjbqggRDiOHrxdsMlliY62JnP34bGTNHVWAZNz89kT8/edit?tab=t.0#heading=h.yeys674t35p3&lt;br /&gt;
&lt;br /&gt;
== Team ==&lt;br /&gt;
===Mentor===&lt;br /&gt;
&lt;br /&gt;
    Ed Gehringer&lt;br /&gt;
&lt;br /&gt;
=== Members ===&lt;br /&gt;
&lt;br /&gt;
    Jacob Winters&lt;br /&gt;
    Alex Wakefield&lt;br /&gt;
    John Buchanan&lt;/div&gt;</summary>
		<author><name>Jmwinte3</name></author>
	</entry>
	<entry>
		<id>https://wiki.expertiza.ncsu.edu/index.php?title=CSC/ECE_517_Spring_2025_-_E2527._Mentor-meeting_management:_assignments_with_topics&amp;diff=163455</id>
		<title>CSC/ECE 517 Spring 2025 - E2527. Mentor-meeting management: assignments with topics</title>
		<link rel="alternate" type="text/html" href="https://wiki.expertiza.ncsu.edu/index.php?title=CSC/ECE_517_Spring_2025_-_E2527._Mentor-meeting_management:_assignments_with_topics&amp;diff=163455"/>
		<updated>2025-04-07T22:29:59Z</updated>

		<summary type="html">&lt;p&gt;Jmwinte3: /* Test Plan */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;__TOC__&lt;br /&gt;
&lt;br /&gt;
==Background==&lt;br /&gt;
In Project E2504, implementation was added for mentors to record their meetings with the teams they were mentoring. It worked for projects where mentors were automatically assigned. To expand the functionality of the mentor management system, we want to incorporate mentors into assignment topics.&lt;br /&gt;
&lt;br /&gt;
==Project Overview==&lt;br /&gt;
The main objective of this project is to extend the mentor management system by having it collaborate with the assignment topics system. When an assignment with topics is created, topics are imported from a spreadsheet into the assignment table. This project will focus on including pre-selected mentors (entered in the spreadsheet) in the assignment table and having the mentor assigned to the team automatically upon topic selection.&lt;br /&gt;
&lt;br /&gt;
==Implementation==&lt;br /&gt;
Implementation will include adding a checkbox option at the top of the page with the other checkbox options. This checkbox will toggle whether or not the mentors will be included in the assignment/import. This checkbox will also reload the table to include the additional column required for the mentor's name. Once saved, these mentor names will be stored as an additional attribute in the sign_up_topic&lt;br /&gt;
&lt;br /&gt;
After a team has been created, and is allowed to choose a topic from the assignment, the mentor which was assigned to the topic will automatically be assigned to the team. This will be done by adding the mentor to the team and ensuring their can_mentor participant value is true (1). Given the logic of the previous mentor management implementations, this ensures the participant on the team is recognized as a mentor of any team they are on.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
When project topics are imported (from the Topics tab of the assignment “Import topics” at the bottom of the page) there must be an optional field for mentor&lt;br /&gt;
At the bottom of this page for example http://152.7.178.121:8080/assignments/1028/edit&lt;br /&gt;
&lt;br /&gt;
just as is done now when the team reaches half strength.&lt;br /&gt;
&lt;br /&gt;
this is happening within the mentor_management model here:&lt;br /&gt;
#https://github.com/jmwinte3/expertiza/blob/e566f88436d4c833111086631d0f30c76a5970a2/app/models/mentor_management.rb#L43&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
TODO: Add Implementation&lt;br /&gt;
&lt;br /&gt;
==Files That May Be Modified==&lt;br /&gt;
Models:&lt;br /&gt;
#SignedUpTeam: https://github.com/jmwinte3/expertiza/blob/mentor_meetings/app/models/signed_up_team.rb&lt;br /&gt;
#SignUpTopic: https://github.com/jmwinte3/expertiza/blob/mentor_meetings/app/models/sign_up_topic.rb&lt;br /&gt;
&lt;br /&gt;
Controller:&lt;br /&gt;
#import_file_controller.rb https://github.com/jmwinte3/expertiza/blob/mentor_meetings/app/controllers/import_file_controller.rb&lt;br /&gt;
&lt;br /&gt;
Views:&lt;br /&gt;
#its in views/assignments/edit/_topics.html.erb: https://github.com/jmwinte3/expertiza/blob/mentor_meetings/app/views/assignments/edit.html.erb &lt;br /&gt;
#views/import_file/start: https://github.com/jmwinte3/expertiza/blob/e566f88436d4c833111086631d0f30c76a5970a2/app/views/import_file/start.html.erb#L2&lt;br /&gt;
#views/sign_up_sheet/_add_topics.html.erb https://github.com/jmwinte3/expertiza/blob/mentor_meetings/app/views/sign_up_sheet/_add_topics.html.erb&lt;br /&gt;
#views/sign_up_sheet/_table_line.html.erb https://github.com/jmwinte3/expertiza/blob/mentor_meetings/app/views/sign_up_sheet/_table_line.html.erb&lt;br /&gt;
#views/sign_up_sheet/_topic_names .html.erb https://github.com/jmwinte3/expertiza/blob/mentor_meetings/app/views/sign_up_sheet/_topic_names.html.erb&lt;br /&gt;
#views/sign_up_sheet/_add_topic.html.erb https://github.com/jmwinte3/expertiza/blob/mentor_meetings/app/views/sign_up_sheet/_add_topic.html.erb&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
TODO: Add Files Modified&lt;br /&gt;
&lt;br /&gt;
==Testing==&lt;br /&gt;
===Test Plan===&lt;br /&gt;
&lt;br /&gt;
The overarching purpose of these tests is to verify that the system correctly handles mentor assignments in projects where mentors are associated with topics, not directly with teams. This includes:&lt;br /&gt;
&lt;br /&gt;
  Storing Mentors with Topics: &lt;br /&gt;
    Ensuring that topics can hold information about their assigned mentors.&lt;br /&gt;
  &lt;br /&gt;
  Assigning Mentors During Topic Sign-up: &lt;br /&gt;
    Confirming that when a team chooses a topic, the topic's mentor is automatically assigned to that team.&lt;br /&gt;
  &lt;br /&gt;
  Assigning Mentors when Teams Reach Half Strength: Ensuring that the existing logic for intelligent assignments still applies.&lt;br /&gt;
    Displaying Mentor Information: Validating that team views accurately show mentor information for mentored assignments and correctly hide it for non-mentored ones.&lt;br /&gt;
    &lt;br /&gt;
  Importing Topics with Mentors: Checking that topics imported from files correctly capture and store mentor assignments.&lt;br /&gt;
    Include mentors checkbox updates table: Confirm the table columns are properly updated to include the mentors in the topic&lt;br /&gt;
&lt;br /&gt;
===Test Coverage===&lt;br /&gt;
    TODO: Add Test coverage&lt;br /&gt;
&lt;br /&gt;
==Relevant Links==&lt;br /&gt;
* Github: https://github.com/jmwinte3/expertiza &lt;br /&gt;
* E2504 Wiki: https://wiki.expertiza.ncsu.edu/index.php?title=CSC/ECE_517_Spring_2025_-_E2504._Mentor-meeting_management&lt;br /&gt;
* Project Description: https://docs.google.com/document/d/1jjbqggRDiOHrxdsMlliY62JnP34bGTNHVWAZNz89kT8/edit?tab=t.0#heading=h.yeys674t35p3&lt;br /&gt;
&lt;br /&gt;
== Team ==&lt;br /&gt;
===Mentor===&lt;br /&gt;
&lt;br /&gt;
    Ed Gehringer&lt;br /&gt;
&lt;br /&gt;
=== Members ===&lt;br /&gt;
&lt;br /&gt;
    Jacob Winters&lt;br /&gt;
    Alex Wakefield&lt;br /&gt;
    John Buchanan&lt;/div&gt;</summary>
		<author><name>Jmwinte3</name></author>
	</entry>
	<entry>
		<id>https://wiki.expertiza.ncsu.edu/index.php?title=CSC/ECE_517_Spring_2025_-_E2527._Mentor-meeting_management:_assignments_with_topics&amp;diff=163068</id>
		<title>CSC/ECE 517 Spring 2025 - E2527. Mentor-meeting management: assignments with topics</title>
		<link rel="alternate" type="text/html" href="https://wiki.expertiza.ncsu.edu/index.php?title=CSC/ECE_517_Spring_2025_-_E2527._Mentor-meeting_management:_assignments_with_topics&amp;diff=163068"/>
		<updated>2025-04-03T19:15:24Z</updated>

		<summary type="html">&lt;p&gt;Jmwinte3: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;__TOC__&lt;br /&gt;
&lt;br /&gt;
==Background==&lt;br /&gt;
In Project E2504, implementation was added for mentors to record their meetings with the teams they were mentoring. It worked for projects where mentors were automatically assigned. To expand the functionality of the mentor management system, we want to incorporate mentors into assignment topics.&lt;br /&gt;
&lt;br /&gt;
==Project Overview==&lt;br /&gt;
The main objective of this project is to extend the mentor management system by having it collaborate with the assignment topics system. When an assignment with topics is created, topics are imported from a spreadsheet into the assignment table. This project will focus on including pre-selected mentors (entered in the spreadsheet) in the assignment table and having the mentor assigned to the team automatically upon topic selection.&lt;br /&gt;
&lt;br /&gt;
==Implementation==&lt;br /&gt;
Implementation will include adding a checkbox option at the top of the page with the other checkbox options. This checkbox will toggle whether or not the mentors will be included in the assignment/import. This checkbox will also reload the table to include the additional column required for the mentor's name. Once saved, these mentor names will be stored as an additional attribute in the sign_up_topic&lt;br /&gt;
&lt;br /&gt;
After a team has been created, and is allowed to choose a topic from the assignment, the mentor which was assigned to the topic will automatically be assigned to the team. This will be done by adding the mentor to the team and ensuring their can_mentor participant value is true (1). Given the logic of the previous mentor management implementations, this ensures the participant on the team is recognized as a mentor of any team they are on.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
When project topics are imported (from the Topics tab of the assignment “Import topics” at the bottom of the page) there must be an optional field for mentor&lt;br /&gt;
At the bottom of this page for example http://152.7.178.121:8080/assignments/1028/edit&lt;br /&gt;
&lt;br /&gt;
just as is done now when the team reaches half strength.&lt;br /&gt;
&lt;br /&gt;
this is happening within the mentor_management model here:&lt;br /&gt;
#https://github.com/jmwinte3/expertiza/blob/e566f88436d4c833111086631d0f30c76a5970a2/app/models/mentor_management.rb#L43&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
TODO: Add Implementation&lt;br /&gt;
&lt;br /&gt;
==Files That May Be Modified==&lt;br /&gt;
Models:&lt;br /&gt;
#SignedUpTeam: https://github.com/jmwinte3/expertiza/blob/mentor_meetings/app/models/signed_up_team.rb&lt;br /&gt;
#SignUpTopic: https://github.com/jmwinte3/expertiza/blob/mentor_meetings/app/models/sign_up_topic.rb&lt;br /&gt;
&lt;br /&gt;
Controller:&lt;br /&gt;
#import_file_controller.rb https://github.com/jmwinte3/expertiza/blob/mentor_meetings/app/controllers/import_file_controller.rb&lt;br /&gt;
&lt;br /&gt;
Views:&lt;br /&gt;
#its in views/assignments/edit/_topics.html.erb: https://github.com/jmwinte3/expertiza/blob/mentor_meetings/app/views/assignments/edit.html.erb &lt;br /&gt;
#views/import_file/start: https://github.com/jmwinte3/expertiza/blob/e566f88436d4c833111086631d0f30c76a5970a2/app/views/import_file/start.html.erb#L2&lt;br /&gt;
#views/sign_up_sheet/_add_topics.html.erb https://github.com/jmwinte3/expertiza/blob/mentor_meetings/app/views/sign_up_sheet/_add_topics.html.erb&lt;br /&gt;
#views/sign_up_sheet/_table_line.html.erb https://github.com/jmwinte3/expertiza/blob/mentor_meetings/app/views/sign_up_sheet/_table_line.html.erb&lt;br /&gt;
#views/sign_up_sheet/_topic_names .html.erb https://github.com/jmwinte3/expertiza/blob/mentor_meetings/app/views/sign_up_sheet/_topic_names.html.erb&lt;br /&gt;
#views/sign_up_sheet/_add_topic.html.erb https://github.com/jmwinte3/expertiza/blob/mentor_meetings/app/views/sign_up_sheet/_add_topic.html.erb&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
TODO: Add Files Modified&lt;br /&gt;
&lt;br /&gt;
==Testing==&lt;br /&gt;
===Test Plan===&lt;br /&gt;
&lt;br /&gt;
The overarching purpose of these tests is to verify that the system correctly handles mentor assignments in projects where mentors are associated with topics, not directly with teams. This includes:&lt;br /&gt;
&lt;br /&gt;
    Storing Mentors with Topics: Ensuring that topics can hold information about their assigned mentors.&lt;br /&gt;
    Assigning Mentors During Topic Sign-up: Confirming that when a team chooses a topic, the topic's mentor is automatically assigned to that team.&lt;br /&gt;
    Assigning Mentors when Teams Reach Half Strength: Ensuring that the existing logic for intelligent assignments still applies.&lt;br /&gt;
    Displaying Mentor Information: Validating that team views accurately show mentor information for mentored assignments and correctly hide it for non-mentored ones.&lt;br /&gt;
    Importing Topics with Mentors: Checking that topics imported from files correctly capture and store mentor assignments.&lt;br /&gt;
&lt;br /&gt;
    TODO: Add Test Plan&lt;br /&gt;
&lt;br /&gt;
===Test Coverage===&lt;br /&gt;
    TODO: Add Test coverage&lt;br /&gt;
&lt;br /&gt;
==Relevant Links==&lt;br /&gt;
* Github: https://github.com/jmwinte3/expertiza &lt;br /&gt;
* E2504 Wiki: https://wiki.expertiza.ncsu.edu/index.php?title=CSC/ECE_517_Spring_2025_-_E2504._Mentor-meeting_management&lt;br /&gt;
* Project Description: https://docs.google.com/document/d/1jjbqggRDiOHrxdsMlliY62JnP34bGTNHVWAZNz89kT8/edit?tab=t.0#heading=h.yeys674t35p3&lt;br /&gt;
&lt;br /&gt;
== Team ==&lt;br /&gt;
===Mentor===&lt;br /&gt;
&lt;br /&gt;
    Ed Gehringer&lt;br /&gt;
&lt;br /&gt;
=== Members ===&lt;br /&gt;
&lt;br /&gt;
    Jacob Winters&lt;br /&gt;
    Alex Wakefield&lt;br /&gt;
    John Buchanan&lt;/div&gt;</summary>
		<author><name>Jmwinte3</name></author>
	</entry>
	<entry>
		<id>https://wiki.expertiza.ncsu.edu/index.php?title=CSC/ECE_517_Spring_2025_-_E2527._Mentor-meeting_management:_assignments_with_topics&amp;diff=163067</id>
		<title>CSC/ECE 517 Spring 2025 - E2527. Mentor-meeting management: assignments with topics</title>
		<link rel="alternate" type="text/html" href="https://wiki.expertiza.ncsu.edu/index.php?title=CSC/ECE_517_Spring_2025_-_E2527._Mentor-meeting_management:_assignments_with_topics&amp;diff=163067"/>
		<updated>2025-04-03T19:14:53Z</updated>

		<summary type="html">&lt;p&gt;Jmwinte3: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;__TOC__&lt;br /&gt;
&lt;br /&gt;
==Background==&lt;br /&gt;
In Project E2504, implementation was added for mentors to record their meetings with the teams they were mentoring. It worked for projects where mentors were automatically assigned. To expand the functionality of the mentor management system, we want to incorporate mentors into assignment topics.&lt;br /&gt;
&lt;br /&gt;
==Project Overview==&lt;br /&gt;
The main objective of this project is to extend the mentor management system by having it collaborate with the assignment topics system. When an assignment with topics is created, topics are imported from a spreadsheet into the assignment table. This project will focus on including pre-selected mentors (entered in the spreadsheet) in the assignment table and having the mentor assigned to the team automatically upon topic selection.&lt;br /&gt;
&lt;br /&gt;
==Implementation==&lt;br /&gt;
Implementation will include adding a checkbox option at the top of the page with the other checkbox options. This checkbox will toggle whether or not the mentors will be included in the assignment/import. This checkbox will also reload the table to include the additional column required for the mentor's name. Once saved, these mentor names will be stored as an additional attribute in the sign_up_topic&lt;br /&gt;
&lt;br /&gt;
After a team has been created, and is allowed to choose a topic from the assignment, the mentor which was assigned to the topic will automatically be assigned to the team. This will be done by adding the mentor to the team and ensuring their can_mentor participant value is true (1). Given the logic of the previous mentor management implementations, this ensures the participant on the team is recognized as a mentor of any team they are on.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
When project topics are imported (from the Topics tab of the assignment “Import topics” at the bottom of the page) there must be an optional field for mentor&lt;br /&gt;
At the bottom of this page for example http://152.7.178.121:8080/assignments/1028/edit&lt;br /&gt;
&lt;br /&gt;
just as is done now when the team reaches half strength.&lt;br /&gt;
&lt;br /&gt;
this is happening within the mentor_management model here:&lt;br /&gt;
#https://github.com/jmwinte3/expertiza/blob/e566f88436d4c833111086631d0f30c76a5970a2/app/models/mentor_management.rb#L43&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
TODO: Add Implementation&lt;br /&gt;
&lt;br /&gt;
==Files That May Be Modified==&lt;br /&gt;
Models:&lt;br /&gt;
#SignedUpTeam: https://github.com/jmwinte3/expertiza/blob/mentor_meetings/app/models/signed_up_team.rb&lt;br /&gt;
#SignUpTopic: https://github.com/jmwinte3/expertiza/blob/mentor_meetings/app/models/sign_up_topic.rb&lt;br /&gt;
&lt;br /&gt;
Controller:&lt;br /&gt;
#import_file_controller.rb&lt;br /&gt;
&lt;br /&gt;
Views:&lt;br /&gt;
#its in views/assignments/edit/_topics.html.erb: https://github.com/jmwinte3/expertiza/blob/mentor_meetings/app/views/assignments/edit.html.erb &lt;br /&gt;
#views/import_file/start: https://github.com/jmwinte3/expertiza/blob/e566f88436d4c833111086631d0f30c76a5970a2/app/views/import_file/start.html.erb#L2&lt;br /&gt;
#views/sign_up_sheet/_add_topics.html.erb https://github.com/jmwinte3/expertiza/blob/mentor_meetings/app/views/sign_up_sheet/_add_topics.html.erb&lt;br /&gt;
#views/sign_up_sheet/_table_line.html.erb https://github.com/jmwinte3/expertiza/blob/mentor_meetings/app/views/sign_up_sheet/_table_line.html.erb&lt;br /&gt;
#views/sign_up_sheet/_topic_names .html.erb https://github.com/jmwinte3/expertiza/blob/mentor_meetings/app/views/sign_up_sheet/_topic_names.html.erb&lt;br /&gt;
#views/sign_up_sheet/_add_topic.html.erb https://github.com/jmwinte3/expertiza/blob/mentor_meetings/app/views/sign_up_sheet/_add_topic.html.erb&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
TODO: Add Files Modified&lt;br /&gt;
&lt;br /&gt;
==Testing==&lt;br /&gt;
===Test Plan===&lt;br /&gt;
&lt;br /&gt;
The overarching purpose of these tests is to verify that the system correctly handles mentor assignments in projects where mentors are associated with topics, not directly with teams. This includes:&lt;br /&gt;
&lt;br /&gt;
    Storing Mentors with Topics: Ensuring that topics can hold information about their assigned mentors.&lt;br /&gt;
    Assigning Mentors During Topic Sign-up: Confirming that when a team chooses a topic, the topic's mentor is automatically assigned to that team.&lt;br /&gt;
    Assigning Mentors when Teams Reach Half Strength: Ensuring that the existing logic for intelligent assignments still applies.&lt;br /&gt;
    Displaying Mentor Information: Validating that team views accurately show mentor information for mentored assignments and correctly hide it for non-mentored ones.&lt;br /&gt;
    Importing Topics with Mentors: Checking that topics imported from files correctly capture and store mentor assignments.&lt;br /&gt;
&lt;br /&gt;
    TODO: Add Test Plan&lt;br /&gt;
&lt;br /&gt;
===Test Coverage===&lt;br /&gt;
    TODO: Add Test coverage&lt;br /&gt;
&lt;br /&gt;
==Relevant Links==&lt;br /&gt;
* Github: https://github.com/jmwinte3/expertiza &lt;br /&gt;
* E2504 Wiki: https://wiki.expertiza.ncsu.edu/index.php?title=CSC/ECE_517_Spring_2025_-_E2504._Mentor-meeting_management&lt;br /&gt;
* Project Description: https://docs.google.com/document/d/1jjbqggRDiOHrxdsMlliY62JnP34bGTNHVWAZNz89kT8/edit?tab=t.0#heading=h.yeys674t35p3&lt;br /&gt;
&lt;br /&gt;
== Team ==&lt;br /&gt;
===Mentor===&lt;br /&gt;
&lt;br /&gt;
    Ed Gehringer&lt;br /&gt;
&lt;br /&gt;
=== Members ===&lt;br /&gt;
&lt;br /&gt;
    Jacob Winters&lt;br /&gt;
    Alex Wakefield&lt;br /&gt;
    John Buchanan&lt;/div&gt;</summary>
		<author><name>Jmwinte3</name></author>
	</entry>
	<entry>
		<id>https://wiki.expertiza.ncsu.edu/index.php?title=CSC/ECE_517_Spring_2025_-_E2527._Mentor-meeting_management:_assignments_with_topics&amp;diff=163066</id>
		<title>CSC/ECE 517 Spring 2025 - E2527. Mentor-meeting management: assignments with topics</title>
		<link rel="alternate" type="text/html" href="https://wiki.expertiza.ncsu.edu/index.php?title=CSC/ECE_517_Spring_2025_-_E2527._Mentor-meeting_management:_assignments_with_topics&amp;diff=163066"/>
		<updated>2025-04-03T19:10:54Z</updated>

		<summary type="html">&lt;p&gt;Jmwinte3: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;__TOC__&lt;br /&gt;
&lt;br /&gt;
==Background==&lt;br /&gt;
In Project E2504, implementation was added for mentors to record their meetings with the teams they were mentoring. It worked for projects where mentors were automatically assigned. To expand the functionality of the mentor management system, we want to incorporate mentors into assignment topics.&lt;br /&gt;
&lt;br /&gt;
==Project Overview==&lt;br /&gt;
The main objective of this project is to extend the mentor management system by having it collaborate with the assignment topics system. When an assignment with topics is created, topics are imported from a spreadsheet into the assignment table. This project will focus on including pre-selected mentors (entered in the spreadsheet) in the assignment table and having the mentor assigned to the team automatically upon topic selection.&lt;br /&gt;
&lt;br /&gt;
==Implementation==&lt;br /&gt;
Implementation will include adding a checkbox option at the top of the page with the other checkbox options. This checkbox will toggle whether or not the mentors will be included in the assignment/import. This checkbox will also reload the table to include the additional column required for the mentor's name. Once saved, these mentor names will be stored as an additional attribute in the sign_up_topic&lt;br /&gt;
&lt;br /&gt;
After a team has been created, and is allowed to choose a topic from the assignment, the mentor which was assigned to the topic will automatically be assigned to the team. This will be done by adding the mentor to the team and ensuring their can_mentor participant value is true (1). Given the logic of the previous mentor management implementations, this ensures the participant on the team is recognized as a mentor of any team they are on.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
When project topics are imported (from the Topics tab of the assignment “Import topics” at the bottom of the page) there must be an optional field for mentor&lt;br /&gt;
At the bottom of this page for example http://152.7.178.121:8080/assignments/1028/edit&lt;br /&gt;
&lt;br /&gt;
just as is done now when the team reaches half strength.&lt;br /&gt;
&lt;br /&gt;
this is happening within the mentor_management model here:&lt;br /&gt;
#https://github.com/jmwinte3/expertiza/blob/e566f88436d4c833111086631d0f30c76a5970a2/app/models/mentor_management.rb#L43&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
TODO: Add Implementation&lt;br /&gt;
&lt;br /&gt;
==Files That May Be Modified==&lt;br /&gt;
Models:&lt;br /&gt;
#SignedUpTeam: https://github.com/jmwinte3/expertiza/blob/mentor_meetings/app/models/signed_up_team.rb&lt;br /&gt;
#SignUpTopic: https://github.com/jmwinte3/expertiza/blob/mentor_meetings/app/models/sign_up_topic.rb&lt;br /&gt;
&lt;br /&gt;
Controller:&lt;br /&gt;
#import_file_controller.rb&lt;br /&gt;
&lt;br /&gt;
Views:&lt;br /&gt;
#its in views/assignments/edit/_topics.html.erb: https://github.com/jmwinte3/expertiza/blob/mentor_meetings/app/views/assignments/edit.html.erb &lt;br /&gt;
#views/import_file/start: https://github.com/jmwinte3/expertiza/blob/e566f88436d4c833111086631d0f30c76a5970a2/app/views/import_file/start.html.erb#L2&lt;br /&gt;
#views/sign_up_sheet/_add_topics.html.erb&lt;br /&gt;
#views/sign_up_sheet/_table_line.html.erb&lt;br /&gt;
#views/sign_up_sheet/_topic_names .html.erb&lt;br /&gt;
#views/sign_up_sheet/_add_topic.html.erb&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
TODO: Add Files Modified&lt;br /&gt;
&lt;br /&gt;
==Testing==&lt;br /&gt;
===Test Plan===&lt;br /&gt;
&lt;br /&gt;
The overarching purpose of these tests is to verify that the system correctly handles mentor assignments in projects where mentors are associated with topics, not directly with teams. This includes:&lt;br /&gt;
&lt;br /&gt;
    Storing Mentors with Topics: Ensuring that topics can hold information about their assigned mentors.&lt;br /&gt;
    Assigning Mentors During Topic Sign-up: Confirming that when a team chooses a topic, the topic's mentor is automatically assigned to that team.&lt;br /&gt;
    Assigning Mentors when Teams Reach Half Strength: Ensuring that the existing logic for intelligent assignments still applies.&lt;br /&gt;
    Displaying Mentor Information: Validating that team views accurately show mentor information for mentored assignments and correctly hide it for non-mentored ones.&lt;br /&gt;
    Importing Topics with Mentors: Checking that topics imported from files correctly capture and store mentor assignments.&lt;br /&gt;
&lt;br /&gt;
    TODO: Add Test Plan&lt;br /&gt;
&lt;br /&gt;
===Test Coverage===&lt;br /&gt;
    TODO: Add Test coverage&lt;br /&gt;
&lt;br /&gt;
==Relevant Links==&lt;br /&gt;
* Github: https://github.com/jmwinte3/expertiza &lt;br /&gt;
* E2504 Wiki: https://wiki.expertiza.ncsu.edu/index.php?title=CSC/ECE_517_Spring_2025_-_E2504._Mentor-meeting_management&lt;br /&gt;
* Project Description: https://docs.google.com/document/d/1jjbqggRDiOHrxdsMlliY62JnP34bGTNHVWAZNz89kT8/edit?tab=t.0#heading=h.yeys674t35p3&lt;br /&gt;
&lt;br /&gt;
== Team ==&lt;br /&gt;
===Mentor===&lt;br /&gt;
&lt;br /&gt;
    Ed Gehringer&lt;br /&gt;
&lt;br /&gt;
=== Members ===&lt;br /&gt;
&lt;br /&gt;
    Jacob Winters&lt;br /&gt;
    Alex Wakefield&lt;br /&gt;
    John Buchanan&lt;/div&gt;</summary>
		<author><name>Jmwinte3</name></author>
	</entry>
	<entry>
		<id>https://wiki.expertiza.ncsu.edu/index.php?title=CSC/ECE_517_Spring_2025_-_E2527._Mentor-meeting_management:_assignments_with_topics&amp;diff=163065</id>
		<title>CSC/ECE 517 Spring 2025 - E2527. Mentor-meeting management: assignments with topics</title>
		<link rel="alternate" type="text/html" href="https://wiki.expertiza.ncsu.edu/index.php?title=CSC/ECE_517_Spring_2025_-_E2527._Mentor-meeting_management:_assignments_with_topics&amp;diff=163065"/>
		<updated>2025-04-03T19:10:31Z</updated>

		<summary type="html">&lt;p&gt;Jmwinte3: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;__TOC__&lt;br /&gt;
&lt;br /&gt;
==Background==&lt;br /&gt;
In Project E2504, implementation was added for mentors to record their meetings with the teams they were mentoring. It worked for projects where mentors were automatically assigned. To expand the functionality of the mentor management system, we want to incorporate mentors into assignment topics.&lt;br /&gt;
&lt;br /&gt;
==Project Overview==&lt;br /&gt;
The main objective of this project is to extend the mentor management system by having it collaborate with the assignment topics system. When an assignment with topics is created, topics are imported from a spreadsheet into the assignment table. This project will focus on including pre-selected mentors (entered in the spreadsheet) in the assignment table and having the mentor assigned to the team automatically upon topic selection.&lt;br /&gt;
&lt;br /&gt;
==Implementation==&lt;br /&gt;
Implementation will include adding a checkbox option at the top of the page with the other checkbox options. This checkbox will toggle whether or not the mentors will be included in the assignment/import. This checkbox will also reload the table to include the additional column required for the mentor's name. Once saved, these mentor names will be stored as an additional attribute in the sign_up_topic&lt;br /&gt;
&lt;br /&gt;
After a team has been created, and is allowed to choose a topic from the assignment, the mentor which was assigned to the topic will automatically be assigned to the team. This will be done by adding the mentor to the team and ensuring their can_mentor participant value is true (1). Given the logic of the previous mentor management implementations, this ensures the participant on the team is recognized as a mentor of any team they are on.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
When project topics are imported (from the Topics tab of the assignment “Import topics” at the bottom of the page) there must be an optional field for mentor&lt;br /&gt;
At the bottom of this page http://152.7.178.121:8080/assignments/1028/edit&lt;br /&gt;
&lt;br /&gt;
just as is done now when the team reaches half strength.&lt;br /&gt;
&lt;br /&gt;
this is happening within the mentor_management model here:&lt;br /&gt;
#https://github.com/jmwinte3/expertiza/blob/e566f88436d4c833111086631d0f30c76a5970a2/app/models/mentor_management.rb#L43&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
TODO: Add Implementation&lt;br /&gt;
&lt;br /&gt;
==Files That May Be Modified==&lt;br /&gt;
Models:&lt;br /&gt;
#SignedUpTeam: https://github.com/jmwinte3/expertiza/blob/mentor_meetings/app/models/signed_up_team.rb&lt;br /&gt;
#SignUpTopic: https://github.com/jmwinte3/expertiza/blob/mentor_meetings/app/models/sign_up_topic.rb&lt;br /&gt;
&lt;br /&gt;
Controller:&lt;br /&gt;
#import_file_controller.rb&lt;br /&gt;
&lt;br /&gt;
Views:&lt;br /&gt;
#its in views/assignments/edit/_topics.html.erb: https://github.com/jmwinte3/expertiza/blob/mentor_meetings/app/views/assignments/edit.html.erb &lt;br /&gt;
#views/import_file/start: https://github.com/jmwinte3/expertiza/blob/e566f88436d4c833111086631d0f30c76a5970a2/app/views/import_file/start.html.erb#L2&lt;br /&gt;
#views/sign_up_sheet/_add_topics.html.erb&lt;br /&gt;
#views/sign_up_sheet/_table_line.html.erb&lt;br /&gt;
#views/sign_up_sheet/_topic_names .html.erb&lt;br /&gt;
#views/sign_up_sheet/_add_topic.html.erb&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
TODO: Add Files Modified&lt;br /&gt;
&lt;br /&gt;
==Testing==&lt;br /&gt;
===Test Plan===&lt;br /&gt;
&lt;br /&gt;
The overarching purpose of these tests is to verify that the system correctly handles mentor assignments in projects where mentors are associated with topics, not directly with teams. This includes:&lt;br /&gt;
&lt;br /&gt;
    Storing Mentors with Topics: Ensuring that topics can hold information about their assigned mentors.&lt;br /&gt;
    Assigning Mentors During Topic Sign-up: Confirming that when a team chooses a topic, the topic's mentor is automatically assigned to that team.&lt;br /&gt;
    Assigning Mentors when Teams Reach Half Strength: Ensuring that the existing logic for intelligent assignments still applies.&lt;br /&gt;
    Displaying Mentor Information: Validating that team views accurately show mentor information for mentored assignments and correctly hide it for non-mentored ones.&lt;br /&gt;
    Importing Topics with Mentors: Checking that topics imported from files correctly capture and store mentor assignments.&lt;br /&gt;
&lt;br /&gt;
    TODO: Add Test Plan&lt;br /&gt;
&lt;br /&gt;
===Test Coverage===&lt;br /&gt;
    TODO: Add Test coverage&lt;br /&gt;
&lt;br /&gt;
==Relevant Links==&lt;br /&gt;
* Github: https://github.com/jmwinte3/expertiza &lt;br /&gt;
* E2504 Wiki: https://wiki.expertiza.ncsu.edu/index.php?title=CSC/ECE_517_Spring_2025_-_E2504._Mentor-meeting_management&lt;br /&gt;
* Project Description: https://docs.google.com/document/d/1jjbqggRDiOHrxdsMlliY62JnP34bGTNHVWAZNz89kT8/edit?tab=t.0#heading=h.yeys674t35p3&lt;br /&gt;
&lt;br /&gt;
== Team ==&lt;br /&gt;
===Mentor===&lt;br /&gt;
&lt;br /&gt;
    Ed Gehringer&lt;br /&gt;
&lt;br /&gt;
=== Members ===&lt;br /&gt;
&lt;br /&gt;
    Jacob Winters&lt;br /&gt;
    Alex Wakefield&lt;br /&gt;
    John Buchanan&lt;/div&gt;</summary>
		<author><name>Jmwinte3</name></author>
	</entry>
	<entry>
		<id>https://wiki.expertiza.ncsu.edu/index.php?title=CSC/ECE_517_Spring_2025_-_E2527._Mentor-meeting_management:_assignments_with_topics&amp;diff=163064</id>
		<title>CSC/ECE 517 Spring 2025 - E2527. Mentor-meeting management: assignments with topics</title>
		<link rel="alternate" type="text/html" href="https://wiki.expertiza.ncsu.edu/index.php?title=CSC/ECE_517_Spring_2025_-_E2527._Mentor-meeting_management:_assignments_with_topics&amp;diff=163064"/>
		<updated>2025-04-03T19:09:31Z</updated>

		<summary type="html">&lt;p&gt;Jmwinte3: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;__TOC__&lt;br /&gt;
&lt;br /&gt;
==Background==&lt;br /&gt;
In Project E2504, implementation was added for mentors to record their meetings with the teams they were mentoring. It worked for projects where mentors were automatically assigned. To expand the functionality of the mentor management system, we want to incorporate mentors into assignment topics.&lt;br /&gt;
&lt;br /&gt;
==Project Overview==&lt;br /&gt;
The main objective of this project is to extend the mentor management system by having it collaborate with the assignment topics system. When an assignment with topics is created, topics are imported from a spreadsheet into the assignment table. This project will focus on including pre-selected mentors (entered in the spreadsheet) in the assignment table and having the mentor assigned to the team automatically upon topic selection.&lt;br /&gt;
&lt;br /&gt;
==Implementation==&lt;br /&gt;
Implementation will include adding a checkbox option at the top of the page with the other checkbox options. This checkbox will toggle whether or not the mentors will be included in the assignment/import. This checkbox will also reload the table to include the additional column required for the mentor's name. Once saved, these mentor names will be stored as an additional attribute in the sign_up_topic&lt;br /&gt;
&lt;br /&gt;
After a team has been created, and is allowed to choose a topic from the assignment, the mentor which was assigned to the topic will automatically be assigned to the team. This will be done by adding the mentor to the team and ensuring their can_mentor participant value is true (1). Given the logic of the previous mentor management implementations, this ensures the participant on the team is recognized as a mentor of any team they are on.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
When project topics are imported (from the Topics tab of the assignment (“Import topics” at the bottom of the page) there must be an optional field for mentor&lt;br /&gt;
At the bottom of this page http://152.7.178.121:8080/assignments/1028/edit&lt;br /&gt;
&lt;br /&gt;
just as is done now when the team reaches half strength.&lt;br /&gt;
&lt;br /&gt;
this is happening within the mentor_management model here:&lt;br /&gt;
#https://github.com/jmwinte3/expertiza/blob/e566f88436d4c833111086631d0f30c76a5970a2/app/models/mentor_management.rb#L43&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
TODO: Add Implementation&lt;br /&gt;
&lt;br /&gt;
==Files That May Be Modified==&lt;br /&gt;
Models:&lt;br /&gt;
#SignedUpTeam: https://github.com/jmwinte3/expertiza/blob/mentor_meetings/app/models/signed_up_team.rb&lt;br /&gt;
#SignUpTopic: https://github.com/jmwinte3/expertiza/blob/mentor_meetings/app/models/sign_up_topic.rb&lt;br /&gt;
&lt;br /&gt;
Controller:&lt;br /&gt;
#import_file_controller.rb&lt;br /&gt;
&lt;br /&gt;
Views:&lt;br /&gt;
#its in views/assignments/edit/_topics.html.erb: https://github.com/jmwinte3/expertiza/blob/mentor_meetings/app/views/assignments/edit.html.erb &lt;br /&gt;
#views/import_file/start: https://github.com/jmwinte3/expertiza/blob/e566f88436d4c833111086631d0f30c76a5970a2/app/views/import_file/start.html.erb#L2&lt;br /&gt;
#views/sign_up_sheet/_add_topics.html.erb&lt;br /&gt;
#views/sign_up_sheet/_table_line.html.erb&lt;br /&gt;
#views/sign_up_sheet/_topic_names .html.erb&lt;br /&gt;
#views/sign_up_sheet/_add_topic.html.erb&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
TODO: Add Files Modified&lt;br /&gt;
&lt;br /&gt;
==Testing==&lt;br /&gt;
===Test Plan===&lt;br /&gt;
&lt;br /&gt;
The overarching purpose of these tests is to verify that the system correctly handles mentor assignments in projects where mentors are associated with topics, not directly with teams. This includes:&lt;br /&gt;
&lt;br /&gt;
    Storing Mentors with Topics: Ensuring that topics can hold information about their assigned mentors.&lt;br /&gt;
    Assigning Mentors During Topic Sign-up: Confirming that when a team chooses a topic, the topic's mentor is automatically assigned to that team.&lt;br /&gt;
    Assigning Mentors when Teams Reach Half Strength: Ensuring that the existing logic for intelligent assignments still applies.&lt;br /&gt;
    Displaying Mentor Information: Validating that team views accurately show mentor information for mentored assignments and correctly hide it for non-mentored ones.&lt;br /&gt;
    Importing Topics with Mentors: Checking that topics imported from files correctly capture and store mentor assignments.&lt;br /&gt;
&lt;br /&gt;
    TODO: Add Test Plan&lt;br /&gt;
&lt;br /&gt;
===Test Coverage===&lt;br /&gt;
    TODO: Add Test coverage&lt;br /&gt;
&lt;br /&gt;
==Relevant Links==&lt;br /&gt;
* Github: https://github.com/jmwinte3/expertiza &lt;br /&gt;
* E2504 Wiki: https://wiki.expertiza.ncsu.edu/index.php?title=CSC/ECE_517_Spring_2025_-_E2504._Mentor-meeting_management&lt;br /&gt;
* Project Description: https://docs.google.com/document/d/1jjbqggRDiOHrxdsMlliY62JnP34bGTNHVWAZNz89kT8/edit?tab=t.0#heading=h.yeys674t35p3&lt;br /&gt;
&lt;br /&gt;
== Team ==&lt;br /&gt;
===Mentor===&lt;br /&gt;
&lt;br /&gt;
    Ed Gehringer&lt;br /&gt;
&lt;br /&gt;
=== Members ===&lt;br /&gt;
&lt;br /&gt;
    Jacob Winters&lt;br /&gt;
    Alex Wakefield&lt;br /&gt;
    John Buchanan&lt;/div&gt;</summary>
		<author><name>Jmwinte3</name></author>
	</entry>
	<entry>
		<id>https://wiki.expertiza.ncsu.edu/index.php?title=CSC/ECE_517_Spring_2025_-_E2527._Mentor-meeting_management:_assignments_with_topics&amp;diff=163063</id>
		<title>CSC/ECE 517 Spring 2025 - E2527. Mentor-meeting management: assignments with topics</title>
		<link rel="alternate" type="text/html" href="https://wiki.expertiza.ncsu.edu/index.php?title=CSC/ECE_517_Spring_2025_-_E2527._Mentor-meeting_management:_assignments_with_topics&amp;diff=163063"/>
		<updated>2025-04-03T19:09:22Z</updated>

		<summary type="html">&lt;p&gt;Jmwinte3: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;__TOC__&lt;br /&gt;
&lt;br /&gt;
==Background==&lt;br /&gt;
In Project E2504, implementation was added for mentors to record their meetings with the teams they were mentoring. It worked for projects where mentors were automatically assigned. To expand the functionality of the mentor management system, we want to incorporate mentors into assignment topics.&lt;br /&gt;
&lt;br /&gt;
==Project Overview==&lt;br /&gt;
The main objective of this project is to extend the mentor management system by having it collaborate with the assignment topics system. When an assignment with topics is created, topics are imported from a spreadsheet into the assignment table. This project will focus on including pre-selected mentors (entered in the spreadsheet) in the assignment table and having the mentor assigned to the team automatically upon topic selection.&lt;br /&gt;
&lt;br /&gt;
==Implementation==&lt;br /&gt;
Implementation will include adding a checkbox option at the top of the page with the other checkbox options. This checkbox will toggle whether or not the mentors will be included in the assignment/import. This checkbox will also reload the table to include the additional column required for the mentor's name. Once saved, these mentor names will be stored as an additional attribute in the sign_up_topic&lt;br /&gt;
&lt;br /&gt;
After a team has been created, and is allowed to choose a topic from the assignment, the mentor which was assigned to the topic will automatically be assigned to the team. This will be done by adding the mentor to the team and ensuring their can_mentor participant value is true (1). Given the logic of the previous mentor management implementations, this ensures the participant on the team is recognized as a mentor of any team they are on.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
When project topics are imported (from the Topics tab of the assignment (“Import topics” at the bottom of the page) there must be an optional field for mentor&lt;br /&gt;
At the bottom of this page http://152.7.178.121:8080/assignments/1028/edit&lt;br /&gt;
&lt;br /&gt;
just as is done now when the team reaches half strength.&lt;br /&gt;
&lt;br /&gt;
this is happening within the mentor_management model here:&lt;br /&gt;
- https://github.com/jmwinte3/expertiza/blob/e566f88436d4c833111086631d0f30c76a5970a2/app/models/mentor_management.rb#L43&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
TODO: Add Implementation&lt;br /&gt;
&lt;br /&gt;
==Files That May Be Modified==&lt;br /&gt;
Models:&lt;br /&gt;
#SignedUpTeam: https://github.com/jmwinte3/expertiza/blob/mentor_meetings/app/models/signed_up_team.rb&lt;br /&gt;
#SignUpTopic: https://github.com/jmwinte3/expertiza/blob/mentor_meetings/app/models/sign_up_topic.rb&lt;br /&gt;
&lt;br /&gt;
Controller:&lt;br /&gt;
#import_file_controller.rb&lt;br /&gt;
&lt;br /&gt;
Views:&lt;br /&gt;
#its in views/assignments/edit/_topics.html.erb: https://github.com/jmwinte3/expertiza/blob/mentor_meetings/app/views/assignments/edit.html.erb &lt;br /&gt;
#views/import_file/start: https://github.com/jmwinte3/expertiza/blob/e566f88436d4c833111086631d0f30c76a5970a2/app/views/import_file/start.html.erb#L2&lt;br /&gt;
#views/sign_up_sheet/_add_topics.html.erb&lt;br /&gt;
#views/sign_up_sheet/_table_line.html.erb&lt;br /&gt;
#views/sign_up_sheet/_topic_names .html.erb&lt;br /&gt;
#views/sign_up_sheet/_add_topic.html.erb&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
TODO: Add Files Modified&lt;br /&gt;
&lt;br /&gt;
==Testing==&lt;br /&gt;
===Test Plan===&lt;br /&gt;
&lt;br /&gt;
The overarching purpose of these tests is to verify that the system correctly handles mentor assignments in projects where mentors are associated with topics, not directly with teams. This includes:&lt;br /&gt;
&lt;br /&gt;
    Storing Mentors with Topics: Ensuring that topics can hold information about their assigned mentors.&lt;br /&gt;
    Assigning Mentors During Topic Sign-up: Confirming that when a team chooses a topic, the topic's mentor is automatically assigned to that team.&lt;br /&gt;
    Assigning Mentors when Teams Reach Half Strength: Ensuring that the existing logic for intelligent assignments still applies.&lt;br /&gt;
    Displaying Mentor Information: Validating that team views accurately show mentor information for mentored assignments and correctly hide it for non-mentored ones.&lt;br /&gt;
    Importing Topics with Mentors: Checking that topics imported from files correctly capture and store mentor assignments.&lt;br /&gt;
&lt;br /&gt;
    TODO: Add Test Plan&lt;br /&gt;
&lt;br /&gt;
===Test Coverage===&lt;br /&gt;
    TODO: Add Test coverage&lt;br /&gt;
&lt;br /&gt;
==Relevant Links==&lt;br /&gt;
* Github: https://github.com/jmwinte3/expertiza &lt;br /&gt;
* E2504 Wiki: https://wiki.expertiza.ncsu.edu/index.php?title=CSC/ECE_517_Spring_2025_-_E2504._Mentor-meeting_management&lt;br /&gt;
* Project Description: https://docs.google.com/document/d/1jjbqggRDiOHrxdsMlliY62JnP34bGTNHVWAZNz89kT8/edit?tab=t.0#heading=h.yeys674t35p3&lt;br /&gt;
&lt;br /&gt;
== Team ==&lt;br /&gt;
===Mentor===&lt;br /&gt;
&lt;br /&gt;
    Ed Gehringer&lt;br /&gt;
&lt;br /&gt;
=== Members ===&lt;br /&gt;
&lt;br /&gt;
    Jacob Winters&lt;br /&gt;
    Alex Wakefield&lt;br /&gt;
    John Buchanan&lt;/div&gt;</summary>
		<author><name>Jmwinte3</name></author>
	</entry>
	<entry>
		<id>https://wiki.expertiza.ncsu.edu/index.php?title=CSC/ECE_517_Spring_2025_-_E2527._Mentor-meeting_management:_assignments_with_topics&amp;diff=163062</id>
		<title>CSC/ECE 517 Spring 2025 - E2527. Mentor-meeting management: assignments with topics</title>
		<link rel="alternate" type="text/html" href="https://wiki.expertiza.ncsu.edu/index.php?title=CSC/ECE_517_Spring_2025_-_E2527._Mentor-meeting_management:_assignments_with_topics&amp;diff=163062"/>
		<updated>2025-04-03T19:09:12Z</updated>

		<summary type="html">&lt;p&gt;Jmwinte3: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;__TOC__&lt;br /&gt;
&lt;br /&gt;
==Background==&lt;br /&gt;
In Project E2504, implementation was added for mentors to record their meetings with the teams they were mentoring. It worked for projects where mentors were automatically assigned. To expand the functionality of the mentor management system, we want to incorporate mentors into assignment topics.&lt;br /&gt;
&lt;br /&gt;
==Project Overview==&lt;br /&gt;
The main objective of this project is to extend the mentor management system by having it collaborate with the assignment topics system. When an assignment with topics is created, topics are imported from a spreadsheet into the assignment table. This project will focus on including pre-selected mentors (entered in the spreadsheet) in the assignment table and having the mentor assigned to the team automatically upon topic selection.&lt;br /&gt;
&lt;br /&gt;
==Implementation==&lt;br /&gt;
Implementation will include adding a checkbox option at the top of the page with the other checkbox options. This checkbox will toggle whether or not the mentors will be included in the assignment/import. This checkbox will also reload the table to include the additional column required for the mentor's name. Once saved, these mentor names will be stored as an additional attribute in the sign_up_topic&lt;br /&gt;
&lt;br /&gt;
After a team has been created, and is allowed to choose a topic from the assignment, the mentor which was assigned to the topic will automatically be assigned to the team. This will be done by adding the mentor to the team and ensuring their can_mentor participant value is true (1). Given the logic of the previous mentor management implementations, this ensures the participant on the team is recognized as a mentor of any team they are on.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
When project topics are imported (from the Topics tab of the assignment (“Import topics” at the bottom of the page) there must be an optional field for mentor&lt;br /&gt;
At the bottom of this page http://152.7.178.121:8080/assignments/1028/edit&lt;br /&gt;
&lt;br /&gt;
just as is done now when the team reaches half strength.&lt;br /&gt;
&lt;br /&gt;
this is happening within the mentor_management model here:&lt;br /&gt;
-https://github.com/jmwinte3/expertiza/blob/e566f88436d4c833111086631d0f30c76a5970a2/app/models/mentor_management.rb#L43&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
TODO: Add Implementation&lt;br /&gt;
&lt;br /&gt;
==Files That May Be Modified==&lt;br /&gt;
Models:&lt;br /&gt;
#SignedUpTeam: https://github.com/jmwinte3/expertiza/blob/mentor_meetings/app/models/signed_up_team.rb&lt;br /&gt;
#SignUpTopic: https://github.com/jmwinte3/expertiza/blob/mentor_meetings/app/models/sign_up_topic.rb&lt;br /&gt;
&lt;br /&gt;
Controller:&lt;br /&gt;
#import_file_controller.rb&lt;br /&gt;
&lt;br /&gt;
Views:&lt;br /&gt;
#its in views/assignments/edit/_topics.html.erb: https://github.com/jmwinte3/expertiza/blob/mentor_meetings/app/views/assignments/edit.html.erb &lt;br /&gt;
#views/import_file/start: https://github.com/jmwinte3/expertiza/blob/e566f88436d4c833111086631d0f30c76a5970a2/app/views/import_file/start.html.erb#L2&lt;br /&gt;
#views/sign_up_sheet/_add_topics.html.erb&lt;br /&gt;
#views/sign_up_sheet/_table_line.html.erb&lt;br /&gt;
#views/sign_up_sheet/_topic_names .html.erb&lt;br /&gt;
#views/sign_up_sheet/_add_topic.html.erb&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
TODO: Add Files Modified&lt;br /&gt;
&lt;br /&gt;
==Testing==&lt;br /&gt;
===Test Plan===&lt;br /&gt;
&lt;br /&gt;
The overarching purpose of these tests is to verify that the system correctly handles mentor assignments in projects where mentors are associated with topics, not directly with teams. This includes:&lt;br /&gt;
&lt;br /&gt;
    Storing Mentors with Topics: Ensuring that topics can hold information about their assigned mentors.&lt;br /&gt;
    Assigning Mentors During Topic Sign-up: Confirming that when a team chooses a topic, the topic's mentor is automatically assigned to that team.&lt;br /&gt;
    Assigning Mentors when Teams Reach Half Strength: Ensuring that the existing logic for intelligent assignments still applies.&lt;br /&gt;
    Displaying Mentor Information: Validating that team views accurately show mentor information for mentored assignments and correctly hide it for non-mentored ones.&lt;br /&gt;
    Importing Topics with Mentors: Checking that topics imported from files correctly capture and store mentor assignments.&lt;br /&gt;
&lt;br /&gt;
    TODO: Add Test Plan&lt;br /&gt;
&lt;br /&gt;
===Test Coverage===&lt;br /&gt;
    TODO: Add Test coverage&lt;br /&gt;
&lt;br /&gt;
==Relevant Links==&lt;br /&gt;
* Github: https://github.com/jmwinte3/expertiza &lt;br /&gt;
* E2504 Wiki: https://wiki.expertiza.ncsu.edu/index.php?title=CSC/ECE_517_Spring_2025_-_E2504._Mentor-meeting_management&lt;br /&gt;
* Project Description: https://docs.google.com/document/d/1jjbqggRDiOHrxdsMlliY62JnP34bGTNHVWAZNz89kT8/edit?tab=t.0#heading=h.yeys674t35p3&lt;br /&gt;
&lt;br /&gt;
== Team ==&lt;br /&gt;
===Mentor===&lt;br /&gt;
&lt;br /&gt;
    Ed Gehringer&lt;br /&gt;
&lt;br /&gt;
=== Members ===&lt;br /&gt;
&lt;br /&gt;
    Jacob Winters&lt;br /&gt;
    Alex Wakefield&lt;br /&gt;
    John Buchanan&lt;/div&gt;</summary>
		<author><name>Jmwinte3</name></author>
	</entry>
	<entry>
		<id>https://wiki.expertiza.ncsu.edu/index.php?title=CSC/ECE_517_Spring_2025_-_E2527._Mentor-meeting_management:_assignments_with_topics&amp;diff=163061</id>
		<title>CSC/ECE 517 Spring 2025 - E2527. Mentor-meeting management: assignments with topics</title>
		<link rel="alternate" type="text/html" href="https://wiki.expertiza.ncsu.edu/index.php?title=CSC/ECE_517_Spring_2025_-_E2527._Mentor-meeting_management:_assignments_with_topics&amp;diff=163061"/>
		<updated>2025-04-03T19:09:02Z</updated>

		<summary type="html">&lt;p&gt;Jmwinte3: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;__TOC__&lt;br /&gt;
&lt;br /&gt;
==Background==&lt;br /&gt;
In Project E2504, implementation was added for mentors to record their meetings with the teams they were mentoring. It worked for projects where mentors were automatically assigned. To expand the functionality of the mentor management system, we want to incorporate mentors into assignment topics.&lt;br /&gt;
&lt;br /&gt;
==Project Overview==&lt;br /&gt;
The main objective of this project is to extend the mentor management system by having it collaborate with the assignment topics system. When an assignment with topics is created, topics are imported from a spreadsheet into the assignment table. This project will focus on including pre-selected mentors (entered in the spreadsheet) in the assignment table and having the mentor assigned to the team automatically upon topic selection.&lt;br /&gt;
&lt;br /&gt;
==Implementation==&lt;br /&gt;
Implementation will include adding a checkbox option at the top of the page with the other checkbox options. This checkbox will toggle whether or not the mentors will be included in the assignment/import. This checkbox will also reload the table to include the additional column required for the mentor's name. Once saved, these mentor names will be stored as an additional attribute in the sign_up_topic&lt;br /&gt;
&lt;br /&gt;
After a team has been created, and is allowed to choose a topic from the assignment, the mentor which was assigned to the topic will automatically be assigned to the team. This will be done by adding the mentor to the team and ensuring their can_mentor participant value is true (1). Given the logic of the previous mentor management implementations, this ensures the participant on the team is recognized as a mentor of any team they are on.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
When project topics are imported (from the Topics tab of the assignment (“Import topics” at the bottom of the page) there must be an optional field for mentor&lt;br /&gt;
At the bottom of this page http://152.7.178.121:8080/assignments/1028/edit&lt;br /&gt;
&lt;br /&gt;
just as is done now when the team reaches half strength.&lt;br /&gt;
&lt;br /&gt;
this is happening within the mentor_management model here:&lt;br /&gt;
#https://github.com/jmwinte3/expertiza/blob/e566f88436d4c833111086631d0f30c76a5970a2/app/models/mentor_management.rb#L43&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
TODO: Add Implementation&lt;br /&gt;
&lt;br /&gt;
==Files That May Be Modified==&lt;br /&gt;
Models:&lt;br /&gt;
#SignedUpTeam: https://github.com/jmwinte3/expertiza/blob/mentor_meetings/app/models/signed_up_team.rb&lt;br /&gt;
#SignUpTopic: https://github.com/jmwinte3/expertiza/blob/mentor_meetings/app/models/sign_up_topic.rb&lt;br /&gt;
&lt;br /&gt;
Controller:&lt;br /&gt;
#import_file_controller.rb&lt;br /&gt;
&lt;br /&gt;
Views:&lt;br /&gt;
#its in views/assignments/edit/_topics.html.erb: https://github.com/jmwinte3/expertiza/blob/mentor_meetings/app/views/assignments/edit.html.erb &lt;br /&gt;
#views/import_file/start: https://github.com/jmwinte3/expertiza/blob/e566f88436d4c833111086631d0f30c76a5970a2/app/views/import_file/start.html.erb#L2&lt;br /&gt;
#views/sign_up_sheet/_add_topics.html.erb&lt;br /&gt;
#views/sign_up_sheet/_table_line.html.erb&lt;br /&gt;
#views/sign_up_sheet/_topic_names .html.erb&lt;br /&gt;
#views/sign_up_sheet/_add_topic.html.erb&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
TODO: Add Files Modified&lt;br /&gt;
&lt;br /&gt;
==Testing==&lt;br /&gt;
===Test Plan===&lt;br /&gt;
&lt;br /&gt;
The overarching purpose of these tests is to verify that the system correctly handles mentor assignments in projects where mentors are associated with topics, not directly with teams. This includes:&lt;br /&gt;
&lt;br /&gt;
    Storing Mentors with Topics: Ensuring that topics can hold information about their assigned mentors.&lt;br /&gt;
    Assigning Mentors During Topic Sign-up: Confirming that when a team chooses a topic, the topic's mentor is automatically assigned to that team.&lt;br /&gt;
    Assigning Mentors when Teams Reach Half Strength: Ensuring that the existing logic for intelligent assignments still applies.&lt;br /&gt;
    Displaying Mentor Information: Validating that team views accurately show mentor information for mentored assignments and correctly hide it for non-mentored ones.&lt;br /&gt;
    Importing Topics with Mentors: Checking that topics imported from files correctly capture and store mentor assignments.&lt;br /&gt;
&lt;br /&gt;
    TODO: Add Test Plan&lt;br /&gt;
&lt;br /&gt;
===Test Coverage===&lt;br /&gt;
    TODO: Add Test coverage&lt;br /&gt;
&lt;br /&gt;
==Relevant Links==&lt;br /&gt;
* Github: https://github.com/jmwinte3/expertiza &lt;br /&gt;
* E2504 Wiki: https://wiki.expertiza.ncsu.edu/index.php?title=CSC/ECE_517_Spring_2025_-_E2504._Mentor-meeting_management&lt;br /&gt;
* Project Description: https://docs.google.com/document/d/1jjbqggRDiOHrxdsMlliY62JnP34bGTNHVWAZNz89kT8/edit?tab=t.0#heading=h.yeys674t35p3&lt;br /&gt;
&lt;br /&gt;
== Team ==&lt;br /&gt;
===Mentor===&lt;br /&gt;
&lt;br /&gt;
    Ed Gehringer&lt;br /&gt;
&lt;br /&gt;
=== Members ===&lt;br /&gt;
&lt;br /&gt;
    Jacob Winters&lt;br /&gt;
    Alex Wakefield&lt;br /&gt;
    John Buchanan&lt;/div&gt;</summary>
		<author><name>Jmwinte3</name></author>
	</entry>
	<entry>
		<id>https://wiki.expertiza.ncsu.edu/index.php?title=CSC/ECE_517_Spring_2025_-_E2527._Mentor-meeting_management:_assignments_with_topics&amp;diff=162934</id>
		<title>CSC/ECE 517 Spring 2025 - E2527. Mentor-meeting management: assignments with topics</title>
		<link rel="alternate" type="text/html" href="https://wiki.expertiza.ncsu.edu/index.php?title=CSC/ECE_517_Spring_2025_-_E2527._Mentor-meeting_management:_assignments_with_topics&amp;diff=162934"/>
		<updated>2025-04-01T22:49:42Z</updated>

		<summary type="html">&lt;p&gt;Jmwinte3: /* Test Plan */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;__TOC__&lt;br /&gt;
&lt;br /&gt;
==Background==&lt;br /&gt;
In Project E2504, you implemented a way for mentors to record their meetings with the teams they were mentoring. It worked for projects where mentors were automatically assigned, such as Program 2.&lt;br /&gt;
&lt;br /&gt;
==Project Overview==&lt;br /&gt;
Extend the system developed in Project E2504 to work for projects with topics, where the mentor is preassigned to the topic. Additionally, when a team chooses a topic, the mentor should then become the mentor for the team.&lt;br /&gt;
&lt;br /&gt;
==Implementation==&lt;br /&gt;
&lt;br /&gt;
When project topics are imported (from the Topics tab of the assignment (“Import topics” at the bottom of the page) there must be an optional field for mentor&lt;br /&gt;
At the bottom of this page http://152.7.178.121:8080/assignments/1028/edit&lt;br /&gt;
&lt;br /&gt;
just as is done now when the team reaches half strength.&lt;br /&gt;
Where does this happen?&lt;br /&gt;
https://github.com/jmwinte3/expertiza/blob/e566f88436d4c833111086631d0f30c76a5970a2/app/models/mentor_management.rb#L43&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
TODO: Add Implementation&lt;br /&gt;
&lt;br /&gt;
==Files That May Be Modified==&lt;br /&gt;
Models:&lt;br /&gt;
#SignedUpTeam: https://github.com/jmwinte3/expertiza/blob/mentor_meetings/app/models/signed_up_team.rb&lt;br /&gt;
#SignUpTopic: https://github.com/jmwinte3/expertiza/blob/mentor_meetings/app/models/sign_up_topic.rb&lt;br /&gt;
&lt;br /&gt;
Views:&lt;br /&gt;
#views/assignments/edit: https://github.com/jmwinte3/expertiza/blob/mentor_meetings/app/views/assignments/edit.html.erb &lt;br /&gt;
#views/import_file/start: https://github.com/jmwinte3/expertiza/blob/e566f88436d4c833111086631d0f30c76a5970a2/app/views/import_file/start.html.erb#L2&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
TODO: Add Files Modified&lt;br /&gt;
&lt;br /&gt;
==Testing==&lt;br /&gt;
===Test Plan===&lt;br /&gt;
&lt;br /&gt;
The overarching purpose of these tests is to verify that the system correctly handles mentor assignments in projects where mentors are associated with topics, not directly with teams. This includes:&lt;br /&gt;
&lt;br /&gt;
    Storing Mentors with Topics: Ensuring that topics can hold information about their assigned mentors.&lt;br /&gt;
    Assigning Mentors During Topic Sign-up: Confirming that when a team chooses a topic, the topic's mentor is automatically assigned to that team.&lt;br /&gt;
    Assigning Mentors when Teams Reach Half Strength: Ensuring that the existing logic for intelligent assignments still applies.&lt;br /&gt;
    Displaying Mentor Information: Validating that team views accurately show mentor information for mentored assignments and correctly hide it for non-mentored ones.&lt;br /&gt;
    Importing Topics with Mentors: Checking that topics imported from files correctly capture and store mentor assignments.&lt;br /&gt;
&lt;br /&gt;
    TODO: Add Test Plan&lt;br /&gt;
&lt;br /&gt;
===Test Coverage===&lt;br /&gt;
    TODO: Add Test coverage&lt;br /&gt;
&lt;br /&gt;
==Relevant Links==&lt;br /&gt;
* Github: https://github.com/jmwinte3/expertiza &lt;br /&gt;
* E2504 Wiki: https://wiki.expertiza.ncsu.edu/index.php?title=CSC/ECE_517_Spring_2025_-_E2504._Mentor-meeting_management&lt;br /&gt;
* Project Description: https://docs.google.com/document/d/1jjbqggRDiOHrxdsMlliY62JnP34bGTNHVWAZNz89kT8/edit?tab=t.0#heading=h.yeys674t35p3&lt;br /&gt;
&lt;br /&gt;
== Team ==&lt;br /&gt;
===Mentor===&lt;br /&gt;
&lt;br /&gt;
    Ed Gehringer&lt;br /&gt;
&lt;br /&gt;
=== Members ===&lt;br /&gt;
&lt;br /&gt;
    Jacob Winters&lt;br /&gt;
    Alex Wakefield&lt;br /&gt;
    John Buchanan&lt;/div&gt;</summary>
		<author><name>Jmwinte3</name></author>
	</entry>
	<entry>
		<id>https://wiki.expertiza.ncsu.edu/index.php?title=CSC/ECE_517_Spring_2025_-_E2527._Mentor-meeting_management:_assignments_with_topics&amp;diff=162933</id>
		<title>CSC/ECE 517 Spring 2025 - E2527. Mentor-meeting management: assignments with topics</title>
		<link rel="alternate" type="text/html" href="https://wiki.expertiza.ncsu.edu/index.php?title=CSC/ECE_517_Spring_2025_-_E2527._Mentor-meeting_management:_assignments_with_topics&amp;diff=162933"/>
		<updated>2025-04-01T22:46:59Z</updated>

		<summary type="html">&lt;p&gt;Jmwinte3: /* Implementation */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;__TOC__&lt;br /&gt;
&lt;br /&gt;
==Background==&lt;br /&gt;
In Project E2504, you implemented a way for mentors to record their meetings with the teams they were mentoring. It worked for projects where mentors were automatically assigned, such as Program 2.&lt;br /&gt;
&lt;br /&gt;
==Project Overview==&lt;br /&gt;
Extend the system developed in Project E2504 to work for projects with topics, where the mentor is preassigned to the topic. Additionally, when a team chooses a topic, the mentor should then become the mentor for the team.&lt;br /&gt;
&lt;br /&gt;
==Implementation==&lt;br /&gt;
&lt;br /&gt;
When project topics are imported (from the Topics tab of the assignment (“Import topics” at the bottom of the page) there must be an optional field for mentor&lt;br /&gt;
At the bottom of this page http://152.7.178.121:8080/assignments/1028/edit&lt;br /&gt;
&lt;br /&gt;
just as is done now when the team reaches half strength.&lt;br /&gt;
Where does this happen?&lt;br /&gt;
https://github.com/jmwinte3/expertiza/blob/e566f88436d4c833111086631d0f30c76a5970a2/app/models/mentor_management.rb#L43&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
TODO: Add Implementation&lt;br /&gt;
&lt;br /&gt;
==Files That May Be Modified==&lt;br /&gt;
Models:&lt;br /&gt;
#SignedUpTeam: https://github.com/jmwinte3/expertiza/blob/mentor_meetings/app/models/signed_up_team.rb&lt;br /&gt;
#SignUpTopic: https://github.com/jmwinte3/expertiza/blob/mentor_meetings/app/models/sign_up_topic.rb&lt;br /&gt;
&lt;br /&gt;
Views:&lt;br /&gt;
#views/assignments/edit: https://github.com/jmwinte3/expertiza/blob/mentor_meetings/app/views/assignments/edit.html.erb &lt;br /&gt;
#views/import_file/start: https://github.com/jmwinte3/expertiza/blob/e566f88436d4c833111086631d0f30c76a5970a2/app/views/import_file/start.html.erb#L2&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
TODO: Add Files Modified&lt;br /&gt;
&lt;br /&gt;
==Testing==&lt;br /&gt;
===Test Plan===&lt;br /&gt;
    TODO: Add Test Plan&lt;br /&gt;
===Test Coverage===&lt;br /&gt;
    TODO: Add Test coverage&lt;br /&gt;
&lt;br /&gt;
==Relevant Links==&lt;br /&gt;
* Github: https://github.com/jmwinte3/expertiza &lt;br /&gt;
* E2504 Wiki: https://wiki.expertiza.ncsu.edu/index.php?title=CSC/ECE_517_Spring_2025_-_E2504._Mentor-meeting_management&lt;br /&gt;
* Project Description: https://docs.google.com/document/d/1jjbqggRDiOHrxdsMlliY62JnP34bGTNHVWAZNz89kT8/edit?tab=t.0#heading=h.yeys674t35p3&lt;br /&gt;
&lt;br /&gt;
== Team ==&lt;br /&gt;
===Mentor===&lt;br /&gt;
&lt;br /&gt;
    Ed Gehringer&lt;br /&gt;
&lt;br /&gt;
=== Members ===&lt;br /&gt;
&lt;br /&gt;
    Jacob Winters&lt;br /&gt;
    Alex Wakefield&lt;br /&gt;
    John Buchanan&lt;/div&gt;</summary>
		<author><name>Jmwinte3</name></author>
	</entry>
	<entry>
		<id>https://wiki.expertiza.ncsu.edu/index.php?title=CSC/ECE_517_Spring_2025_-_E2527._Mentor-meeting_management:_assignments_with_topics&amp;diff=162930</id>
		<title>CSC/ECE 517 Spring 2025 - E2527. Mentor-meeting management: assignments with topics</title>
		<link rel="alternate" type="text/html" href="https://wiki.expertiza.ncsu.edu/index.php?title=CSC/ECE_517_Spring_2025_-_E2527._Mentor-meeting_management:_assignments_with_topics&amp;diff=162930"/>
		<updated>2025-04-01T22:38:58Z</updated>

		<summary type="html">&lt;p&gt;Jmwinte3: /* File That May Be Modified */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;__TOC__&lt;br /&gt;
&lt;br /&gt;
==Background==&lt;br /&gt;
In Project E2504, you implemented a way for mentors to record their meetings with the teams they were mentoring. It worked for projects where mentors were automatically assigned, such as Program 2.&lt;br /&gt;
&lt;br /&gt;
==Project Overview==&lt;br /&gt;
Extend the system developed in Project E2504 to work for projects with topics, where the mentor is preassigned to the topic. Additionally, when a team chooses a topic, the mentor should then become the mentor for the team.&lt;br /&gt;
&lt;br /&gt;
==Implementation==&lt;br /&gt;
TODO: Add Implementation&lt;br /&gt;
&lt;br /&gt;
==Files That May Be Modified==&lt;br /&gt;
Models:&lt;br /&gt;
#SignedUpTeam: https://github.com/jmwinte3/expertiza/blob/mentor_meetings/app/models/signed_up_team.rb&lt;br /&gt;
#SignUpTopic: https://github.com/jmwinte3/expertiza/blob/mentor_meetings/app/models/sign_up_topic.rb&lt;br /&gt;
&lt;br /&gt;
Views:&lt;br /&gt;
#views/assignments/edit: https://github.com/jmwinte3/expertiza/blob/mentor_meetings/app/views/assignments/edit.html.erb &lt;br /&gt;
#views/import_file/start: https://github.com/jmwinte3/expertiza/blob/e566f88436d4c833111086631d0f30c76a5970a2/app/views/import_file/start.html.erb#L2&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
TODO: Add Files Modified&lt;br /&gt;
&lt;br /&gt;
==Testing==&lt;br /&gt;
===Test Plan===&lt;br /&gt;
    TODO: Add Test Plan&lt;br /&gt;
===Test Coverage===&lt;br /&gt;
    TODO: Add Test coverage&lt;br /&gt;
&lt;br /&gt;
==Relevant Links==&lt;br /&gt;
* Github: https://github.com/jmwinte3/expertiza &lt;br /&gt;
* E2504 Wiki: https://wiki.expertiza.ncsu.edu/index.php?title=CSC/ECE_517_Spring_2025_-_E2504._Mentor-meeting_management&lt;br /&gt;
* Project Description: https://docs.google.com/document/d/1jjbqggRDiOHrxdsMlliY62JnP34bGTNHVWAZNz89kT8/edit?tab=t.0#heading=h.yeys674t35p3&lt;br /&gt;
&lt;br /&gt;
== Team ==&lt;br /&gt;
===Mentor===&lt;br /&gt;
&lt;br /&gt;
    Ed Gehringer&lt;br /&gt;
&lt;br /&gt;
=== Members ===&lt;br /&gt;
&lt;br /&gt;
    Jacob Winters&lt;br /&gt;
    Alex Wakefield&lt;br /&gt;
    John Buchanan&lt;/div&gt;</summary>
		<author><name>Jmwinte3</name></author>
	</entry>
	<entry>
		<id>https://wiki.expertiza.ncsu.edu/index.php?title=CSC/ECE_517_Spring_2025_-_E2527._Mentor-meeting_management:_assignments_with_topics&amp;diff=162929</id>
		<title>CSC/ECE 517 Spring 2025 - E2527. Mentor-meeting management: assignments with topics</title>
		<link rel="alternate" type="text/html" href="https://wiki.expertiza.ncsu.edu/index.php?title=CSC/ECE_517_Spring_2025_-_E2527._Mentor-meeting_management:_assignments_with_topics&amp;diff=162929"/>
		<updated>2025-04-01T22:38:50Z</updated>

		<summary type="html">&lt;p&gt;Jmwinte3: /* File Modified */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;__TOC__&lt;br /&gt;
&lt;br /&gt;
==Background==&lt;br /&gt;
In Project E2504, you implemented a way for mentors to record their meetings with the teams they were mentoring. It worked for projects where mentors were automatically assigned, such as Program 2.&lt;br /&gt;
&lt;br /&gt;
==Project Overview==&lt;br /&gt;
Extend the system developed in Project E2504 to work for projects with topics, where the mentor is preassigned to the topic. Additionally, when a team chooses a topic, the mentor should then become the mentor for the team.&lt;br /&gt;
&lt;br /&gt;
==Implementation==&lt;br /&gt;
TODO: Add Implementation&lt;br /&gt;
&lt;br /&gt;
==File That May Be Modified==&lt;br /&gt;
Models:&lt;br /&gt;
#SignedUpTeam: https://github.com/jmwinte3/expertiza/blob/mentor_meetings/app/models/signed_up_team.rb&lt;br /&gt;
#SignUpTopic: https://github.com/jmwinte3/expertiza/blob/mentor_meetings/app/models/sign_up_topic.rb&lt;br /&gt;
&lt;br /&gt;
Views:&lt;br /&gt;
#views/assignments/edit: https://github.com/jmwinte3/expertiza/blob/mentor_meetings/app/views/assignments/edit.html.erb &lt;br /&gt;
#views/import_file/start: https://github.com/jmwinte3/expertiza/blob/e566f88436d4c833111086631d0f30c76a5970a2/app/views/import_file/start.html.erb#L2&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
TODO: Add Files Modified&lt;br /&gt;
&lt;br /&gt;
==Testing==&lt;br /&gt;
===Test Plan===&lt;br /&gt;
    TODO: Add Test Plan&lt;br /&gt;
===Test Coverage===&lt;br /&gt;
    TODO: Add Test coverage&lt;br /&gt;
&lt;br /&gt;
==Relevant Links==&lt;br /&gt;
* Github: https://github.com/jmwinte3/expertiza &lt;br /&gt;
* E2504 Wiki: https://wiki.expertiza.ncsu.edu/index.php?title=CSC/ECE_517_Spring_2025_-_E2504._Mentor-meeting_management&lt;br /&gt;
* Project Description: https://docs.google.com/document/d/1jjbqggRDiOHrxdsMlliY62JnP34bGTNHVWAZNz89kT8/edit?tab=t.0#heading=h.yeys674t35p3&lt;br /&gt;
&lt;br /&gt;
== Team ==&lt;br /&gt;
===Mentor===&lt;br /&gt;
&lt;br /&gt;
    Ed Gehringer&lt;br /&gt;
&lt;br /&gt;
=== Members ===&lt;br /&gt;
&lt;br /&gt;
    Jacob Winters&lt;br /&gt;
    Alex Wakefield&lt;br /&gt;
    John Buchanan&lt;/div&gt;</summary>
		<author><name>Jmwinte3</name></author>
	</entry>
	<entry>
		<id>https://wiki.expertiza.ncsu.edu/index.php?title=CSC/ECE_517_Spring_2025_-_E2527._Mentor-meeting_management:_assignments_with_topics&amp;diff=162928</id>
		<title>CSC/ECE 517 Spring 2025 - E2527. Mentor-meeting management: assignments with topics</title>
		<link rel="alternate" type="text/html" href="https://wiki.expertiza.ncsu.edu/index.php?title=CSC/ECE_517_Spring_2025_-_E2527._Mentor-meeting_management:_assignments_with_topics&amp;diff=162928"/>
		<updated>2025-04-01T22:38:24Z</updated>

		<summary type="html">&lt;p&gt;Jmwinte3: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;__TOC__&lt;br /&gt;
&lt;br /&gt;
==Background==&lt;br /&gt;
In Project E2504, you implemented a way for mentors to record their meetings with the teams they were mentoring. It worked for projects where mentors were automatically assigned, such as Program 2.&lt;br /&gt;
&lt;br /&gt;
==Project Overview==&lt;br /&gt;
Extend the system developed in Project E2504 to work for projects with topics, where the mentor is preassigned to the topic. Additionally, when a team chooses a topic, the mentor should then become the mentor for the team.&lt;br /&gt;
&lt;br /&gt;
==Implementation==&lt;br /&gt;
TODO: Add Implementation&lt;br /&gt;
&lt;br /&gt;
==File Modified==&lt;br /&gt;
Models:&lt;br /&gt;
#SignedUpTeam: https://github.com/jmwinte3/expertiza/blob/mentor_meetings/app/models/signed_up_team.rb&lt;br /&gt;
#SignUpTopic: https://github.com/jmwinte3/expertiza/blob/mentor_meetings/app/models/sign_up_topic.rb&lt;br /&gt;
&lt;br /&gt;
Views:&lt;br /&gt;
#views/assignments/edit: https://github.com/jmwinte3/expertiza/blob/mentor_meetings/app/views/assignments/edit.html.erb &lt;br /&gt;
#views/import_file/start: https://github.com/jmwinte3/expertiza/blob/e566f88436d4c833111086631d0f30c76a5970a2/app/views/import_file/start.html.erb#L2&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
TODO: Add Files Modified&lt;br /&gt;
&lt;br /&gt;
==Testing==&lt;br /&gt;
===Test Plan===&lt;br /&gt;
    TODO: Add Test Plan&lt;br /&gt;
===Test Coverage===&lt;br /&gt;
    TODO: Add Test coverage&lt;br /&gt;
&lt;br /&gt;
==Relevant Links==&lt;br /&gt;
* Github: https://github.com/jmwinte3/expertiza &lt;br /&gt;
* E2504 Wiki: https://wiki.expertiza.ncsu.edu/index.php?title=CSC/ECE_517_Spring_2025_-_E2504._Mentor-meeting_management&lt;br /&gt;
* Project Description: https://docs.google.com/document/d/1jjbqggRDiOHrxdsMlliY62JnP34bGTNHVWAZNz89kT8/edit?tab=t.0#heading=h.yeys674t35p3&lt;br /&gt;
&lt;br /&gt;
== Team ==&lt;br /&gt;
===Mentor===&lt;br /&gt;
&lt;br /&gt;
    Ed Gehringer&lt;br /&gt;
&lt;br /&gt;
=== Members ===&lt;br /&gt;
&lt;br /&gt;
    Jacob Winters&lt;br /&gt;
    Alex Wakefield&lt;br /&gt;
    John Buchanan&lt;/div&gt;</summary>
		<author><name>Jmwinte3</name></author>
	</entry>
	<entry>
		<id>https://wiki.expertiza.ncsu.edu/index.php?title=CSC/ECE_517_Spring_2025_-_E2527._Mentor-meeting_management:_assignments_with_topics&amp;diff=162927</id>
		<title>CSC/ECE 517 Spring 2025 - E2527. Mentor-meeting management: assignments with topics</title>
		<link rel="alternate" type="text/html" href="https://wiki.expertiza.ncsu.edu/index.php?title=CSC/ECE_517_Spring_2025_-_E2527._Mentor-meeting_management:_assignments_with_topics&amp;diff=162927"/>
		<updated>2025-04-01T22:37:43Z</updated>

		<summary type="html">&lt;p&gt;Jmwinte3: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;__TOC__&lt;br /&gt;
&lt;br /&gt;
==Background==&lt;br /&gt;
In Project E2504, you implemented a way for mentors to record their meetings with the teams they were mentoring. It worked for projects where mentors were automatically assigned, such as Program 2.&lt;br /&gt;
&lt;br /&gt;
==Project Overview==&lt;br /&gt;
Extend the system developed in Project E2504 to work for projects with topics, where the mentor is preassigned to the topic. Additionally, when a team chooses a topic, the mentor should then become the mentor for the team.&lt;br /&gt;
&lt;br /&gt;
==Implementation==&lt;br /&gt;
TODO: Add Implementation&lt;br /&gt;
&lt;br /&gt;
==File Modified==&lt;br /&gt;
Models:&lt;br /&gt;
#SignedUpTeam: https://github.com/jmwinte3/expertiza/blob/mentor_meetings/app/models/signed_up_team.rb&lt;br /&gt;
#SignUpTopic: https://github.com/jmwinte3/expertiza/blob/mentor_meetings/app/models/sign_up_topic.rb&lt;br /&gt;
&lt;br /&gt;
Views:&lt;br /&gt;
#Views/Assignments/Edit: https://github.com/jmwinte3/expertiza/blob/mentor_meetings/app/views/assignments/edit.html.erb &lt;br /&gt;
#Views/import_file/start: https://github.com/jmwinte3/expertiza/blob/e566f88436d4c833111086631d0f30c76a5970a2/app/views/import_file/start.html.erb#L2&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
TODO: Add Files Modified&lt;br /&gt;
&lt;br /&gt;
==Testing==&lt;br /&gt;
===Test Plan===&lt;br /&gt;
    TODO: Add Test Plan&lt;br /&gt;
===Test Coverage===&lt;br /&gt;
    TODO: Add Test coverage&lt;br /&gt;
&lt;br /&gt;
==Relevant Links==&lt;br /&gt;
* Github: https://github.com/jmwinte3/expertiza &lt;br /&gt;
* E2504 Wiki: https://wiki.expertiza.ncsu.edu/index.php?title=CSC/ECE_517_Spring_2025_-_E2504._Mentor-meeting_management&lt;br /&gt;
* Project Description: https://docs.google.com/document/d/1jjbqggRDiOHrxdsMlliY62JnP34bGTNHVWAZNz89kT8/edit?tab=t.0#heading=h.yeys674t35p3&lt;br /&gt;
&lt;br /&gt;
== Team ==&lt;br /&gt;
===Mentor===&lt;br /&gt;
&lt;br /&gt;
    Ed Gehringer&lt;br /&gt;
&lt;br /&gt;
=== Members ===&lt;br /&gt;
&lt;br /&gt;
    Jacob Winters&lt;br /&gt;
    Alex Wakefield&lt;br /&gt;
    John Buchanan&lt;/div&gt;</summary>
		<author><name>Jmwinte3</name></author>
	</entry>
	<entry>
		<id>https://wiki.expertiza.ncsu.edu/index.php?title=CSC/ECE_517_Spring_2025_-_E2527._Mentor-meeting_management:_assignments_with_topics&amp;diff=162926</id>
		<title>CSC/ECE 517 Spring 2025 - E2527. Mentor-meeting management: assignments with topics</title>
		<link rel="alternate" type="text/html" href="https://wiki.expertiza.ncsu.edu/index.php?title=CSC/ECE_517_Spring_2025_-_E2527._Mentor-meeting_management:_assignments_with_topics&amp;diff=162926"/>
		<updated>2025-04-01T22:35:59Z</updated>

		<summary type="html">&lt;p&gt;Jmwinte3: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;__TOC__&lt;br /&gt;
&lt;br /&gt;
==Background==&lt;br /&gt;
In Project E2504, you implemented a way for mentors to record their meetings with the teams they were mentoring. It worked for projects where mentors were automatically assigned, such as Program 2.&lt;br /&gt;
&lt;br /&gt;
==Project Overview==&lt;br /&gt;
Extend the system developed in Project E2504 to work for projects with topics, where the mentor is preassigned to the topic. Additionally, when a team chooses a topic, the mentor should then become the mentor for the team.&lt;br /&gt;
&lt;br /&gt;
==Implementation==&lt;br /&gt;
TODO: Add Implementation&lt;br /&gt;
&lt;br /&gt;
==File Modified==&lt;br /&gt;
Models:&lt;br /&gt;
SignedUpTeam: https://github.com/jmwinte3/expertiza/blob/mentor_meetings/app/models/signed_up_team.rb&lt;br /&gt;
SignUpTopic: https://github.com/jmwinte3/expertiza/blob/mentor_meetings/app/models/sign_up_topic.rb&lt;br /&gt;
&lt;br /&gt;
Views:&lt;br /&gt;
Views/Assignments/Edit: https://github.com/jmwinte3/expertiza/blob/mentor_meetings/app/views/assignments/edit.html.erb&lt;br /&gt;
Views/import_file/start: https://github.com/jmwinte3/expertiza/blob/e566f88436d4c833111086631d0f30c76a5970a2/app/views/import_file/start.html.erb#L2&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
TODO: Add Files Modified&lt;br /&gt;
&lt;br /&gt;
==Testing==&lt;br /&gt;
===Test Plan===&lt;br /&gt;
    TODO: Add Test Plan&lt;br /&gt;
===Test Coverage===&lt;br /&gt;
    TODO: Add Test coverage&lt;br /&gt;
&lt;br /&gt;
==Relevant Links==&lt;br /&gt;
* Github: https://github.com/jmwinte3/expertiza &lt;br /&gt;
* E2504 Wiki: https://wiki.expertiza.ncsu.edu/index.php?title=CSC/ECE_517_Spring_2025_-_E2504._Mentor-meeting_management&lt;br /&gt;
* Project Description: https://docs.google.com/document/d/1jjbqggRDiOHrxdsMlliY62JnP34bGTNHVWAZNz89kT8/edit?tab=t.0#heading=h.yeys674t35p3&lt;br /&gt;
&lt;br /&gt;
== Team ==&lt;br /&gt;
===Mentor===&lt;br /&gt;
&lt;br /&gt;
    Ed Gehringer&lt;br /&gt;
&lt;br /&gt;
=== Members ===&lt;br /&gt;
&lt;br /&gt;
    Jacob Winters&lt;br /&gt;
    Alex Wakefield&lt;br /&gt;
    John Buchanan&lt;/div&gt;</summary>
		<author><name>Jmwinte3</name></author>
	</entry>
	<entry>
		<id>https://wiki.expertiza.ncsu.edu/index.php?title=CSC/ECE_517_Spring_2025_-_E2527._Mentor-meeting_management:_assignments_with_topics&amp;diff=162923</id>
		<title>CSC/ECE 517 Spring 2025 - E2527. Mentor-meeting management: assignments with topics</title>
		<link rel="alternate" type="text/html" href="https://wiki.expertiza.ncsu.edu/index.php?title=CSC/ECE_517_Spring_2025_-_E2527._Mentor-meeting_management:_assignments_with_topics&amp;diff=162923"/>
		<updated>2025-04-01T21:42:09Z</updated>

		<summary type="html">&lt;p&gt;Jmwinte3: /* Implementation */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;__TOC__&lt;br /&gt;
&lt;br /&gt;
==Background==&lt;br /&gt;
In Project E2504, you implemented a way for mentors to record their meetings with the teams they were mentoring. It worked for projects where mentors were automatically assigned, such as Program 2.&lt;br /&gt;
&lt;br /&gt;
==Project Overview==&lt;br /&gt;
Extend the system developed in Project E2504 to work for projects with topics, where the mentor is preassigned to the topic. Additionally, when a team chooses a topic, the mentor should then become the mentor for the team.&lt;br /&gt;
&lt;br /&gt;
==Implementation==&lt;br /&gt;
TODO: Add Implementation&lt;br /&gt;
&lt;br /&gt;
==File Modified==&lt;br /&gt;
TODO: Add Files Modified&lt;br /&gt;
&lt;br /&gt;
==Testing==&lt;br /&gt;
===Test Plan===&lt;br /&gt;
    TODO: Add Test Plan&lt;br /&gt;
===Test Coverage===&lt;br /&gt;
    TODO: Add Test coverage&lt;br /&gt;
&lt;br /&gt;
==Relevant Links==&lt;br /&gt;
* Github: https://github.com/jmwinte3/expertiza &lt;br /&gt;
* E2504 Wiki: https://wiki.expertiza.ncsu.edu/index.php?title=CSC/ECE_517_Spring_2025_-_E2504._Mentor-meeting_management&lt;br /&gt;
* Project Description: https://docs.google.com/document/d/1jjbqggRDiOHrxdsMlliY62JnP34bGTNHVWAZNz89kT8/edit?tab=t.0#heading=h.yeys674t35p3&lt;br /&gt;
&lt;br /&gt;
== Team ==&lt;br /&gt;
===Mentor===&lt;br /&gt;
&lt;br /&gt;
    Ed Gehringer&lt;br /&gt;
&lt;br /&gt;
=== Members ===&lt;br /&gt;
&lt;br /&gt;
    Jacob Winters&lt;br /&gt;
    Alex Wakefield&lt;br /&gt;
    John Buchanan&lt;/div&gt;</summary>
		<author><name>Jmwinte3</name></author>
	</entry>
	<entry>
		<id>https://wiki.expertiza.ncsu.edu/index.php?title=CSC/ECE_517_Spring_2025_-_E2504._Mentor-meeting_management&amp;diff=162083</id>
		<title>CSC/ECE 517 Spring 2025 - E2504. Mentor-meeting management</title>
		<link rel="alternate" type="text/html" href="https://wiki.expertiza.ncsu.edu/index.php?title=CSC/ECE_517_Spring_2025_-_E2504._Mentor-meeting_management&amp;diff=162083"/>
		<updated>2025-03-23T21:02:13Z</updated>

		<summary type="html">&lt;p&gt;Jmwinte3: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;__TOC__&lt;br /&gt;
&lt;br /&gt;
==Background==&lt;br /&gt;
Previously, mentors had to be manually assigned by reviewing team formations, a process that required frequent monitoring and manual intervention. The implementation of automatic mentor assignment significantly reduced this workload.&lt;br /&gt;
&lt;br /&gt;
==Project Overview==&lt;br /&gt;
The mentor assignment system was introduced in 2023 to streamline the process of assigning mentors to teams within Expertiza, an open-source course management platform designed for collaborative learning in large Object-Oriented Programming assignments. The primary focus of this project is to enhance the mentor management system. Within Expertiza, mentors can be assigned to teams either manually or automatically. Automatic assignment is triggered when a team reaches more than 50% of its capacity.&lt;br /&gt;
&lt;br /&gt;
== Challenges ==&lt;br /&gt;
&lt;br /&gt;
* While the system successfully assigns mentors automatically, there is no functionality to notify teams and mentors via email when an assignment is made&lt;br /&gt;
** This feature needs to be implemented to ensure clear communication.&lt;br /&gt;
&lt;br /&gt;
* The only available team listing is on the &amp;quot;Create Teams&amp;quot; page, where team members are displayed on separate lines, and mentors appear in an arbitrary position within the team structure.&lt;br /&gt;
** Improvements are needed to enhance clarity and usability in mentor assignment tracking.&lt;br /&gt;
&lt;br /&gt;
== Tasks ==&lt;br /&gt;
=== Email Notifications ===&lt;br /&gt;
Create a way that notifies participants and mentors, by email, of when they have been assigned to a team.&lt;br /&gt;
&lt;br /&gt;
=== Mentor Meeting Management ===&lt;br /&gt;
Dr. Gehringer expressed to us that the current view of mentor meetings took up too much space and proposed to us a mockup of how he would like the view to look, which can be seen below.&lt;br /&gt;
&amp;lt;center&amp;gt;[[File:MentorMeetingViewMockup.png|thumb|1000px|Mentor Meeting View Mockup]]&amp;lt;/center&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Backend and Controller Updates ===&lt;br /&gt;
&lt;br /&gt;
=== Refactor Existing Codebase ===&lt;br /&gt;
&lt;br /&gt;
=== Testing and Validation ===&lt;br /&gt;
&lt;br /&gt;
== Implementation ==&lt;br /&gt;
=== Email Notifications ===&lt;br /&gt;
&lt;br /&gt;
=== Mentor Meeting Management ===&lt;br /&gt;
The teams table for mentor meeting management was significantly enhanced with dynamic column manipulation, allowing users to add and remove meeting columns while preventing conflicts with scheduled meetings. Individual meeting deletion and improved reliability were implemented, along with a refactored meeting date display and input for better user experience. The table structure was optimized, incorporating editable meeting fields with a save feature, dynamic updates based on filter selections, and an actions column. To streamline column management, dropdowns were replaced with header buttons, a maximum of five meeting columns was enforced, and dynamic rendering was implemented based on participant data. The mentor logic and date column naming were corrected for clarity, and a destroy route for team meetings was added, ensuring a more efficient and user-friendly team management experience.&lt;br /&gt;
&amp;lt;center&amp;gt;[[File:Screenshot_2025-03-23_164914.png|thumb|1000px|Screenshot of the Mentor Meeting Management System within the teams table]]&amp;lt;/center&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Backend and Controller Updates ===&lt;br /&gt;
The backend for mentor meeting management underwent significant restructuring to improve efficiency and maintainability. A dedicated destroy route for team meetings was implemented, along with a revised deletion process. The logic for determining mentored teams and displayed teams for mentors was refined, and the meetings table was refactored to utilize the Participants class, establishing a database relationship between mentored teams and meetings. The meetings-related logic was moved from the teams controller to a newly implemented meetings controller, which includes a filter function. An instructor table was added in paginated form, and meeting routes were standardized. The meetings controller was further enhanced with CSS styling and instance variable reorganization, culminating in the integration of @meetings into the Teams Controller model.&lt;br /&gt;
&lt;br /&gt;
```&lt;br /&gt;
&lt;br /&gt;
 #POST /meetings&lt;br /&gt;
  def create&lt;br /&gt;
    @team = Team.find(params[:team_id])&lt;br /&gt;
    @meeting = @team.meetings.new(meeting_params)&lt;br /&gt;
    if @meeting.save&lt;br /&gt;
      # TODO: Re-implement email notification for meeting creation&lt;br /&gt;
      render json: { status: 'success', message: 'Meeting date added' }, status: :created&lt;br /&gt;
    else&lt;br /&gt;
      render json: { status: 'error', message: 'Unable to add meeting date', errors: @meeting.errors.full_messages }, status: :unprocessable_entity&lt;br /&gt;
    end&lt;br /&gt;
  end&lt;br /&gt;
'''&lt;br /&gt;
&lt;br /&gt;
'''&lt;br /&gt;
&lt;br /&gt;
 #DELETE /meetings/:id&lt;br /&gt;
  def destroy&lt;br /&gt;
    puts &amp;quot;Team ID: #{params[:team_id]}&amp;quot;&lt;br /&gt;
    puts &amp;quot;Meeting ID: #{params[:id]}&amp;quot;&lt;br /&gt;
    puts &amp;quot;Meeting: #{@meeting.inspect}&amp;quot;&lt;br /&gt;
    if @meeting.destroy&lt;br /&gt;
      render json: { message: 'Meeting deleted successfully' }, status: :ok&lt;br /&gt;
    else&lt;br /&gt;
      render json: { error: 'Failed to delete meeting' }, status: :unprocessable_entity&lt;br /&gt;
    end&lt;br /&gt;
  end&lt;br /&gt;
'''&lt;br /&gt;
&lt;br /&gt;
'''&lt;br /&gt;
  resources :teams, only: %i[new create edit update] do&lt;br /&gt;
    collection do&lt;br /&gt;
      get :list&lt;br /&gt;
      post :create_teams&lt;br /&gt;
      post :inherit&lt;br /&gt;
      get :delete&lt;br /&gt;
      get :delete_all&lt;br /&gt;
      get :bequeath_all&lt;br /&gt;
    end&lt;br /&gt;
    resources :meetings, only: %i[create destroy]&lt;br /&gt;
  end&lt;br /&gt;
'''&lt;br /&gt;
&lt;br /&gt;
=== Refactor Existing Codebase ===&lt;br /&gt;
This set of backend and frontend changes focuses on code cleanup, standardization, and compatibility improvements. Unnecessary whitespace was removed, and the database column &amp;quot;date&amp;quot; was renamed to &amp;quot;meeting_date&amp;quot; for clarity. The &amp;quot;get_dates&amp;quot; function was refactored to ensure compatibility with older Ruby versions. Table column names were converted to snake_case to adhere to Ruby naming conventions, and rendering partials were removed to resolve Turbo issues. Finally, an initial refactoring session was conducted with a Large Language Model (LLM) to further refine the code.&lt;br /&gt;
&lt;br /&gt;
=== Testing and Validation ===&lt;br /&gt;
&lt;br /&gt;
== Relevant Links ==&lt;br /&gt;
*Github Repository: https://github.com/jmwinte3/expertiza&lt;br /&gt;
&lt;br /&gt;
== Team ==&lt;br /&gt;
===Mentor===&lt;br /&gt;
&lt;br /&gt;
    Ed Gehringer&lt;br /&gt;
&lt;br /&gt;
=== Members ===&lt;br /&gt;
&lt;br /&gt;
    Jacob Winters&lt;br /&gt;
    Alex Wakefield&lt;br /&gt;
    John Buchanan&lt;/div&gt;</summary>
		<author><name>Jmwinte3</name></author>
	</entry>
	<entry>
		<id>https://wiki.expertiza.ncsu.edu/index.php?title=CSC/ECE_517_Spring_2025_-_E2504._Mentor-meeting_management&amp;diff=162082</id>
		<title>CSC/ECE 517 Spring 2025 - E2504. Mentor-meeting management</title>
		<link rel="alternate" type="text/html" href="https://wiki.expertiza.ncsu.edu/index.php?title=CSC/ECE_517_Spring_2025_-_E2504._Mentor-meeting_management&amp;diff=162082"/>
		<updated>2025-03-23T21:01:34Z</updated>

		<summary type="html">&lt;p&gt;Jmwinte3: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;__TOC__&lt;br /&gt;
&lt;br /&gt;
==Background==&lt;br /&gt;
Previously, mentors had to be manually assigned by reviewing team formations, a process that required frequent monitoring and manual intervention. The implementation of automatic mentor assignment significantly reduced this workload.&lt;br /&gt;
&lt;br /&gt;
==Project Overview==&lt;br /&gt;
The mentor assignment system was introduced in 2023 to streamline the process of assigning mentors to teams within Expertiza, an open-source course management platform designed for collaborative learning in large Object-Oriented Programming assignments. The primary focus of this project is to enhance the mentor management system. Within Expertiza, mentors can be assigned to teams either manually or automatically. Automatic assignment is triggered when a team reaches more than 50% of its capacity.&lt;br /&gt;
&lt;br /&gt;
== Challenges ==&lt;br /&gt;
&lt;br /&gt;
* While the system successfully assigns mentors automatically, there is no functionality to notify teams and mentors via email when an assignment is made&lt;br /&gt;
** This feature needs to be implemented to ensure clear communication.&lt;br /&gt;
&lt;br /&gt;
* The only available team listing is on the &amp;quot;Create Teams&amp;quot; page, where team members are displayed on separate lines, and mentors appear in an arbitrary position within the team structure.&lt;br /&gt;
** Improvements are needed to enhance clarity and usability in mentor assignment tracking.&lt;br /&gt;
&lt;br /&gt;
== Tasks ==&lt;br /&gt;
=== Email Notifications ===&lt;br /&gt;
Create a way that notifies participants and mentors, by email, of when they have been assigned to a team.&lt;br /&gt;
&lt;br /&gt;
=== Mentor Meeting Management ===&lt;br /&gt;
Dr. Gehringer expressed to us that the current view of mentor meetings took up too much space and proposed to us a mockup of how he would like the view to look, which can be seen below.&lt;br /&gt;
&amp;lt;center&amp;gt;[[File:MentorMeetingViewMockup.png|thumb|1000px|Mentor Meeting View Mockup]]&amp;lt;/center&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Backend and Controller Updates ===&lt;br /&gt;
&lt;br /&gt;
=== Refactor Existing Codebase ===&lt;br /&gt;
&lt;br /&gt;
=== Testing and Validation ===&lt;br /&gt;
&lt;br /&gt;
== Implementation ==&lt;br /&gt;
=== Email Notifications ===&lt;br /&gt;
&lt;br /&gt;
=== Mentor Meeting Management ===&lt;br /&gt;
The teams table for mentor meeting management was significantly enhanced with dynamic column manipulation, allowing users to add and remove meeting columns while preventing conflicts with scheduled meetings. Individual meeting deletion and improved reliability were implemented, along with a refactored meeting date display and input for better user experience. The table structure was optimized, incorporating editable meeting fields with a save feature, dynamic updates based on filter selections, and an actions column. To streamline column management, dropdowns were replaced with header buttons, a maximum of five meeting columns was enforced, and dynamic rendering was implemented based on participant data. The mentor logic and date column naming were corrected for clarity, and a destroy route for team meetings was added, ensuring a more efficient and user-friendly team management experience.&lt;br /&gt;
&amp;lt;center&amp;gt;[[File:Screenshot_2025-03-23_164914.png|thumb|1000px|Screenshot of the Mentor Meeting Management System within the teams table]]&amp;lt;/center&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Backend and Controller Updates ===&lt;br /&gt;
The backend for mentor meeting management underwent significant restructuring to improve efficiency and maintainability. A dedicated destroy route for team meetings was implemented, along with a revised deletion process. The logic for determining mentored teams and displayed teams for mentors was refined, and the meetings table was refactored to utilize the Participants class, establishing a database relationship between mentored teams and meetings. The meetings-related logic was moved from the teams controller to a newly implemented meetings controller, which includes a filter function. An instructor table was added in paginated form, and meeting routes were standardized. The meetings controller was further enhanced with CSS styling and instance variable reorganization, culminating in the integration of @meetings into the Teams Controller model.&lt;br /&gt;
&lt;br /&gt;
```&lt;br /&gt;
POST /meetings&lt;br /&gt;
  def create&lt;br /&gt;
    @team = Team.find(params[:team_id])&lt;br /&gt;
    @meeting = @team.meetings.new(meeting_params)&lt;br /&gt;
    if @meeting.save&lt;br /&gt;
      # TODO: Re-implement email notification for meeting creation&lt;br /&gt;
      render json: { status: 'success', message: 'Meeting date added' }, status: :created&lt;br /&gt;
    else&lt;br /&gt;
      render json: { status: 'error', message: 'Unable to add meeting date', errors: @meeting.errors.full_messages }, status: :unprocessable_entity&lt;br /&gt;
    end&lt;br /&gt;
  end&lt;br /&gt;
'''&lt;br /&gt;
&lt;br /&gt;
'''&lt;br /&gt;
DELETE /meetings/:id&lt;br /&gt;
  def destroy&lt;br /&gt;
    puts &amp;quot;Team ID: #{params[:team_id]}&amp;quot;&lt;br /&gt;
    puts &amp;quot;Meeting ID: #{params[:id]}&amp;quot;&lt;br /&gt;
    puts &amp;quot;Meeting: #{@meeting.inspect}&amp;quot;&lt;br /&gt;
    if @meeting.destroy&lt;br /&gt;
      render json: { message: 'Meeting deleted successfully' }, status: :ok&lt;br /&gt;
    else&lt;br /&gt;
      render json: { error: 'Failed to delete meeting' }, status: :unprocessable_entity&lt;br /&gt;
    end&lt;br /&gt;
  end&lt;br /&gt;
'''&lt;br /&gt;
&lt;br /&gt;
'''&lt;br /&gt;
resources :teams, only: %i[new create edit update] do&lt;br /&gt;
    collection do&lt;br /&gt;
      get :list&lt;br /&gt;
      post :create_teams&lt;br /&gt;
      post :inherit&lt;br /&gt;
      get :delete&lt;br /&gt;
      get :delete_all&lt;br /&gt;
      get :bequeath_all&lt;br /&gt;
    end&lt;br /&gt;
    resources :meetings, only: %i[create destroy]&lt;br /&gt;
  end&lt;br /&gt;
'''&lt;br /&gt;
&lt;br /&gt;
=== Refactor Existing Codebase ===&lt;br /&gt;
This set of backend and frontend changes focuses on code cleanup, standardization, and compatibility improvements. Unnecessary whitespace was removed, and the database column &amp;quot;date&amp;quot; was renamed to &amp;quot;meeting_date&amp;quot; for clarity. The &amp;quot;get_dates&amp;quot; function was refactored to ensure compatibility with older Ruby versions. Table column names were converted to snake_case to adhere to Ruby naming conventions, and rendering partials were removed to resolve Turbo issues. Finally, an initial refactoring session was conducted with a Large Language Model (LLM) to further refine the code.&lt;br /&gt;
&lt;br /&gt;
=== Testing and Validation ===&lt;br /&gt;
&lt;br /&gt;
== Relevant Links ==&lt;br /&gt;
*Github Repository: https://github.com/jmwinte3/expertiza&lt;br /&gt;
&lt;br /&gt;
== Team ==&lt;br /&gt;
===Mentor===&lt;br /&gt;
&lt;br /&gt;
    Ed Gehringer&lt;br /&gt;
&lt;br /&gt;
=== Members ===&lt;br /&gt;
&lt;br /&gt;
    Jacob Winters&lt;br /&gt;
    Alex Wakefield&lt;br /&gt;
    John Buchanan&lt;/div&gt;</summary>
		<author><name>Jmwinte3</name></author>
	</entry>
	<entry>
		<id>https://wiki.expertiza.ncsu.edu/index.php?title=CSC/ECE_517_Spring_2025_-_E2504._Mentor-meeting_management&amp;diff=162080</id>
		<title>CSC/ECE 517 Spring 2025 - E2504. Mentor-meeting management</title>
		<link rel="alternate" type="text/html" href="https://wiki.expertiza.ncsu.edu/index.php?title=CSC/ECE_517_Spring_2025_-_E2504._Mentor-meeting_management&amp;diff=162080"/>
		<updated>2025-03-23T20:58:11Z</updated>

		<summary type="html">&lt;p&gt;Jmwinte3: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;__TOC__&lt;br /&gt;
&lt;br /&gt;
==Background==&lt;br /&gt;
Previously, mentors had to be manually assigned by reviewing team formations, a process that required frequent monitoring and manual intervention. The implementation of automatic mentor assignment significantly reduced this workload.&lt;br /&gt;
&lt;br /&gt;
==Project Overview==&lt;br /&gt;
The mentor assignment system was introduced in 2023 to streamline the process of assigning mentors to teams within Expertiza, an open-source course management platform designed for collaborative learning in large Object-Oriented Programming assignments. The primary focus of this project is to enhance the mentor management system. Within Expertiza, mentors can be assigned to teams either manually or automatically. Automatic assignment is triggered when a team reaches more than 50% of its capacity.&lt;br /&gt;
&lt;br /&gt;
== Challenges ==&lt;br /&gt;
&lt;br /&gt;
* While the system successfully assigns mentors automatically, there is no functionality to notify teams and mentors via email when an assignment is made&lt;br /&gt;
** This feature needs to be implemented to ensure clear communication.&lt;br /&gt;
&lt;br /&gt;
* The only available team listing is on the &amp;quot;Create Teams&amp;quot; page, where team members are displayed on separate lines, and mentors appear in an arbitrary position within the team structure.&lt;br /&gt;
** Improvements are needed to enhance clarity and usability in mentor assignment tracking.&lt;br /&gt;
&lt;br /&gt;
== Tasks ==&lt;br /&gt;
=== Email Notifications ===&lt;br /&gt;
Create a way that notifies participants and mentors, by email, of when they have been assigned to a team.&lt;br /&gt;
&lt;br /&gt;
=== Mentor Meeting Management ===&lt;br /&gt;
Dr. Gehringer expressed to us that the current view of mentor meetings took up too much space and proposed to us a mockup of how he would like the view to look, which can be seen below.&lt;br /&gt;
&amp;lt;center&amp;gt;[[File:MentorMeetingViewMockup.png|thumb|1000px|Mentor Meeting View Mockup]]&amp;lt;/center&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Backend and Controller Updates ===&lt;br /&gt;
&lt;br /&gt;
=== Refactor Existing Codebase ===&lt;br /&gt;
&lt;br /&gt;
=== Testing and Validation ===&lt;br /&gt;
&lt;br /&gt;
== Implementation ==&lt;br /&gt;
=== Email Notifications ===&lt;br /&gt;
&lt;br /&gt;
=== Mentor Meeting Management ===&lt;br /&gt;
The teams table for mentor meeting management was significantly enhanced with dynamic column manipulation, allowing users to add and remove meeting columns while preventing conflicts with scheduled meetings. Individual meeting deletion and improved reliability were implemented, along with a refactored meeting date display and input for better user experience. The table structure was optimized, incorporating editable meeting fields with a save feature, dynamic updates based on filter selections, and an actions column. To streamline column management, dropdowns were replaced with header buttons, a maximum of five meeting columns was enforced, and dynamic rendering was implemented based on participant data. The mentor logic and date column naming were corrected for clarity, and a destroy route for team meetings was added, ensuring a more efficient and user-friendly team management experience.&lt;br /&gt;
&amp;lt;center&amp;gt;[[File:Screenshot_2025-03-23_164914.png|thumb|1000px|Screenshot of the Mentor Meeting Management System within the teams table]]&amp;lt;/center&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Backend and Controller Updates ===&lt;br /&gt;
The backend for mentor meeting management underwent significant restructuring to improve efficiency and maintainability. A dedicated destroy route for team meetings was implemented, along with a revised deletion process. The logic for determining mentored teams and displayed teams for mentors was refined, and the meetings table was refactored to utilize the Participants class, establishing a database relationship between mentored teams and meetings. The meetings-related logic was moved from the teams controller to a newly implemented meetings controller, which includes a filter function. An instructor table was added in paginated form, and meeting routes were standardized. The meetings controller was further enhanced with CSS styling and instance variable reorganization, culminating in the integration of @meetings into the Teams Controller model.&lt;br /&gt;
&lt;br /&gt;
```ruby&lt;br /&gt;
  # POST /meetings&lt;br /&gt;
  def create&lt;br /&gt;
    @team = Team.find(params[:team_id])&lt;br /&gt;
    @meeting = @team.meetings.new(meeting_params)&lt;br /&gt;
    if @meeting.save&lt;br /&gt;
      # TODO: Re-implement email notification for meeting creation&lt;br /&gt;
      render json: { status: 'success', message: 'Meeting date added' }, status: :created&lt;br /&gt;
    else&lt;br /&gt;
      render json: { status: 'error', message: 'Unable to add meeting date', errors: @meeting.errors.full_messages }, status: :unprocessable_entity&lt;br /&gt;
    end&lt;br /&gt;
  end&lt;br /&gt;
'''&lt;br /&gt;
&lt;br /&gt;
'''&lt;br /&gt;
# DELETE /meetings/:id&lt;br /&gt;
  def destroy&lt;br /&gt;
    puts &amp;quot;Team ID: #{params[:team_id]}&amp;quot;&lt;br /&gt;
    puts &amp;quot;Meeting ID: #{params[:id]}&amp;quot;&lt;br /&gt;
    puts &amp;quot;Meeting: #{@meeting.inspect}&amp;quot;&lt;br /&gt;
    if @meeting.destroy&lt;br /&gt;
      render json: { message: 'Meeting deleted successfully' }, status: :ok&lt;br /&gt;
    else&lt;br /&gt;
      render json: { error: 'Failed to delete meeting' }, status: :unprocessable_entity&lt;br /&gt;
    end&lt;br /&gt;
  end&lt;br /&gt;
'''&lt;br /&gt;
&lt;br /&gt;
'''&lt;br /&gt;
resources :teams, only: %i[new create edit update] do&lt;br /&gt;
    collection do&lt;br /&gt;
      get :list&lt;br /&gt;
      post :create_teams&lt;br /&gt;
      post :inherit&lt;br /&gt;
      get :delete&lt;br /&gt;
      get :delete_all&lt;br /&gt;
      get :bequeath_all&lt;br /&gt;
    end&lt;br /&gt;
    resources :meetings, only: %i[create destroy]&lt;br /&gt;
  end&lt;br /&gt;
'''&lt;br /&gt;
&lt;br /&gt;
=== Refactor Existing Codebase ===&lt;br /&gt;
This set of backend and frontend changes focuses on code cleanup, standardization, and compatibility improvements. Unnecessary whitespace was removed, and the database column &amp;quot;date&amp;quot; was renamed to &amp;quot;meeting_date&amp;quot; for clarity. The &amp;quot;get_dates&amp;quot; function was refactored to ensure compatibility with older Ruby versions. Table column names were converted to snake_case to adhere to Ruby naming conventions, and rendering partials were removed to resolve Turbo issues. Finally, an initial refactoring session was conducted with a Large Language Model (LLM) to further refine the code.&lt;br /&gt;
&lt;br /&gt;
=== Testing and Validation ===&lt;br /&gt;
&lt;br /&gt;
== Relevant Links ==&lt;br /&gt;
*Github Repository: https://github.com/jmwinte3/expertiza&lt;br /&gt;
&lt;br /&gt;
== Team ==&lt;br /&gt;
===Mentor===&lt;br /&gt;
&lt;br /&gt;
    Ed Gehringer&lt;br /&gt;
&lt;br /&gt;
=== Members ===&lt;br /&gt;
&lt;br /&gt;
    Jacob Winters&lt;br /&gt;
    Alex Wakefield&lt;br /&gt;
    John Buchanan&lt;/div&gt;</summary>
		<author><name>Jmwinte3</name></author>
	</entry>
	<entry>
		<id>https://wiki.expertiza.ncsu.edu/index.php?title=CSC/ECE_517_Spring_2025_-_E2504._Mentor-meeting_management&amp;diff=162078</id>
		<title>CSC/ECE 517 Spring 2025 - E2504. Mentor-meeting management</title>
		<link rel="alternate" type="text/html" href="https://wiki.expertiza.ncsu.edu/index.php?title=CSC/ECE_517_Spring_2025_-_E2504._Mentor-meeting_management&amp;diff=162078"/>
		<updated>2025-03-23T20:57:42Z</updated>

		<summary type="html">&lt;p&gt;Jmwinte3: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;__TOC__&lt;br /&gt;
&lt;br /&gt;
==Background==&lt;br /&gt;
Previously, mentors had to be manually assigned by reviewing team formations, a process that required frequent monitoring and manual intervention. The implementation of automatic mentor assignment significantly reduced this workload.&lt;br /&gt;
&lt;br /&gt;
==Project Overview==&lt;br /&gt;
The mentor assignment system was introduced in 2023 to streamline the process of assigning mentors to teams within Expertiza, an open-source course management platform designed for collaborative learning in large Object-Oriented Programming assignments. The primary focus of this project is to enhance the mentor management system. Within Expertiza, mentors can be assigned to teams either manually or automatically. Automatic assignment is triggered when a team reaches more than 50% of its capacity.&lt;br /&gt;
&lt;br /&gt;
== Challenges ==&lt;br /&gt;
&lt;br /&gt;
* While the system successfully assigns mentors automatically, there is no functionality to notify teams and mentors via email when an assignment is made&lt;br /&gt;
** This feature needs to be implemented to ensure clear communication.&lt;br /&gt;
&lt;br /&gt;
* The only available team listing is on the &amp;quot;Create Teams&amp;quot; page, where team members are displayed on separate lines, and mentors appear in an arbitrary position within the team structure.&lt;br /&gt;
** Improvements are needed to enhance clarity and usability in mentor assignment tracking.&lt;br /&gt;
&lt;br /&gt;
== Tasks ==&lt;br /&gt;
=== Email Notifications ===&lt;br /&gt;
Create a way that notifies participants and mentors, by email, of when they have been assigned to a team.&lt;br /&gt;
&lt;br /&gt;
=== Mentor Meeting Management ===&lt;br /&gt;
Dr. Gehringer expressed to us that the current view of mentor meetings took up too much space and proposed to us a mockup of how he would like the view to look, which can be seen below.&lt;br /&gt;
&amp;lt;center&amp;gt;[[File:MentorMeetingViewMockup.png|thumb|1000px|Caption here]]&amp;lt;/center&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Backend and Controller Updates ===&lt;br /&gt;
&lt;br /&gt;
=== Refactor Existing Codebase ===&lt;br /&gt;
&lt;br /&gt;
=== Testing and Validation ===&lt;br /&gt;
&lt;br /&gt;
== Implementation ==&lt;br /&gt;
=== Email Notifications ===&lt;br /&gt;
&lt;br /&gt;
=== Mentor Meeting Management ===&lt;br /&gt;
The teams table for mentor meeting management was significantly enhanced with dynamic column manipulation, allowing users to add and remove meeting columns while preventing conflicts with scheduled meetings. Individual meeting deletion and improved reliability were implemented, along with a refactored meeting date display and input for better user experience. The table structure was optimized, incorporating editable meeting fields with a save feature, dynamic updates based on filter selections, and an actions column. To streamline column management, dropdowns were replaced with header buttons, a maximum of five meeting columns was enforced, and dynamic rendering was implemented based on participant data. The mentor logic and date column naming were corrected for clarity, and a destroy route for team meetings was added, ensuring a more efficient and user-friendly team management experience.&lt;br /&gt;
&amp;lt;center&amp;gt;[[File:Screenshot_2025-03-23_164914.png|thumb|1000px|Screenshot of the Mentor Meeting Management System within the teams table]]&amp;lt;/center&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Backend and Controller Updates ===&lt;br /&gt;
The backend for mentor meeting management underwent significant restructuring to improve efficiency and maintainability. A dedicated destroy route for team meetings was implemented, along with a revised deletion process. The logic for determining mentored teams and displayed teams for mentors was refined, and the meetings table was refactored to utilize the Participants class, establishing a database relationship between mentored teams and meetings. The meetings-related logic was moved from the teams controller to a newly implemented meetings controller, which includes a filter function. An instructor table was added in paginated form, and meeting routes were standardized. The meetings controller was further enhanced with CSS styling and instance variable reorganization, culminating in the integration of @meetings into the Teams Controller model.&lt;br /&gt;
&lt;br /&gt;
```ruby&lt;br /&gt;
  # POST /meetings&lt;br /&gt;
  def create&lt;br /&gt;
    @team = Team.find(params[:team_id])&lt;br /&gt;
    @meeting = @team.meetings.new(meeting_params)&lt;br /&gt;
    if @meeting.save&lt;br /&gt;
      # TODO: Re-implement email notification for meeting creation&lt;br /&gt;
      render json: { status: 'success', message: 'Meeting date added' }, status: :created&lt;br /&gt;
    else&lt;br /&gt;
      render json: { status: 'error', message: 'Unable to add meeting date', errors: @meeting.errors.full_messages }, status: :unprocessable_entity&lt;br /&gt;
    end&lt;br /&gt;
  end&lt;br /&gt;
'''&lt;br /&gt;
&lt;br /&gt;
'''&lt;br /&gt;
# DELETE /meetings/:id&lt;br /&gt;
  def destroy&lt;br /&gt;
    puts &amp;quot;Team ID: #{params[:team_id]}&amp;quot;&lt;br /&gt;
    puts &amp;quot;Meeting ID: #{params[:id]}&amp;quot;&lt;br /&gt;
    puts &amp;quot;Meeting: #{@meeting.inspect}&amp;quot;&lt;br /&gt;
    if @meeting.destroy&lt;br /&gt;
      render json: { message: 'Meeting deleted successfully' }, status: :ok&lt;br /&gt;
    else&lt;br /&gt;
      render json: { error: 'Failed to delete meeting' }, status: :unprocessable_entity&lt;br /&gt;
    end&lt;br /&gt;
  end&lt;br /&gt;
'''&lt;br /&gt;
&lt;br /&gt;
'''&lt;br /&gt;
resources :teams, only: %i[new create edit update] do&lt;br /&gt;
    collection do&lt;br /&gt;
      get :list&lt;br /&gt;
      post :create_teams&lt;br /&gt;
      post :inherit&lt;br /&gt;
      get :delete&lt;br /&gt;
      get :delete_all&lt;br /&gt;
      get :bequeath_all&lt;br /&gt;
    end&lt;br /&gt;
    resources :meetings, only: %i[create destroy]&lt;br /&gt;
  end&lt;br /&gt;
'''&lt;br /&gt;
&lt;br /&gt;
=== Refactor Existing Codebase ===&lt;br /&gt;
This set of backend and frontend changes focuses on code cleanup, standardization, and compatibility improvements. Unnecessary whitespace was removed, and the database column &amp;quot;date&amp;quot; was renamed to &amp;quot;meeting_date&amp;quot; for clarity. The &amp;quot;get_dates&amp;quot; function was refactored to ensure compatibility with older Ruby versions. Table column names were converted to snake_case to adhere to Ruby naming conventions, and rendering partials were removed to resolve Turbo issues. Finally, an initial refactoring session was conducted with a Large Language Model (LLM) to further refine the code.&lt;br /&gt;
&lt;br /&gt;
=== Testing and Validation ===&lt;br /&gt;
&lt;br /&gt;
== Relevant Links ==&lt;br /&gt;
*Github Repository: https://github.com/jmwinte3/expertiza&lt;br /&gt;
&lt;br /&gt;
== Team ==&lt;br /&gt;
===Mentor===&lt;br /&gt;
&lt;br /&gt;
    Ed Gehringer&lt;br /&gt;
&lt;br /&gt;
=== Members ===&lt;br /&gt;
&lt;br /&gt;
    Jacob Winters&lt;br /&gt;
    Alex Wakefield&lt;br /&gt;
    John Buchanan&lt;/div&gt;</summary>
		<author><name>Jmwinte3</name></author>
	</entry>
	<entry>
		<id>https://wiki.expertiza.ncsu.edu/index.php?title=CSC/ECE_517_Spring_2025_-_E2504._Mentor-meeting_management&amp;diff=162076</id>
		<title>CSC/ECE 517 Spring 2025 - E2504. Mentor-meeting management</title>
		<link rel="alternate" type="text/html" href="https://wiki.expertiza.ncsu.edu/index.php?title=CSC/ECE_517_Spring_2025_-_E2504._Mentor-meeting_management&amp;diff=162076"/>
		<updated>2025-03-23T20:57:22Z</updated>

		<summary type="html">&lt;p&gt;Jmwinte3: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;__TOC__&lt;br /&gt;
&lt;br /&gt;
==Background==&lt;br /&gt;
Previously, mentors had to be manually assigned by reviewing team formations, a process that required frequent monitoring and manual intervention. The implementation of automatic mentor assignment significantly reduced this workload.&lt;br /&gt;
&lt;br /&gt;
==Project Overview==&lt;br /&gt;
The mentor assignment system was introduced in 2023 to streamline the process of assigning mentors to teams within Expertiza, an open-source course management platform designed for collaborative learning in large Object-Oriented Programming assignments. The primary focus of this project is to enhance the mentor management system. Within Expertiza, mentors can be assigned to teams either manually or automatically. Automatic assignment is triggered when a team reaches more than 50% of its capacity.&lt;br /&gt;
&lt;br /&gt;
== Challenges ==&lt;br /&gt;
&lt;br /&gt;
* While the system successfully assigns mentors automatically, there is no functionality to notify teams and mentors via email when an assignment is made&lt;br /&gt;
** This feature needs to be implemented to ensure clear communication.&lt;br /&gt;
&lt;br /&gt;
* The only available team listing is on the &amp;quot;Create Teams&amp;quot; page, where team members are displayed on separate lines, and mentors appear in an arbitrary position within the team structure.&lt;br /&gt;
** Improvements are needed to enhance clarity and usability in mentor assignment tracking.&lt;br /&gt;
&lt;br /&gt;
== Tasks ==&lt;br /&gt;
=== Email Notifications ===&lt;br /&gt;
&lt;br /&gt;
=== Mentor Meeting Management ===&lt;br /&gt;
Dr. Gehringer expressed to us that the current view of mentor meetings took up too much space and proposed to us a mockup of how he would like the view to look, which can be seen below.&lt;br /&gt;
&amp;lt;center&amp;gt;[[File:MentorMeetingViewMockup.png|thumb|300px|Caption here]]&amp;lt;/center&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Backend and Controller Updates ===&lt;br /&gt;
&lt;br /&gt;
=== Refactor Existing Codebase ===&lt;br /&gt;
&lt;br /&gt;
=== Testing and Validation ===&lt;br /&gt;
&lt;br /&gt;
== Implementation ==&lt;br /&gt;
=== Email Notifications ===&lt;br /&gt;
&lt;br /&gt;
=== Mentor Meeting Management ===&lt;br /&gt;
The teams table for mentor meeting management was significantly enhanced with dynamic column manipulation, allowing users to add and remove meeting columns while preventing conflicts with scheduled meetings. Individual meeting deletion and improved reliability were implemented, along with a refactored meeting date display and input for better user experience. The table structure was optimized, incorporating editable meeting fields with a save feature, dynamic updates based on filter selections, and an actions column. To streamline column management, dropdowns were replaced with header buttons, a maximum of five meeting columns was enforced, and dynamic rendering was implemented based on participant data. The mentor logic and date column naming were corrected for clarity, and a destroy route for team meetings was added, ensuring a more efficient and user-friendly team management experience.&lt;br /&gt;
&amp;lt;center&amp;gt;[[File:Screenshot_2025-03-23_164914.png|thumb|300px|Screenshot of the Mentor Meeting Management System within the teams table]]&amp;lt;/center&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Backend and Controller Updates ===&lt;br /&gt;
The backend for mentor meeting management underwent significant restructuring to improve efficiency and maintainability. A dedicated destroy route for team meetings was implemented, along with a revised deletion process. The logic for determining mentored teams and displayed teams for mentors was refined, and the meetings table was refactored to utilize the Participants class, establishing a database relationship between mentored teams and meetings. The meetings-related logic was moved from the teams controller to a newly implemented meetings controller, which includes a filter function. An instructor table was added in paginated form, and meeting routes were standardized. The meetings controller was further enhanced with CSS styling and instance variable reorganization, culminating in the integration of @meetings into the Teams Controller model.&lt;br /&gt;
&lt;br /&gt;
```ruby&lt;br /&gt;
  # POST /meetings&lt;br /&gt;
  def create&lt;br /&gt;
    @team = Team.find(params[:team_id])&lt;br /&gt;
    @meeting = @team.meetings.new(meeting_params)&lt;br /&gt;
    if @meeting.save&lt;br /&gt;
      # TODO: Re-implement email notification for meeting creation&lt;br /&gt;
      render json: { status: 'success', message: 'Meeting date added' }, status: :created&lt;br /&gt;
    else&lt;br /&gt;
      render json: { status: 'error', message: 'Unable to add meeting date', errors: @meeting.errors.full_messages }, status: :unprocessable_entity&lt;br /&gt;
    end&lt;br /&gt;
  end&lt;br /&gt;
'''&lt;br /&gt;
&lt;br /&gt;
'''&lt;br /&gt;
# DELETE /meetings/:id&lt;br /&gt;
  def destroy&lt;br /&gt;
    puts &amp;quot;Team ID: #{params[:team_id]}&amp;quot;&lt;br /&gt;
    puts &amp;quot;Meeting ID: #{params[:id]}&amp;quot;&lt;br /&gt;
    puts &amp;quot;Meeting: #{@meeting.inspect}&amp;quot;&lt;br /&gt;
    if @meeting.destroy&lt;br /&gt;
      render json: { message: 'Meeting deleted successfully' }, status: :ok&lt;br /&gt;
    else&lt;br /&gt;
      render json: { error: 'Failed to delete meeting' }, status: :unprocessable_entity&lt;br /&gt;
    end&lt;br /&gt;
  end&lt;br /&gt;
'''&lt;br /&gt;
&lt;br /&gt;
'''&lt;br /&gt;
resources :teams, only: %i[new create edit update] do&lt;br /&gt;
    collection do&lt;br /&gt;
      get :list&lt;br /&gt;
      post :create_teams&lt;br /&gt;
      post :inherit&lt;br /&gt;
      get :delete&lt;br /&gt;
      get :delete_all&lt;br /&gt;
      get :bequeath_all&lt;br /&gt;
    end&lt;br /&gt;
    resources :meetings, only: %i[create destroy]&lt;br /&gt;
  end&lt;br /&gt;
'''&lt;br /&gt;
&lt;br /&gt;
=== Refactor Existing Codebase ===&lt;br /&gt;
This set of backend and frontend changes focuses on code cleanup, standardization, and compatibility improvements. Unnecessary whitespace was removed, and the database column &amp;quot;date&amp;quot; was renamed to &amp;quot;meeting_date&amp;quot; for clarity. The &amp;quot;get_dates&amp;quot; function was refactored to ensure compatibility with older Ruby versions. Table column names were converted to snake_case to adhere to Ruby naming conventions, and rendering partials were removed to resolve Turbo issues. Finally, an initial refactoring session was conducted with a Large Language Model (LLM) to further refine the code.&lt;br /&gt;
&lt;br /&gt;
=== Testing and Validation ===&lt;br /&gt;
&lt;br /&gt;
== Relevant Links ==&lt;br /&gt;
*Github Repository: https://github.com/jmwinte3/expertiza&lt;br /&gt;
&lt;br /&gt;
== Team ==&lt;br /&gt;
===Mentor===&lt;br /&gt;
&lt;br /&gt;
    Ed Gehringer&lt;br /&gt;
&lt;br /&gt;
=== Members ===&lt;br /&gt;
&lt;br /&gt;
    Jacob Winters&lt;br /&gt;
    Alex Wakefield&lt;br /&gt;
    John Buchanan&lt;/div&gt;</summary>
		<author><name>Jmwinte3</name></author>
	</entry>
	<entry>
		<id>https://wiki.expertiza.ncsu.edu/index.php?title=CSC/ECE_517_Spring_2025_-_E2504._Mentor-meeting_management&amp;diff=162075</id>
		<title>CSC/ECE 517 Spring 2025 - E2504. Mentor-meeting management</title>
		<link rel="alternate" type="text/html" href="https://wiki.expertiza.ncsu.edu/index.php?title=CSC/ECE_517_Spring_2025_-_E2504._Mentor-meeting_management&amp;diff=162075"/>
		<updated>2025-03-23T20:55:23Z</updated>

		<summary type="html">&lt;p&gt;Jmwinte3: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;__TOC__&lt;br /&gt;
&lt;br /&gt;
==Background==&lt;br /&gt;
Previously, mentors had to be manually assigned by reviewing team formations, a process that required frequent monitoring and manual intervention. The implementation of automatic mentor assignment significantly reduced this workload.&lt;br /&gt;
&lt;br /&gt;
==Project Overview==&lt;br /&gt;
The mentor assignment system was introduced in 2023 to streamline the process of assigning mentors to teams within Expertiza, an open-source course management platform designed for collaborative learning in large Object-Oriented Programming assignments. The primary focus of this project is to enhance the mentor management system. Within Expertiza, mentors can be assigned to teams either manually or automatically. Automatic assignment is triggered when a team reaches more than 50% of its capacity.&lt;br /&gt;
&lt;br /&gt;
== Challenges ==&lt;br /&gt;
&lt;br /&gt;
    While the system successfully assigns mentors automatically, there is no functionality to notify teams and mentors via email when an assignment is made&lt;br /&gt;
    ** This feature needs to be implemented to ensure clear communication.&lt;br /&gt;
&lt;br /&gt;
    The only available team listing is on the &amp;quot;Create Teams&amp;quot; page, where team members are displayed on separate lines, and mentors appear in an arbitrary position within the team structure.&lt;br /&gt;
    ** Improvements are needed to enhance clarity and usability in mentor assignment tracking.&lt;br /&gt;
&lt;br /&gt;
== Tasks ==&lt;br /&gt;
=== Email Notifications ===&lt;br /&gt;
&lt;br /&gt;
=== Mentor Meeting Management ===&lt;br /&gt;
Dr. Gehringer expressed to us that the current view of mentor meetings took up too much space and proposed to us a mockup of how he would like the view to look, which can be seen below.&lt;br /&gt;
[[File:MentorMeetingViewMockup.png|thumb|1000px|Caption here]]&lt;br /&gt;
&lt;br /&gt;
=== Backend and Controller Updates ===&lt;br /&gt;
&lt;br /&gt;
=== Refactor Existing Codebase ===&lt;br /&gt;
&lt;br /&gt;
=== Testing and Validation ===&lt;br /&gt;
&lt;br /&gt;
== Implementation ==&lt;br /&gt;
=== Email Notifications ===&lt;br /&gt;
&lt;br /&gt;
=== Mentor Meeting Management ===&lt;br /&gt;
The teams table for mentor meeting management was significantly enhanced with dynamic column manipulation, allowing users to add and remove meeting columns while preventing conflicts with scheduled meetings. Individual meeting deletion and improved reliability were implemented, along with a refactored meeting date display and input for better user experience. The table structure was optimized, incorporating editable meeting fields with a save feature, dynamic updates based on filter selections, and an actions column. To streamline column management, dropdowns were replaced with header buttons, a maximum of five meeting columns was enforced, and dynamic rendering was implemented based on participant data. The mentor logic and date column naming were corrected for clarity, and a destroy route for team meetings was added, ensuring a more efficient and user-friendly team management experience.&lt;br /&gt;
[[File:Screenshot_2025-03-23_164914.png|thumb|1000px|Screenshot of the Mentor Meeting Management System within the teams table]]&lt;br /&gt;
&lt;br /&gt;
=== Backend and Controller Updates ===&lt;br /&gt;
The backend for mentor meeting management underwent significant restructuring to improve efficiency and maintainability. A dedicated destroy route for team meetings was implemented, along with a revised deletion process. The logic for determining mentored teams and displayed teams for mentors was refined, and the meetings table was refactored to utilize the Participants class, establishing a database relationship between mentored teams and meetings. The meetings-related logic was moved from the teams controller to a newly implemented meetings controller, which includes a filter function. An instructor table was added in paginated form, and meeting routes were standardized. The meetings controller was further enhanced with CSS styling and instance variable reorganization, culminating in the integration of @meetings into the Teams Controller model.&lt;br /&gt;
&lt;br /&gt;
'''&lt;br /&gt;
 # POST /meetings&lt;br /&gt;
  def create&lt;br /&gt;
    @team = Team.find(params[:team_id])&lt;br /&gt;
    @meeting = @team.meetings.new(meeting_params)&lt;br /&gt;
    if @meeting.save&lt;br /&gt;
      # TODO: Re-implement email notification for meeting creation&lt;br /&gt;
      render json: { status: 'success', message: 'Meeting date added' }, status: :created&lt;br /&gt;
    else&lt;br /&gt;
      render json: { status: 'error', message: 'Unable to add meeting date', errors: @meeting.errors.full_messages }, status: :unprocessable_entity&lt;br /&gt;
    end&lt;br /&gt;
  end&lt;br /&gt;
'''&lt;br /&gt;
&lt;br /&gt;
'''&lt;br /&gt;
  # DELETE /meetings/:id&lt;br /&gt;
  def destroy&lt;br /&gt;
    puts &amp;quot;Team ID: #{params[:team_id]}&amp;quot;&lt;br /&gt;
    puts &amp;quot;Meeting ID: #{params[:id]}&amp;quot;&lt;br /&gt;
    puts &amp;quot;Meeting: #{@meeting.inspect}&amp;quot;&lt;br /&gt;
    if @meeting.destroy&lt;br /&gt;
      render json: { message: 'Meeting deleted successfully' }, status: :ok&lt;br /&gt;
    else&lt;br /&gt;
      render json: { error: 'Failed to delete meeting' }, status: :unprocessable_entity&lt;br /&gt;
    end&lt;br /&gt;
  end&lt;br /&gt;
'''&lt;br /&gt;
'''&lt;br /&gt;
  resources :teams, only: %i[new create edit update] do&lt;br /&gt;
    collection do&lt;br /&gt;
      get :list&lt;br /&gt;
      post :create_teams&lt;br /&gt;
      post :inherit&lt;br /&gt;
      get :delete&lt;br /&gt;
      get :delete_all&lt;br /&gt;
      get :bequeath_all&lt;br /&gt;
    end&lt;br /&gt;
    resources :meetings, only: %i[create destroy]&lt;br /&gt;
  end&lt;br /&gt;
'''&lt;br /&gt;
&lt;br /&gt;
=== Refactor Existing Codebase ===&lt;br /&gt;
This set of backend and frontend changes focuses on code cleanup, standardization, and compatibility improvements. Unnecessary whitespace was removed, and the database column &amp;quot;date&amp;quot; was renamed to &amp;quot;meeting_date&amp;quot; for clarity. The &amp;quot;get_dates&amp;quot; function was refactored to ensure compatibility with older Ruby versions. Table column names were converted to snake_case to adhere to Ruby naming conventions, and rendering partials were removed to resolve Turbo issues. Finally, an initial refactoring session was conducted with a Large Language Model (LLM) to further refine the code.&lt;br /&gt;
&lt;br /&gt;
=== Testing and Validation ===&lt;br /&gt;
&lt;br /&gt;
== Relevant Links ==&lt;br /&gt;
*Github Repository: https://github.com/jmwinte3/expertiza&lt;br /&gt;
&lt;br /&gt;
== Team ==&lt;br /&gt;
===Mentor===&lt;br /&gt;
* Ed Gehringer&lt;br /&gt;
&lt;br /&gt;
=== Members ===&lt;br /&gt;
* Jacob Winters&lt;br /&gt;
* Alex Wakefield&lt;br /&gt;
* John Buchanan&lt;/div&gt;</summary>
		<author><name>Jmwinte3</name></author>
	</entry>
	<entry>
		<id>https://wiki.expertiza.ncsu.edu/index.php?title=CSC/ECE_517_Spring_2025_-_E2504._Mentor-meeting_management&amp;diff=162074</id>
		<title>CSC/ECE 517 Spring 2025 - E2504. Mentor-meeting management</title>
		<link rel="alternate" type="text/html" href="https://wiki.expertiza.ncsu.edu/index.php?title=CSC/ECE_517_Spring_2025_-_E2504._Mentor-meeting_management&amp;diff=162074"/>
		<updated>2025-03-23T20:54:51Z</updated>

		<summary type="html">&lt;p&gt;Jmwinte3: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;__TOC__&lt;br /&gt;
&lt;br /&gt;
==Background==&lt;br /&gt;
Previously, mentors had to be manually assigned by reviewing team formations, a process that required frequent monitoring and manual intervention. The implementation of automatic mentor assignment significantly reduced this workload.&lt;br /&gt;
&lt;br /&gt;
==Project Overview==&lt;br /&gt;
The mentor assignment system was introduced in 2023 to streamline the process of assigning mentors to teams within Expertiza, an open-source course management platform designed for collaborative learning in large Object-Oriented Programming assignments. The primary focus of this project is to enhance the mentor management system. Within Expertiza, mentors can be assigned to teams either manually or automatically. Automatic assignment is triggered when a team reaches more than 50% of its capacity.&lt;br /&gt;
&lt;br /&gt;
== Challenges ==&lt;br /&gt;
&lt;br /&gt;
    While the system successfully assigns mentors automatically, there is no functionality to notify teams and mentors via email when an assignment is made&lt;br /&gt;
    ** This feature needs to be implemented to ensure clear communication.&lt;br /&gt;
&lt;br /&gt;
    The only available team listing is on the &amp;quot;Create Teams&amp;quot; page, where team members are displayed on separate lines, and mentors appear in an arbitrary position within the team structure.&lt;br /&gt;
    ** Improvements are needed to enhance clarity and usability in mentor assignment tracking.&lt;br /&gt;
&lt;br /&gt;
== Tasks ==&lt;br /&gt;
=== Email Notifications ===&lt;br /&gt;
&lt;br /&gt;
=== Mentor Meeting Management ===&lt;br /&gt;
Dr. Gehringer expressed to us that the current view of mentor meetings took up too much space and proposed to us a mockup of how he would like the view to look, which can be seen below.&lt;br /&gt;
[[File:MentorMeetingViewMockup.png|thumb|600px|Caption here]]&lt;br /&gt;
&lt;br /&gt;
=== Backend and Controller Updates ===&lt;br /&gt;
&lt;br /&gt;
=== Refactor Existing Codebase ===&lt;br /&gt;
&lt;br /&gt;
=== Testing and Validation ===&lt;br /&gt;
&lt;br /&gt;
== Implementation ==&lt;br /&gt;
=== Email Notifications ===&lt;br /&gt;
&lt;br /&gt;
=== Mentor Meeting Management ===&lt;br /&gt;
The teams table for mentor meeting management was significantly enhanced with dynamic column manipulation, allowing users to add and remove meeting columns while preventing conflicts with scheduled meetings. Individual meeting deletion and improved reliability were implemented, along with a refactored meeting date display and input for better user experience. The table structure was optimized, incorporating editable meeting fields with a save feature, dynamic updates based on filter selections, and an actions column. To streamline column management, dropdowns were replaced with header buttons, a maximum of five meeting columns was enforced, and dynamic rendering was implemented based on participant data. The mentor logic and date column naming were corrected for clarity, and a destroy route for team meetings was added, ensuring a more efficient and user-friendly team management experience.&lt;br /&gt;
[[File:Screenshot_2025-03-23_164914.png|thumb|300px|Screenshot of the Mentor Meeting Management System within the teams table]]&lt;br /&gt;
&lt;br /&gt;
=== Backend and Controller Updates ===&lt;br /&gt;
The backend for mentor meeting management underwent significant restructuring to improve efficiency and maintainability. A dedicated destroy route for team meetings was implemented, along with a revised deletion process. The logic for determining mentored teams and displayed teams for mentors was refined, and the meetings table was refactored to utilize the Participants class, establishing a database relationship between mentored teams and meetings. The meetings-related logic was moved from the teams controller to a newly implemented meetings controller, which includes a filter function. An instructor table was added in paginated form, and meeting routes were standardized. The meetings controller was further enhanced with CSS styling and instance variable reorganization, culminating in the integration of @meetings into the Teams Controller model.&lt;br /&gt;
&lt;br /&gt;
'''&lt;br /&gt;
 # POST /meetings&lt;br /&gt;
  def create&lt;br /&gt;
    @team = Team.find(params[:team_id])&lt;br /&gt;
    @meeting = @team.meetings.new(meeting_params)&lt;br /&gt;
    if @meeting.save&lt;br /&gt;
      # TODO: Re-implement email notification for meeting creation&lt;br /&gt;
      render json: { status: 'success', message: 'Meeting date added' }, status: :created&lt;br /&gt;
    else&lt;br /&gt;
      render json: { status: 'error', message: 'Unable to add meeting date', errors: @meeting.errors.full_messages }, status: :unprocessable_entity&lt;br /&gt;
    end&lt;br /&gt;
  end&lt;br /&gt;
'''&lt;br /&gt;
&lt;br /&gt;
'''&lt;br /&gt;
  # DELETE /meetings/:id&lt;br /&gt;
  def destroy&lt;br /&gt;
    puts &amp;quot;Team ID: #{params[:team_id]}&amp;quot;&lt;br /&gt;
    puts &amp;quot;Meeting ID: #{params[:id]}&amp;quot;&lt;br /&gt;
    puts &amp;quot;Meeting: #{@meeting.inspect}&amp;quot;&lt;br /&gt;
    if @meeting.destroy&lt;br /&gt;
      render json: { message: 'Meeting deleted successfully' }, status: :ok&lt;br /&gt;
    else&lt;br /&gt;
      render json: { error: 'Failed to delete meeting' }, status: :unprocessable_entity&lt;br /&gt;
    end&lt;br /&gt;
  end&lt;br /&gt;
'''&lt;br /&gt;
'''&lt;br /&gt;
  resources :teams, only: %i[new create edit update] do&lt;br /&gt;
    collection do&lt;br /&gt;
      get :list&lt;br /&gt;
      post :create_teams&lt;br /&gt;
      post :inherit&lt;br /&gt;
      get :delete&lt;br /&gt;
      get :delete_all&lt;br /&gt;
      get :bequeath_all&lt;br /&gt;
    end&lt;br /&gt;
    resources :meetings, only: %i[create destroy]&lt;br /&gt;
  end&lt;br /&gt;
'''&lt;br /&gt;
&lt;br /&gt;
=== Refactor Existing Codebase ===&lt;br /&gt;
This set of backend and frontend changes focuses on code cleanup, standardization, and compatibility improvements. Unnecessary whitespace was removed, and the database column &amp;quot;date&amp;quot; was renamed to &amp;quot;meeting_date&amp;quot; for clarity. The &amp;quot;get_dates&amp;quot; function was refactored to ensure compatibility with older Ruby versions. Table column names were converted to snake_case to adhere to Ruby naming conventions, and rendering partials were removed to resolve Turbo issues. Finally, an initial refactoring session was conducted with a Large Language Model (LLM) to further refine the code.&lt;br /&gt;
&lt;br /&gt;
=== Testing and Validation ===&lt;br /&gt;
&lt;br /&gt;
== Relevant Links ==&lt;br /&gt;
*Github Repository: https://github.com/jmwinte3/expertiza&lt;br /&gt;
&lt;br /&gt;
== Team ==&lt;br /&gt;
===Mentor===&lt;br /&gt;
* Ed Gehringer&lt;br /&gt;
&lt;br /&gt;
=== Members ===&lt;br /&gt;
* Jacob Winters&lt;br /&gt;
* Alex Wakefield&lt;br /&gt;
* John Buchanan&lt;/div&gt;</summary>
		<author><name>Jmwinte3</name></author>
	</entry>
</feed>