Rails based Point of Sale?


The company I work for is a national franchisor of about 100 retail
stores across Canada. We currently use proprietary, firmware based
point of sale hardware that costs us thousands of dollars per store and
still doesn’t work properly. So, we’re looking for alternatives.

We currently use RoR for our back-office pricing management. I like the
idea of using RoR for our POS front-end as well. I’ve been searching
for a Rails POS app online. It looks like various people are writing
POS apps, but I’m certainly not seeing anything like “gem insall pos”!

One of the options on the table is to build our POS system from the
ground up. There are plenty of options when it comes to open POS
hardware (basically, a single unit that integrates low end computer,
touch screen, printer, cash drawer connection, and USB ports for a
barcode scanner).

But, I have mixed feelings about attempting to write our own POS
software. We’re not looking to become a software development firm. I
do the current Rails programming in house, but I’m no expert and this
would need to provide enterprise reliability.

One other twist is that the stores can’t be without their POS even when
their Internet connection goes down, which it will on occasion.

My thoughts on how it could work:

  • Have each location be running a local copy of the app on top of a
    single Mongrel server. That way, its not dependent on the Internet

  • Item pricing, etc. would be pushed down to the store via mysql
    master/slave replication. As far as I can tell, this would accommodate
    the occasional interruptions in connectivity (but again, I’ve never set
    up replication – I’m just going off of what I’ve read).

  • Sales data would be pushed back to the main database here at head
    office from each location periodically via a backgroundrb worker.

  • The app would be fully ajaxed and would need to provide very quick
    response since we’re dealing with quick service retail (coffee shops and
    convenience stores)

  • The item and sub-menu buttons would need to be configurable by store,
    since each store has different needs.

  • I really like the idea of being able to upgrade all 100 stores
    overnight just by doing “cap deploy”!

  • Would need to be able to integrate with the printer, cash drawer
    trigger, and poll display. Let’s hope that those all have Linux
    drivers. That would be one of the requirements as we source the
    hardware. (The barcode scanner is simple to integrate since we’d just
    set it up to mimic keyboard input.)

So, my questions are:

  • Is this a bad idea? I’m looking for some expert input. Could a
    system like this deliver enterprise reliability and speed?

  • Our company would be interested in financially supporting an open
    source POS gem or plugin. But we’ve never done anything like that
    before. Where do we start? How do we embrace the open development
    pattern while making sure that the features we need are included?

Your input is appreciated.


Scott Ward