Difference between revisions of "BarSystem"

From Hackerspace ACKspace
Jump to: navigation, search
m (set project picture)
m (fixed design link (might need to move to github, this is too messy))
Line 27: Line 27:
  
 
* aes256cbc has been working on the database part, and will take care of the rest of the backend (in php), with a json formatted API.
 
* aes256cbc has been working on the database part, and will take care of the rest of the backend (in php), with a json formatted API.
[[Media:ackbar.zip|MySQL workbench database design]] (rename to .mwb)
+
[[Media:Ackbar-160516.zip|MySQL workbench database design, and generated SQL]]
[[Media:Ackbar.tar.gz|ACKbar]]
 
  
 
== frontend ==
 
== frontend ==

Revision as of 13:21, 23 September 2016

Project: BarSystem
Featured:
State Stalled
Members Multiple
GitHub No GitHub project defined. Add your project here.
Description Building our own BarSystem
Picture
Bar flowchart.png

synopsis

Replace the existing (shell script) bar system with a more future proof and maintainable system that apart from letting users having an account, also helping us with inventory management and cash audits. The current system is more than two years old, hard to do maintenance on, and recently, the disk is starting to transform into an angle grinder.

design

Wild ideas and suggestions on the discussion page

hardware

  • M: cheap and disposable system hardware, like a Raspberry PI
  • M: barcode scanner (for products, automatic user login and/or administrative assistance)
  • M: keyboard input (for user login, administrative tasks)
  • S: multilingual (en/nl at least, de optional)
  • S: iButton reader (for secure automatic user login and/or administrative tasks)
  • C: touchscreen (for ease of use)
  • W:

database and backend

  • M: able to do transactions without having a registered username with ACKbar credit
  • M: able to make backups (and restores) easily
  • M: json API for at least the basic functions
  • S: able to generate reports (sold products, inventory, cash)
  • aes256cbc has been working on the database part, and will take care of the rest of the backend (in php), with a json formatted API.

MySQL workbench database design, and generated SQL

frontend

  • M: Scan a product and buy it
  • S: administrative: add/edit/remove products
  • S: possibility for (automated) inventory and cash audits


  • Prodigity is thinking of writing the frontend in Python
  • Xopr is thinking of using html/javascript
  • Stuiterveer will take care of the frontend, including localization

current (old) system

We want to have less effort with the cash register. Currently we use a pay-direct system. People generally pay for a single item with a 5 or 10 euro note which quickly leads to the amount of change being low.

The general idea is to create a system where you can have an account and prepay for your stuff. Then use a barcode/touchscreen system to withdraw the prices from the account. This way we can reduce the need for the large amounts of change.

Also it would be nice to have less effort with counting the cash register and stock, which currently takes approx. 15 min per day.

We could use one of the existing systems used by other spaces, but we feel we really should create our own version. As of current there are 2 systems being developed. The first is in bash-shell , the second is in LOLcode http://lolcode.org/ We have got a dedicated OpenBSD machine (HP ePC C10) with a barcode scanner and a touchscreen to make it as easy as pie to use this system. The barcode scanner is working, the touchscreen works but the touch based BarSystem isn't finished yet. Unfortunatly we haven't found any (proper) documentation yet :\

Functional Design

Must have

  • barcode scanning
  • add products
  • deposit money
  • account
  • keyboard input
  • cancel any operation
  • admin functions
  • cud functions

Should have

  • touchscreen
  • voorraadbeheer
  • kasbeheer

Could have

  • names with spaces
  • tab completion
  • multi-language

Wont have

  • Internet connection

Flowchart

Flowchart for the Bar System