CSC/ECE 517 Fall 2017/E17A2. Lightweight badging system based on Credly

From Expertiza_Wiki
Jump to navigation Jump to search

Purpose

The implementation of a badging system provides a boosted visual motivation for the students to work towards achieving that badge. This has the ability to improve the overall class performance.

Team: Ankit Jain

Rajan Alwan

Riken Shah

Sanya Kathuria

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

Problem Statement

The aim of this project is to implement a badging system for expertiza where certain students are awarded with badges when certain criterias are met which may include exceptional academic performance in assignments, project submissions etc. We will be using Credly to make Badges. We will be working on building two badges:

  1. Good Reviewer
  2. Good Teammate

Flowchart Of the System

Description of the Badges

Why Develop Badge-System?

The use of badges will encourage students to have a visual motivation based on their achievements and thus perform better. For every assignment in Expertiza, we have students perform differently on a scale of 100 based on the reviews their projects receive from their peers. The topper badges will be used to honor the team(s) which scores the maximum for a assignment.

What does the badge-system do?

We have developed two badges — "Good Reviewer" and "Good Teammate" but the design has been developed in such a way that the badging system can be easily extended to include more badges in the future. The "Good Reviewer" badge will be awarded to students who receive very high review grades. The "Good Teammate" badge will be awarded to team members who receive very high teammate review scores. By default, the "threshold" for earning these badges is set to a score of 95, but this value is configurable on a per-assignment basis by the instructor. A new "Badges" tab will be added for instructors on the "Edit Assignment" page where instructors can add badges and configure the badge criteria for a given assignment. Badges a student has earned can be seen when they view their "Task List" page, and an instructor will be able to view all badges earned by students when they view the "Participants List" page.

Who will be awarded?

Good Reviewer

Icon

Who will be Awarded

“Good reviewer” is the badge that one student receive very high review grades assigned by teaching staff (by default 95).

Good Teammate

Icon

Who will be Awarded

In Expertiza students are required to give reviews to the work of other teams. This is evaluated on a scale of 100% by the teaching staff. “Good teammate” is the badge that each team member receive very high teammate review scores (by default 95).

How do we make badges configurable?

The criterion to assign badge should be configurable. After creating a new assignment, the threshold for the badges can be specified in assignments/edit page. The below image shows the how the page looks like.


Modified Files

Tables to be Modified

  1. We have created a table named “badges”, with the following attributes:
    1. id: primary key
    2. name: varchar
    3. description: varchar
  2. We have created a mapping table named “assignment_badges”, with the following attributes:
    1. id: primary key
    2. badge_id: foreign key
    3. assignment_id: foreign key
    4. threshold: int
  3. We have created a mapping table named “awarded_badges”, with the following attributes:
    1. id: primary key
    2. badge_id: foreign key
    3. participant_id: foreign key

Files to be Modified

  1. We have inserted the new code related to “Good Teammate” badge to teammate_review_response_map.rb.
  2. We have inserted the new code related to “Good Reviewer” badge to review_response_map.rb
  3. We have added badges to student_task/list page and a new column named Badge.
  4. We have added badges to participants/list for instructor to view.
  5. We have added a tab to edit the badge attributes in the assignments#edit page.

How does it look like?

When only one Badge is assigned :

Assigning both the badges together

Test Plan

We have developed the project using the TDD methodology. We have thoroughly tested all the functionalities we have implemented by writing automated testcases in features/specs/badge_system_spec.rb file in expertiza.

To start off, we have tested the following scenarios:

  1. The assignments#edit page has a tab named badges.
  1. In the badges tab, allow the instructor to change the threshold value of the badges, above which the badges will be awarded to the students.
  1. Assign the “Good Teammate” badge to a student when the student receives a very high average teammate review grade (higher than 95 by default).
  1. Assign the “Good Reviewer” badge to a student when the student receives a very high review grades assigned by teaching staff (higher than 95 by default).
  1. Instructor can view all badges assigned to all participants.


Command to run the testcase file : rspec badge_system_spec.rb