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.

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

Use Case Diagram

Description of the Badges

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. The badges we are going to build are as follows,

Good Reviewer

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

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).

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.

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