Giter VIP home page Giter VIP logo

student-ratings's Introduction

Student Ratings

Alcoding Club, PES University

Build Status

Alcoding Club of PES University maintains ratings of its students who are active in competitive programming. This repository contains the ratings and the code which generates it.

Purpose

An intra-college rating is maintained so that the club can identify good coders. The club will group these students and help them improve at competitive programming by organizing meet-ups, providing resources, arranging contests and develop a coding community in the University.

Ratings

The ratings are calculated by students' performances in specified contests.

Mechanism

A rank list of registered students is generated at the end of each contest. A rating is computed from the rank list, which indicates their relative performance. The implementation is almost the same as Codechef's Rating Mechanism which is a modified version of Elo rating system. To avoid students from protecting their ratings and encourage participation, a decay rule is also added which decrements a student's rating by 1% if she does not take part in 5 consecutive contests.

Verification

The code that generates the rating is open. Along with that we have provided a script with which you can verify that the displayed ratings are correct. This script resets all students' ratings, and computes the ratings after all the contest ranks are considered. You may report an issue if you find any discrepancy.

Calendar

Alcoding Club maintains a Google calendar for competitive programming. Contests that are marked as "Rated" will be considered for these ratings.

Contribute

This project is still very small so there are no strict guidelines for contribution. For now we are following PEP 8 -- Style Guide for Python Code.

You can report an issue if you find a bug or any other change you would like to make. You may also make a pull request. It would be helpful if you use our Github labels for all issues and pull requests. Be sure to clearly document and describe any issues or changes.

FAQ

  1. How can I improve my rating?

    The only way you can improve your rating is by consistently scoring more than those who are rated higher than you.

  2. Which contests have been considered for these ratings?

    The contests considered for ratings have been listed here. This list will be updated after calculating the ratings for each contest.

  3. Which contests are taken into account for rating?

    Contests in 'Competitive Programming PESU' Calendar are considered for ratings.

  4. How can I tell if these ratings are legitimate?

    You can verify the ratings yourself by running this script. It resets all students' ratings to default values and recomputes it for all contests so far in chronological order.

  5. How can I get the scoreboard only for some particular contest(s)?

    Clone this repository, open executor.sh and remove the contests you do not want the scoreboard for. Run this script and check scoreboard.csv.

student-ratings's People

Contributors

97varun avatar reddybhargava avatar souravtecken avatar varunvora avatar vinayak-awanti avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar

student-ratings's Issues

Google Calendar Automation

Automatically add events to 'PESU Competitive Coding' Google Calendar by polling various websites. We already know what the URL is going to be for the upcoming contest and can periodically look it up until it gives a 404.

Reasons for not taking up this issue:

  1. It doesn't take long to add google calendar events manually, about 10 minutes a week.
  2. Automating this could cause issues. Changes in schedule will anyway have to be addressed manually.

Decouple tinydb from rating module.

Mentions of tinydb should be removed from ratings module. All its functions should be moved to db_tools. This will make it easier to port to a different database without disturbing rating logic.

Generic scraper

All scrapers seem to have some similar functionality. This task requires to create an abstract scraper and allow all the scrapers to extend it, and override its execute method.

Issue with hackerearth scraper

  1. The ranks are assigned in order of occurence within the database.
  2. The output file with PES Participants isn't being created.

Reduce unmapped handles

The database has many more entries now. We should be able to reduce the unmapped handles considerably.

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.