The goal of milestone two is to figure out how we are going to design the project including the architecture, technologies, and the goals for the product based off of previous related work in signage.

  • Related Work (also found here)

As a group, we each researched a related project to consider how we can make our project different from theirs:

a. PiPresents

b. PiSignage

c. Screenly

d. Optisign

e. Python Slideshow

  • Resources We Will Need

a. Raspberry Pi

b. A monitor for the signage display

  • Tech Stack

Vue.js Go Docker Travis CI

  • Architecture: Front-End

a. Split into individual widgets which are updated individually

b. Each widget has a web socket connection to the backend

c. All data manipulation should be handled on the backend

d. Widgets live in a grid

e. View mode

Below displays what our front-end looks like with a grid of different widgets:

Picture of current UI

f. Edit mode - allows user to resize, move, and add/delete new widgets

  • Architecture: Back-End

a. For every frontend widget, we will have a backend data source

b. The server’s APIs are responsible for fetching data and parsing it

Picture of Pi-sign architecture

  • MVP: Minimum Goals

a. Display a grid of widgets

b. Allow user to move, resize, and add/delete widgets

c. Widgets for MVP: Time, System Info, Weather, Picture slideshow and Twitter widget

d. Add API keys to widget config from frontend

e. Real time updating of data with streaming/web sockets

f. Tests for Frontend and Backend

  • MVP: Ultimate Goals

a. Widget customizability such as, Transparency, Size and Input extra data

b. Personalized student machine widget

c. Server status widget

d. Easy widget generation (frontend/backend)

e. Auto generate API specs from code and auto test Vue code against that spec