Home   Archive   Permalink

Big Business Running On REBOL

I've been quiet in the REBOL world for the past several months because I've been working on my latest business project. This one has been a monumental effort - 20+ hours a day, 7 days a week, for nearly 2 months straight. I haven't seen my family. I haven't spoken to friends. I haven't done anything but work to get this enormous project off the ground - and now it's finally open and running. http://merchantsvillage.com is on it's feet, and it is running well :) I took a 120,000 square foot former Walmart building, and turned it into a gigantic indoor market square. We opened November 27, 2010 and we currently have 110 vendors. We're growing by 4-5 vendors per day, every day. In fewer than two weeks we've seen over 10,000 customers! It's a very big deal in the area - we've received an enormous amount of positive regional press (on the nightly news regularly). Our overhead is more than $50,000 per month, and we're almost at the breakeven point - within the first 2 weeks :)
The cool thing about all this is that everything in the business runs on software created from the ground up in REBOL :) Bar codes are printed for items the vendors sell, sales are rung up at checkout registers (we're as busy as any Walmart at Christmas time - 29 acres of parking lot FULL on the weekends), reports are printed, and money is dispersed, the web site is edited regularly, work schedules are created, data is backed up in real time, etc. It's a HUGE operation - and it's ALL REBOL, REBOL, REBOL making it happen every minute of the day :)
By the beginning of the year, I'll be active in the REBOL community again. Happy holidays everyone!

posted by:   Nick       9-Dec-2010/23:28:14-8:00

Congratulations. :-)
Sounds quite innovative, enabling small merchants. Anyone else running similar markets?

posted by:   Kaj       10-Dec-2010/1:14:34-8:00

Great !
To promote Rebol, the site Rebol.com really need a Client testimonies part.
Maybe a complete testimony from your experience ?

posted by:   nve       10-Dec-2010/4:37:12-8:00

Congratulations Nick! That is great.

posted by:   Endo       10-Dec-2010/9:04:53-8:00

Nick, could you post some pics from inside the building so we can get an idea how things are set up?

posted by:   Adrian       10-Dec-2010/9:18:36-8:00

Sure, we just did some TV commercials - they took a lot of photos. I'll post after the weekend when I get a moment...

posted by:   Nick       11-Dec-2010/2:23:17-8:00

Cool! Can you set one of those up for me too?
Only kidding!
Hope you can get some sleep...

posted by:   Anton       11-Dec-2010/9:48:25-8:00

This is just fantastic -- I'd love to see a list of your programs you developed for rebol!!!

posted by:   Patrick       11-Dec-2010/17:28:20-8:00

Good work Nick.

posted by:   James_Nak       13-Dec-2010/21:41:17-8:00

Congratulations Nick. Excellent work.

posted by:   Gregg       14-Dec-2010/13:52:26-8:00

Hi Nick,
Really great to read that there is big business running on Rebol softwares.
Is it possible to have an overview of the technical architecture ? server part ? how many client applications in the store ? Database ?
Would it be possible to have more shops using the same system, same architecture ? Is it scalable ?
I'm asking that because I'm working in a big retail company in France having more that 200 stores accessing the same cluster of JAVA application servers.

posted by:   deglingo       18-Dec-2010/6:11:45-8:00

Hi Deglingo,
There are 7 main parts to the software that runs operations:
Bar code ordering/printing:
Vendors place orders for bar codes they need, to sell at our point of sale checkout registers. Each booth can choose from 9999 numbers/descriptions that are unique to their individual booths. We have three kiosks in the building at which they can enter orders. The bar code ordering application is also available on our web site, for download, so that vendors can organize and price their items away from our location. Vendors can email their orders (often many thousands of labels), so that they're ready for use when the vendors arrive to stock inventory. Labels simply contain booth, item, and price information, in human readable and code39 format. The bar codes are printed on standard Avery address labels, rendered using the PDF dialect by Gabriele Santilli. The operating software has a simple interface for our employees to import and print the label orders (our operations software uses RebGUI for the UI).
Point of sale:
Our employees run checkout registers at the front of the building. Shoppers pick items from any of the booths, and pay for them at the front registers. We use inexpensive netbook machines with keyboard wedge scanners attached, to do the point of sale data entry (we still have Walmart's register hardware, and we display the sales on nice 19 inch monitors, so the checkouts look professional and modern to the customers). The data entered via scanner is simply parsed and placed into a listview data grid. Taxes and totals are automatically calculated, and options are provided for tax-free sales, for deleting and holding sales, and for other common transaction activities. The data for each sale is simply stored in separate text files - no database - files are named by the date, time, and cashier's name, using an easily parsable naming convention. This is the heart of the system, and is limited only by the file system. The software automatically archives files after each pay period, so that response times are instant, even when run on a slow network. We run operations most days with 1-4 cashiers, but we could easily support 15 registers, just using stock Windows 7 starter machines. Because there's no database, we could replace a totally broken server in a matter of minutes (as long as it takes to copy the receipts data folder). Customer receipts are rendered to HTML files and printed using inexpensive Brother laser printers.
Vendors can obtain reports of sales which have been made, from any starting day/time to any ending day/time, whenever they want. The reporting system simply reads the receipts file directory, parses the name of each file (which contains the dates and times of each sale), and then runs through each file which should be included in the report, collecting info about items sold by the specified vendor. Totals of the sales items, taxes, and grand total, are provided, along with info about dates, times, cashier and other info about each individual item that was sold. The whole reporting process takes a couple seconds, even for reports with hundreds of printed pages of items. I created an additional large report that automatically runs individual reports and totals for each vendor in the entire building, to be run at the end of each 2 week pay period. We also have a report to total sales at each POS register, made by each individual cashier, to close and total the register after each employee's work shift.
All data is regularly backed up and saved to local and network drives, as well as an FTP server off site. These simple scripts just constantly look through each data folder in the "server" directory for files not contained in the backup folders, and copy any files not found.
Check writing:
At the end of every 2 weeks, we write checks to each of the vendors for the items they've sold. We run the report to provide subtotals for items, tax, credit card charges, etc. Managers can request checks for vendor payments - they are rendered in PDF format, and uploaded to the web site. If I'm not on site, I can view the checks and approve them remotely. When I approve them, the checks are then digitally signed and downloaded in a batch by the managers, where they're printed on our normal check paper. Managers can use this process to write checks for any other accounts - if I'm not there locally, I can approve them from anywhere I have an Internet connection.
We do some daily scheduling using a tiny program that I wrote in 5 minutes - we've decided to use a third party fingerprint recognition system to manage time clock operations, so this part of the REBOL system will be discontinued.
I wrote a very simple image retrieval and archiving system that works with wireless IP cameras. Images are constantly snapped and saved to 2TB drives, again using a simple file naming convention that contains the date, time, and camera name. It display thumbnails of each image (24 total on each machine), which can be clicked to show a larger view of the incoming images. There's a search and scroll feature that simply runs through the file listing to search and review images.
None of the system is rocket science, but it's been very reliable and fast. New client machines can be added in the time it takes to install REBOL/View, connect to a mapped drive, and run approximately 200k of REBOL code. Setting up the entire software system at a new location will take me less then an hour (it will take much much longer to just unbox, connect, tie down, etc. all the hardware).
Here are some screen shots of the operations software: http://re-bol.com/merchants_village_screen_shots.zip
Of course, I use my sitebuilder CGI software to manage the web site, and many other typical REBOL tools that I've created for other businesses, to help organize my daily activities.

posted by:   Nick       19-Dec-2010/1:10:19-8:00

Nick, thanks very much for this detailed explanation...I wish you lots of a success for your business in the coming year !

posted by:   deglingo       20-Dec-2010/17:11:43-8:00