CSC/ECE 517 Fall 2019 -E1974 Allow users to create an account and submit work to an ”assignment” Design
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
Existing Solution
Conference assignments are the type of assignments open for all the people. We can assign participants to assignments they are participating in, and they can submit their work for it. In today's scenario, participants share google doc, authors and co-authors name with instructor. Then instructor has to add those authors and co-authors as users in expertiza, assign them to the particular assignment.
Proposed Solution
This project concentrates on the use of expertiza assignments as conferences/journals. Using these assignments, people can submit their papers and get reviews for the same. The focus of this project will be to enable a particular conference participants to create an expertiza account and teams for conference submission by minimizing the inputs required from the application admin/instructor.
Task to be Accomplished
- When creating a conference type assignment, a link to join the conference will be show on the assignment page.
- Instructor will share the joining link with Author and they should be able to create account using that link, if account already does not exist.
- Author will be able to create a new team in "Your Team" section and can invite other Co-Authors to join the team.
- If Co-Authors already exists in expertiza, they will be able to see invite on their homepage and if they do not exist in expertiza they will receive an email with joining link on email id used by Author while inviting them.
- Once Co-Author sees the invite they can accept or reject it.
Sequence Diagram
Design - The Grubby Details
Creating The conference type assignment
Following will be the high level steps the instructor would be performing to create a conference type assignment along with the changes required:
1. Instructor logs in with his credentials.
2. Instructor creates an assignment by checking a new check box - “Will this be a conference type of assignment”, to mark the assignment to be of conference type.
- This checkbox will be introduced in the Assignment’s edit page (app/views/assignments/edit/_general.html)
3. Based on the flag, once the assignment is created, a shareable URL will be displayed on the assignments page that can be used by the Instructor to share among students/authors. They will use this URL to be automatically assigned the given assignment.
- Author of the assignment will use this URL to create the team and do conference paper submission. If author does not have account already in expertiza, Author will be asked to create account.
The usage of the url and working will be discussed in the next part.
Changes for Conference's authors
Following will be the high level steps the Author would be performing to create an account:
1. Once instructor shares the joining link with potential Authors, they can use their existing expertiza accounts or create new accounts for making a team and add submissions to the assignment. Creation of new account will not require approval from instructor/admin. URL will be visible on page /assignments/{id}/edit .
2. When Author clicks on joining link, there could be two cases that author have expertiza account or author does not have expertiza account.
- If Author already has an account he will be able to view the assignment assigned to him and a default team.
- If Author does not have expertiza account, 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.
3. After Author logs in, he/she can navigate to assignment -> Your Team and invite co-authors into his team for working on the submission.
4. When inviting the Co-Authors, Author can give Expertiza user name of Co-Author if they already exists in expertiza or Author can invite them by giving email id of Co-Author.
5. The role for both Author and Co-author is a student type because the difference in the 'conference type assignment' and a normal assignment is only in the way that users are added to it(i.e., by creating an account for themselves if they don't already have an account).
Changes for Conference's co-authors
1. If Co-Author expertiza account already exists, when Co-Author logs in expertiza, he or she will be able to see conference assignment in homepage and team invite in "Your Team" section.
2. If Co-Author does not exists then he/she will receive an email with login id and password and Expertiza web address on the email id, that was used by author to invite them. When Co-Author logs in with same email id or password, he/she will be able to see conference assignment in homepage and team invite in "Your Team" section.
3. After that Co-Author can accept or reject the team invite and proceed with assignment submission.
4. Co-author's email will be verified while creating student account to validate if co-author is same person which author intended to add on his team. This will prevent spam/fake users from joining the author's team.
Database Changes
As part of this project, the change in the database would be addition of a new column: 'is_conference' in 'Assignment' table with default value 0, and value = 1 if the assignment is 'conference' type.
Files to be changed
Test Plan
Please find the below plan to test the functionality
RSpec Tests
Please find below RSpec Test cases for this feature
Scenario 1: Creating student type user from controller by bypassing admin approval
After instructor creates a conference type assignment, author should be able to create an account and this account doesn't require approval from admin.
Files associated with this functionality:
- users_controller_spec.rb
Following tests will be performed to verify whether the functionality is working as desired.
- Test case to check if author is able to to create and login into a new account without admin approval
Scenario 2: Author/Co-author after creating an account is able to access conference type assignment
After Author has created an account, he/she should be able to access the conference type account.
Files associated with this functionality:
- users_controller_spec.rb
Following tests will be performed to verify whether the functionality is working as desired.
- Test case to check if Author is assigned to conference type assignment and able to access it
- Test case to check if Co-author is assigned to conference type assignment and able to access it
- Test case to check if Author has been added to default team
- Test case to check if Co-author is added to Author's team
Scenario 3: Conference type assignment being created
Instructor should be able to create conference type assignment
Files associated with this functionality:
- users_controller_spec.rb
Following tests will be performed to verify whether the functionality is working as desired.
- Test case to check if Conference type assignment has been created
Scenario 4: Author/Co-author should be able to see assignment if they already have an account
After Instructor creates a conference type assignment, Author/Co-author clicks on link provided to them. If they already have an account, they should see conference type assignment in their assignment page
Files associated with this functionality:
- users_controller_spec.rb
Following tests will be performed to verify whether the functionality is working as desired.
- Test case to check if Author/Co-author already have an account
- Test case to validate if Author/Co-author can see assignment in their assignment page if they already have an account
Teammates
Mentor - Prof. Edward Gehringer
- Sameer Adhikari (sadhika2)
- Gurman Singh (gsingh23)
- Garima Garima (ggarima)
- Bharat Bhardwaj (bbhardw)