Skip to content

Electronic Payment System for Festivals using NFC Wristbands

License

Notifications You must be signed in to change notification settings

mhcp6/stustapay

 
 

Repository files navigation

StuStaPay

Electronic Payment System for Festivals, developed for StuStaCulum

Use NFC wristbands to quickly pay at events!

StuStaPay logo

Idea

  • Free software digital payment system for festivals
  • Every user has a NFC chip (in their wristband)
  • Users can top up their credit via Cash, card or online payment services
  • They can buy products at points of sales, where their credits are deduced
  • Designed to comply with German fiscal laws (digital signatures with TSE)

Components

Core

All transactions go through the core.

It provides library functions to process changes in the database.

The database ensures transaction-safe handling of the payment processing logic. It's the source of truth for account funds, order processing and offered products.

Terminalserver

API contacted by point of sale terminal requests, uses features from the core.

Administration

API contacted by the management interface, uses features from the core.

TSE signatures

All transactions need to be signed by a federally approved security module (as defined by Kassensicherungsverordnung - KassenSichV)

App

  • Operated at points of sale
  • Is connected via HTTP calls to StuStaPay core
  • Registers customer's orders
  • Can scan and validate NFC tags

Webapps

Each one runs on separate Python webserver, which talks to the core database.

Administration site

Configuration of products, cash desks, accounts, ...

User Self Service Portal

  • Top up account with online payment
  • Get payment receipts
  • Pay back money after the event

Tech stack

Core

  • Python
  • PostgreSQL DB
  • asyncpg
  • FastAPI
  • uvicorn

TSE integration

  • TSE hardware module

Ordering Terminal

  • Android telephone with NFC reader
  • Kotlin
  • jetpack compose

Webapps for Management and User Self-Service

  • react
  • nodejs

License

Released under the GNU Affero General Public License version 3 or later, see authors and license for details.

About

Electronic Payment System for Festivals using NFC Wristbands

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages

  • Python 35.8%
  • Kotlin 31.1%
  • TypeScript 30.0%
  • PLpgSQL 2.1%
  • TeX 0.4%
  • MDX 0.2%
  • Other 0.4%