Coder Social home page Coder Social logo

equetzal / neosaris Goto Github PK

View Code? Open in Web Editor NEW
9.0 0.0 4.0 2.93 MB

Online ICPC standings resolver with compat with Codeforces, Vjudge and S4RiS StanD

Home Page: https://neosaris.huronos.org

License: GNU General Public License v2.0

JavaScript 80.40% CSS 15.75% HTML 0.58% TypeScript 3.27%
codeforces icpc vjudge standings-resolver

neosaris's People

Contributors

dependabot[bot] avatar equetzal avatar filibot avatar galloska avatar osdajigu avatar soyoscarrh avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

neosaris's Issues

Migrate to functional components

Currently, the inherited Saris implementation uses React classes instead of functional components and react hooks.
Moving this implementation to the current standard will help with readability and maintenance.

Migrate to Typescript

Currently the Saris resolver is working with pure Javascript which can lead to unexpected bugs, so migrating the project to typescript should help to minimize the errors.

Support BOCA standings

Support the BOCA judge to unfroze LATAM scoreboards.
This is not priority as Animeitor already exists, but it stills necessary as most of time only the Brazil scoreboard is unfrozen live, so this tool will allow each location to unfroze their own standings.

Change neoSaris JSON format

The current JSON specification is inherited from the old SarisByAlgoritmiaESCOM with very few modifications. Although this format works, it is not as scalable as it could be, so that adding future fuctionalities such as IOI-like contests support, awards mentions or presenter hints can require modifications to the current object that might result in a incompatibility with previous specifications. This can result in future conflicts if other tools decide to autogenerate JSON files for neoSaris.
Stated this, I purpose the following object specification for neoSaris:

export type ContestData = {
  contestMetadata: {
    duration: Number; //Duration in minutes
    frozenTimeDuration: Number; //Duration of the frozen time in minutes
    name: String; // Title to display for the problem
    type: "ICPC"; // Type of contest to evaluate
	//^ We can add a future type for IOI to identify IOI contests
  };
  problems: Array<{//0 = first problem, etc.
    index: String; //Letter of the problem
    name?: String; //Actual name of the problem
	//Here we can add subtasks if we need to evaluate IOI contests
  }>; //Array with an unique index for each problem
  contestants: Array<{
    id: Number; //Unique number to identify this contestant
    name: String; //Name of the contestant
    school?: String; //Name of represented university/school/institution
    iconName?: String; //Id of the icon to display for this contestant
	//For awards, we can include fields about members of the team
  }>;
  verdicts: {
    accepted: Array<String>; //Name of the accepted verdicts
	//For IOI we can add partial verdict name
    wrongAnswerWithPenalty: Array<String>; //Name of WA verdicts that causes penalty
    wrongAnswerWithoutPenalty: Array<String>; //Name of of WA verdicts that does not causes penalty
  };
  //For awards, we can add an object for different awards (TopRanked, FirstToSolve, Medals)
  submissions: Array<{
    timeSubmitted: Number; //Floor time in minutes of the submission, relative to the contest start.
    contestantId?: Number; //Number of the contestant, should match contestants array
    contestantName: String; //Name of the contestant
    problemIndex: String; //Should match problems array
    verdict: String; //Should match a registered verdict
	//For IOI we can add the partial scores
  }>;
};

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.