All Projects → RocketChat → Opensource-Contribution-Leaderboard

RocketChat / Opensource-Contribution-Leaderboard

Licence: MIT license
Open Source project contributors tracking leaderboard built with ❤️ in NodeJS 😉

Programming Languages

javascript
184084 projects - #8 most used programming language
CSS
56736 projects
HTML
75241 projects

Projects that are alternatives of or similar to Opensource-Contribution-Leaderboard

projects
A website that showcases interesting projects, using Angular JS.
Stars: ✭ 106 (+253.33%)
Mutual labels:  students, gsoc
accepted-gsoc-proposals
A repository containing links to accepted proposals for GSoC, Hopefully this helps someone write a better proposal and get accepted into the program
Stars: ✭ 115 (+283.33%)
Mutual labels:  students, gsoc
Profileio
Static site and resume generator from YAML based profile for students and researchers. Generates ready to deploy branches via github actions.
Stars: ✭ 122 (+306.67%)
Mutual labels:  students
Phd
A list of resources on how/why to do a PhD
Stars: ✭ 120 (+300%)
Mutual labels:  students
Academiccontent
Free tech resources for faculty, students, researchers, life-long learners, and academic community builders for use in tech based courses, workshops, and hackathons.
Stars: ✭ 2,196 (+7220%)
Mutual labels:  students
Aloc Endpoints
5,000 past questions api end points for POST-UTME, UTME, WASSCE, NECO questions
Stars: ✭ 135 (+350%)
Mutual labels:  students
Library Management System
📚 An automated library management system developed in Laravel 4.2 PHP MVC Framework
Stars: ✭ 189 (+530%)
Mutual labels:  students
Awesome Computer Science Opportunities
An awesome list of events and fellowship opportunities for Computer Science students
Stars: ✭ 2,445 (+8050%)
Mutual labels:  students
eslint-config-fullstack
A complete ESLint config file to help students avoid errors and learn best practices
Stars: ✭ 16 (-46.67%)
Mutual labels:  students
A To Z Resources For Students
✅ Curated list of resources for college students
Stars: ✭ 13,155 (+43750%)
Mutual labels:  students
Campus Android
Development of the TUM Campus App for Android devices - for and from students at Technical University of Munich.
Stars: ✭ 168 (+460%)
Mutual labels:  students
Lessonmaterials
Open Sourced Curriculum and Lessons for an Introductory AI/ML Course
Stars: ✭ 142 (+373.33%)
Mutual labels:  students
Fosswebsite
A club management system that handles student details, progress, events, achievements, attendance, status updates, teams and workshop registrations. This is the official [email protected] website
Stars: ✭ 242 (+706.67%)
Mutual labels:  students
Stumanager
🎓 Student Information Management System (学生信息管理系统)
Stars: ✭ 133 (+343.33%)
Mutual labels:  students
curriculum
A roadmap for Boot.dev's CS curriculum for backend developers
Stars: ✭ 492 (+1540%)
Mutual labels:  students
Studentinsights
We work within school communities to make open, secure, student-centered data systems. Say [email protected]!
Stars: ✭ 121 (+303.33%)
Mutual labels:  students
Expertiza
Expertiza is a web application through which students can submit and peer-review learning objects (articles, code, web sites, etc). The Expertiza project is supported by the National Science Foundation.
Stars: ✭ 160 (+433.33%)
Mutual labels:  students
Quizzon
Quizzon: Create and play quizzes free
Stars: ✭ 48 (+60%)
Mutual labels:  opensource-projects
project-ideas
Project ideas for students at KITE, KGCAS, IIM and anybody else!
Stars: ✭ 47 (+56.67%)
Mutual labels:  students
gsoc-organizations
A site for viewing and analyzing the info of the organizations participating in Google Summer of Code.
Stars: ✭ 195 (+550%)
Mutual labels:  gsoc

Opensource-Contribution-Leaderboard

Introduction

An open source contributors leaderboard for your developers community, Github organization, or Google Summer of Code (GSoC) organization. Contributors can track their position on the leaderboard based on the PRs, commits, and issues they've completed across the repositories of interest across your Github organization . Proudly created and maintained by the GSoC 2019-2021 students and the wider Rocket.Chat community.

Benefits

  • Encourage contributors to improve their position - by increasing contribution to your organization
  • Easy to setup and administer
  • Realtime organization - wide visibility to top contributors.

Main Features

  • Track commits/PRs/issues for contributors and GSoC student candidates in real time
  • At a glance view of participating top students
  • Easy administration to add students (even before they have made their very first contribution)
  • Requires no database or other environments - Only what you need to do is to ensure that your Node.js works well
  • Real-time updation of results - Contributions get updated real-time after server start without the need to refresh.

Deploy with Docker

Use docker-compose to deploy directly

docker-compose up -d

The configuration file (src/server/config.json) can be easily modified locally to reflect changes on the container. The data gets backed up at /data inside the container.

OR Use the automated build image of our most recent release

docker pull rohanlekhwani/opensource-contribution-leaderboard:latest

and then run

docker run -p 8080:8080 -d rohanlekhwani/opensource-contribution-leaderboard

Quick Start

Clone the repository to your local machine and switch into the project root directory:

git clone [email protected]:RocketChat/Opensource-Contribution-Leaderboard.git
cd Opensource-Contribution-Leaderboard

Copy config-example.json to config.json in the src/server directory. Add your Github Auth Token and Organization name and other keys in it as following:

{
  "organization": "OrgName",
  "organizationHomepage": "https://<OrgName>/",
  "organizationGithubUrl": "https://github.com/<OrgName>",
  "authToken": "",
  "adminPassword": "123456",
  "delay": "10",
  "serverPort": "62050",
  "contributors": []
}

Then switch to the project root directory, install the dependencies:

cd ../../
npm run add

And then you can read Development part or Production part for the next step.

Development

Switch your path to the project base directory:

npm start

You will see the GSOC Contribution Leaderboard in the http://localhost:8080 if all works well. Then open a new terminal window (or tab) and enter the following commands to start your backend service:

npm run serve

Note: If the backend service is not started, the contributions data will not be refreshed.

Develop Administration Panel

You need to start another instance if you'd like to develop administration panel, open a new terminal window (or tab) and try following commands:

cd admin
npm start

Production

Generate the static files first by running the following command:

npm run build
cd dist/server
npm install pm2 -g # run this command on your server if pm2 is not installed.
pm2 start app.js --name "GSOC-Contribution-Leaderboard" # start the backend service

Automated Data Fetch REST API

REST API endpoints are available to fetch important leaderboard data real-time.

The API uses the cached data.json file which is created and regularly updated on starting up the server. This means that if the API is called in the middle of a data fetch cycle, the data returned by it at any time would be based off the data present in the data.json at that time. Since the leaderboard itself displays data using the data.json file, the data fetched by the API and that displayed on the leaderboard will always be consistent at any given time.

Details about the API endpoints and their responses can be found in the REST-API file.

Acknowledgement

This project is inspired by GSOC-Contribution-Leaderboard. Thanks to the Python team for the work.

License

This project is open source under the Licence MIT.

Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].