Git Product home page Git Product logo

touche's People

Stargazers

 avatar

Watchers

 avatar  avatar  avatar  avatar

touche's Issues

updated README

The README is old and possibly incorrect. It needs to be updated to reflect the information on the current system. In fact, it may need to be auto-generated since some of the information is configurable by the contest administrator.

While fixing the README, be sure to put the Java information first since it is essential for Java program success and more submissions use that language than C or C++.

Java logs get lost

When logging execution of Java programs, each Java submission writes over the same log files, so there is no way to look past the most recently executed Java program to debug any problem that may occur.

test contest w/o starting it

There is a slight security issue with testing contests right now. Currently, testing is done by starting the contest, using a test user and submitting known correct (and incorrect) solutions, and verifying the judging system responds properly. If a team happens to know their username and password and can guess the URL to the contest, they are also able to log in during the testing period and access anything that is available during the running contest. That includes pointers to the contest documents, and a very bad cheating scenario ensues.

Therefore, it would be very good to be able to test the contest while not opening it up to anyone other than the administrators and judges running the contest.

Configurable time limit

The time limit may need to be configurable on a per problem basis, but certainly should be at the contest level. Currently it is semi-hard-coded in that each programming language has a fixed value in the code. One would need to know where those values are in the code to change them on a per-contest basis.

Start/restart functionality split

To start or restart a contest, some of the work needs to be done by the administrator and some needs to be done by a judge. This task needs be consolidated under a single role.

Ignore stderr

Does the system do the right thing when the administrator checks the box to ignore stderr? This needs investigation and a final answer of YES.

Team updates don't always happen

When an administrator tries to update a team, it doesn't always update like it should. I don't know how to produce this error to make it replicable, but believe the report to be valid.

Remember login across roles

When switching between roles and logging in as a team, judge, or administrator, one is automatically logged out of all the other roles. It would be nice to keep those logged in unless specifically logging out. That would make it much easier to switch tabs or tasks between these roles seemlessly.

Enter team account as judge/admin

It would be very nice if a judge or administrator (not sure which level, yet) could be able to access a team account without having to look up the account details. This would enable them to be able to see what a team is seeing in case there is some sort of error that needs to be fixed, but is not replicable from another account.

Python support

Add Python as a language for participants to submit programs with. At a minimum, this includes the proper language files, but really should also include a default list of forbidden words (exec?) and libraries that should/shouldn't be used in the Python environment. It also includes building a chroot jail to be used by all future contests.

Configurable time penalty

Allow the contest administrator to set a different time penalty than is currently hard-coded into the standings. The default should still be 20 minutes as that is the current value that is hard-coded.

Additional error types

It would be awesome to have even more error types available for an administrator to be able to provide (on configuration) to judges for their responses to problem submissions. Can we make that happen?

Some examples of additional error types could be:

  • failed all tests
  • failed some tests
  • too much output
  • too little output
  • etc.

I'm not asking for the software testing the programs to do anything more or ever be able to auto-suggest these outputs, but that they be made available for the human judge to override the default "incorrect output" with one of these new error types.

Java naming conventions relaxed

Contestants aren't used to using the Java naming conventions and they are always tripped up by them. Can't we do something better so that they can just submit whatever they want and we just run it properly?

At a minimum, can we get rid of the "no public classes" constraint?

Diff output missing newlines

When comparing the output of the submitted program with the expected output, the HTML viewer kills all newlines. They should be in there to make it easier to read the output. Keep the red tildes to signify spaces since they serve a good purpose.

Problem description uploads

Does the system properly accept files of PDF and HTML and provide links to them at the proper time? They should be hidden before the contest starts and only made visible when it does. I believe this is done through permissions in the proper public_html directory, but they may never be turned on by the system and only directly via the command line. Starting a contest should be sufficient. Disabling a contest should also re-hide them. Fix if necessary.

Deleting a team during the contest

Can a team be deleted during a contest? I don't know and am too scared to try during a real contest for fear it would break everything. Find out and make sure the answer ends up being yes.

Windows data sets == server incorrect behavior

Because Windows terminates text files with "\r\n" and UNIX terminates them with "\n", we have problems when the contest administrator submits data sets generated on Windows machines. The UNIX server expects the '\r' to be part of the output generated by the submissions, but they are run on UNIX and so will never do this unless the contestants are aware of the cross-OS portability and code super defensively (which happens to be a really bad strategy for winning these contests, so no one ever does).

Simple solution: run all data sets through dos2unix and make them UNIX files. Everything is moot after that.

Multi-site timing

Does multi-site timing work correctly? It should allow different sites to start at different times and score the submissions based on the start time of the site the submitting team is located at. Freeze time and finishing times also need to be per-site as well. This has never been tested thoroughly, but the developers that put the functionality in claimed it worked. We need better verification of this claim.

Short problem name on standings pages

Currently, the standings pages always show the full name for a problem, but the problem title can be quite large at time. There should be a way to provide both a full name for browsing and submitting the problems, but a short name that makes the standings or other similar listings more digestible.

Problem numbering on standings

Weird things happen to numbering and ordering in standings when problems are added and deleted from the list of problems. Confusing, awful things. Fix them and make them make sense.

auto-refresh more judging pages

Some judging pages auto-refresh, but others do not. Make it more consistent and useful so that the human judges can know when they need to respond at even more locations. The one page that should NOT auto-refresh is when the judge is reviewing the response from a particular judged submission.

complete "send files to teams" functionality

There is a button on the administrator's misc tab that implies that contest data (submissions, test input & output files, etc.) can be sent to contest participants. That functionality needs to be completed (i.e., started).

compiler access for teams

Contestants do not have access to the server compiler. It needs to be available so that they know that the code they've written actually works like it is supposed to.

Confirm participants

We need a mechanism for confirming which participants actually were in the contest in case an alternate replaced a regular contestant.

Ensure proper ordering of configuration data

When a contest is created, all the tabs on the administrator section are enabled, but shouldn't be since there are strict ordering constraints that must be met. For example, a problem must be uploaded before a data set for that problem can be uploaded. A more "wizard"-y way of guiding the administrator through the necessary steps to create the contest would ensure that the data is valid and complete. At a minimum, links that shouldn't be clickable should be disabled until they make sense to be clickable.

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.