CSC/ECE 517 Fall 2024 - E2484. Reimplement participants controller.rb
Introduction
This project aims to reimplement the participants_controller.rb and its helper class in the new Expertiza system. This controller manages participants within an assignment, and this reimplementation aims to streamline its methods, eliminate redundancy, and improve code readability and maintainability.
Project Objectives
Fully reimplement the participants_controller.rb with a focus on refactoriong violations of the Open-Closed Principle, resolve the lack of dependency injection, and reduce the amount of excessive conditionals.
Project Scope
participants_controller.rb
Critical Features
Implement participants_controller.rb Methods: Fully implement each controller method with the same functionality as the current controller.
Import from participants_helper.rb: Integrate relevant helper methods to streamline functionality and remove redundancy.
API Creation: Expose API endpoints for all necessary methods to enable seamless access and integration from the frontend. Ensure that each endpoint follows best practices for RESTful API design, including proper error handling and secure data access.
Design Decisions
Testing Plan
Testing with rswag: Create test cases for all methods, focusing on edge cases, and generate rswag documentation.
Swagger UI Video Documentation: Record a video walkthrough of API endpoints in Swagger UI, showcasing each method’s functionality.
Team
Mentor
- Jay Patel <jhpatel9@ncsu.edu>
Students
- Pierce Whelan <pwwhelan@ncsu.edu>
- Calvin Jiang <crjiang@ncsu.edu>
- Hechun Zhang <hzhang56@ncsu.edu>