Frequently Asked Questions

What is IS4C?

Please refer to the Introduction.

What language is it written in?

IS4C is web based. Each lane is a web server as well as a database server. The basic building blocks are Apache, MySQL and PHP. The operational logic is done mainly in PHP, while data manipulation necessarily relies on MySQL. Javascript is also used throughout and certain functionalities depend on AJAX. For the Windows version, the scanner scale driver is written in Visual Basic. For the Linux version the operation of the scanner scale depends on a daemon written in C. There are also a number of Linux shell scripts that are invoked by PHP.

Who owns IS4C?

First, the legal technicalities.

IS4C is licensed freeware. It is licensed to the Wedge Co-op under the full GNU license. This means IS4C technically belongs to the Wedge Co-op, which controls the official releases of IS4C versions. The Wedge gives out the IS4C source code free for anyone to use with the following provisions:

If IS4C code is used in any product subsequently released, then the following must apply:

Consult the GNU licensing site for more information.

Legal technicalities aside, IS4C, under whatever guise, belongs to those who use it and understand it. If you are running it at your store, and you know the code, and the system well, then you have complete control over it. You are also free to customize it for your specific use. In that sense you have full ownership.

Who is developing IS4C?

There is not actually a company called IS4C with a team of people working on general development. The developers are simply people who are using the system and adapting it to their needs. The Wedge has a team of six.

What is the current status of IS4C in terms of availability? How far along is it?

A Windows version of IS4C has been running successfully at the Wedge Co-op in Minneapolis since 2001. A similar version runs at Whole Foods Co-op in Duluth, Minnesota. The first, completely open source version was installed at People's Food Co-op in 2006. It runs on Ubuntu Linux. A version running on Debian was installed at Alberta Co-operative Grocery in 2007. Clintonville Community Co-op, River Valley Market, and Bread & Roses Food Co-op have all also since installed IS4C at their stores.

A Linux version of the code, based on the version running at Alberta Co-op, together with a server back end, called Fannie, is available on this site. Follow the overview, or download link. Because there isn't anyone dedicated to developing the code for general use, each installation so far has required a substantial amount of customization. For that reason, IS4C, as a general product, is considered to be still in development. IS4C is far from being an "off the shelf" product, and the code to be released, while fully functional, is meant for developers only.

Would it have the features I need?

Let's break it into front end features and administrative back end features.

The core of IS4C front end provides for:

Those are the basic features provided. When the system was first developed on top of all that, the higher level features that were written into the system were precisely those needed specifically at the Wedge Co-op. Many of these would be generally useful to other co-ops, some would not. When the system was later introduced to Whole Foods Co-op, features needed by WFC were added to the code, mutually exclusive features were reconciled, and the database schema altered for the purpose. When the system was, still later, moved to Linux and installed at People's Food Co-op, further features needed by PFC were then added. At each stage, customization had also meant actual development. During the installation at Alberta Co-op, a considerable amount of effort was put into computerizing a working member discount program. As the co-ops respond to their needs, more features are added in, and some older features become dormant.

An example of a new feature added at the Wedge was putting in a patch to indicate on our receipt which items were of local origin. Another patch we put onto the version at the Wedge was to add a "round up" key to make it easier for customers to automatically donate their change for the flood relief effort in Minnesota. Now both "local tracking" and "round up" are in the IS4C code. If you need a feature that does not come with IS4C, you can put it in. That is one of the the advantages of open source.

Administrative back end:

IS4C is weakest in back end maintenance. In the past we had advocated integrating IS4C with existing back end modules. The Wedge, to this day has no real back end, because when we integrated our systems, the point of sales back end became redundant, and was dismantled with much fanfare. Later, we found out that co-ops interested in IS4C were likely to be those without point of sales, and therefore without pre-existing back ends. In any case back end product maintenance in particular, cannot be "integrated" if it is not already there, because, unlike the other data systems, product maintenance does not exist independently of the point of sales.

The first attempt to remedy the situation came in the form of 'Fannie', born of the back end at Whole Foods Co-op, and was further developed by Joel Brock to suit the needs of People's Food Co-op and Alberta Co-op Grocery. Its features, and available reports are precisely those needed by those co-ops. Fannie was bundled with the front end code and for a time IS4C was released as an integrated suit under IS4C/Fannie. IS4C database schema has since forked from Fannie, however, and we have decided on a built-in administrative back end that is developed exactly in lock step with the front end. The integrated IS4C back end project has just been started and is a work in progress. Meanwhile developed and functional versions of Fannie remain available, the latest version being that developed at Clintonville Co-op, and the code is available at github.

To summarize:

The core functionalities provided by IS4C are data collection and data transfer between lane and server. Possiblities for higher level features are infinite, and cannot all be planned for. Every feature that is actually in the code is there because someone from one of the co-ops using IS4C had asked for it. Customizing IS4C for co-ops is an on-going process. In all likelihood, IS4C will have features asked for by the next interested co-op.

What about documentation?

There is never enough of it. We are making a start at providing adequate documentation for the system, front end and back end. The section on overview and installation will lead you through the basic design of the system. We have provided the create scripts for all the database elements, each element with its own file. All these create scripts taken in combination is the start of the detailed documentation on the database schema. We have not yet documented the PHP code, besides the occasional code commentary. There are a number of software programs that can be used to document PHP code, and we hope to start using one of them. As it stands, the PHP code, we've found, is straight forward enough that even without documentation, programmers familiar with PHP seem able to deal with at least part of it within a matter of days. That is not an excuse to not provide documentation, of course, but our priority now is first to produce documentation for installation so that developers can set up the system on their own. Next would be a clearer explanation of the system's basic overall design, so people will have a general idea on how it's all supposed to work. Third would be details of the database schema, because using the system to manage data is probably the main reason you are interested in it. And then lastly, the PHP code.

What are the pros and cons for running IS4C?



  • There is no company behind IS4C, which means there is no support, hardware or software. When something breaks, there is no one to call. Other IS4C users promise to help when they can, but their numbers are still limited, and they are likely to be up to their eyebrows already. You have to be your own, sure support.
  • Open source and open architecture is only advantageous when you have programmers to take advantage of the openness. If you don't have programmers on staff, the advantage is lost, the openness becomes a liability because it requires higher IT maintenance, and you are stuck with a semi-experimental system with meager support, and not at all versatile because there is no one at hand to make it versatile.
  • The system is not "off the shelf" and is in many ways still in development. There are still bugs that won't be fixed until a new user, and that would be you, first encounter them and bring them to light.
  • IS4C is not yet adequately documented. Even at the Wedge, there is no user's manual.
These are serious concerns that need to be considered by any business.

What about support?

In a nutshell: If you can implement IS4C, you can support it. Implementation is the harder task, and support comes as a benefit. In the implementation process you would have gotten to the bottom of all the basic issues. You would have found out how to plug everything together, where each piece of equipment goes, where you had obtained everything and how they are all networked and configured. You would have learned how to import your products data, your membership data, how they are updated. You would have learned how to pull all your customized reports, where your sales data reside, how and where they are backed up. If you can put the whole system together, there is no fear when a lane goes down, or when a report fails to print, or that data failed to poll.

One of the main benefits of IS4C, we have always felt, is that in its implementation, you become master of your system. A critical part of your business is now clearly understood by your staff, and you are forever freed of having to deal with mysterious black boxes humming in your midst, or being at the mercy of someone at the other end of the telephone who's unavailable until Monday at 9. You know exactly what goes on in those boxes, and how to fix them immediately.

To have implemented IS4C is to have the best possible support - yourself - for one of the most critical systems in your store.

How much does IS4C, as a POS, cost?

The code itself will be distributed for free. Associated costs can be broken down into costs for the operating system and hardware. There are a number of sites online where you can price and order retail hardware. Note that on online catalogues, cables are often not included. Nothing works without the cables, don't forget to order them. While you will most likely be able to get used gear from ebay, these are the estimates for one lane, with the costs of cables included, for new equipment, as of Fall, 2009.

In addition, you will need the computer itself. For the monitors and the scanner scale, you will eventually need to construct brackets and mountings for them at the register stand. You will need a computer for the server. And since your system is networked, make allowance for the costs associated with installing a switch hub and running ethernet cables to your register stands.

We recommend that, if possible, you keep a complete set of equipment as extra, as we do at the Wedge. Rememeber that you are your own support. If the receipt printer breaks, there is no one to call except yourself, and the lane closes until you can procure a working printer. You don't want to wait a few days, or even overnight. If you have an extra printer you can bring the lane up in a few minutes, and then you can make arrangements to have the printer fixed at your leisure. The extra lane doubles as our development lab.

Equipment aside, we hope that if you take advantage of the free system, make it work, and that you will in turn offer your expertise to support other co-ops. Obviously that is not required, but it could be looked at as a cost of the system.

What are the system requirements?

Please refer to the hardware section.

What kind of hardware would I need?

Please refer to the hardware section.

I am interested, how can I get involved?

All significant advances in IS4C development came as a result of:

  1. installations and attempts at installation,
  2. attempts at customizing, improving, optimizing, debugging, and otherwise tinkering with an installed system.
The best way you can help is to get the code from the installation section, get a spare computer, or better yet, get two computers, try to set up a server/lane system, try to make it work, and then share your experience and your ideas with us. We have a forum for it. You don't necessarily have to acquire all the peripherals, just the computers would do, to start with. If you can make it work, then wonderful! You have a point of sales system, and there is one more developer for IS4C. If, however, you fail to make it work at first then the documentation, and/or the prepared scripts are no good and we need to work on them. In that case it would be wonderful if you can persevere with us. And when finally you are successful we will have a better installation process and you will have a point of sales system.