Overview and Installation


IS4C is a server/client system. It comprises a number of front end lane computers that function as cash registers and at least one back end server that handles back end administration of the system. While the lanes are called clients, they are nevertheless servers in their own rights, and are in fact, by virtue of being cash registers on the floor, more mission critical that the back end server. I will refer to them as lanes rather than as clients. Whether back end server or front end lane, each IS4C computer is a fully fledged web and database server. Each lane computer serves only one client - itself, while the back end server serves the following: all the lanes; any back office computers that need access to point of sales data; any remote hand held devices used for price and product maintenance on the floor; and possibly other servers as part of an integrated system.

The basic building blocks needed by all IS4C computers, whether Windows or Linux, are Apache, MySQL and PHP. Developers will recognize that when all these are in place and working on a properly configured network, you will have created a general, networked database management system (DBMS). Furthermore, the MySQL-Apache-PHP system is the open source standard for database management for web based applications. It runs independently of IS4C, but IS4C does have to run on top of it.

Broadly speaking, all server/lane point of sales system are database management systems that can ring up sales. The IS4C code released is the part that rings up sales. When installed on a single computer, it turns the computer into a cash register, when that computer is networked, the IS4C code is responsible for the following:

  • consult data originating from the server
  • conduct sales according to server data, and business logic imposed by the co-op.
  • collect data from retail input devices and display data to output devices
  • upload sales records generated by sales transactions to the server.

The IS4C release is fully functional, but insofar as it is not "out of the box", requires a fair amount of configuration, and is intended primarily for developers, we have to make the assumption that you know how to set up the basic Apache-MySQL-PHP system properly on your computers. We will provide you with the configurations specific to IS4C, and we will, of course, provide what help we can as long as we know about your efforts. We are also very keen to learn from you. To that end please register for our forum so that you can post questions and provide feed back.

Assuming that MySQL, Apache and PHP are installed and running. IS4C needs the following, additional, elements before it can run as a system:

  1. Front end PHP code to run on the lane
  2. Database schema, and data, for the lane
  3. C source code for the daemon that polls the scanner scale, together with shell scripts.
  4. Back end PHP code to run on the server
  5. Database schema, and data, for the server
  6. Documentation on specific configuratons

On a historical note, When IS4C was first released, only the front end code, item number 1 above, was made available, pulled directly from a production lane at the Wedge Co-op. Because the other elements were missing, the release was of no practical use except that developers who were interested could perhaps glimpse the logic behind the curtain. It was felt that because a networked database management system was required and expected, the code was only of use to organizations that already had such a system in place. The Wedge was not in a position to go about setting up networked DBMS for other co-ops. The development strategy then was to work with those orgainzations to either create abstraction layers so that the IS4C code, as it was, could work within different database systems already in place, or to alter the IS4C code, customizing it to work with specific systems for specific co-ops. The IS4C code was, and still is, very light, and it was easier to alter it than to alter existing database systems running live in other organizations.

IS4C development then became dependent on the original developers working intensely with other co-ops who wished to install the system. For a successful installation at a co-op, IS4C required that a database management system already existed at that co-op, together with an I.T. staff that knew how to integrate databases at that co-op. It was put to us that IS4C was "not an out of the box experience".

Due to the amount of efforts expended in such installations, and, equally important, attemtps at such installations, pieces fell into place. Script were created to automate installation of different elements. Abstractions were introduced, and some hardcoding taken out.

We also realized that installing IS4C was not just about turning computers into cash registers. There has to be an administrative back end bundled correctly with the front end to make it a complete point of sales system. The first version of the back end distributed with IS4C was the one used at People's Food Co-op. It was given the name Fannie, and for a time, the code distribution was called IS4C/Fannie. Fannie, however, like the original version of IS4C, was heavily customized for its co-op of origin. As subsequent IS4C distributions diverged from the original, it soon became evident that a back end needed to be developed in lock step with the front. While different versions of Fannie, fully functional at the co-ops where they exist in customized forms continue to be available, IS4C development now incorporates the back end, and IS4C, as a point of sales system, is developed with both front end, and back end in mind.

IS4C now is till very much a work in progress - by no means an "out of the box" experience, but by releasing what we have so far, we are counting on interested developers to help us get there.

While you do not have to follow the exact sequence, we will try to install the system in the following order:

  • Install IS4C on a single computer to turn it into a cash register.
  • Install the administrative back end on the server for data maintenance and reporting.
  • Make front and back work together.

Needless to say, a production deployment will require more work. You have to find a way to cache a list of all your members on the system, for example, before you can pull membership equity data, and you might have a working member discount policy that is not accounted for by the code. However, if we can at least accomplish the item on the list above, you will indeed have a working, albeit generic, and very limited, point of sales system in your midst.

While it is possible to set up an evaluation system on just one computer, we recommend that you do try to set up the server on a different computer so that you are exposed to issues involving network connectivity and remote data transfer.

If you are not a developer, feel that you will run into obstacles arranging for all this to happen, but you are nevertheless interested in looking at the system, sign up for the forum and/or drop us a line at is4c@wedge.coop. We'll try to walk you through some of the tricky parts if you are game. If you represent a retail grocery co-op, especially one within a reasonable distance of one of our developers, we'll do what we can to see what further arrangements could be made.

Before we move on to download the distribution, take a minute to look at the system requirements and hardware needed

The Distribution