README for ninja-0.10
Last updated: 08/23/05

= 0. Introduction =

The NINJa printing system was developed to meet the challenges of managing a university printing environment.  It offers cost recovery, reduction of waste, and usage tracking.

Conceptually, the NINJa solution begins with a release station kiosk atop each printer. A user sends a job to the printer, which then appears in a queue on the kiosk display. To print, the user selects his/her job from the queue and authenticates. If the user is authorized to print, the station forwards the job to the printer, the job is printed, and the user's printing quota is deducted.

The main components of the system are: the printer; the release station/print server atop the printer; the authorization/page counting server; and the database.  

NINJa is flexible in that it can work under various configurations.  Since this is an initial installation-and-setup document, the descriptions here are representative of the specific setup at Columbia University.  Feel free to make sensible modifications in your configuration, but it may be easier at the outset if you could follow the descriptions below.

= 1. System Requirements =

Release station/print server
	A basic Linux box is recommended for your NINJa release station/print server with the following configurations:

	Recommended Hardware:
	- CPU (minimum recommended Pentium II, 150 MHZ, 128 MB RAM)
	- Keyboard
	- Monitor
	- HP LaserJet Printer (Tested with 5Si/4000 Family/8000 Family)
	- Networking

	Minimum Software Requirements
	- Linux (Various flavors of Linux should work.  We have run it on Redhat 7.2 and a custom built Linux-from-scratch)
	- Java Runtime 1.4 (Java 1.5 currently being tested)
	- A recent X environment (X.Org 6.8.2+ or XFree86 4.4.0+)
	- LPRng 3.8.28
	- ifhp 3.5.20 (dependencies include Net::SNMP, net-snmp, foomatic_filters, and a2ps)
	- Kerberos 5 (Tested with MIT Kerberos 5 Release 1.4.0)
	- ntp 4.2.0
	- NINJa web files: see section below

= 2. Compile from Source = 

You may choose to compile the NINJa source code yourself.  If you want to use the provided compiled files, you can skip this section.

Requirements
i. j2sdk-1.4.0 or greater
ii. ant from http://ant.apache.org

To build and install, unpack the file ninja-0.10-src.tar.gz in to a directory (e.g. SRCDIR) and follow the guidelines below (To install w/o building, skip to the next section):
1. cd SRCDIR/edu/columbia/print/ninja/properties
2. edit appropriate files for your environment (i.e. unix, windows)
	- The src variable should be the directory where you unpacked the source
	- The build and www variables can be determined by the builder
3. cd ../core
4. edit build.xml 
	- The property env.USERDOMAIN should be the prefix of one of the property files in the ../properties directory
	- The property env.TMP should be a temporary directory on your system
	- You may also need to edit the dist.dir property, depending on your system
	- You should make sure that slashes are forward- if you are building on *nix and back- if you are building on windows.
	- You may need to explicitly state the path of jarsigner where applicable
5. ant all
6. cd ../prix
7. edit build.xml
	- The property env.USERDOMAIN should be the prefix of one of the property files in the ../properties directory
	- The property env.TMP should be a temporary directory on your system
	- You may also need to edit the dist.dir property, depending on your system
	- You should make sure that slashes are forward- if you are building on *nix and back- if you are building on windows.
	- You may need to explicitly state the path of jarsigner where applicable
8. ant all
9. To install,  
	- cd /homedir/htmldir/ninja, where /homedir/htmldir was the specified www dir from the properties environment file you edited in step 2.
	- These are the files to be installed on the webserver (for the ninja to download its files from):
		cybernode-dl.jar, cybernode-ui.jar ninja-dl.jar, ninja.war, prix-dl.jar, prix-install,jar, prix.jar, prix.war, rio-dl.jar

Note: One way of first building everything would be to attempt to install from the package at <http://www.columbia.edu/acis/dev/projects/ninja/dl/ninja-current.tar.gz> (not from source) using the installation guidelines in the NINJa Configuration Manual at <http://www.columbia.edu/acis/dev/projects/ninja/doc/ninja_config.pdf>.  Following the installation, you may replace components with pieces that you have compiled.  

= 3. Installation and Configuration =

Follow the instructions in the NINJa Configuration Manual at <http://www.columbia.edu/acis/dev/projects/ninja/doc/ninja_config.pdf>.

= 4. Communication =

There is a NINJa mailing list for discussion of issues realated to NINJa.  To subscribe to the list or browse the archives, please see:

https://lists.columbia.edu/mailman/listinfo/ninja-users

To report bugs in NINJa, please send email to:

ninja-dev@columbia.edu
