The IS4C Distribution

As of 2010, IS4C is running at the following Co-ops, in order of implementation:

The two co-ops in Minnesota are running the Windows version, and the other co-ops are running the Linux version. The code distributed here is, with minor modification, the latest Linux version running in production at Clintonville Co-operative Market. There is a significant amount of customization with each installation, and the Clintonville code will reflect operational needs and business logic at Clintonville Co-op. Features and bug fixes applied by the other co-ops either lie dormant, are commented out. We are working on a universal version incorporating the reconciled code base from all co-ops, and the code in furture releases will be successively more universal as well as modular.

The first Linux IS4C lane was developed on a Slackware lab at the Wedge. The Linux version that was eventually implemented at People's Food Co-op ran on Ubuntu. Now all IS4C lanes in production are running either on Ubuntu or Debian. The installation guide here is mean for an Ubuntu/Debian system.

To get the system up and running quickly, we recommend that you run the installation script at the quick start section. The following guide serves as the documentation of how everything is put together, and gives an explanation for the steps taken automatically by the installation script.

Download the file.

The Lane

Copy the file to the root directory "/" and unpack

tar -zxvf IS4C.tar.gz

After unpacking, all the IS4C software needed for setting up the lane and the server is included in the directory /pos. We will deal with the lane first.

/pos/is4c/ - contains the is4c PHP files. This has to be the web root when you set up Apache.

/pos/is4c/rs232/ - contains files needed for the operation of the scanner scale. /pos/is4c/rs232/README gives some inklings of what they are about. You can find the same file here.

/pos/installation/ - contains various IS4C installations scripts, mostly intended for Slackware Linux. is4c-ubuntu-install is the beginning of an installation script meant for Ubuntu, but is not complete. Feel free to take a look to see what it is intended to do. The files lane_db-install and server_db-install contain MySQL commands independent of Linux distributions, and are used for setting up the databases on the lane and the server.

/pos/installation/mysql/ - contains the database schema for the lane.

/pos/installation/mysql/script/ - contains scripts for setting up default MySQL user accounts for IS4C on the lane and the server.

/pos/doc - contains the documentation we have been able to muster for the system

The Server

The server back end is a work in progress. Each co-op has developed its own version of the back end. A version called Fannie was in use at four different co-ops, albeit with different customizations and different emphasis on implementation. The latest deployment of IS4C at Clintonville co-op has a version of the back end based loosely on Fannie and developed almost entirely at Clintonville. The Clintionville back end, fully functional, but customized for Clintonville, is available on Github.

As different co-ops customize their installations, necessarily putting emphasis on stability over development, their versions have forked from the official distribution. Over time, the original back end, Fannie, while true to its co-op of origin, has, like all other version, become divergent from the distributed front end.

What is included here is the beginning of an effort to distribute a back end that is bundled correctly, and developed in lock step with the front end code and database schema. While it has some of the basic features necessary for the system to function, it lacks many other. The emphasis on IS4C development will be to properly fill out all the back end functionalities required of a Point of Sales system.

Copy the same tarball IS4C.tar.gz to the root directory "/" and unpack as with the lane.

You do not need /pos/is4c for the server, but you will need the rest

/pos/backend - contains the PHP files. The settings for this version of the back end requires that /pos/backend has to be the web root. Since /pos/is4c has to be the web root for the lane, this means the back end has to be set up on a different machine. This will be more entertaining, in any case.

/pos/installation/mysql - contains the database schema for the server

/pos/installation - the script server_db-install will set up the databases, create necessary elements - tables and views - in the databases and insert demo data.

Note that MySQL, Apache, and PHP have to be set up on the server via apt-get as well, just as on the lane.

Introduction Installing the Building Blocks