Giter VIP home page Giter VIP logo

peerpp-bot's Introduction


Logo
Written by Joppe & W2.Wizard for Codam Coding College

What is the Peer++ system?

The peer++ evaluation system ensures quality evaluations by matching students with high-level evaluators.

Read more about it here.


Installation

Convert ./config/env-example to .env and fill in the secret data.

By default port 8080 is used for the webhooks express server and port 3000 is used for the slack bot using the slackbot API.

The slackbot runs over Websockets instead of HTTP Requests.

Development

  1. Install NodeJS 18.x or higher.
  2. Install dependencies: npm install
  3. Use npm run dev for development mode.

Production

In production environments, use Docker.

  • Use make up to run in a docker container.
  • Use make down to shut down the docker container.

Or, if you're confident in your Docker skills, you can just use the docker compose command directly.

Logrotate

In production, we recommend setting up a logrotate in the logs directory. Create a logrotate config in the /etc/logrotate.d folder.

You can use or modify the configuration below:

/root/peer-bot/logs/log.txt {
        weekly
        missingok
        rotate 4
        compress
        delaycompress
        shred
        ifempty
        create 644 root root
}

Useful how-tos

Add a user to the peer++ group

  1. Go to the peer-bot directory.
  2. Run node src/scripts/manageUser.js add <login> where <login> is the login of the user you want to add to the peer++ group.

Remove a user from the peer++ group

  1. Go to the peer-bot directory.
  2. Run node src/scripts/manageUser.js remove <login> where <login> is the login of the user you want to remove from the peer++ group.

List all users in the peer++ group

  1. Go to the peer-bot directory.
  2. Run node src/scripts/getUsers.js.

Manually schedule a peer++ evaluation

  1. Go to the peer-bot directory.
  2. Run node src/scripts/bookEval.js <scaleID> <teamID> <userID> where <scaleID> is the scaleID of the scale you want to use for the evaluation, <teamID> is the teamID of the team you want to schedule an evaluation for and <userID> is the userID of the evaluator (the one evaluating the team).

Allow cancellation of a peer++ evaluation

  1. Go to the peer-bot directory.
  2. Run sqlite3 db/peerdb.sqlite.
  3. Run INSERT INTO expiredTeam(teamID) VALUES ('<teamID>'); in the sqlite3 shell, where <teamID> is the teamID of the team you want to cancel the evaluation for.
  4. Run .exit to exit the sqlite3 shell.
  5. Tell the team that they can now cancel the evaluation (make them press x next to the evaluation on the Intranet).
  6. Run node src/scripts/addPoint.js <login> where <login> is the login of the student who lost an evaluation point for the cancellation. This will refund the point to the student.

peerpp-bot's People

Contributors

codam-it avatar freekbes avatar sirmorfield avatar w2wizard avatar zinobias avatar

Stargazers

 avatar

Watchers

 avatar

peerpp-bot's Issues

typo uppercase philosopher

Screen Shot 2023-02-06 at 5 54 34 PM

The P of philosophers should be in lower case otherwise you'll get this error message and you are missing a space after the first full stop.

image

Thank you with kind regards Abi and @JellevanKraaij

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.