SmartPOS Development Log - With a twist!

Get help on programming - C++, Java, Delphi, etc.
Judas
Registered User
Posts: 2118
Joined: 17 Oct 2006, 02:00
Location: Stellenbosch
Contact:

SmartPOS Development Log - With a twist!

Post by Judas »

The programming forums don't see a lot of action here, so I thought something a little different might be in order ;).

The premise is this: I've just started development on a new open-source project (SmartPOS). SmartPOS is still in the early design stages, so I thought that this would be the perfect time to start something of a project log - with a twist. If there are enough interested parties, I'll document every step of the development, from design to release, in beginners terms - making this more of a tutorial than a project log. I'll assume no prior knowledge of programming, and explain every concept and decision in the simplest possible terms for the benefit of anyone with even no programming experience - and if there's something you don't understand, or would just like more info on, feel free to ask! It'll be a good way to pick up C++, as well as general software engineering skills, and learn about good programming practice.. C++ is the language used to write most Windows games, as well as the language behind Opera, Google Earth and the KDE desktop environment for Linux.

Of course, being an open source project, everyone is free and encouraged to help out in any way they choose. And there's far more to development than just programming - as the project progresses, we'll need testers, documentation writers, release engineers, etc. Even if you just throw some ideas around, that will be a big help and be greatly appreciated. And what do you get if you help out? Good karma, bragging rights, and your name in the credits ;).

Most importantly, I will make some stupid mistakes as development progresses. I'm hoping that you can spot them, point them out, and save me from my own stupidity :P.

With that out of the way, I'll start at the beginning: the inception of the project.

The Problem
Every software project starts out with a problem - the problem that you're going to try to solve with your software. In this case, the problem is that current POS (Point-of-Sale) systems are generally very poor, a pain to use, and the market for these systems is dominated by a few big industry players.

For those of you not familiar with POS systems, those are the software packages that you see running at the tills in Pick 'n Pay, and on computers at restaurants. For the purposes of this project, we're going to focus specifically on restaurant systems.

Anybody who's ever worked as a waiter (and I'm ashamed to admit that I have too ;)) will already be intimately familiar with POS systems - most probably PilotPOS, since that seems to be used at almost all coffee shops and restaurants these days. You'll immediately know what I mean when I say that the system is flawed, too: dockets mysteriously don't print, if you change an order you have to go running to the kitchen to let the chef know, specials aren't handled by the system automatically, etc. etc.

In fact, if you're a waiter - or have worked as a waiter - this is your perfect chance to help out. What do you hate most about the POS system you work with? What could be improved to make your life easier? Point them out here, and we can try to work them into SmartPOS.

The Program:
So, enter SmartPOS. The aim of this project is to create a POS system that doesn't have all of those little irritations, and has a bunch of innovative new features thrown in to boot. The software will have to be stable, of course, and it will be absolutely free of charge.

SmartPOS is going to be written in C++, and use the state-of-the-art Qt4 framework. For those of you not familiar with frameworks, it's basically a library of highly useful code that you can use in your program. They make your life as a programmer a lot easier! The reason for choosing Qt in particular is that it is cross-platform compatible - so the system will build and run on Linux, Windows, OS X, and any other platform that supports Qt.

My reasons for choosing C++ are a little more selfish: it's the language that I prefer, and that I am the most familiar with. The important features of C++ are high performace, good stability (if used properly), and compiling to native binaries - ie. the resulting programs are directly executable files (.exe files in Windows).

The Design and Development Process: An Overview
Generally, when designing software, you start out with the with the problem as a simple whole, and then gradually break it down into smaller and smaller levels of complexity. In programming terms, you would call that moving from the high-level to the low-level.

These are the general steps that any sizeable project goes through:
  1. Problem definition: Specifying the problem that you're trying to solve.
  2. Requirements: Explaining, in general terms and plain English, how you're going to go about solving it.
  3. Architecture: Using the requirements to start putting together a picture of how all of the bits and pieces of the program fit together.
  4. Construction: This is the actual programming part, writing the code for the system.
  5. Testing: Testing actually overlaps with construction, because you should be testing at every step of the way.
  6. Release: Releasing the program to the general public. Work doesn't stop here though, because you need to keep on adding features and fixing bugs!
In practice, it's not really possible to run from the top of the list to the bottom, step by step. As you start solving new parts of the problem, you start to understand it better and come up with new and better solutions - so you need to go back a little, and modify the earlier steps. This is called an iterative design process.

At the moment, the project is somewhere between the Requirements and the Architecture stages - there's still quite a bit of work to do before coding can begin!

So, that about wraps it up for today. If you would be interested in following the development of the project, speak up! If there's enough interest, we can move on to the next step: Requirements.

As previously mentioned, questions are welcome! :D

PS: Anybody who makes a contribution to the project, however small - even just a good design suggestion, or feature suggestions - will be listed in the program's credits for their help ;).

Made Sticky - Kronos
Last edited by Judas on 08 Dec 2007, 21:50, edited 5 times in total.
'One will rarely err if extreme actions be ascribed to vanity, ordinary actions to habit, and mean actions to fear.'
- Friedrich Nietzsche

'Do not argue with Judas, nube, that would be foolish!'
- D3PART3D
Anakha56
Forum Administrator
Posts: 22136
Joined: 14 Jun 2004, 02:00
Processor: Ryzen 1700K
Motherboard: Asus X370
Graphics card: Asus 1060 Strix
Memory: 16GB RAM
Location: Where Google says

Post by Anakha56 »

wow...

I wish I ahd some sort of experiance programming, good luck with your project. How graphical will your proggi be? As in what will your look and fell look like? Some of the POS systems I have seen are old DOS based screens! 8O

Also (by the sounds of it you are doing it this way just confirming) you are making it touch screen friendly?

I will watch this thread because our canteen system is touch screen based POS and it works well so would like to see yours when its finished :wink:
JUSTICE, n A commodity which is a more or less adulterated condition the State sells to the citizen as a reward for his allegiance, taxes and personal service.
Judas
Registered User
Posts: 2118
Joined: 17 Oct 2006, 02:00
Location: Stellenbosch
Contact:

Post by Judas »

Anakha56 wrote:wow...

I wish I ahd some sort of experiance programming, good luck with your project. How graphical will your proggi be? As in what will your look and fell look like? Some of the POS systems I have seen are old DOS based screens! 8O

Also (by the sounds of it you are doing it this way just confirming) you are making it touch screen friendly?

I will watch this thread because our canteen system is touch screen based POS and it works well so would like to see yours when its finished :wink:
It's going to be completely GUI based, with nice big buttons so it's touch screen friendly ;). The precise look and feel hasn't been decided on yet, but you can make some really flashy interfaces with Qt - for example, that's what's used on both Opera and Google Earth.
'One will rarely err if extreme actions be ascribed to vanity, ordinary actions to habit, and mean actions to fear.'
- Friedrich Nietzsche

'Do not argue with Judas, nube, that would be foolish!'
- D3PART3D
Anakha56
Forum Administrator
Posts: 22136
Joined: 14 Jun 2004, 02:00
Processor: Ryzen 1700K
Motherboard: Asus X370
Graphics card: Asus 1060 Strix
Memory: 16GB RAM
Location: Where Google says

Post by Anakha56 »

well if its used in Opera it gets my vote :P
JUSTICE, n A commodity which is a more or less adulterated condition the State sells to the citizen as a reward for his allegiance, taxes and personal service.
DAE_JA_VOO
Registered User
Posts: 12310
Joined: 28 Nov 2005, 02:00
Location: That other place
Contact:

Post by DAE_JA_VOO »

I'm definitely keen. I have no skill as a programmer (i wasn't too bad at Pascal back in school) but i'd love to learn a language like C++

Count me in! :D
That guy that used to mod cases. Now I take photos. True story.
Judas
Registered User
Posts: 2118
Joined: 17 Oct 2006, 02:00
Location: Stellenbosch
Contact:

Post by Judas »

DAE_JA_VOO wrote:I'm definitely keen. I have no skill as a programmer (i wasn't too bad at Pascal back in school) but i'd love to learn a language like C++

Count me in! :D
Excellent! :)

Not to worry, after this project you'll probably be a C++ guru ;).

If there are enough people interested in learning the language, it would be great if we could make the entire project a collaborative process - something of a baptism by fire into the open-source development world. I'll devote some time to teaching language basics (with the assistance of some other C++ devs, hopefully) before the coding gets under way, then any of the C++ beginners who are interested can help with some of the simple parts of the project, gradually increasing in difficulty as their skills grow.
Last edited by Judas on 08 Dec 2007, 21:47, edited 1 time in total.
'One will rarely err if extreme actions be ascribed to vanity, ordinary actions to habit, and mean actions to fear.'
- Friedrich Nietzsche

'Do not argue with Judas, nube, that would be foolish!'
- D3PART3D
Anakha56
Forum Administrator
Posts: 22136
Joined: 14 Jun 2004, 02:00
Processor: Ryzen 1700K
Motherboard: Asus X370
Graphics card: Asus 1060 Strix
Memory: 16GB RAM
Location: Where Google says

Post by Anakha56 »

i would be interested to learn however dont expect me to pick it up fast, if it involves maths then I struggle :P
JUSTICE, n A commodity which is a more or less adulterated condition the State sells to the citizen as a reward for his allegiance, taxes and personal service.
jee
Registered User
Posts: 19336
Joined: 03 Jun 2003, 02:00
Location: a hole so deep...

Post by jee »

brilliant idea.... :D
"Integrity" and "integer" both contain a Latin root meaning "whole; complete." The root sense, then, is that people may be said to be acting with integrity when their beliefs, words, and actions have a sense of unity or wholeness.
Judas
Registered User
Posts: 2118
Joined: 17 Oct 2006, 02:00
Location: Stellenbosch
Contact:

Post by Judas »

Anakha56 wrote:i would be interested to learn however dont expect me to pick it up fast, if it involves maths then I struggle :P
Not to worry, it's not half as mathematical as most people would have you think... I'm almost officially handicapped when it comes to maths - in matric, I scraped through standard grade maths with 36% - yet I got 92% for my programming practical. So if I can still pull it off, you shouldn't have a problem ;).
jee wrote:brilliant idea.... :D
Thanks jee! :D
'One will rarely err if extreme actions be ascribed to vanity, ordinary actions to habit, and mean actions to fear.'
- Friedrich Nietzsche

'Do not argue with Judas, nube, that would be foolish!'
- D3PART3D
Judas
Registered User
Posts: 2118
Joined: 17 Oct 2006, 02:00
Location: Stellenbosch
Contact:

Post by Judas »

For anyone interested in getting started with C++, I would highly recommend this tutorial. In fact, it's the tutorial that I started learning C++ from.

As far as the basics go, it's great - it explains them more succinctly and clearly than I possibly could. However, once it gets to the more complicated bits - around the polymorphism section - the explanations get a little sparse. I'd suggest starting from the beginning, and slowly working your up to Object Oriented Programming. The section on "Advanced Concepts" can be left out altogether. Some advice: it may look intimidating at first, but don't be put off ;). Once you get into the tutorial you'll be shocked at how easy C++ really is, I promise!

You'll need a C++ compiler in order to build the example programs - on Ubuntu it's as easy as installing the build-essential package; in Windows I would suggest downloading Bloodshed Dev-C++. From what I hear it's the best available Windows IDE, and it comes bundled with an excellent compiler.

IDE stands for Integrated Development Environment - it's essentially a glorified text editor with built in support for programming tools, and other nifty little features to help with programming. An IDE isn't strictly necessary, but it'll make life a little easier. For Ubuntu users I would suggest installing the Anjuta IDE, for Kubuntu users, KDevelop. (Both available from Synaptic or Adept).

If you run into any trouble, just post your questions here and I'll be glad to lend a hand :D.
Last edited by Judas on 09 Dec 2007, 00:16, edited 2 times in total.
'One will rarely err if extreme actions be ascribed to vanity, ordinary actions to habit, and mean actions to fear.'
- Friedrich Nietzsche

'Do not argue with Judas, nube, that would be foolish!'
- D3PART3D
DAE_JA_VOO
Registered User
Posts: 12310
Joined: 28 Nov 2005, 02:00
Location: That other place
Contact:

Post by DAE_JA_VOO »

Hmmm.... i dunno why but i'm very anxious to give this a go.

So, n00b question 1. I've installed the build-essential package, but where on earth do i find the app? :|
That guy that used to mod cases. Now I take photos. True story.
Judas
Registered User
Posts: 2118
Joined: 17 Oct 2006, 02:00
Location: Stellenbosch
Contact:

Post by Judas »

DAE_JA_VOO wrote:Hmmm.... i dunno why but i'm very anxious to give this a go.

So, n00b question 1. I've installed the build-essential package, but where on earth do i find the app? :|
The build-essential package only contains the very basic tools needed to actually compile something. If you want to check that everything is installed properly, just open up a terminal and type 'g++' - you should get output like this:

Code: Select all

jody@nerv:~/Programming/smartpos/docs/architecture$ g++
g++: no input files
(g++ is short for GNU C++ Compiler, it the compiler that we'll be using ;))

To actually get some graphical tools, try out Anjuta - it's a pretty nice IDE. It's got tonnes of features, but you won't need them all at this stage... All you'll need to do is:
  • Create a project
  • Type your code
  • Find the build command
  • Find the run command
I don't have Anjuta installed at the moment unfortunately, so I can't check exactly where the commands are, but they shouldn't be difficult to find ;).

EDIT: Alternatively, you can just type your code and save it in plain text files. If your program was saved in prog.cpp, you could compile it by running 'g++ prog.cpp -o myprog', then you could run it with './myprog'
'One will rarely err if extreme actions be ascribed to vanity, ordinary actions to habit, and mean actions to fear.'
- Friedrich Nietzsche

'Do not argue with Judas, nube, that would be foolish!'
- D3PART3D
DAE_JA_VOO
Registered User
Posts: 12310
Joined: 28 Nov 2005, 02:00
Location: That other place
Contact:

Post by DAE_JA_VOO »

Aha. Thanks man :)

Busy downloading Anjuta right now :)
That guy that used to mod cases. Now I take photos. True story.
PHR33K
Registered User
Posts: 779
Joined: 05 Sep 2004, 02:00
Contact:

Post by PHR33K »

Didnt read through all of it, but it sounds like a great idea, and if it weren't opensource, sounds like a damn good way to make allot of money.
I've never been fond of Qt.
stewy_w
Registered User
Posts: 486
Joined: 25 Sep 2003, 02:00
Location: Citta Del Cappo
Contact:

Post by stewy_w »

sounds interesting, count me in
Running Vista is like being in a candy store that only sells black liquorice at exorbitant prices. Oh, and you\'re only allowed to eat the candy in the store.
Judas
Registered User
Posts: 2118
Joined: 17 Oct 2006, 02:00
Location: Stellenbosch
Contact:

Post by Judas »

"Dude, check this out!" - A Version Control Primer
The fourth most important tool in the programmers toolbox is his version control software. For those of you wondering, his most important tool is a good compiler, second is his authentic Yoda lightsaber. and third is his LED binary wristwatch. :P

Version control software is incredibly useful. Essentially, it's a central repository for storing files that keeps every single version. For example, if I check a file out of version control, change it, and check it back in, both the old version and my new version will remain on the server. This comes in very handy if you commit code that breaks your program, because you can just roll back to an earler, working, version.

Althought that's arguably the primary use of version control, it doesn't stop there. Version control makes it easy for mutliple people to work on, or follow, a project. Once you've check the sources out (downloaded them from the server), at any time you can simply run the "update" command and the latest version of the source will be downloaded to your system. Also, if you have read/write access to the repository you can make changes to the downloaded files and run the "commit" command - then your modified files are uploaded to the server, and if I ran "update" my files would be updated to include your changes.

Checking out the SmartPOS sources:
Before you can check out the sources, you'll need to download Subversion - the version control software that we'll be using for this project. On Ubuntu, you just need to install the "subversion" packages. Windows users, I suggest downloading and installing TortoiseSVN

Once you've installed the required software, you'll need to create a folder somewhere to store the files that are about to be downloaded.

The checkout process differs slightly depending on your operating system. If you're using Windows, you'll need to right-click inside the directory, go to the new "TortoiseSVN" menu and select "Checkout". When prompted for the repository location, enter https://smartpos.svn.sourceforge.net/svnroot/smartpos/ . If promted for a user name, enter "anonymous". If you are using Linux, Subversion is command-line based. Open up a terminal, enter the directory and type:

Code: Select all

svn checkout https://smartpos.svn.sourceforge.net/svnroot/smartpos/
Subversion will now download all of the project's latest files for you. At this early stage, there's no actual C++ source code - you'll only see a directory named "doc", with all of the informal design documents in it.

You only need to checkout the sources the first time. Now that that's done, at any time you can go back to that folder and run the "update" command (Window: right click->TortoiseSVN->Update; Linux: "svn update"), and your files will be updated to the very latest version.

As you may pick up from the repository URL, the project is being hosted by SourceForge. On the project page, we have our very own forums, wiki, mailing list, bug tracker, documentation, file release section, and feature request tracker. None of these are being used yet, but they certainly will be later.
Last edited by Judas on 10 Dec 2007, 13:29, edited 1 time in total.
'One will rarely err if extreme actions be ascribed to vanity, ordinary actions to habit, and mean actions to fear.'
- Friedrich Nietzsche

'Do not argue with Judas, nube, that would be foolish!'
- D3PART3D
Slasher
Registered User
Posts: 7525
Joined: 23 Aug 2003, 02:00
Location: 5th rock from the sun.

Post by Slasher »

Sounds interesting.

I dont have much time atm with regards to assisting in the programming, but would love to follow. Also, would love to learn c++, even if I can offer no input. I have programmed in TP, VB.Net and C#... Thus I have some basics down to knack...

Nice idea, would love to see the outcome of this...
My BF2142 Stats:
Image


Slasher : Former member of www.PCFormat.co.za
I have reached the end of my near 5 year forum life. Farewell good days...

slasher (at) webmail (dot) co (dot) za
User avatar
rustypup
Registered User
Posts: 8872
Joined: 13 Dec 2004, 02:00
Location: nullus pixius demonica
Contact:

Post by rustypup »

nice idea...

just one question: for the sake of sanity, will you be touching on the essential OO docs, (Use Cases, etc)? - this may add a fair wack of time in preparation, but it will simplify the communication flow...
Most people would sooner die than think; in fact, they do so - Bertrand Russel
Hman
Registered User
Posts: 28520
Joined: 06 Oct 2003, 02:00
Processor: Intel i5 650
Motherboard: Asus P7H55-M LX
Graphics card: Gigabyte 7850 2GB OC
Memory: 8GB Kingston DDR3
Location: In my skin
Contact:

Post by Hman »

Cool, I've wanted to start learning C++. Looks like an opportune time.
"Every thinking man is a drinking man."


Member of the Barberton Tigers
Judas
Registered User
Posts: 2118
Joined: 17 Oct 2006, 02:00
Location: Stellenbosch
Contact:

Post by Judas »

rustypup wrote:nice idea...

just one question: for the sake of sanity, will you be touching on the essential OO docs, (Use Cases, etc)? - this may add a fair wack of time in preparation, but it will simplify the communication flow...
I'm in two minds about going in to that level of detail... Use cases would probably be helpful later, but since the use cases aren't very many or very complex, and most of the code will probably be written be me, they might not be strictly necessary.

The requirements specification will likely be a lot simpler than you would find on larger, more formal, projects. At this stage we've only got a basic non-functional requirements specification, and a basic features checklist for the functional requirements.

The architecture will need to go in to a lot more detail, at least down to the routine level for the major classes. Most of that still needs to be done though, at this stage the architecture only covers the various subsystems.
'One will rarely err if extreme actions be ascribed to vanity, ordinary actions to habit, and mean actions to fear.'
- Friedrich Nietzsche

'Do not argue with Judas, nube, that would be foolish!'
- D3PART3D
Judas
Registered User
Posts: 2118
Joined: 17 Oct 2006, 02:00
Location: Stellenbosch
Contact:

Post by Judas »

The Requirements Stage:
The amount of work done on requirements from project to project will differ greatly based on the size and formality of the project. This project is fairly large, so we'll need to specifiy the requirements to a reasonable level of detail.

Broadly speaking, requirements are divided in to two categories: Functional and Non-Functional requirements.

Non-functional requirements
Non-functional requirements are the general operating requirements of the system. How error resistant it must be, what kind of performance you're aiming for, etc. At this stage, the most important step is determining what your project's priorities are going to be. For any programming problem, there will be multiple ways of solving it; certain ways might result in better performance but make the code more difficult to maintain, other ways might make the program a little slower but more resistant to errors, etc. For this reason, it's necessary to decide up front what attributes are more important so that the coders know which approach to take.

For any program, you have these five primary aspects:
  • Performace: The operating speed of the program.
  • Robustness: How well the program must deal with errors.
  • Extensibility: Does the program need to be designed to accomodate changes?
  • Maintainability: How easy must it be to find and fix problems in the code quickly? Maintainability means writing the code in such a way that it's as simple as possible for any programmer to pick up, understand, and fix.
  • Security: The level of security that needs to be built in to the program.
As mentioned, most of these attributes are mutually exclusive. For example, highly optimised code is notoriously difficult to maintain.

For this project, these are the proposed priorities:
  1. Robustness. We're going to be dealing with a lot of mission-critical financial data, so preventing data loss and errors wherever humanly possible is key.
  2. Maintainablity. If any bugs are found, they're going to need to be fixed ASAP.
  3. Extensibility. There is a very good chance that extra functionality is going to be added later, so the program needs to be constructed with that in mind. This means making the system as modular as possible, so you can rip out pieces or add new pieces without causing trauma to the rest of the system.
  4. Security. The software will usually be used on closed networks, so security isn't a major concern. Security should be considered, and the most secure approach should be used, but only as long as it doesn't hurt the more important attributes.
  5. Performace. The great majority of businesses will only be running 3-5 terminals with the software, so optimising performance is not a priority at this stage.
If you've checked the sources out using SVN, you can find more info on the non-functional requirements in the docs/Non-Functional Requirements.txt file.

Functional Requirements:
Functional requirements specify the exact features of the system - how it is going to solve the problem that we started out with. On large, formal projects, you typically go into excruciating levels of detail. For this project, such a level of detail might not be necessary, but more detail than we currently would be desirable.

The features are stored in the docs/Features Checklist.txt file, if you'd like to take a look.

Here are the key features:
  • A move away from the old docket-printing method. Just printing out a docket in the kitchen has significant problems, for example when the orders are complete, the kitchen staff typically ring a bell or shout at the top of their lungs. If there isn't enough information with the order, the same thing. We propose putting simple terminals, with mind-numbingly easy to use interfaces, in the kitchen to display the orders. This would add a great deal more functionality. For example, when orders are complete the kitchen staff could tag them 'prepared', and it would be reflected at the front desk so that the waiter knows to go and collect the order. Likewise, the order could be tagged "Need more info", or anything else.
    Of course, docket printing will still be supported for the Luddites ;).
  • Per-user translations. When a user, be it a waiter, barman or manager, logs in to the system, the language should change to their preference. On logging out, it should switch back to the language determined by the system locale.
  • Automatic handling of specials. Most POS systems don't inherently support specials, so you end up with two items for each product, for exaple "300g steak - special" and "300g steak". The main problem with this is that the time-frame that the special is valid isn't enforced, and it's easy for the waiter to forget that the product is on special. SmartPOS should automatically use the special price if the product is on special, without intervention from the waiter.
  • Support for a built-in database (eg. SQLite), or enterprise databases (eg. MySQL, PostgreSQL) depending on the user's needs.
Reporting and stockkeeping features will also be offered, but these are the primary features that aren't to be found in other POS software :D.

This is the stage where we should decide on any other features that should make it in to the program. Can you think of anything else that would be useful in a POS system, or any flaws in current systems that need to be addressed?
'One will rarely err if extreme actions be ascribed to vanity, ordinary actions to habit, and mean actions to fear.'
- Friedrich Nietzsche

'Do not argue with Judas, nube, that would be foolish!'
- D3PART3D
stewy_w
Registered User
Posts: 486
Joined: 25 Sep 2003, 02:00
Location: Citta Del Cappo
Contact:

Post by stewy_w »

PDA support so that waiters can make orders directly from the tables :D
Running Vista is like being in a candy store that only sells black liquorice at exorbitant prices. Oh, and you\'re only allowed to eat the candy in the store.
Balze
Registered User
Posts: 140
Joined: 17 May 2005, 02:00
Location: Cape Town, Looking For Something
Contact:

Post by Balze »

My father owns a supermarket been trying to get a decent P.O.S sytem
that does not cost about 30grand , count me in!
"A person starts to live when he can live outside himself."

I am the flesh and bone of my own sword.
Steel flows through my body, and fire is what courses through my blood.
I have created over a thousand blades.
Unknown to death.
Nor known to life.
Many times I have withstood enormous pain to create thousands of weapons.
And yet, those hands that have braved so much will never hold anything.
So as I pray now, I call forth "Unlimited Blade Works
Judas
Registered User
Posts: 2118
Joined: 17 Oct 2006, 02:00
Location: Stellenbosch
Contact:

Post by Judas »

stewy_w wrote:PDA support so that waiters can make orders directly from the tables :D
:lol:

Now that would be cool, but it might be outside the budget of most restaurants ;). It actually wouldn't be too technically difficult to do something like that using QTopia...
Balze wrote:My father owns a supermarket been trying to get a decent P.O.S sytem
that does not cost about 30grand , count me in!
Excellent! Althought the program is geared towards restaurants, it'll be general enough that it'll only take a bit of tweaking to make it perfect for supermarkets.
'One will rarely err if extreme actions be ascribed to vanity, ordinary actions to habit, and mean actions to fear.'
- Friedrich Nietzsche

'Do not argue with Judas, nube, that would be foolish!'
- D3PART3D
User avatar
rustypup
Registered User
Posts: 8872
Joined: 13 Dec 2004, 02:00
Location: nullus pixius demonica
Contact:

Post by rustypup »

Judas wrote:We propose putting simple terminals, with mind-numbingly easy to use interfaces, in the kitchen to display the orders.
an excellent idea, but an old one. there are a number of practical reasons why this approach fails in the catering business, most of them revolving around the atmosphere found in the average kitchen. grease and humidity render touch screens useless in a very short space of time... ditto with keyboards.

because grease disolves rubber, effective sealing solutions are hellishly expensive.

paper is used because it's an inexpensive system which works well enough, not perfect, but usable. this system would have to address these issues before attempting to sell into this market...
Most people would sooner die than think; in fact, they do so - Bertrand Russel
Post Reply