CSC/ECE 517 Fall 2017/E17A2 Lightweight Badging System: Difference between revisions

From Expertiza_Wiki
Jump to navigation Jump to search
Line 147: Line 147:


= Problem Statement=
= Problem Statement=
To create a simple badging system for Expertiza such that the students can be badged when certain criteria are matched.
To create a simple badging system for Expertiza such that the students can be badged when certain criteria are matched.
 
<br><br>Badging feature allows students to be badged on expertiza based on the matching of certain criteria. ‘Good Reviewer’ and ‘Good Teammate’ badges can be given to students based on the scores given to them by instructors or the other teammates.
Badging feature allows students to be badged on expertiza based on the matching of certain criteria. ‘Good Reviewer’ and ‘Good Teammate’ badges can be given to students based on the scores given to them by instructors or the other teammates.
<br><br>A ‘Good Reviewer’ badge is assigned when a student gets review score of more than a particular threshold or more than 95 by default.  
<br><br>Similarly, a 'Good teammate' badge is assigned when the teammate review score is greater than a particular threshold, defaulted to 95.
A ‘Good Reviewer’ badge is assigned when a student gets review score of more than a particular threshold or more than 95 by default.  
<br><br>The criterion to receive the badges are configurable for the instructors and can be changed for different tasks and assignments.
Similarly, a 'Good teammate' badge is assigned when the teammate review score is greater than a particular threshold, defaulted to 95.
The criterion to receive the badges are configurable for the instructors and can be changed for different tasks and assignments.


=Requirement Specification=
=Requirement Specification=

Revision as of 05:27, 8 November 2017

Team Contact

MEMBERS
Priyanka Jain: pjain15@ncsu.edu
Pushpendra Patel: ppatel16@ncsu.edu
Tanay Kothari: tkothar@ncsu.edu
Timothy Dement: tmdement@ncsu.edu


MENTOR
Zhewei Hu: zhu6@ncsu.edu

Project Description

The full project topic description can be found here.

The goal of this project is to create a simple badging system for Expertiza, allowing students to earn badges when they meet certain predefined criteria while using the platform.

This project is concerned with two preliminary badges — "Good Reviewer" and "Good Teammate" — but the design will be such that the badging system can be easily extended to include more badges in the future.

Per the full project topic description, the badges will be designed using Credly.

Previous work on this project topic revealed that any text included on the badges is too small to read, so all text should be removed from the badges and instead appear when the badges are hovered over.

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 will be set to a score of 95, but this value will be 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.

Please refer to the "Preliminary Mocks" section below for further detail.

Project Requirements

1. Create badges using Credly (do not include text)

        1.1. Create the "Good Reviewer" Badge

        1.2. Create the "Good Teammate" Badge

        1.3. Store these badge images in the app/assets/images/badges directory

2. Create tables for the badging system

        2.1. Create a table named badges with the following attributes

                2.1.1. idprimary key

                2.1.2. namevarchar

                2.1.3. descriptionvarchar

        2.2. Create a mapping table named assignment_badges with the following attributes

                2.2.1 idprimary key

                2.2.2 badge_idforeign key

                2.2.3 assignment_idforeign key

                2.2.4 thresholdint

        2.3. Create a mapping table named awarded_badges with the following attributes

                2.3.1. id — primary key

                2.3.2. badge_id — foreign key

                2.3.3. participant_id — foreign key

3. Change the UI so that instructors can add and configure badges, and students can view their badges

        3.1. Add a new "Badges" tab to the assignments/edit page

        3.2. Add badge icons to the student_task/list page for students to view

        3.3. Add badge icons to the participants/list page for instructors to view

4. Write feature tests to verify the modifications

        4.1. Include tests in the a new badge_system_spec.rb file in the spec/features directory

Preliminary Mocks

Good Reviewer Badge
Good Teammate Badge

Overview of Work Completed

Testing

Files Modified

New Files

Edited Files

References

Videos summarizing the previous team's work on this project topic can be found here.

Problem Statement

To create a simple badging system for Expertiza such that the students can be badged when certain criteria are matched.

Badging feature allows students to be badged on expertiza based on the matching of certain criteria. ‘Good Reviewer’ and ‘Good Teammate’ badges can be given to students based on the scores given to them by instructors or the other teammates.

A ‘Good Reviewer’ badge is assigned when a student gets review score of more than a particular threshold or more than 95 by default.

Similarly, a 'Good teammate' badge is assigned when the teammate review score is greater than a particular threshold, defaulted to 95.

The criterion to receive the badges are configurable for the instructors and can be changed for different tasks and assignments.

Requirement Specification

1. Creating badges for 'Good Reviewer' and 'Good Teammate'.

2. Create a table named “badges” where the badges and their description can be stored.

3. Create a mapping table named “assignment_badges”, for mapping badges with assignments and storing the specific thresholds

4. Create a mapping table named “awarded_badges”, to map student with badges.

5. Providing means to configure the badging criteria by adding 'Calibration' tab in Assignments/edit page.

6. Adding badges in student/task list to allow the viewing of badges associated with students.

7. Adding badges to participants/list for an instructor to view.

8. Implement feature tests to verify the new feature addition.

9. Adding hover feature on each badge to allow the viewer to read the description of the badge without taking up column width or height.