Coder Social home page Coder Social logo

stampos's Introduction

StamPOS

This is a bar system designed for venues where you know your customers. It has the following goals:

  • So user friendly, that the most atechnical person in your group can still order a drink
  • Drastically reduce the amount of money your customers owe you
  • Automate the administrative tasks of running a bar as much as possible

User friendly

Click on your name, click on the products you want to order, press "Confirm" and you're all set. It can't get much more user friendly than this.

Reduces the amount your customers owe you

In most systems, people start with 0 debt to the bar, and with every drink, this increases. Then after a while, people pay their debt and they have 0 again. This means that in any point in time, the bar is owed quite a bit of money.

In StamPOS, this works differently: people are expected to have credit with the bar. When they run out, they will be blocked, they can only order during the same weekend, but that's it. They could just pay their bill, but that means they can only order for 1 weekend again. It's handier for your customers to wire more money than they actually owe, so they can order for more than just 1 weekend.

In the off chance a customer hasn't paid, but bar personell still wants to allow ordering for him/her, there's an unblock functionality.

Automates administrative tasks

The following is automated:

  • Sending an e-mail to all applicable users with their balance with the bar
  • Determine which users have paid and which amount (using an export of internet banking)
  • Sending a weekly e-mail to the owner of the bar with a backup of the database and a list of all users and their balance

Installing

  • Download and install Tomcat 8. For most convenience, set the port number to 80
  • Download the latest version of StamPOS, rename it to ROOT.war and deploy it to Tomcat. You can do this by placing it in /webapps in the Tomcat installation directory, or by using the built-in manager.
  • Go to localhost to see your installation :)

stampos's People

Contributors

cristan avatar

Stargazers

Vince van Oosten avatar Harm Hoogeveen avatar  avatar Jeroen van Heel avatar

Watchers

 avatar James Cloos avatar Harm Hoogeveen avatar

Forkers

harmhoog

stampos's Issues

Don't allow debit for specific users

You're bound to run in to customers where paying is really troublesome. For this, you should be able to indicate they can't have any credit.

For this you'll need 2 features

Indicating that a user can't have any credit
This should be a regular boolean property of a customer.

Disallow ordering when applicable
After determining whether the user can order at all, we should now check if the user is allowed to have a debit, and when he/she doesn't, we should disable any products which would make this user have a credit below โ‚ฌ0. This needs to be done every time a user is selected, a product is added or a product is deleted.

Checking server side
To prevent hacking attempts, we should not only check client side, but server side as well. If a user like this creates a transaction which would cause her/him to have a debit, the server should return an error.

Use more modern code

The current code is based of grails 2 and the project is created by Groovy/Grails Tools Suite. Especially the latter is an issue because this hasn't been maintained in years and the official download link is now dead.

Grails 3 would be a great option since it's build on top off Spring Boot, so IDE support should probably be fine. You could even get it to work with Kotlin although the main advantage of this route would mostly be that you don't need to rewrite that much of the code.

Another option is to skip Grails altogether, and just make a Kotlin Spring (boot) project. You'll miss out on the nice features to persist items in the database, so you'll have to manually do the hibernate work (or use some other method to persist data).

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.