Mooshak's Help: Main features
What is Mooshak?
Mooshak is a client-server application to fully manage and run
programming contests. It is web-based and therefore all of its
functionalities are accessible through interfaces deployed on a
web-browser, irrespective of the operating system were the browser is
running. These interfaces use the HTML 4.0 frame set and no processing
is made on the browser, except for some data input validations that
are implemented with ECMAScript. Java and plugins were avoided on
purpose to simplify the use of the interface by any machine on the
Mooshak provides a number of features, namely:
- General features:
- Multi-user: accommodates different users with rather different
access permissions to the system: contest directors, judges,
contestants and general public.
- Multi-site:supports single site as well as multi-site
contests; it is also prepared to allow simultaneous local and online
- Conforms with official rules: conforms with ACM-ICPC rules to
classify contestants submissions.
- Flexible: can import data files produced by
ACM-ICPC central registration database; and provides means to produce
pariticipation certificates based on the contest classification.
- Multi-language: supports a number of programming
languages, namely C, C++, Pascal, and Java.
- System security and reliability:
- User-authentication: access to the system is controlled
by user authentication, except in the case of the public view that is
open to everyone.
- Reliability: supports data replication to allow
rapid system recovery in case of failure.
- Safe-exec process environment: provides a safe execution
environment to run the programs. This environment limits resources
available to contestant programs, hence preventing them from
interfering with the system.
- Users and interfaces:
- Multiple user-views: provides different interface views
according to the type of user accessing the system. The interface only
shows the functionalities accessible to that user.
- Administration view: allows contest directors to setup a new
contest and to add all data necessary to make it operational; problem
descriptions; solutions, test inputs and outputs for the problems;
teams and contestants data; programming languages; date for the contest,
starting and finishing times, etc.
- Jury view: allows a person jury to validate the judging
made by the automatic judging system, to re-evaluate submissions if
necessary, and to answer questions posed by contestants and to track
the handling of printouts to contestants.
- Contestants view: allows contestants to submit solution programs,
to ask questions, to print their programs, to access the submissions
list, to access current classification, and to visualize problem
- Public view: allows any user on the Internet to follow the
progress of the contest as it is taking place; they can access the
submissions list, current classifications and other statistics
listings regarding the contest.