Git Product home page Git Product logo

peerreviewapp's Introduction

Peer Review App

This webapp is designed to allow instructors to create questions with hidden grading rubrics. The students answer the questions and then are asked to review the (anonymous) answers of their peers. They are also encouraged to rate the reviews of their peers, and especially the reviews of their own answers.

The hope is that by reviewing other students' work, they will develop deeper understandings of the problem and its possible solutions.

The instructor and student can view metrics relating to their performance (e.g. number of problems answered, number of reviews written, average review score on each problem)

Installation

To run this app locally you need to

  • clone a copy (or download it)
  • create a google developer account and get oauth credentials
  • put those credentials in a file in config/auth.js in the format shown below:
  • startup a mongodb server
  • start the server with %npm start

auth.js format

The config/auth.js file has the form

module.exports = {
    'googleAuth' : {
        'clientID': 'your user clientID',
        'clientSecret': 'your Secret',
        'callbackURL'   : 'http://127.0.0.1:6500/login/authorized'
    }
};

peerreviewapp's People

Contributors

tjhickey724 avatar

Watchers

 avatar James Cloos avatar

peerreviewapp's Issues

Refactor Controllers

Modify the controllers so that Xcontroller.method is a method that assumes res.locals.X has been assigned.

Owner adds TAs to a class

Allow owner to add TAs by email address
and create a TA collection which associated TA emails with classId's and userIds

When someone enrolls in a class, the system will check to see if they are a TA and if so
it will add a TA flag for that course in their user profile.

Grading

Instructor sees summary data for all students
name, email, #answers, avgscore, then numReviews/AvgReview for all answers

Mark Drops and Audits

Find a way for the instructor to mark a student as a drop or audit
and don't include them in the grade summaries..

I need a page that shows all students with their status

  • enrolled
  • dropped
  • guest
  • TA
    and add this field to the user model

Problem/Review Completion indicators

Modify the user collection to include a list of all of the problems completed. We can then use this to highlight the questions which have already been answered. We could also include a list of the reviews for each problem completed by that user. This would allow us to give them instant updates about their status of their answers and reviews for each problem in a problemset.

TAing

Instructor or TA can see all work for one student
problems answered
answers reviewed
reviews of their answer

User grade awareness

Let the user know how the system is rating them on each page
e.g. on the problem page show their average review and the number of problems they have reviewed

Student Dashboard

Allow students to get a quick look at their status in all of their courses.
It would show the (number of )

  • answers submitted
  • reviews of those answers and the average score
  • TA reviews of those answers and their average score
  • reviews submitted and their comparison to average score of all students and TAs

This would allow students to gauge their progress in their courses....

downvoting

Allow users to downvote as well as upvote.
This will allow us to see which students have the best record for writing popular reviews.

Pedagogy

Add visibility checkbox to each problem (and allow problem edits)
Show a student all of the other reviews after they submit their review

Student Status dashboard

Create a page where the owner can see all student in the class with their status
and can update their status (except the owner status).

Incentivize good reviews

Find a way to report on the accuracy of each students reviews (e.g. comparing with TA reviews)

Refactoring "class"

Replace all occurrences of "class" with "course" because class is a reserved word in Javascript

Release v1.0

write an installation manual and release videos about how to use it for Brandeis faculty.

Performance

add indexing to mongo database
remove console.logs/dirs

show all answers/reviews after 5 reviews

Change the model so that once a students has written N reviews for a problem (say N=5)
they can see all of the answers and reviews for that problem.

This will motivate students to write reviews...

TA grading of problem sets

Implement the TA/instructor view of a problem set
where we see just the TA grades for each student and each problem
Allow the TAs to click on a (usually ungraded) problem to grade it
Highlight the TAs grade to the students so they can see an official grade
If more than one TA grades the problem set then average their scores for that problem.

pendingReviews Issue

I get an exception from a race condition on updating the pendingReviews field of the problem objects.

Some solutions are to use problem.set or $pull or problem.update,
but a better approach might be to create a new table pendingReviews
to keep track of the pending reviews...

or use a try clause in a loop?

The best approach is probably to use $pull ..

Allow users to edit reviews

Allow the user to see their reviews and to edit any of their reviews.
Allow the instructor (and/or TAs) to delete and/or modify any student's review.

TAs delete reviews

Allow students (including TAs) to edit their reviews
Allow TAs to delete anyone's review... (e.g. if it is offensive!)

Problem Set Progress

Create a page which shows the progress on each of the problems in a problem set

  • how many completed each problem
  • how many reviews are there for each problem

review responses

let the users respond to a review with a rating from -2 to 2
along with a comment about the review...
We could put the response into the review itself since each review is unique to an answer and a reviewer...

Eventually, I will ask the reviewers to pick the best review after they have made their review
and we will keep track of the number of votes for each review. We will also need to filter the
reviews so that only a few well-chosen reviews are shown, e.g.
the past five reviews, and then the most selected reviews after that weighted by longevity ...

So we'll also need a couple of variables keeping track of the number of votes and the "time" of the last vote...

Reviewing Dashboard

Let students see how others judge their reviewing....
e.g. (total up - total down)/(totalup + totaldown) which is their average review (between -1 and 1)

Answer Key

Allow students to see only the answers that the instructor (and/or TAs) indicated were perfect!

Problem Progress View for Teacher

The owner should be able to see how many answers and reviews there are for each problem in a problem set.

A student should be able to see which problems they have answered and how many reviews they've made.

TAs

Allow the owner to add TAs to a class by specifying their email addresses.
Allow TAs to have access to some of the owner-features
Mark reviews by TAs so students can see the official reviews
Grade ProblemSets as Quizzes using only the TA grading..

Time limit on Questions

Allow the instructor to close the question and disallow any additional answers.

The easiest approach is to just not allow them to post an answer....
But this would also keep them from viewing the other students answers and reviews.
That might be OK as it will create further incentive to post an answer....

I think I'll go for this easier solution. I can just add a field to the question which indicates whether
students are allowed to submit answers. It starts as true but the instructor can set it to false (or back to true).

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.