Back to ProjectsIcpcIt!

 Introduction 

IcpcIt! Logo

IcpcIt! is a collection of useful tools for automating common tasks in programming contests like ACM/ICPC. It consists of two independent subprojects: IcpcIt! Print and IcpcIt! Accounts. First one is an integrated web based print system that facilitates print submission of teams. The second is a program to create accounts for teams with random passwords and tex files to creating print-ready pdf's of their hand-in login information and their big team names.

1. IcpcIt! Print

  • Programming Language: PHP More Information
  • Markup Languages: HTML More Information and CSS More Information
  • Library used:PclTar More Information
  • Platform: PHP enabled web server
  • License: Open Source - GNU General Public License Version 2 More Information
  • Development Time: Jan. 2006

2. IcpcIt! Accounts

  • Programming Language: ISO/IEC 14882 C++ More Information
  • Typography Language: LaTeX More Information
  • Compilation: MS 32-bit C/C++ Optimizing Compiler Version 12.00.8168 for 80x86
  • IDE: Microsoft Visual Studio More Information
  • Platform: Win32 on i386
  • License: Open Source - GNU General Public License Version 2 More Information
  • Development Time: Jan. 2006 ~ Feb. 2006
 

 Download 

 

1. IcpcIt! Print

2. IcpcIt! Accounts

 IcpcIt! Print

 
 

1. Introduction

IcpcIt! Print ia a web-based client/server script for handling print requests across a network. It realizes a print handling system such that an ordinary user called "team" can log in and request a print and a special user called "view" can login and pickup prints. It's useful in programming contests like ACM/ICPC and also in a department or company site.

2. How to Install

  1. Copy to Web Server: first you need to copy iiprint folder and all of its content (files and folders) exactly to a space on the web server.  
  2. Configure Web Server: The configuration process for Apache Server will be presented. It must be configured such that the path you copied iiprint have AllowOverride All option. This is set in a <Directory> directive in httpd.conf such that the address of that directive is the iiprint path or one its parents. For example if you have copied iiprint to "D:/HTTP Documents/iiprint" you must have a line like this in your httpd.conf file.
    <Directory "D:/HTTP Documents/iiprint">
    Options Indexes MultiViews FollowSymLinks
    AllowOverride All
    Order allow,deny
    Allow from all
    </Directory>
  3. Configure PHP: The php.ini does not need a change as long as one of the default ini files is used within the distribution. Specifically, file upload option must be enabled and Apache server must have necessary access privileges to temp folder defined in php.ini file.

3. How to Use

We have 3 types of accounts in IcpcIt! Print:

  • Admin: is the administrator of the system. First time the IcpcIt! Print is installed, there's only one account "admin" of type "admin" with password of "admin". When an admin user can see all accounts, login statuses and all print submissions and also can perform some administrative tasks. To construct user accounts for "team" types and "view" types by two files containing user information for each must be uploaded. The format of one of the records of these files (one record per line) must match this:
    username|showname|{true,false}|password
    For example for an enabled user with username team1 and showname First Team and password team1pass we must have an entity:
    team1|First Team|true|team1pass
  • Team: each ordinary user should have an account of type "team" for requesting a print. When a user of type "team" logs in, he is redirected to a page for uploading a file for print. He can also see the last successful submission. When he requests a print, he sees the result in next page (failed or successful).  
  • View: users of types "view" have the responsibility of actual printing and delivering to requested user. When a user of type "view" logs in, he sees all print submissions. New prints are bold and should be picked up for printing. When a "view" user accesses a file, the state of file changes to old and is not bold anymore. After a pickup, the user must manually print the file with appropriate application.

4. Some Notes on Usage

  • System does not automatically print submissions and should be invoked manually by a "view" user.  
  • Project security is build with the assumption of apache web server. Access to all files and subfolders for all users must be forbidden except the main PHP script (normally iiprint.php), i.e. a user can access to this script only. Used web server must be configured properly to ensure these security considerations.  
  • Usernames and password must not have these three characters: \r , \n and | 
  • Do not forget to logout when your task is finished.
 

 IcpcIt! Accounts

 
 

1. Introduction

IcpcIt! Accounts is a Win32 application that reads a file of account names and generate a complete account file with random passwords (PC2 Compatible), a print-oriented login file (in LaTeX) and a print-oriented team label file (again in LaTeX) of users, useful in a programming contest (like ACM/ICPC) for automating user account affairs.

2. How to Use

  1. Install Executable File: copy the main executable file, iiaccounts.exe, to an empty folder.
  2. Copy Input File: this program works on a text file (default name is teams.txt) as input which must contain showname of accounts in each line. For example if we would like to have two accounts with shownames First Team and 2nd good boys, we must have an input file like this:
    First Team
    2nd good boys
    Warning: Shownames must not contain | or { or } characters, if so they will be changed to similar characters.
  3. Execute: the prototype style of program execution is like this
    D:\ACM>iiaccounts.exe [input-file] [pc2-file] [login-file] [info-file] [-h|--help] 
    in which parameters are:
    • input-file is an input (showname of accounts) text file as described above. Default: teams.txt
    • pc2-file is an output file in PC2 formatted account file which consists of one record for every user in each separate line. Each record contain a username, showname, enable/disable status (which is always true), and a random 5 digit password.This file can be fed to PC2 or to IcpcIt! Print to create accounts for a programming contest. Default: teams-pc2.txt
    • login-file is an output file in LaTeX which can be converted to pdf using pdflatex. This file is a multi-page formatted file that each page contains login information for users which can be printed and delivered to them before starting the contest. Default: teams-login.tex
    • info-file is an output file in LaTeX which can be converted to pdf using pdflatex. This file is a multi-page with usernames in very big fonts in each page. This file can be printed and each page can be attached to the computers of contestants. Default: teams-info.tex
    Therefore if the program is called without any parameters, it will read from teams.txt and write to teams-pc2.txt, teams-login.tex and teams-info.tex by default.
 
 
Back to Projects
My HomeSite   My Sitemap
RSS     Valid XHTML 1.0!   Valid CSS!   Firefox Compatible   IExplore 6.0 Compatible  
Maintained by SiteIt! - AT! - © 2003-2010
Last Update: February 15, 2010