Skip to content

Software components

Michel Racic edited this page Jun 5, 2018 · 7 revisions

Brainstorm about the Software components we need.

Server side

Must have

Web or Mobile frontend

  • #4 Ability to scan QR code or barcode with badge serial
  • #5 Ability to Enter the name displayed and register it on the backend
  • #6 Opt Out of communication functionalities so only Name and Orga broadcasts will be received but no data sent
  • #7 Ability to send messages to a specific device or to the broadcast API

Backend with API

  • #5 Store registration data
  • #8 Each registered device has a message bus and there is one broadcast message bus
  • #23 API endpoint for sending messages (to be used from frontend), receiver and txt-content
  • #24 API endpoint for receiving messages, this will get called with the device ID as parameter and the response will be either empty list or a list of messages to be displayed. It will look for new message in the personal message bus and it will fetch all new messages from the broadcast message bus. Messages have a type, ACTION=methodName(parameter) the method with the given parameter allows for different actions triggered from the message it receives.

Nice to have

Web or Mobile frontend

  • #21 Small Application that allows anonymous users to scan the serial QR and set what name should be displayed (dependent on firmware ability to redisplay serial QR)
  • #22 Voting application (dependent on firmware to have interactive voting queries)

Firmware

Must have

Libraries

  • #9 write simple libraries to talk to the sensor board and get all the data

Basics

  • #10 Monitor buttons and trigger action accordingly

Display functions

  • #3 If no display name set yet, show QR code or barcode with serial number for scanning
  • #11 When action displayName gets received, it will need to display this name accordingly
  • #12 when action messageDisplay gets received, it will scroll the message on the display until one of the buttons gets pressed, after that it will resume in standard mode which displays the name.
  • #13 With a button press, display the MakeZurich logo
  • #14 With a button press, display the high level schedule of the hackathon
  • #15 With a button press, display all sensor data

Communication

  • #16 Wake up if sleeping and pull new messages from the backend, if there is one display it and otherwise go back to sleep
  • #17 Connect to Kraftwerk wifi

Nice to have

Display functions

  • #18 With a Key press combination, display the serial QR again
  • #19 With a button press, cycle trough the sponsor logos. This might be challenging because of the available space on the badge itself
  • #20 Simple pong, snake, TicTacToe or similar game which makes use of the buttons and is suitable for the EPD