Coder Social home page Coder Social logo

nmfzone / regrader Goto Github PK

View Code? Open in Web Editor NEW

This project forked from fushar/regrader

0.0 2.0 0.0 2.5 MB

An ICPC-style programming contest system that works

License: GNU General Public License v3.0

PHP 55.54% HTML 0.85% CSS 0.17% JavaScript 0.68% C++ 1.97% Makefile 0.79% C 33.88% Shell 1.24% Perl 3.87% ApacheConf 0.01% Pascal 0.04% Perl 6 0.58% Smarty 0.22% Objective-C 0.09% XS 0.07%

regrader's Introduction

Regrader

An ICPC-style programming contest system that works.

Built on top of:

Installation Guide

1. Download Regrader

Download a copy of the latest Regrader: https://github.com/fushar/regrader/archive/master.zip.

2. Configure Regrader

Create an InnoDB database in your MySQL database server. Then, open the database configuration file application/config/database.php and add your hostname, username, password, and database name in this part of the file:

$db['default']['hostname'] = 'localhost';
$db['default']['username'] = '';
$db['default']['password'] = '';
$db['default']['database'] = '';

Next, open the configuration file application/config/config.php and add a random string in this part of the file:

$config['encryption_key'] = '';

It is advisable that the string consists of 32 random characters.

Finally, make sure your php.ini file has date.timezone option set.

3. Install Regrader

Open Regrader in your browser, and perform the installation steps as instructed. If at any step the system cannot install at some specified directories, please add write permission on them.

4. Run the grader engine

Execute run_grader.sh script on your host:

chmod +x run_grader.sh
./run_grader.sh

Configuring the System

1. Configure programming languages

Open Manage->Languages. There will be 4 programming languages set up by default: Pascal, Java, C++, and C. For each language you want to actually use, you have to at least edit its compile command as necessary depending where you install the compiler.

2. Configure additional options

Open Manage->Options and configure additional properties of the system.

  • Website, Top, & Bottom Names
    To be shown in the header.
  • Left, Right 1, Right 2 Logo Filenames
    To be shown in the header. If set, the logo files must be uploaded in Manage->Files.
  • Items per Page
    The number of rows in a table. Used in the list of users, problems, submissions, etc.

Using the System

After installation, you can log in and add users, contests, problems, etc. The interface should be quite intuitive to use :)

Miscellaneous

Solution checker

You can set up a solution checker for your problems. This is useful for problems that can have multiple solutions. The template for a checker can be found here: https://github.com/fushar/regrader/blob/develop/examples/checker.cpp.

Internationalization

Regrader currently supports English and Indonesian. To change the language to Indonesian, open application/config/config.php and change the value of $config['language'] into 'indonesian'.

Institution logos

You can show institution logos beside the contestant names in the scoreboard. The scoreboard will look very nice. Just upload X.jpg in Manage->Files as the logo for institution X. Then, tick the option Show Institution Logos in the corresponding contest's setting.

Public files

You can use Manage->Files to upload public files, for example, for inserting images in problem statements.

Public raw scoreboard

Besides the usual public scoreboard, you can also generate public scoreboard that is separated from the system. This is useful for hiding the contest URL address from the public and in order to minimize traffic and external attack.

  • Download the public raw scoreboard HTML file from the admin scoreboard menu.
  • Copy the assets/ directory.
  • Publish both in a separate address.

Of course, to achieve a semi-live scoreboard, you have to do the above steps periodically, possibly using a script.

Got any weird errors?

Here are common suggestions that should solve most possible errors:

  • Make sure that you have set up compile commands in programming languages you want to use.
  • Make sure that your server has execute permission on moe/obj/box/box.
  • Make sure that your test case output files have '\n' as the line ending.
  • Make sure that your test case files have extensions.
  • Make sure that run_grader.sh is running.

License

Regrader is licensed under GNU GPLv3.

Contributing

Contributions are welcome! Just publish your contribution as pull requests and we will review them.

Mantainers

Currently, Regrader is maintained by:

regrader's People

Contributors

fushar avatar sokokaleb avatar rakina avatar gyosh avatar

Watchers

James Cloos avatar Nabil Muhammad Firdaus avatar

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.