OK, so having searched high and low for a decent pool hall management POS for a friend, I came to realise that, simply put, one doesn't exist.
As a hobby programmer, over the past few years (yes, lack of time) I started mocking up a system in VB.NET however there is still all the business logic for the bar and restaurant to be done, etc.
Why reinvent the wheel when we could just add someting to it? I've looked very closely at Openbravo POS and think that this could be a very good starting point for developing something on top of this.
Of the existing products they are either too flakey (another fellow hobbyist) or lack the flexibility (they were originally developed for a particular pool hall). Most of them have been developed as a pool hall management system primarily and then the bar, restaurant, shop parts have been added, almost as an afterthought and are seriously lacking in functionality.
I'm looking at it from a pool hall point-of-view, but I think this could easily be applied to any bowling alley or other time-calculated usage enterprise (squash courts, badminton, indoor football, sports centers, etc.)
So here are my basic ideas/plans:
- Graphical front end showing a layout of the pool hall, indicating which tables are in use and which are available.
- When a free table is clicked, a timestamp is stored somewhere in the DB. This is then used to calculate the amount due when playing stops.
- Different table types need handling. English pool, american pool, snooker tables may charge different rates.
- Some halls charge per table (any number of players), some charge per player.
- Some halls have different pricing models depending on the time of day. For example, the price goes up after 8pm.
- Drinks, food, etc. can be added to an open table in the same way the restaurant module currently works.
- Being able to move people (and their drinks, food, played time, etc.) to a different table is important.
Here are some further ideas which I think could be more of a "second step":
- Waiting list. For a pool hall, reservations are rarely taken. However for squash, badminton and other sports halls, reservations work in a similar way to the restaurant current module.
- Somehow linking in to the current customer module to handle frequent players' discounts (ten hours played, one hour free, for example) would be great!
And probably a thousand other things!
Whilst I do realise that this is a large (and potentially complex) project, I'd love to hear your feedback and especially if any volunteers would be interested in helping me.
Don't hesitate to post any questions!