Giter Site home page Giter Site logo

msc24x / hunter Goto Github PK

View Code? Open in Web Editor NEW
10.0 2.0 1.0 7.11 MB

A coding contest platform built to ease the process of hosting

Home Page: https://hunter.cambo.in

License: GNU General Public License v2.0

JavaScript 90.94% TypeScript 5.72% HTML 1.47% SCSS 1.70% Python 0.11% Batchfile 0.03% Dockerfile 0.01% Shell 0.03%
angular argon2 authentication codingchallenges codingcompetitions docker expressjs hashing onlinejudge scss typescript

hunter's Introduction

Hunter

Built to simplify the daily coding competitions hosting in general. Hunter gives you the ability to create your own coding competitive sites, but with a lot of easy, simplicity and least maintenance.

Live Status

Oracle PlanetScale

The site is live and accessible at https://hunter.cambo.in

Overview

Users can initiate with the free account and start creating competitions. Competitions are create on the basis of meta data users provide, such as title, description, length of competition, and more parameters. Host can add as many questions they like.

Other users who wish to just participate can get ready in the compete page, where all the competitions, which were made public by the other users, would appear. Any one can get started with them when they are live.

Users submit their solution code to the online judge built for Hunter, that detects the language, compiles it and test it against the test cases provided by the host user. The judge responds with the result. All the results would be public on a live scoreboard during the competition. Participants get ranks, based upon which they are benefited from the Hunter or the sponsors if exists. Normal challenging competitions are always present here, that are constantly added by the Hunter official account, to keep practicing your problem solving skills.

Note : Sign in using email has been temporarily disabled due to some technical issue regarding verification of emails. Hence the method has been replaced by GitHub OAuth for some time.

Features

Editor

This part of the Hunter allows users to create their custom competitions. They can edit the meta data and scheduling information & define their set of questions. All settings related to competition editing will be there. Users can access the Editor through clicking on any of their created competitions from the Editor page. Users can edit and create any number of competitions they want by just clicking on Create Competition button.

Participation

Hunter provides clean and non distracting interfaces while participating in competitions. The module of the site is best designed to be viewed on desktops. Any one can participate in a 'Public' competitions whenever they are live. Users can view the questions that the competition contains and start writing code in their preferred language.

Code Execution

As the participants would be writing code, they have the access to the Hunter's online judge, that compiles, execute and test their submissions against the preset tests defined by the host. Users have the ability to test against the full cases or just the samples cases. Meanwhile, Hunter keep users' last submission saved on its servers, so that the participants do not loose their code due to unexpected exits.

Scoreboard

Any successful or wrong submissions are evaluated, whose results the participant can see right next to the output in the Evaluation box. All the results for any question will be displayed there. They will get the defined score for the successful submission and one penalty for each wrong submission pre success.

The results of all the questions are accumulated for all the participants in the live scoreboard that rank wise displays their performance.

Self-host instructions

  1. Download the latest source.
  2. Have an .env file present. Here is an example.
    ENV=local
    PROTOCOL=http
    DOMAIN=localhost:8080
    API_PORT=8080
    DB_HOST=hunter-database
    DB_USER=<root_or_any_other_user>
    DB_PORT=3306
    DB_PASSWORD=<set_a_password>
    MYSQL_ROOT_PASSWORD=<set_a_password>
    DB_NAME=hunter
    CID=<your_github_client_id>
    CSEC=<your_github_client_secret>
    
  3. cd into project root directory, and run docker compose --env-file <path_to_env_file> -f docker-compose-selfhost.yml up hunter-database -d
  4. Database should be up. Open a terminal into the container, create a database named hunter and restore the schemas from backend/schemas/
  5. Run backend docker compose --env-file <path_to_env_file> -f docker-compose-selfhost.yml up hunter-backend -d
  6. Run frontend npm install and npm run start

Contribute

Angular NodeJS MySQL Docker

Clone the main branch. Run ng serve in project root folder to run the Angular UI. Change working directory to /server folder, and run npm start to run the backend for Hunter.

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.