Skip to content

Onlineweb payme nibble

Nicolas edited this page Nov 4, 2015 · 19 revisions

Payme

Payment system for the Online office.
User beeps their card. A tablet displays a webpage with user info and saldo and allows the user to perform an operation(Select product, Add money, subtract money, undo previous operation)
Integration in Onlineweb for adding money using Stripe.

Functionality

  • Adding and subtracting money
  • Undo / revert transaction
  • Keep stock
  • Buying products
  • Possibility for users to add money using Stripe
  • Adding/Setting RFID (Might have to be done in Onlineweb as it should be authenticated)
  • Notify trikom when supply is running low

Objects

Product Category

  • Name

Product

  • Name
  • Price
  • Description
  • Amount
  • Available (If the product should be displayed to the user)
  • Product Category

Transaction

  • User
  • Money diff (minus for subtraction, plus for addition) (Optional)
  • Product (Optional)
  • Timestamp

OnlineUser

  • Add saldo field

Backend

  • Add/remove/edit products in the admin panel/dashboard
  • Tab in my profile where the user can see transaction history, saldo and add money to their saldo using Stripe.
  • Rest API

Front end

Rest points

  • /api/v1/inventory/ - {"pk", "name", "price", "description"}
  • /api/v1/usersaldo?rfid=[RFID] - {"pk", "first_name", "last_name", "saldo" }
  • /api/v1/transactions/ - POST{"user": [pk], "amount": [amount]} - Adds or subtracts the users balance based on the amount.
  • /payme/buy - {rfid, product_id } - Subtracts the products price from the user, subtracts the products amounts.
  • /payme/undo - { rfid } - Undoes the previous transaction for the user.

Design

Views

Bilder til papir mockup

  • Front page
    • Beep card message
  • User beeps unknown card
    • Rfid unknown - authenticate with user
    • Inform the user that the rfid is connect to the onlineuser (events etc)
    • Cancel button
  • Users beeps known card
    • Name and saldo
    • items - select multiple (name, price, description)
    • History (Low pri)
    • Display total price
    • Add cash
    • Remove cash
    • Buy
    • Cancel
  • User buys
    • New saldo
    • Price
    • Bought items
    • Undo button
    • Finish button (Exit screen automatically after x seconds)

Hardware

Either:

TODO

  • Design
  • Security
    • Secure the rest end point (token, white list MAC/IP, certificate or something similar)
    • Restrict the tablet to a webpage.

Other things?

  • Reporting system for trikom when they are running out of for instance cups or forks or something similar.