# Rails based Point of Sale?

**URL:** <https://www.ruby-forum.com/t/rails-based-point-of-sale/130135>\
**Category:** Rails\
**Created:** [February 25, 2008, 6:22pm UTC](https://www.ruby-forum.com/t/rails-based-point-of-sale/130135 "2008-02-25T18:22:07Z")\
**Posts on this page:** 1\
**Page:** 1

<div class="post-metadata">

**Author:** ![sfwalter](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/s/278dde/32.png) [@sfwalter](https://www.ruby-forum.com/u/sfwalter)\
**Post date:** [February 25, 2008, 6:22pm UTC](https://www.ruby-forum.com/t/rails-based-point-of-sale/130135/1 "2008-02-25T18:22:07Z")

</div>

Hello,

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  
connection.

- 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.

Sincerely,

Scott Ward
