Post on 02-Nov-2019
Software Design Document
for
Suggest and Approve in Expertiza
Rengarajan Venkatachari
Shanmugapriya Murugappan
Yufanny Ngui
Dhilip Kumar
Design document – Suggest and Approve in Expertiza Page ii
Table of Contents
1. Introduction ........................................................................................................................... 3 1.1 Purpose ......................................................................................................................... ..3 1.2 Problem Definition ............................................................................................................ 3
2. Overall Description ............................................................................................................... 3
3. Requirements ........................................................................................................................ 4
4. Use Cases .............................................................................................................................. 4 5. Database Design.………………………………………………………………………………….....9 6. Object Oriented Design…………………………………………………………………...............11 7. Design Pattern………………………………………………………………….............................12 8. Mockup Screen…………………………………………………………………………………...…13
Revision History
Name Date Reason For Changes Version
Team Nov-16 Initial Design Document 1.0
Shanmugapriya Murugappan
Dec-4 Modified Database Design to reflect current implementation
1.1
Rengarajan Venkatachari/ Dhilip Kumar
Dec-4 Modifed screens to reflect current implementation
1.2
Yufanny Ngui Dec-4 Modified Use Case Diagram and proof read 1.3
Design document – Suggest and Approve in Expertiza Page 3
1. Introduction
1.1 Purpose
Expertiza can provide a “Suggest and Approve” feature to enable students to suggest their own topics for the class exercises and being approved by the Instructor. This will enable Expertiza to become a one stop place for managing class exercises for the Instructor.
1.2 Problem Definition
Currently students are provided an opportunity to suggest topics for class exercises and work on them upon approval by the Instructor. Instructor collects the suggestions from students via Google Spreadsheet. Once the suggestions are submitted, Instructor and Teaching Assistants of the course discusses about the suggestions and vote on them. This discussion process is carried out using Google Spreadsheet. After discussion, based on the comments and votes from instructor and teaching assistants, the topic is then either approved or disapproved. The approved topics are entered into the Expertiza system for further reference.
This project proposes a solution to include the process of submitting suggestions, discussing and approving them into the Expertiza system.
2. Overall Description
“Suggest and Approve” feature in Expertiza provides a solution for the Instructor of a course to effectively manage the suggestions made by students for class exercises. Students are provided a web form to enter a suggestion for a class exercise along with other details. After the suggestion is submitted, instructor can view the suggestion and would be able to comment and vote on the suggestion. Teaching Assistants would also be able to comment and vote on the suggestion. Instructor would be able to view the name, comments and votes of the Teaching Assistants for the suggestion. With the help of comments and votes from the Teaching Assistants, Instructor can then decide to either approve or reject the suggestion. If the suggestion is approved by the Instructor, it will automatically becomes an active topic or question for the students to work as a class exercise.
Design document – Suggest and Approve in Expertiza Page 4
3. Requirements
1. Students submitting topics or questions as suggestions for class exercises 2. Instructor or Teaching Assistants viewing the list of suggestions in
Expertiza 3. Instructor approving the suggested topic or question 4. Instructor rejecting the suggested topic or question 5. Instructor commenting and voting on a suggestion 6. Teaching Assistant commenting and voting on a suggestion 7. Instructor or Teaching Assistant adds more comments on a suggestion 8. Instructor viewing others’ comments and votes on a suggestion 9. Teaching Assistant viewing others’ comments and votes on a suggestion
Design document – Suggest and Approve in Expertiza Page 5
4. Use Cases
Actor Description Instructor This actor is responsible for commenting and voting on the
suggested topic and making decision to approve or reject the suggestion.
Teaching Assistant
This actor is responsible for commenting and voting ones preferences on the suggested topic.
Student This actor is responsible for making suggestions for a topic or question for class exercise.
Design document – Suggest and Approve in Expertiza Page 6
Name: Students submitting suggestions for topic Actor: Student Other Participants: None Precondition: Instructor has set up the page for topic suggestion. Primary Sequence:
1. Log in to Expertiza 2. Select an assignment 3. Select New Suggestion 4. On the Title field, input the topic title 5. On the Topic field, input the topic description 6. On the UnityID field, input student’s UnityID (optional) 7. Select one of the options for Sign-up preference 8. Click Create
Name: Instructor or Teaching Assistant viewing the list of suggestions Actor: Instructor or Teaching Assistant Other Participants: None Precondition: At least one suggestion submitted by student already exists. Primary Sequence:
1. Log in to Expertiza 2. Highlight Actions from one of the assignments available 3. Select View Suggestions 4. Instructor or TAs should be able to view all of the topic suggestions that
have been submitted by students and have not been rejected yet. Alternative Flow: None
Name: Instructor approving the suggested topic or question Actor: Instructor Other Participants: None Precondition: At least one suggestion that has not been rejected yet exists. Primary Sequence:
1. Selects one of the suggestions from the list. 2. Fill out the “Maximum number of choosers” field with numeric value. 3. Fill out the “Category” field. 4. Select the “Approve” button. 5. The “Sign_up_topics” table should have a new row containing information
of this topic. Alternative Flow: None
Design document – Suggest and Approve in Expertiza Page 7
Name: Instructor rejecting the suggested topic or question Actor: Instructor Other Participants: None Precondition: At least one suggestion that has not been rejected yet exists. Primary Sequence:
1. Selects one of the suggestions from the list. 2. Select the “Reject” button. 3. The “status” field on “Suggestions” table should have the value set as
“rejected. Alternative Flow: None
Name: Instructor commenting and voting on a suggestion Actor: Instructor Other Participants: None Precondition: At least one suggestion exists. Primary Sequence:
1. Selects one of the suggestions from the list. 2. Enters comments. 3. Votes ‘Yes’ or ‘No’ for the topic. 4. Click on the ‘Add Comment’’ button 5. System changes the Status of the suggestion to “In Discussion” if the
current status is “Submitted”
Alternative Flow: None
Name: Teaching Assistant commenting and voting on a suggestion Actor: Teaching Assistant Other Participants: None Precondition: At least one suggestion exists. Primary Sequence:
4. Selects one of the suggestions from the list. 5. Enters comments. 6. Votes ‘Yes’ or ‘No’ for the topic. 7. Clicks on the ‘Add Comment’ button 8. System changes the Status of the suggestion to “In Discussion” if the
current status is “Submitted”
Alternative Flow: None
Design document – Suggest and Approve in Expertiza Page 8
Name: Instructor or Teaching Assistant adds more comments on a suggestion Actor: Instructor or Teaching Assistant Other Participants: None Preconditions:
1. At least one suggestion exists 2. Actor has initially commented once on the suggestion.
.
Primary Sequence: 1. Selects one of the suggestions from the list. 2. Enters comments. 3. Votes ‘Yes’ or ‘No’ for the topic. 4. Click on the ‘Add Comment’’ button
Alternative Flow: None
Name: Instructor viewing comments and votes on a suggestion Actor: Instructor Other Participants: None Preconditions:
1. At least one suggestion exists. 2. The instructor has commented and voted on that suggestion.
Primary Sequence:
1. Selects one of the suggestions from the list where Instructor and all TAs have commented and voted.
2. Instructor is able to view his/her existing comments and vote that was selected before.
3. Instructor is able to view each of the Teaching Assistants’ login id, comments and votes
Alternative Flow:
1. Selects one of the suggestions from the list where one or more of the TAs have not made comments and voted.
2. Instructor will see just his/her comment and vote alone.
Design document – Suggest and Approve in Expertiza Page 9
Name: Teaching Assistant viewing comments and votes on a suggestion Actor: Teaching Assistant Other Participants: None Preconditions:
1. At least one suggestion exists. 2. The TA has commented and voted on that suggestion.
Primary Sequence:
1. Selects one of the suggestions from the list where Instructor and all TAs have commented and voted.
2. TA is able to view his/her existing comments and vote that was selected before.
3. TA is able to view each of the Teaching Assistants’ login id, comments and votes
Alternative Flow:
1. Selects one of the suggestions from the list where the Instructor or other TAs have not made comments and voted.
2. TA will see his/her comments and votes alone
5. Database Design The following tables will be created to implement a solution for this project.
Suggestions table, which stores suggestion topics and related values.
Column Type Nullable Comment Id int No Primary Key, Auto-
generated assignment_id int No Referenced from
Assignments table title Varchar(255) Yes Title of the project topic Varchar(500) Yes Topic suggested by the
user status Varchar(255) Yes Takes values pending,
in discussion, approved, or rejected.
unityid Varchar(30) Yes Optional, unity id of the topic suggestor
signup_preference Varchar(30) Yes values taken are Yes, No, or No Preference.
Design document – Suggest and Approve in Expertiza Page 10
Suggestion_Comments table, which stores the comments and votes of the
instructor and TAs.
Column Type Nullable Comment Id int No Primary Key, Auto-
generated suggestion_id int No Referenced from
suggestions table comments Varchar(500) No Comments given by
instructor and TA’s
commenter Varchar(30) No Login id of the commter
vote Varchar(30) Yes Vote given by commenter, values taken are Yes or No
Created_at datetime Yes Time at which comment was created
When a topic is approved by the instructor, a new row is added in the existing Sign_up_topics table.
Column Type Nullable Comment id int No Primary Key, Auto-generated
Topic_name text No Referenced from Suggestions table
Assignment_id int No Referenced from Assignments table
Max_choosers int No Maximum number of people to sign up for the project
category text Yes Category of the topic
Database Model
Design document – Suggest and Approve in Expertiza Page 11
6. Object Oriented Design As with most Ruby on Rails applications, this solution uses the Model-View-Controller design pattern. The following class diagram shows a combination of new and existing classes along with the attributes and operations that are relevant to the implementation of this solution.
Design document – Suggest and Approve in Expertiza Page 12
7. Design Pattern 1. MVC – The project is implemented in Ruby on Rails that uses MVC architecture. It separates an application’s data model, user interface, and control logic into three distinct components (model, view and controller, respectively). 2. Dry Principle – We are trying to reuse the existing functionalities in Expertiza, thus avoiding code duplication. Whenever possible, code modification based on the existing classes, controllers, or tables will be done instead of creating the new one.
Design document – Suggest and Approve in Expertiza Page 13
8. Mockup Screens Below are the mock-up screens that explain “Suggest and Approve” functionality in Expertiza. Assumptions:
1. Professor has created an assignment for which Suggestions are provided by students.
2. Students login in to Expertiza and navigate to an assignment to create a new suggestion
Student viewing the link to create a suggestion
Student creating a suggestion
Design document – Suggest and Approve in Expertiza Page 14
Suggestion created successfully
Instructor selecting the link to view all suggestions
Design document – Suggest and Approve in Expertiza Page 15
Instructor/TA viewing all the suggestions
Instructor viewing a particular suggestion
Design document – Suggest and Approve in Expertiza Page 16
Instructor voting and adding comments on the suggestion
TA selecting the link to view all suggestions
Design document – Suggest and Approve in Expertiza Page 17
TA voting and adding comments on the suggestion
Instructor approves the suggestion
Design document – Suggest and Approve in Expertiza Page 18
Instructor rejects the suggestion
Instructor viewing the approved suggestion in the signup sheet