CSC/ECE 517 Fall 2023 - E2387. Reimplement Teams backend (Phase 2): Difference between revisions

From Expertiza_Wiki
Jump to navigation Jump to search
No edit summary
No edit summary
Line 3: Line 3:
Expertiza is a learning management system that is developed with Ruby on Rails and is accessible as open source software. It can create assignments, tests, assignment teams, and courses, among a wide range of other features and functions. It also has a thorough system for giving other teams and groups of teammates peer reviews and feedback. The files that are largely addressed in this project are the frontend React Components of User, Institution and Roles. A fully functional UI for these components will be developed using React for this project.
Expertiza is a learning management system that is developed with Ruby on Rails and is accessible as open source software. It can create assignments, tests, assignment teams, and courses, among a wide range of other features and functions. It also has a thorough system for giving other teams and groups of teammates peer reviews and feedback. The files that are largely addressed in this project are the frontend React Components of User, Institution and Roles. A fully functional UI for these components will be developed using React for this project.


== Technologies To Be Used for the Design ==
== Technologies Used for the Design ==


1. Ruby on Rails
1. Ruby on Rails
Line 11: Line 11:
3. Swagger UI
3. Swagger UI


== Changes to be Made ==
== Changes Made ==
Currently the Teams schema is not properly implemented and we have to add more attributes.  
The Teams schema was not properly implemented and we have added more attributes.  
 
[[File:TeamsController_new(present).png]]
[[File:TeamsController_new(present).png]]
Before Schema


Following attributes would be added to the teams table -  
Following attributes would be added to the teams table -  
1. Name of the Team (Unique)
2. Team ID (Unique)
[[File:Screenshot from 2023-12-04 16-05-49.png]]
Final Schema.
We also added foreign keys in the Users table as one Team can have many Users


1. Name of the Team (Unique)
[[File:UsersUpdated.png]]


2. Team ID (Unique)


We will create a new controller (teams_controller.rb) in which we would be adding the following methods.
== Methods Added ==
We also added new controller (teams_controller.rb) in which we added the following methods.


''' 1. create '''
''' 1. create '''
Line 39: Line 49:
This will delete the team.
This will delete the team.


== Operations To Be Added ==
'''1. Create New Team'''
User should be able to create a new Team and add User ID to it by opening a new popup when clicked on Create Team button.
'''2. Edit Teams'''
Users should be able to edit Team Name by opening a new Popup when Clicked on Edit Team button.
'''3. Delete Team'''
Users should be able to Delete Teams.


== Validations ==
== Validations ==
Line 60: Line 58:


== ER Diagram ==  
== ER Diagram ==  


[[File: ERDiagram2363Project4.png|500px|]]
[[File: ERDiagram2363Project4.png|500px|]]
Line 66: Line 63:
== Test Plan ==  
== Test Plan ==  


We will utilize RSpec as the testing framework for our system. We will also use factoryBot along with Faker to create model objects for testing.
We utilized RSpec as the testing framework for our system.
 
 


The development process will follow Test Driven Development. The tests for the model and the controller will be written in a comprehensive way.
The development process followed Test Driven Development and we wrote our tests first and then proceeded with Development. The tests were written in a comprehensive way.


Github PR Link
Github PR Link

Revision as of 21:22, 4 December 2023

Overview of Expertiza

Expertiza is a learning management system that is developed with Ruby on Rails and is accessible as open source software. It can create assignments, tests, assignment teams, and courses, among a wide range of other features and functions. It also has a thorough system for giving other teams and groups of teammates peer reviews and feedback. The files that are largely addressed in this project are the frontend React Components of User, Institution and Roles. A fully functional UI for these components will be developed using React for this project.

Technologies Used for the Design

1. Ruby on Rails

2. Rspec (for Testing)

3. Swagger UI

Changes Made

The Teams schema was not properly implemented and we have added more attributes.

Before Schema

Following attributes would be added to the teams table - 1. Name of the Team (Unique) 2. Team ID (Unique)

Final Schema. We also added foreign keys in the Users table as one Team can have many Users


Methods Added

We also added new controller (teams_controller.rb) in which we added the following methods.

1. create

This will create a new team.

2. index

This will list all the teams.

3. update

This will update the team's name.

4. destroy

This will delete the team.


Validations

Only Admins should be able to access this page.

1. Team ID's should be unique.

2. If a team member is already added to another team, it should give appropriate error.

ER Diagram

Test Plan

We utilized RSpec as the testing framework for our system.


The development process followed Test Driven Development and we wrote our tests first and then proceeded with Development. The tests were written in a comprehensive way.

Github PR Link

[1]


Team

Mentor
  • Kartiki Bhandakkar <kbhanda3@ncsu.edu>
Members
  • Raghav Narula <rnarula2@ncsu.edu>
  • Mihir Nikam <mvnikam@ncsu.edu>
  • Ebani Gogia <egogia@ncsu.edu>