abacus
This project was launched in response to the insane amount of effort that had to be into making PC2 work for the South African regionals of the ACM ICPC contest.
The basic idea is provide a similar platform but with various improvements (like being able to function over NAT, using fixed port numbers for firewall management, multiple routes between servers, and so forth). In addition the system should be flexible enough to also be usable for IOI and IPSC.
Currently the requirements for the system is as follows:
- asynchronous communication
Communication should happen asynchronously as far as possible.
- balloon notification
Possibly a plug in to marking system? Ie, turn this into generalised notification system.
- scoring/scoreboard
- automatic switch off at some point
- scoring/ordering rules pluggable.
- marking/judging
We have identified three levels of judging namely:
- fully automatic (no judges involved at all)
- semi automatic (incorrect solutions go to judge)
- fully manual (everything goes to judges)
- clarifications (as with PC2)
- Import (Will form standalone command line apps):
- Problem representation in database for contest use.
- No restart functioning (things should be able to change at run-time without requiring contest restart)
- Time keeping
- split time (different venues have different times)
- sub-minute accuracy
- Must be able to function with weird firewall setups (NAT etc...)
- Security (communications and messages should be signed/encrypted)
- Electronic problem distribution - Problems should be made available via the system in electronic (preferable pdf) format.
- Fail over/redundancy/fault tolerant
- Boot CD for clients?
- Multiple input sets
- Stand alone client
- web client
- track submissions
- Keep all submissions
- Logging + Auditing (Continuing process)
- Anonymous judging (judges should not know who they are judging).
- e-mail submission/notification - think IPSC.
- printing
Each venue is responsible for providing printing, using for example CUPS.
Text that looks like this indicates requirements that is already fulfilled.
Text that looks like this has priority and is what the developers are currently working on.
If you would like to get involved, or have any comments and/or suggestions, please do not hessitate to contact me. We are currently in planning but would love to have some kind of prototype up and running early 2005.
|