suggest and approve in expertiza - csc2.ncsu.edu · the approved topics are entered into the...

18
Software Design Document for Suggest and Approve in Expertiza Rengarajan Venkatachari Shanmugapriya Murugappan Yufanny Ngui Dhilip Kumar

Upload: others

Post on 02-Nov-2019

0 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: Suggest and Approve in Expertiza - csc2.ncsu.edu · The approved topics are entered into the Expertiza system for further reference. This project proposes a solution to include the

Software Design Document

for

Suggest and Approve in Expertiza

Rengarajan Venkatachari

Shanmugapriya Murugappan

Yufanny Ngui

Dhilip Kumar

Page 2: Suggest and Approve in Expertiza - csc2.ncsu.edu · The approved topics are entered into the Expertiza system for further reference. This project proposes a solution to include the

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

Page 3: Suggest and Approve in Expertiza - csc2.ncsu.edu · The approved topics are entered into the Expertiza system for further reference. This project proposes a solution to include the

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.

Page 4: Suggest and Approve in Expertiza - csc2.ncsu.edu · The approved topics are entered into the Expertiza system for further reference. This project proposes a solution to include the

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

Page 5: Suggest and Approve in Expertiza - csc2.ncsu.edu · The approved topics are entered into the Expertiza system for further reference. This project proposes a solution to include the

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.

Page 6: Suggest and Approve in Expertiza - csc2.ncsu.edu · The approved topics are entered into the Expertiza system for further reference. This project proposes a solution to include the

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

Page 7: Suggest and Approve in Expertiza - csc2.ncsu.edu · The approved topics are entered into the Expertiza system for further reference. This project proposes a solution to include the

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

Page 8: Suggest and Approve in Expertiza - csc2.ncsu.edu · The approved topics are entered into the Expertiza system for further reference. This project proposes a solution to include the

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.

Page 9: Suggest and Approve in Expertiza - csc2.ncsu.edu · The approved topics are entered into the Expertiza system for further reference. This project proposes a solution to include the

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.

Page 10: Suggest and Approve in Expertiza - csc2.ncsu.edu · The approved topics are entered into the Expertiza system for further reference. This project proposes a solution to include the

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

Page 11: Suggest and Approve in Expertiza - csc2.ncsu.edu · The approved topics are entered into the Expertiza system for further reference. This project proposes a solution to include the

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.

Page 12: Suggest and Approve in Expertiza - csc2.ncsu.edu · The approved topics are entered into the Expertiza system for further reference. This project proposes a solution to include the

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.

Page 13: Suggest and Approve in Expertiza - csc2.ncsu.edu · The approved topics are entered into the Expertiza system for further reference. This project proposes a solution to include the

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

Page 14: Suggest and Approve in Expertiza - csc2.ncsu.edu · The approved topics are entered into the Expertiza system for further reference. This project proposes a solution to include the

Design document – Suggest and Approve in Expertiza Page 14

Suggestion created successfully

Instructor selecting the link to view all suggestions

Page 15: Suggest and Approve in Expertiza - csc2.ncsu.edu · The approved topics are entered into the Expertiza system for further reference. This project proposes a solution to include the

Design document – Suggest and Approve in Expertiza Page 15

Instructor/TA viewing all the suggestions

Instructor viewing a particular suggestion

Page 16: Suggest and Approve in Expertiza - csc2.ncsu.edu · The approved topics are entered into the Expertiza system for further reference. This project proposes a solution to include the

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

Page 17: Suggest and Approve in Expertiza - csc2.ncsu.edu · The approved topics are entered into the Expertiza system for further reference. This project proposes a solution to include the

Design document – Suggest and Approve in Expertiza Page 17

TA voting and adding comments on the suggestion

Instructor approves the suggestion

Page 18: Suggest and Approve in Expertiza - csc2.ncsu.edu · The approved topics are entered into the Expertiza system for further reference. This project proposes a solution to include the

Design document – Suggest and Approve in Expertiza Page 18

Instructor rejects the suggestion

Instructor viewing the approved suggestion in the signup sheet