CSC/ECE 517 Spring 2024 - E2410 Reimplement View for results of bidding: Difference between revisions

From Expertiza_Wiki
Jump to navigation Jump to search
(Created page with "== Introduction == The [http://expertiza.ncsu.edu/ Expertiza] project is a dynamic collaboration between students and faculty at NC State University, built on the Ruby on Rails platform. It serves as a hub for fostering cooperative learning and academic collaboration, offering a suite of tools for efficient course and assignment management. Expertiza empowers instructors with comprehensive control over the learning process, providing insights into various academic face...")
 
No edit summary
Line 1: Line 1:
== Expertiza ==
[http://expertiza.ncsu.edu/ Expertiza] is an open-source web application built on Ruby on Rails that enables instructors to create customized assignments with topic lists for students to choose from. It facilitates team formation, allowing students to collaborate on assignments and projects. Expertiza supports peer review processes where students can provide feedback on each other's submissions across various document formats, including URLs and wiki pages. This freely available platform provides a flexible and comprehensive solution for managing assignments, teamwork, and peer evaluations.
== Introduction ==
== Introduction ==
The [http://expertiza.ncsu.edu/ Expertiza] project is a dynamic collaboration between students and faculty at NC State University, built on the Ruby on Rails platform. It serves as a hub for fostering cooperative learning and academic collaboration, offering a suite of tools for efficient course and assignment management.  
We will be improving the UI for bidding view to appear less cluttered.
We're refactoring the assignment_controller.rb in Expertiza, adding a bidding_logic_controller.rb with a seperate method "topic_wise_bidding_teams" enhancing its codebase to adhere to design principles, improving readability, and reducing redundancy.
 
 
==Problem Statement==
The reimplementation project entails:


Expertiza empowers instructors with comprehensive control over the learning process, providing insights into various academic facets such as user profiles, courses, assignments, questionnaires, and reviews. With its user-friendly interface and innovative features, Expertiza revolutionizes collaborative learning, facilitating seamless topic creation, group formation, and peer review. Join us in embracing the transformative potential of digital collaboration to redefine the educational experience.
#<b>Refactoring assignment Controller:</b>
File: app/controllers/assignment_controller.rb 
Refactor the bidding_details method to a more clear method nameEnhancing code clarity. Separate the bidding logic from the assignment controller to adhere to the Single Responsibility Principle (SRP).


== Test Login Credentials ==
#<b>Improving Bidding View:</b>
<li>UserId: instructor6</li>
Files: app/views/assignments/edit/_topics.html.erb ⁠, ⁠app/views/assignments/n , bidding_details.html.erb
<li>Password: password</li>
Consolidate the bidding details summary view into a single table for improved clarity and organization. Implement interactive features such as modals or tooltips to provide additional context or information.


== Problem Statement: ==
#<b>Meaningful Method Names:</b>
Files: app/controllers/assignment_controller.rb ⁠, ⁠ app/models/assignment.rb ⁠, ⁠ app/models/team.rb ⁠, ⁠ app/models/bid.rb ⁠
Review existing method names and replace generic or unclear names with descriptive ones that accurately reflect their purpose and functionality ensuring consistency.


#<b>⁠Adherence to Design Principles:</b>
Files: app/controllers/assignment_controller.rb ⁠, ⁠ app/models/assignment.rb ⁠, ⁠ app/models/team.rb ⁠, ⁠ app/models/bid.rb ⁠
Refactor code segments to eliminate redundancy and promote code reusability. Stick to the design principles listed below.
== Design Principles ==
==== Single Responsibility Principle (SRP): ====
*Each action in the GradesController will be responsible for a specific task related to managing grades.
*Actions will be refactored to separate concerns such as data retrieval, computation, and view rendering.
*For example, the `view` action will focus solely on retrieving grading data and rendering the grading report.
==== Don't Repeat Yourself (DRY) Principle: ====
*Code duplication in the GradesController will be eliminated by extracting common functionality into helper methods or modules.
*Repetitive logic, such as retrieving questions or calculating penalties, will be refactored to promote code reusability and maintainability.
==== Dependency Inversion Principle (DIP): ====
*The GradesController will depend on abstractions, interfaces, or higher-level modules instead of concrete implementations.
*Dependency injection or inversion of control will be used to decouple the controller from specific database or service implementations.


== Demo Video ==
You can watch this [https://youtu.be/rfnwqOjLOJ0 demo video]for a detailed demonstration of the project.


== Team ==
== Team ==
Line 22: Line 50:
*Sai Santhosh Garlapati (sgarlap@ncsu.edu)
*Sai Santhosh Garlapati (sgarlap@ncsu.edu)
*Chinmay Walinjkar (cpwalinj@ncsu.edu)
*Chinmay Walinjkar (cpwalinj@ncsu.edu)
==References==
*https://github.com/expertiza/expertiza
*http://expertiza.ncsu.edu/
*http://wiki.expertiza.ncsu.edu/index.php/Expertiza_documentation

Revision as of 01:35, 9 April 2024

Expertiza

Expertiza is an open-source web application built on Ruby on Rails that enables instructors to create customized assignments with topic lists for students to choose from. It facilitates team formation, allowing students to collaborate on assignments and projects. Expertiza supports peer review processes where students can provide feedback on each other's submissions across various document formats, including URLs and wiki pages. This freely available platform provides a flexible and comprehensive solution for managing assignments, teamwork, and peer evaluations.

Introduction

We will be improving the UI for bidding view to appear less cluttered. We're refactoring the assignment_controller.rb in Expertiza, adding a bidding_logic_controller.rb with a seperate method "topic_wise_bidding_teams" enhancing its codebase to adhere to design principles, improving readability, and reducing redundancy.


Problem Statement

The reimplementation project entails:

  1. Refactoring assignment Controller:

File: app/controllers/assignment_controller.rb  Refactor the bidding_details method to a more clear method nameEnhancing code clarity. Separate the bidding logic from the assignment controller to adhere to the Single Responsibility Principle (SRP).

  1. Improving Bidding View:

Files: app/views/assignments/edit/_topics.html.erb ⁠, ⁠app/views/assignments/n , bidding_details.html.erb Consolidate the bidding details summary view into a single table for improved clarity and organization. Implement interactive features such as modals or tooltips to provide additional context or information.

  1. Meaningful Method Names:

Files: app/controllers/assignment_controller.rb ⁠, ⁠ app/models/assignment.rb ⁠, ⁠ app/models/team.rb ⁠, ⁠ app/models/bid.rb ⁠ Review existing method names and replace generic or unclear names with descriptive ones that accurately reflect their purpose and functionality ensuring consistency.

  1. ⁠Adherence to Design Principles:

Files: app/controllers/assignment_controller.rb ⁠, ⁠ app/models/assignment.rb ⁠, ⁠ app/models/team.rb ⁠, ⁠ app/models/bid.rb ⁠ Refactor code segments to eliminate redundancy and promote code reusability. Stick to the design principles listed below.

Design Principles

Single Responsibility Principle (SRP):

  • Each action in the GradesController will be responsible for a specific task related to managing grades.
  • Actions will be refactored to separate concerns such as data retrieval, computation, and view rendering.
  • For example, the `view` action will focus solely on retrieving grading data and rendering the grading report.

Don't Repeat Yourself (DRY) Principle:

  • Code duplication in the GradesController will be eliminated by extracting common functionality into helper methods or modules.
  • Repetitive logic, such as retrieving questions or calculating penalties, will be refactored to promote code reusability and maintainability.

Dependency Inversion Principle (DIP):

  • The GradesController will depend on abstractions, interfaces, or higher-level modules instead of concrete implementations.
  • Dependency injection or inversion of control will be used to decouple the controller from specific database or service implementations.


Team

Mentor:

  • Anvitha Reddy Gutha (agutha@ncsu.edu)

Members:

  • Shiva Vara Prasad Kandhagatla (skandha@ncsu.edu)
  • Sai Santhosh Garlapati (sgarlap@ncsu.edu)
  • Chinmay Walinjkar (cpwalinj@ncsu.edu)