CSC/ECE 517 Fall 2020 - E2076. Allow users to create an account and submit work to an "assignment" (e.g., for conference reviewing): Difference between revisions

From Expertiza_Wiki
Jump to navigation Jump to search
Line 65: Line 65:
  Methods to be edited:
  Methods to be edited:
  1. check_participant_before_invitation : This method checks if the user is part of an assignment that is of 'conference' type.
  1. check_participant_before_invitation : This method checks if the user is part of an assignment that is of 'conference' type.
Finally, we have to update the corresponding views like : assignment.html.erb and user.html.erb


==Test Plan==  
==Test Plan==  

Revision as of 01:58, 29 October 2020

This page provides a description of the Expertiza based OSS project.

About Expertiza

Expertiza is an open source project based on 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 the URLs and wiki pages.

Problem Statement

Peer-assessment systems have always been separate from peer-review systems used by journals and conferences. But the two systems have a lot in common: submitting and reviewing, and guidance given to reviewers in the form of a rubric. The main differences are how accounts are created and how reviewers are assigned. In a peer-assessment system, the instructor typically creates accounts for the whole class. Reviewers are assigned either by the instructor, or automatically by the system. In conference and journal review, anyone can submit a paper. When they do, an account is implicitly created for them. They may invite their co-authors to join them; this is kind of like inviting teammates in Expertiza, except that the co-authors don’t necessarily have pre-existing accounts either, and there is typically no maximum on the number of authors for a paper.

Proposed Solution

Refactor previous solution which has most of the functionality implemented in controller. We plan to refactor this to follow the standard MVC architecture by moving the main logic to the model.

Revisions in progress.

Design Plan

Use Case

  1. Author signs up: This use case assumes that the author isn't part of our expertiza database yet and wants to add a paper for review. Assuming that the author already has the link to sign up for expertiza. The author would then have to click the link and will have to go through a captcha to verify the user identity. Then he/she will be asked to put some details to create account with role as student. After account creation, Author will receive email with login ID and password.
  2. Author adds paper to expertiza for review: Now that the author has an account he can login to his expertiza account and then click the assignment. Then the author will have to upload his paper by clicking submit your work, then adding the details of the paper like track of the paper etc. [planning to have a dropdown list for this].
  3. Author sends an invitation to collaborators: If required, the author can keep adding collaborators/contributors by selecting the paper he/she uploaded and selecting add contributors. Then he/she has to fill in the co-authors details like email id, etc.
  4. Collaborator signs up: Assuming that the collaborator doesnt have an existing account. They would have received a mail when they were added as collaborator, they can login using the given username and password in that mail. Then after log in he/she can click your team and accept the pending author invite.
  5. Review: This part will be almost similar to existing peer reviews.

Source: CSC/ECE 517 Fall 2019 -E1974 Allow users to create an account and submit work to an ”assignment” Design

Links

Files to be edited

These are some of the files identified, that will require changes. Also, our observations include that most of the code has been written in the controller which is not an ideal design. We will try and push some of the code into models to better align with the design principles.

1. users_controller.rb :

Previous Methods added:
1. create_writer : for implementing the sign-up for a writer
2. new_writer : creates an instance of user class 
Current proposed changes :
1. There is some repeatable code. We are planning to restructure it in such a way that it follows 'DRY' guidelines. 
2. We are planning to optimize the code by eliminating unused variables. 


2. assignments_controller.rb

Methods to be edited:
1. addContributor : for adding co-authors to already submitted papers
2. updateAttributes : for updating the attributes of the submitted paper
3. addReviewDetails : to control the number of reviews, etc. for a given paper


3. invitations_controller.rb

Methods to be edited:
1. check_participant_before_invitation : This method checks if the user is part of an assignment that is of 'conference' type.

Finally, we have to update the corresponding views like : assignment.html.erb and user.html.erb

Test Plan

RSpec tests

Tests for relevant controllers/models

Manual UI Testing

TBD

Team Information

  • Sneha Kumar(skumar32)
  • Palash Gupta(pgupta25)
  • Sushreeta Mitra(smitra4)
  • Amol Gautam(agautam6)

References

https://expertiza.csc.ncsu.edu/index.php/CSC/ECE_517_Fall_2017/E17A5_Allow_users_to_create_an_account_and_submit_work_to_an_%22assignment%22_(e.g.,_for_conference_reviewing)

https://expertiza.csc.ncsu.edu/index.php/CSC/ECE_517_Fall_2019_-E1974_Allow_users_to_create_an_account_and_submit_work_to_an_%C3%A2%E2%82%AC%C2%9Dassignment%C3%A2%E2%82%AC%C2%9D_Design