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
- Resources We Will Need
a. Raspberry Pi
b. A monitor for the signage display
- Tech Stack
- 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:
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
- 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