CSC/ECE 517 Spring 2018- Project E1822: Extend the functionality of badging

From Expertiza_Wiki
Jump to navigation Jump to search

Problem Statement

The aim of this project is to extend the functionality of badging that was implemented previously. [(Previous Implementation)].

The primary objectives for this project are as follows:

  1. Allowing Instructor to create new badges - which involves adding name and badge image.
  2. Students must be able to suggest "Good Teammate" badges during the teammate review periods.
  3. Students must be able to suggest "Good Reviewer" badges, for reviews received.
  4. Create a pipeline to enable instructor to manually approve badges suggested by students

Background And Motivation

Previous Implementation

The use of badges will encourage students to have a visual motivation based on their achievements and thus perform better. This has the ability to improve the overall class performance.

With such an aim of improving the over all class performance, badging system for Expertiza was implemented, as an [earlier project]. In that implementation, certain students are awarded badges when certain criteria are met which may include exceptional academic performance in assignments, project submissions etc. Two such badges, Good Reviewer and Good Team mater were implemented, with students receiving them automatically based on a threshold score in those categories. This was a static system with fixed number of badges.

The team had implemented the system, by introduction of 3 new badge related tables

1. “badges” :- id , name, description

2. “assignment_badges” :- id, badge_id, assignment_id, threshold

3. “awarded_badges” :- id, badge_id,participant_id

Motivation

The primary motivation behind this project is to give more flexibility to the instructor to assign badges instead of relying solely on automatic scoring. Also, allowing students to suggest Good Teammate and Good Reviewer badges for their peers will give them an incentive to put in more effort towards carefully reviewing other's work, and encourage them to actively participate in team projects.

Team Members

Students who collaborated to work on this problem statement are :

1. Akshay Ravichandran

2. Arunkumar Krishnamoorthy

3. Harish Pullagurla

4. Krithika Sekhar

Mentor:- Zhewei Hu (zhu6@ncsu.edu)

Implementation Plan

The following steps briefly describe the implementation steps planned to be taken during the course of this project

Usecase Diagram

Creation of new badges

When an assignment is created/edited, there is a checkbox called "Has Badges?". Checking this renders the "Badges" tab. This tab currently lists the two available badges namely "Good Reviewer" and "Good Teammate" as specified in expertiza/app/views/assignments/edit/_badges.html.erb.

We intend to change this view to allow an instructor to add a new badge, and select all badges that will be applicable to this assignment. For this, we intend to display a link called "Add" and list all the available badges as a series checkboxes.


Clicking on "Add" would redirect to a new view, where there is a simple form to add a new badge. The form fields would include Badge Name, Image and Description.

Assignment of "Good Teammate" badges by student

Presently, the assignment of these badges is done based on a threshold, which is assigned by the TA. We would like to allow students to be able to directly add these badges to their fellow students.

In order to allow students to assign "Good Teammate" badges, the expertiza/app/views/student_teams/view.html.erb view needs to be edited. The UI we have in mind is as shown below:


Approval of badges by instructor

Currently, the awarded_badges table has no column to indicate the approval status of an awarded badge. We would need to run a db migration to include this column. Also, a new view needs to be created to allow instructors to approve student-suggested badges.

Visibility of assigned badges to Students

Once approved by the instructor, the badges assigned would be visible in the assignment tab of the website as shown in the image. Badges corresponding to each of the assignments will be seen on the row of that particular assignment.

Files to be modified

Models

  • expertiza/app/models/awarded_badge.rb

Controllers

  • expertiza/app/controllers/badge_controller.rb (to be added)

Views

  • expertiza/app/views/assignments/edit/_badges.html.erb
  • expertiza/app/views/student_teams/view.html.erb
  • expertiza/app/views/review_mapping/_review_report.html.erb
  • expertiza/app/views/student_task/list.html.erb

Database changes

  • Add a new column 'approval_status' in the awarded_badges table

New Files

  • expertiza/app/views/assignments/edit/_add_new_badge.html.erb
  • expertiza/app/views/assignments/edit/_approve_badge.html.erb

Test Plan

All new code to be added would be thoroughly tested using TDD methodology.

Here are some tests we have in mind:

1. Can save a badge with a valid name, description, and image.

2. Cannot save a badge with an invalid name.

3. Cannot save a badge with empty description.

4. Cannot save a badge without an image path.

5. Check that all badge names are rendered in the "Badges" tab.

6. Check that an instructor can approve student-suggested badges.

7. Check that an approved badge is rendered on student's assignments page if it is approved.

8. Check that a student can not see a badge on assignments page if it is not approved.

Future Work

References

  1. Expertiza on GitHub
  2. The live Expertiza website
  3. Previous Badge implementation page