<?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=Achoudh8</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=Achoudh8"/>
	<link rel="alternate" type="text/html" href="https://wiki.expertiza.ncsu.edu/index.php?title=Special:Contributions/Achoudh8"/>
	<updated>2026-08-12T19:52:19Z</updated>
	<subtitle>User contributions</subtitle>
	<generator>MediaWiki 1.41.0</generator>
	<entry>
		<id>https://wiki.expertiza.ncsu.edu/index.php?title=CSC/ECE_517_Fall_2023_-_E2373._Reimplement_teams_controllers.rb&amp;diff=152842</id>
		<title>CSC/ECE 517 Fall 2023 - E2373. Reimplement teams controllers.rb</title>
		<link rel="alternate" type="text/html" href="https://wiki.expertiza.ncsu.edu/index.php?title=CSC/ECE_517_Fall_2023_-_E2373._Reimplement_teams_controllers.rb&amp;diff=152842"/>
		<updated>2023-12-07T02:02:28Z</updated>

		<summary type="html">&lt;p&gt;Achoudh8: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;===Expertiza===&lt;br /&gt;
&lt;br /&gt;
[http://expertiza.ncsu.edu/ Expertiza] is an open source project based on [http://rubyonrails.org/ Ruby on Rails] framework. Expertiza allows the instructor to create new assignments and customize new or existing assignments. It also allows the instructor to create a list of topics the students can sign up for. Students can form teams in Expertiza to work on various projects and assignments. Students can also peer review other students' submissions. Expertiza supports submission across various document types, including URLs and wiki pages.&lt;br /&gt;
&lt;br /&gt;
===Description of Project===&lt;br /&gt;
&lt;br /&gt;
The project involves a comprehensive restructuring of the teams_controller.rb file and the team.rb model within an application handling team functionalities in assignments or courses. The primary focus includes adhering to the Single Responsibility Principle (SRP) by reorganizing methods to have singular, focused tasks and separating team-copying functionalities. Additionally, the effort involves refining function names for better clarity and readability and enhancing comments across the codebase to improve understanding. This overhaul aims to optimize the codebase for maintainability and readability while preserving or enhancing the functionality of team-related operations in the application.&lt;br /&gt;
&lt;br /&gt;
===Problem Statement===&lt;br /&gt;
&lt;br /&gt;
The problem statement revolves around the inefficiencies and complexities present in the teams_controller.rb file and the team.rb model within an application managing team functionalities for assignments or courses. These inefficiencies primarily stem from violations of the Single Responsibility Principle (SRP), evident in functions that encompass multiple tasks and unclearly named functions that hinder code readability. Additionally, inadequate comments further exacerbate the code's readability issues. The challenge is to refactor these components, focusing on SRP compliance by restructuring methods, improving naming conventions for better understanding, and enhancing comments to facilitate code comprehension. The goal is to optimize the codebase for maintainability and readability while preserving or enhancing the functionality of team-related operations in the application.&lt;br /&gt;
&lt;br /&gt;
===Objectives===&lt;br /&gt;
&lt;br /&gt;
1. Single Responsibility Principle (SRP) Adherence&lt;br /&gt;
&lt;br /&gt;
*Refactor methods in teams_controller.rb and team.rb model to ensure each function has a singular, focused responsibility.&lt;br /&gt;
*Separate team-related functionalities like copying between assignments/courses for better code organization.&lt;br /&gt;
&lt;br /&gt;
2. Improved Naming Conventions&lt;br /&gt;
&lt;br /&gt;
*Rename ambiguous or confusingly named functions in both teams_controller.rb and team.rb for enhanced code readability and understanding.&lt;br /&gt;
&lt;br /&gt;
3. Enhanced Comments and Documentation&lt;br /&gt;
&lt;br /&gt;
*Improve and add comments throughout the codebase to provide clearer explanations of complex functionalities and enhance overall code comprehension.&lt;br /&gt;
*Document significant changes made during refactoring to aid future maintenance and development.&lt;br /&gt;
&lt;br /&gt;
4. Code Refactoring and Consolidation&lt;br /&gt;
&lt;br /&gt;
*Identify and eliminate code repetitions across functions to streamline the codebase, enhancing maintainability and reducing redundancy.&lt;br /&gt;
&lt;br /&gt;
5. Testing and Validation&lt;br /&gt;
&lt;br /&gt;
*Create or update unit tests to ensure the correctness and functionality of refactored methods in both the teams_controller.rb and team.rb model.&lt;br /&gt;
*Conduct integration testing to verify the overall functionality of team-related operations post-refactoring.&lt;br /&gt;
&lt;br /&gt;
The objectives aim to optimize the codebase by adhering to SRP principles, improving code readability through better naming conventions and comments, consolidating code where possible, and ensuring thorough testing for functionality validation.&lt;br /&gt;
&lt;br /&gt;
===Development Strategy===&lt;br /&gt;
&lt;br /&gt;
Our development strategy centers around Test-Driven Development (TDD) principles applied to refactoring the teams_controller.rb and team.rb model. Starting with the creation of failing test cases, we iteratively refactor code to address identified inefficiencies while ensuring successful test outcomes.&lt;br /&gt;
&lt;br /&gt;
Additionally, we emphasize the adoption of a &amp;quot;Slim controller, Fat model&amp;quot; paradigm inspired by Rails conventions. Our goal is to migrate complex functionalities from the controller to the model, fostering a more organized and maintainable codebase. This approach not only enhances code clarity within the controller but also promotes reusability and scalability across the application.&lt;br /&gt;
&lt;br /&gt;
===Project Design and Implementation===&lt;br /&gt;
&lt;br /&gt;
Taking into account the current functionalities within the teams_controller.rb and team.rb model, our approach involves embracing the Strategy Pattern within the controller, capitalizing on its capability to encapsulate distinct controller actions. This strategic implementation aims to ensure seamless extensibility and enhanced usability. By employing this pattern, we establish a structured framework for defining and managing the diverse operations the controller handles, promoting a more organized and manageable code structure.&lt;br /&gt;
&lt;br /&gt;
===UML Diagram===&lt;br /&gt;
&lt;br /&gt;
[[File:uml_001.png|800px]]&lt;br /&gt;
[[File:uml_002.png|800px]]&lt;br /&gt;
&lt;br /&gt;
==== Functionality ====&lt;br /&gt;
In this project, we aim to add functions for the following:&lt;br /&gt;
&lt;br /&gt;
1. Refactoring for SRP:&lt;br /&gt;
*Reorganizing code in teams_controller.rb and team.rb to adhere to the Single Responsibility Principle.&lt;br /&gt;
[[File:Screenshot_1.png|1000px]]&lt;br /&gt;
&lt;br /&gt;
[[File:Screenshot_2.png|1000px]]&lt;br /&gt;
&lt;br /&gt;
[[File:Screenshot_3.png|1000px]]&lt;br /&gt;
&lt;br /&gt;
2. Naming and Comment Improvements:&lt;br /&gt;
*Enhancing function and method names for clarity.&lt;br /&gt;
[[File:Screenshot_4.png|1000px]]&lt;br /&gt;
&lt;br /&gt;
[[File:Screenshot_50.png|1000px]]&lt;br /&gt;
&lt;br /&gt;
*Adding and refining comments for better code comprehension.&lt;br /&gt;
&lt;br /&gt;
[[File:Screenshot_51.png|1000px]]&lt;br /&gt;
&lt;br /&gt;
3. Code Optimization:&lt;br /&gt;
*Identifying and removing redundant code segments to streamline the codebase.&lt;br /&gt;
&lt;br /&gt;
4. Testing and Validation:&lt;br /&gt;
*Creating or updating tests to ensure the accuracy of refactored methods.&lt;br /&gt;
*Conducting integration tests to verify overall functionality post-refactoring.&lt;br /&gt;
&lt;br /&gt;
===Testing Plan===&lt;br /&gt;
&lt;br /&gt;
We plan to employ RSpec for comprehensive testing of the teams_controller.rb and team.rb model. Leveraging FactoryBot, we'll construct the necessary test fixtures and models for thorough testing. Our approach involves utilizing the existing test skeleton provided while enhancing test coverage and minimizing code smells. Considering the current functionalities, our defined tests aim to validate the restructured code in the teams_controller.rb and team.rb model, verifying improved functionality and reduced code smells.&lt;br /&gt;
&lt;br /&gt;
File: ./spec/controllers/teams_controller_spec.rb&lt;br /&gt;
&lt;br /&gt;
[[File:Screenshot_53.png|1000px]]&lt;br /&gt;
&lt;br /&gt;
===Relevant Links===&lt;br /&gt;
Github Repository: https://github.com/Naveen-Jayanna/expertiza&lt;br /&gt;
&lt;br /&gt;
===Team Members===&lt;br /&gt;
*Samarth Purushothaman&lt;br /&gt;
&lt;br /&gt;
*Naveen Jayanna&lt;br /&gt;
&lt;br /&gt;
*Arpit Choudhary&lt;br /&gt;
&lt;br /&gt;
===Mentor===&lt;br /&gt;
Aditi Vakeel&lt;/div&gt;</summary>
		<author><name>Achoudh8</name></author>
	</entry>
	<entry>
		<id>https://wiki.expertiza.ncsu.edu/index.php?title=File:Uml_002.png&amp;diff=152841</id>
		<title>File:Uml 002.png</title>
		<link rel="alternate" type="text/html" href="https://wiki.expertiza.ncsu.edu/index.php?title=File:Uml_002.png&amp;diff=152841"/>
		<updated>2023-12-07T02:01:41Z</updated>

		<summary type="html">&lt;p&gt;Achoudh8: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;/div&gt;</summary>
		<author><name>Achoudh8</name></author>
	</entry>
	<entry>
		<id>https://wiki.expertiza.ncsu.edu/index.php?title=File:Uml_001.png&amp;diff=152840</id>
		<title>File:Uml 001.png</title>
		<link rel="alternate" type="text/html" href="https://wiki.expertiza.ncsu.edu/index.php?title=File:Uml_001.png&amp;diff=152840"/>
		<updated>2023-12-07T02:01:19Z</updated>

		<summary type="html">&lt;p&gt;Achoudh8: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;/div&gt;</summary>
		<author><name>Achoudh8</name></author>
	</entry>
	<entry>
		<id>https://wiki.expertiza.ncsu.edu/index.php?title=File:Uml_01.png&amp;diff=152839</id>
		<title>File:Uml 01.png</title>
		<link rel="alternate" type="text/html" href="https://wiki.expertiza.ncsu.edu/index.php?title=File:Uml_01.png&amp;diff=152839"/>
		<updated>2023-12-07T01:52:46Z</updated>

		<summary type="html">&lt;p&gt;Achoudh8: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;/div&gt;</summary>
		<author><name>Achoudh8</name></author>
	</entry>
	<entry>
		<id>https://wiki.expertiza.ncsu.edu/index.php?title=File:Uml_2.png&amp;diff=152838</id>
		<title>File:Uml 2.png</title>
		<link rel="alternate" type="text/html" href="https://wiki.expertiza.ncsu.edu/index.php?title=File:Uml_2.png&amp;diff=152838"/>
		<updated>2023-12-07T01:51:52Z</updated>

		<summary type="html">&lt;p&gt;Achoudh8: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;/div&gt;</summary>
		<author><name>Achoudh8</name></author>
	</entry>
	<entry>
		<id>https://wiki.expertiza.ncsu.edu/index.php?title=CSC/ECE_517_Fall_2023_-_E2373._Reimplement_teams_controllers.rb&amp;diff=152769</id>
		<title>CSC/ECE 517 Fall 2023 - E2373. Reimplement teams controllers.rb</title>
		<link rel="alternate" type="text/html" href="https://wiki.expertiza.ncsu.edu/index.php?title=CSC/ECE_517_Fall_2023_-_E2373._Reimplement_teams_controllers.rb&amp;diff=152769"/>
		<updated>2023-12-05T20:49:42Z</updated>

		<summary type="html">&lt;p&gt;Achoudh8: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;===Expertiza===&lt;br /&gt;
&lt;br /&gt;
[http://expertiza.ncsu.edu/ Expertiza] is an open source project based on [http://rubyonrails.org/ Ruby on Rails] framework. Expertiza allows the instructor to create new assignments and customize new or existing assignments. It also allows the instructor to create a list of topics the students can sign up for. Students can form teams in Expertiza to work on various projects and assignments. Students can also peer review other students' submissions. Expertiza supports submission across various document types, including URLs and wiki pages.&lt;br /&gt;
&lt;br /&gt;
===Description of Project===&lt;br /&gt;
&lt;br /&gt;
The project involves a comprehensive restructuring of the teams_controller.rb file and the team.rb model within an application handling team functionalities in assignments or courses. The primary focus includes adhering to the Single Responsibility Principle (SRP) by reorganizing methods to have singular, focused tasks and separating team-copying functionalities. Additionally, the effort involves refining function names for better clarity and readability and enhancing comments across the codebase to improve understanding. This overhaul aims to optimize the codebase for maintainability and readability while preserving or enhancing the functionality of team-related operations in the application.&lt;br /&gt;
&lt;br /&gt;
===Problem Statement===&lt;br /&gt;
&lt;br /&gt;
The problem statement revolves around the inefficiencies and complexities present in the teams_controller.rb file and the team.rb model within an application managing team functionalities for assignments or courses. These inefficiencies primarily stem from violations of the Single Responsibility Principle (SRP), evident in functions that encompass multiple tasks and unclearly named functions that hinder code readability. Additionally, inadequate comments further exacerbate the code's readability issues. The challenge is to refactor these components, focusing on SRP compliance by restructuring methods, improving naming conventions for better understanding, and enhancing comments to facilitate code comprehension. The goal is to optimize the codebase for maintainability and readability while preserving or enhancing the functionality of team-related operations in the application.&lt;br /&gt;
&lt;br /&gt;
===Objectives===&lt;br /&gt;
&lt;br /&gt;
1. Single Responsibility Principle (SRP) Adherence&lt;br /&gt;
&lt;br /&gt;
*Refactor methods in teams_controller.rb and team.rb model to ensure each function has a singular, focused responsibility.&lt;br /&gt;
*Separate team-related functionalities like copying between assignments/courses for better code organization.&lt;br /&gt;
&lt;br /&gt;
2. Improved Naming Conventions&lt;br /&gt;
&lt;br /&gt;
*Rename ambiguous or confusingly named functions in both teams_controller.rb and team.rb for enhanced code readability and understanding.&lt;br /&gt;
&lt;br /&gt;
3. Enhanced Comments and Documentation&lt;br /&gt;
&lt;br /&gt;
*Improve and add comments throughout the codebase to provide clearer explanations of complex functionalities and enhance overall code comprehension.&lt;br /&gt;
*Document significant changes made during refactoring to aid future maintenance and development.&lt;br /&gt;
&lt;br /&gt;
4. Code Refactoring and Consolidation&lt;br /&gt;
&lt;br /&gt;
*Identify and eliminate code repetitions across functions to streamline the codebase, enhancing maintainability and reducing redundancy.&lt;br /&gt;
&lt;br /&gt;
5. Testing and Validation&lt;br /&gt;
&lt;br /&gt;
*Create or update unit tests to ensure the correctness and functionality of refactored methods in both the teams_controller.rb and team.rb model.&lt;br /&gt;
*Conduct integration testing to verify the overall functionality of team-related operations post-refactoring.&lt;br /&gt;
&lt;br /&gt;
The objectives aim to optimize the codebase by adhering to SRP principles, improving code readability through better naming conventions and comments, consolidating code where possible, and ensuring thorough testing for functionality validation.&lt;br /&gt;
&lt;br /&gt;
===Development Strategy===&lt;br /&gt;
&lt;br /&gt;
Our development strategy centers around Test-Driven Development (TDD) principles applied to refactoring the teams_controller.rb and team.rb model. Starting with the creation of failing test cases, we iteratively refactor code to address identified inefficiencies while ensuring successful test outcomes.&lt;br /&gt;
&lt;br /&gt;
Additionally, we emphasize the adoption of a &amp;quot;Slim controller, Fat model&amp;quot; paradigm inspired by Rails conventions. Our goal is to migrate complex functionalities from the controller to the model, fostering a more organized and maintainable codebase. This approach not only enhances code clarity within the controller but also promotes reusability and scalability across the application.&lt;br /&gt;
&lt;br /&gt;
===Project Design and Implementation===&lt;br /&gt;
&lt;br /&gt;
Taking into account the current functionalities within the teams_controller.rb and team.rb model, our approach involves embracing the Strategy Pattern within the controller, capitalizing on its capability to encapsulate distinct controller actions. This strategic implementation aims to ensure seamless extensibility and enhanced usability. By employing this pattern, we establish a structured framework for defining and managing the diverse operations the controller handles, promoting a more organized and manageable code structure.&lt;br /&gt;
&lt;br /&gt;
==== Functionality ====&lt;br /&gt;
In this project, we aim to add functions for the following:&lt;br /&gt;
&lt;br /&gt;
1. Refactoring for SRP:&lt;br /&gt;
*Reorganizing code in teams_controller.rb and team.rb to adhere to the Single Responsibility Principle.&lt;br /&gt;
[[File:Screenshot_1.png|1000px]]&lt;br /&gt;
&lt;br /&gt;
[[File:Screenshot_2.png|1000px]]&lt;br /&gt;
&lt;br /&gt;
[[File:Screenshot_3.png|1000px]]&lt;br /&gt;
&lt;br /&gt;
2. Naming and Comment Improvements:&lt;br /&gt;
*Enhancing function and method names for clarity.&lt;br /&gt;
[[File:Screenshot_4.png|1000px]]&lt;br /&gt;
&lt;br /&gt;
[[File:Screenshot_50.png|1000px]]&lt;br /&gt;
&lt;br /&gt;
*Adding and refining comments for better code comprehension.&lt;br /&gt;
&lt;br /&gt;
[[File:Screenshot_51.png|1000px]]&lt;br /&gt;
&lt;br /&gt;
3. Code Optimization:&lt;br /&gt;
*Identifying and removing redundant code segments to streamline the codebase.&lt;br /&gt;
&lt;br /&gt;
4. Testing and Validation:&lt;br /&gt;
*Creating or updating tests to ensure the accuracy of refactored methods.&lt;br /&gt;
*Conducting integration tests to verify overall functionality post-refactoring.&lt;br /&gt;
&lt;br /&gt;
===Testing Plan===&lt;br /&gt;
&lt;br /&gt;
We plan to employ RSpec for comprehensive testing of the teams_controller.rb and team.rb model. Leveraging FactoryBot, we'll construct the necessary test fixtures and models for thorough testing. Our approach involves utilizing the existing test skeleton provided while enhancing test coverage and minimizing code smells. Considering the current functionalities, our defined tests aim to validate the restructured code in the teams_controller.rb and team.rb model, verifying improved functionality and reduced code smells.&lt;br /&gt;
&lt;br /&gt;
File: ./spec/controllers/teams_controller_spec.rb&lt;br /&gt;
&lt;br /&gt;
[[File:Screenshot_53.png|1000px]]&lt;br /&gt;
&lt;br /&gt;
===Relevant Links===&lt;br /&gt;
Github Repository: https://github.com/Naveen-Jayanna/expertiza&lt;br /&gt;
&lt;br /&gt;
===Team Members===&lt;br /&gt;
*Samarth Purushothaman&lt;br /&gt;
&lt;br /&gt;
*Naveen Jayanna&lt;br /&gt;
&lt;br /&gt;
*Arpit Choudhary&lt;br /&gt;
&lt;br /&gt;
===Mentor===&lt;br /&gt;
Aditi Vakeel&lt;/div&gt;</summary>
		<author><name>Achoudh8</name></author>
	</entry>
	<entry>
		<id>https://wiki.expertiza.ncsu.edu/index.php?title=CSC/ECE_517_Fall_2023_-_E2373._Reimplement_teams_controllers.rb&amp;diff=152768</id>
		<title>CSC/ECE 517 Fall 2023 - E2373. Reimplement teams controllers.rb</title>
		<link rel="alternate" type="text/html" href="https://wiki.expertiza.ncsu.edu/index.php?title=CSC/ECE_517_Fall_2023_-_E2373._Reimplement_teams_controllers.rb&amp;diff=152768"/>
		<updated>2023-12-05T20:46:01Z</updated>

		<summary type="html">&lt;p&gt;Achoudh8: /* Testing Plan */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;===Description of Project===&lt;br /&gt;
&lt;br /&gt;
The project involves a comprehensive restructuring of the teams_controller.rb file and the team.rb model within an application handling team functionalities in assignments or courses. The primary focus includes adhering to the Single Responsibility Principle (SRP) by reorganizing methods to have singular, focused tasks and separating team-copying functionalities. Additionally, the effort involves refining function names for better clarity and readability and enhancing comments across the codebase to improve understanding. This overhaul aims to optimize the codebase for maintainability and readability while preserving or enhancing the functionality of team-related operations in the application.&lt;br /&gt;
&lt;br /&gt;
===Problem Statement===&lt;br /&gt;
&lt;br /&gt;
The problem statement revolves around the inefficiencies and complexities present in the teams_controller.rb file and the team.rb model within an application managing team functionalities for assignments or courses. These inefficiencies primarily stem from violations of the Single Responsibility Principle (SRP), evident in functions that encompass multiple tasks and unclearly named functions that hinder code readability. Additionally, inadequate comments further exacerbate the code's readability issues. The challenge is to refactor these components, focusing on SRP compliance by restructuring methods, improving naming conventions for better understanding, and enhancing comments to facilitate code comprehension. The goal is to optimize the codebase for maintainability and readability while preserving or enhancing the functionality of team-related operations in the application.&lt;br /&gt;
&lt;br /&gt;
===Objectives===&lt;br /&gt;
&lt;br /&gt;
1. Single Responsibility Principle (SRP) Adherence&lt;br /&gt;
&lt;br /&gt;
*Refactor methods in teams_controller.rb and team.rb model to ensure each function has a singular, focused responsibility.&lt;br /&gt;
*Separate team-related functionalities like copying between assignments/courses for better code organization.&lt;br /&gt;
&lt;br /&gt;
2. Improved Naming Conventions&lt;br /&gt;
&lt;br /&gt;
*Rename ambiguous or confusingly named functions in both teams_controller.rb and team.rb for enhanced code readability and understanding.&lt;br /&gt;
&lt;br /&gt;
3. Enhanced Comments and Documentation&lt;br /&gt;
&lt;br /&gt;
*Improve and add comments throughout the codebase to provide clearer explanations of complex functionalities and enhance overall code comprehension.&lt;br /&gt;
*Document significant changes made during refactoring to aid future maintenance and development.&lt;br /&gt;
&lt;br /&gt;
4. Code Refactoring and Consolidation&lt;br /&gt;
&lt;br /&gt;
*Identify and eliminate code repetitions across functions to streamline the codebase, enhancing maintainability and reducing redundancy.&lt;br /&gt;
&lt;br /&gt;
5. Testing and Validation&lt;br /&gt;
&lt;br /&gt;
*Create or update unit tests to ensure the correctness and functionality of refactored methods in both the teams_controller.rb and team.rb model.&lt;br /&gt;
*Conduct integration testing to verify the overall functionality of team-related operations post-refactoring.&lt;br /&gt;
&lt;br /&gt;
The objectives aim to optimize the codebase by adhering to SRP principles, improving code readability through better naming conventions and comments, consolidating code where possible, and ensuring thorough testing for functionality validation.&lt;br /&gt;
&lt;br /&gt;
===Development Strategy===&lt;br /&gt;
&lt;br /&gt;
Our development strategy centers around Test-Driven Development (TDD) principles applied to refactoring the teams_controller.rb and team.rb model. Starting with the creation of failing test cases, we iteratively refactor code to address identified inefficiencies while ensuring successful test outcomes.&lt;br /&gt;
&lt;br /&gt;
Additionally, we emphasize the adoption of a &amp;quot;Slim controller, Fat model&amp;quot; paradigm inspired by Rails conventions. Our goal is to migrate complex functionalities from the controller to the model, fostering a more organized and maintainable codebase. This approach not only enhances code clarity within the controller but also promotes reusability and scalability across the application.&lt;br /&gt;
&lt;br /&gt;
===Project Design and Implementation===&lt;br /&gt;
&lt;br /&gt;
Taking into account the current functionalities within the teams_controller.rb and team.rb model, our approach involves embracing the Strategy Pattern within the controller, capitalizing on its capability to encapsulate distinct controller actions. This strategic implementation aims to ensure seamless extensibility and enhanced usability. By employing this pattern, we establish a structured framework for defining and managing the diverse operations the controller handles, promoting a more organized and manageable code structure.&lt;br /&gt;
&lt;br /&gt;
==== Functionality ====&lt;br /&gt;
In this project, we aim to add functions for the following:&lt;br /&gt;
&lt;br /&gt;
1. Refactoring for SRP:&lt;br /&gt;
*Reorganizing code in teams_controller.rb and team.rb to adhere to the Single Responsibility Principle.&lt;br /&gt;
[[File:Screenshot_1.png|1000px]]&lt;br /&gt;
&lt;br /&gt;
[[File:Screenshot_2.png|1000px]]&lt;br /&gt;
&lt;br /&gt;
[[File:Screenshot_3.png|1000px]]&lt;br /&gt;
&lt;br /&gt;
2. Naming and Comment Improvements:&lt;br /&gt;
*Enhancing function and method names for clarity.&lt;br /&gt;
[[File:Screenshot_4.png|1000px]]&lt;br /&gt;
&lt;br /&gt;
[[File:Screenshot_50.png|1000px]]&lt;br /&gt;
&lt;br /&gt;
*Adding and refining comments for better code comprehension.&lt;br /&gt;
&lt;br /&gt;
[[File:Screenshot_51.png|1000px]]&lt;br /&gt;
&lt;br /&gt;
3. Code Optimization:&lt;br /&gt;
*Identifying and removing redundant code segments to streamline the codebase.&lt;br /&gt;
&lt;br /&gt;
4. Testing and Validation:&lt;br /&gt;
*Creating or updating tests to ensure the accuracy of refactored methods.&lt;br /&gt;
*Conducting integration tests to verify overall functionality post-refactoring.&lt;br /&gt;
&lt;br /&gt;
===Testing Plan===&lt;br /&gt;
&lt;br /&gt;
We plan to employ RSpec for comprehensive testing of the teams_controller.rb and team.rb model. Leveraging FactoryBot, we'll construct the necessary test fixtures and models for thorough testing. Our approach involves utilizing the existing test skeleton provided while enhancing test coverage and minimizing code smells. Considering the current functionalities, our defined tests aim to validate the restructured code in the teams_controller.rb and team.rb model, verifying improved functionality and reduced code smells.&lt;br /&gt;
&lt;br /&gt;
File: ./spec/controllers/teams_controller_spec.rb&lt;br /&gt;
&lt;br /&gt;
[[File:Screenshot_53.png|1000px]]&lt;br /&gt;
&lt;br /&gt;
===Relevant Links===&lt;br /&gt;
Github Repository: https://github.com/Naveen-Jayanna/expertiza&lt;br /&gt;
&lt;br /&gt;
===Team Members===&lt;br /&gt;
*Samarth Purushothaman&lt;br /&gt;
&lt;br /&gt;
*Naveen Jayanna&lt;br /&gt;
&lt;br /&gt;
*Arpit Choudhary&lt;br /&gt;
&lt;br /&gt;
===Mentor===&lt;br /&gt;
Aditi Vakeel&lt;/div&gt;</summary>
		<author><name>Achoudh8</name></author>
	</entry>
	<entry>
		<id>https://wiki.expertiza.ncsu.edu/index.php?title=File:Screenshot_53.png&amp;diff=152767</id>
		<title>File:Screenshot 53.png</title>
		<link rel="alternate" type="text/html" href="https://wiki.expertiza.ncsu.edu/index.php?title=File:Screenshot_53.png&amp;diff=152767"/>
		<updated>2023-12-05T20:44:50Z</updated>

		<summary type="html">&lt;p&gt;Achoudh8: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;/div&gt;</summary>
		<author><name>Achoudh8</name></author>
	</entry>
	<entry>
		<id>https://wiki.expertiza.ncsu.edu/index.php?title=CSC/ECE_517_Fall_2023_-_E2373._Reimplement_teams_controllers.rb&amp;diff=152766</id>
		<title>CSC/ECE 517 Fall 2023 - E2373. Reimplement teams controllers.rb</title>
		<link rel="alternate" type="text/html" href="https://wiki.expertiza.ncsu.edu/index.php?title=CSC/ECE_517_Fall_2023_-_E2373._Reimplement_teams_controllers.rb&amp;diff=152766"/>
		<updated>2023-12-05T20:35:44Z</updated>

		<summary type="html">&lt;p&gt;Achoudh8: /* Functionality */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;===Description of Project===&lt;br /&gt;
&lt;br /&gt;
The project involves a comprehensive restructuring of the teams_controller.rb file and the team.rb model within an application handling team functionalities in assignments or courses. The primary focus includes adhering to the Single Responsibility Principle (SRP) by reorganizing methods to have singular, focused tasks and separating team-copying functionalities. Additionally, the effort involves refining function names for better clarity and readability and enhancing comments across the codebase to improve understanding. This overhaul aims to optimize the codebase for maintainability and readability while preserving or enhancing the functionality of team-related operations in the application.&lt;br /&gt;
&lt;br /&gt;
===Problem Statement===&lt;br /&gt;
&lt;br /&gt;
The problem statement revolves around the inefficiencies and complexities present in the teams_controller.rb file and the team.rb model within an application managing team functionalities for assignments or courses. These inefficiencies primarily stem from violations of the Single Responsibility Principle (SRP), evident in functions that encompass multiple tasks and unclearly named functions that hinder code readability. Additionally, inadequate comments further exacerbate the code's readability issues. The challenge is to refactor these components, focusing on SRP compliance by restructuring methods, improving naming conventions for better understanding, and enhancing comments to facilitate code comprehension. The goal is to optimize the codebase for maintainability and readability while preserving or enhancing the functionality of team-related operations in the application.&lt;br /&gt;
&lt;br /&gt;
===Objectives===&lt;br /&gt;
&lt;br /&gt;
1. Single Responsibility Principle (SRP) Adherence&lt;br /&gt;
&lt;br /&gt;
*Refactor methods in teams_controller.rb and team.rb model to ensure each function has a singular, focused responsibility.&lt;br /&gt;
*Separate team-related functionalities like copying between assignments/courses for better code organization.&lt;br /&gt;
&lt;br /&gt;
2. Improved Naming Conventions&lt;br /&gt;
&lt;br /&gt;
*Rename ambiguous or confusingly named functions in both teams_controller.rb and team.rb for enhanced code readability and understanding.&lt;br /&gt;
&lt;br /&gt;
3. Enhanced Comments and Documentation&lt;br /&gt;
&lt;br /&gt;
*Improve and add comments throughout the codebase to provide clearer explanations of complex functionalities and enhance overall code comprehension.&lt;br /&gt;
*Document significant changes made during refactoring to aid future maintenance and development.&lt;br /&gt;
&lt;br /&gt;
4. Code Refactoring and Consolidation&lt;br /&gt;
&lt;br /&gt;
*Identify and eliminate code repetitions across functions to streamline the codebase, enhancing maintainability and reducing redundancy.&lt;br /&gt;
&lt;br /&gt;
5. Testing and Validation&lt;br /&gt;
&lt;br /&gt;
*Create or update unit tests to ensure the correctness and functionality of refactored methods in both the teams_controller.rb and team.rb model.&lt;br /&gt;
*Conduct integration testing to verify the overall functionality of team-related operations post-refactoring.&lt;br /&gt;
&lt;br /&gt;
The objectives aim to optimize the codebase by adhering to SRP principles, improving code readability through better naming conventions and comments, consolidating code where possible, and ensuring thorough testing for functionality validation.&lt;br /&gt;
&lt;br /&gt;
===Development Strategy===&lt;br /&gt;
&lt;br /&gt;
Our development strategy centers around Test-Driven Development (TDD) principles applied to refactoring the teams_controller.rb and team.rb model. Starting with the creation of failing test cases, we iteratively refactor code to address identified inefficiencies while ensuring successful test outcomes.&lt;br /&gt;
&lt;br /&gt;
Additionally, we emphasize the adoption of a &amp;quot;Slim controller, Fat model&amp;quot; paradigm inspired by Rails conventions. Our goal is to migrate complex functionalities from the controller to the model, fostering a more organized and maintainable codebase. This approach not only enhances code clarity within the controller but also promotes reusability and scalability across the application.&lt;br /&gt;
&lt;br /&gt;
===Project Design and Implementation===&lt;br /&gt;
&lt;br /&gt;
Taking into account the current functionalities within the teams_controller.rb and team.rb model, our approach involves embracing the Strategy Pattern within the controller, capitalizing on its capability to encapsulate distinct controller actions. This strategic implementation aims to ensure seamless extensibility and enhanced usability. By employing this pattern, we establish a structured framework for defining and managing the diverse operations the controller handles, promoting a more organized and manageable code structure.&lt;br /&gt;
&lt;br /&gt;
==== Functionality ====&lt;br /&gt;
In this project, we aim to add functions for the following:&lt;br /&gt;
&lt;br /&gt;
1. Refactoring for SRP:&lt;br /&gt;
*Reorganizing code in teams_controller.rb and team.rb to adhere to the Single Responsibility Principle.&lt;br /&gt;
[[File:Screenshot_1.png|1000px]]&lt;br /&gt;
&lt;br /&gt;
[[File:Screenshot_2.png|1000px]]&lt;br /&gt;
&lt;br /&gt;
[[File:Screenshot_3.png|1000px]]&lt;br /&gt;
&lt;br /&gt;
2. Naming and Comment Improvements:&lt;br /&gt;
*Enhancing function and method names for clarity.&lt;br /&gt;
[[File:Screenshot_4.png|1000px]]&lt;br /&gt;
&lt;br /&gt;
[[File:Screenshot_50.png|1000px]]&lt;br /&gt;
&lt;br /&gt;
*Adding and refining comments for better code comprehension.&lt;br /&gt;
&lt;br /&gt;
[[File:Screenshot_51.png|1000px]]&lt;br /&gt;
&lt;br /&gt;
3. Code Optimization:&lt;br /&gt;
*Identifying and removing redundant code segments to streamline the codebase.&lt;br /&gt;
&lt;br /&gt;
4. Testing and Validation:&lt;br /&gt;
*Creating or updating tests to ensure the accuracy of refactored methods.&lt;br /&gt;
*Conducting integration tests to verify overall functionality post-refactoring.&lt;br /&gt;
&lt;br /&gt;
===Testing Plan===&lt;br /&gt;
&lt;br /&gt;
We plan to employ RSpec for comprehensive testing of the teams_controller.rb and team.rb model. Leveraging FactoryBot, we'll construct the necessary test fixtures and models for thorough testing. Our approach involves utilizing the existing test skeleton provided while enhancing test coverage and minimizing code smells. Considering the current functionalities, our defined tests aim to validate the restructured code in the teams_controller.rb and team.rb model, verifying improved functionality and reduced code smells.&lt;br /&gt;
&lt;br /&gt;
===Relevant Links===&lt;br /&gt;
Github Repository: https://github.com/Naveen-Jayanna/expertiza&lt;br /&gt;
&lt;br /&gt;
===Team Members===&lt;br /&gt;
*Samarth Purushothaman&lt;br /&gt;
&lt;br /&gt;
*Naveen Jayanna&lt;br /&gt;
&lt;br /&gt;
*Arpit Choudhary&lt;br /&gt;
&lt;br /&gt;
===Mentor===&lt;br /&gt;
Aditi Vakeel&lt;/div&gt;</summary>
		<author><name>Achoudh8</name></author>
	</entry>
	<entry>
		<id>https://wiki.expertiza.ncsu.edu/index.php?title=File:Screenshot_51.png&amp;diff=152765</id>
		<title>File:Screenshot 51.png</title>
		<link rel="alternate" type="text/html" href="https://wiki.expertiza.ncsu.edu/index.php?title=File:Screenshot_51.png&amp;diff=152765"/>
		<updated>2023-12-05T20:35:11Z</updated>

		<summary type="html">&lt;p&gt;Achoudh8: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;/div&gt;</summary>
		<author><name>Achoudh8</name></author>
	</entry>
	<entry>
		<id>https://wiki.expertiza.ncsu.edu/index.php?title=File:Screenshot_50.png&amp;diff=152764</id>
		<title>File:Screenshot 50.png</title>
		<link rel="alternate" type="text/html" href="https://wiki.expertiza.ncsu.edu/index.php?title=File:Screenshot_50.png&amp;diff=152764"/>
		<updated>2023-12-05T20:33:28Z</updated>

		<summary type="html">&lt;p&gt;Achoudh8: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;/div&gt;</summary>
		<author><name>Achoudh8</name></author>
	</entry>
	<entry>
		<id>https://wiki.expertiza.ncsu.edu/index.php?title=File:Screenshot_4.png&amp;diff=152763</id>
		<title>File:Screenshot 4.png</title>
		<link rel="alternate" type="text/html" href="https://wiki.expertiza.ncsu.edu/index.php?title=File:Screenshot_4.png&amp;diff=152763"/>
		<updated>2023-12-05T20:31:13Z</updated>

		<summary type="html">&lt;p&gt;Achoudh8: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;/div&gt;</summary>
		<author><name>Achoudh8</name></author>
	</entry>
	<entry>
		<id>https://wiki.expertiza.ncsu.edu/index.php?title=File:Screenshot_3.png&amp;diff=152762</id>
		<title>File:Screenshot 3.png</title>
		<link rel="alternate" type="text/html" href="https://wiki.expertiza.ncsu.edu/index.php?title=File:Screenshot_3.png&amp;diff=152762"/>
		<updated>2023-12-05T20:23:40Z</updated>

		<summary type="html">&lt;p&gt;Achoudh8: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;/div&gt;</summary>
		<author><name>Achoudh8</name></author>
	</entry>
	<entry>
		<id>https://wiki.expertiza.ncsu.edu/index.php?title=File:Screenshot_2.png&amp;diff=152761</id>
		<title>File:Screenshot 2.png</title>
		<link rel="alternate" type="text/html" href="https://wiki.expertiza.ncsu.edu/index.php?title=File:Screenshot_2.png&amp;diff=152761"/>
		<updated>2023-12-05T20:23:21Z</updated>

		<summary type="html">&lt;p&gt;Achoudh8: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;/div&gt;</summary>
		<author><name>Achoudh8</name></author>
	</entry>
	<entry>
		<id>https://wiki.expertiza.ncsu.edu/index.php?title=File:Screenshot_1.png&amp;diff=152760</id>
		<title>File:Screenshot 1.png</title>
		<link rel="alternate" type="text/html" href="https://wiki.expertiza.ncsu.edu/index.php?title=File:Screenshot_1.png&amp;diff=152760"/>
		<updated>2023-12-05T20:16:52Z</updated>

		<summary type="html">&lt;p&gt;Achoudh8: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;/div&gt;</summary>
		<author><name>Achoudh8</name></author>
	</entry>
</feed>