OnlineJudge-Progra version 0.01
===============================

Progra is an Online Judge capable of compile and test programs
written to solve a programming task. 

Requisites:

	* Linux box
	* Perl 5 (see extra modules below)
	* Diff command

Obviously, you'll need the compilers and/or interpreters of the languages 
you'll use (e.g. gcc, perl, g++). The main path structure needed
to use Progra is as follows:

   - user_path/
   - task_path/
		- input.0
		- input.1
		...
		- input.n-1
		- output.0
		- output.1
		...
		- output.n-1
			
The user_path and task_path must uniquely identify a user/task. The 
user_path is used to store the output generated by the user's source 
code. The task_path is used to store task's testcases. These testcases 
must be consistent, meaning that there must be exactly the same number 
of inputs and outputs. The naming of testcases is input./output. followed 
by a number from 0 to n-1, n being the total number of testcases for that 
particular task. The mapping between input and output is given by this 
number. For example, input.0 is associated with output.0, input.1 with 
output.1 and so forth.

When Progra starts, it creates a .pid file in its home directory. To stop
it you should delete this file. There is .sh file included if you need
to automate this.

And finally, remember thar source codes to be tested must interact with
standard input and standard ouput.

For more information look at the POD file.

INSTALLATION

To install this module type the following:

   perl Makefile.PL
   make
   make test
   make install

DEPENDENCIES

This module requires:

  Proc::Killall
  File::Spec::Functions
  File::Copy

COPYRIGHT AND LICENSE

Copyright (C) 2011-2012 Israel Leiva A. <ileiva AT csrg DOT cl>

This program is free software: you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
the Free Software Foundation, either version 3 of the License, or
(at your option) any later version.

This program is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
GNU General Public License for more details.

http://www.gnu.org/licenses/


