Creating a dashboard

Creating a dashboard

On the wall mounted TV in our office a dashboard is displayed. At a glance we can see what the current tasks for each member of our team are, which important events are coming up, which music is playing, if it will rain in the next 30 minutes, ... and much more.

In this 30 minute demo I'll explain how we leveraged both Laravel and Vue to build the dashboard. After demonstrating the dashboard itself we'll take a deep dive in the code. We'll take a look at the entire flow: the grid system, broadcast events, the Pusher service, some cool Vue mixins and much more. After this talk you'll be able to setup a dashboard using our code available at https://github.com/spatie/dashboard.spatie.be

A1b4b398630bbd32b77a82cbc37fae9a?s=128

Freek Van der Herten

July 27, 2016
Tweet

Transcript

  1. 2.

    About me Freek Van der Herten Partner & developer at

    SPATIE @freekmurze https://murze.be
  2. 3.

    Since 2003 Websites, applications and webshops Team 4 developers, 1

    manager Specialization Laravel development
  3. 5.

    Open source software ± 80 packages on Packagist + 700

    000 downloads A lot of benefits: learning, forced to write documentation and tests, showing the quality of our work, eating our own dogfood
  4. 8.
  5. 9.
  6. 10.
  7. 12.
  8. 13.
  9. 14.
  10. 15.
  11. 16.
  12. 17.
  13. 18.
  14. 19.
  15. 20.
  16. 22.

    The dashboard is a single HTML page Displayed by a

    full screen browser Without full page reload Each tile wil be updated by JavaScript Each tile has it’s own update frequency In short
  17. 24.

    Render the initial page Fetch data from external API’s (scheduled)

    Broadcast events when new data has arrived Laravel
  18. 26.

    Provides full-duplex communication channels over a single TCP connection Transporting

    events from server to the browser In realtime Secure Paid service Pusher
  19. 29.

    Lot of ♥ from the Laravel community Easy to learn

    Each tile is a component Listen for incoming events Update the tile Vue.js
  20. 30.
  21. 35.

    Raspberry Pi 2 Powered by the USB port from the

    TV Uses Raspbian Jessie Boots into Chromium 51 in fullscreen mode Setup
  22. 38.
  23. 40.
  24. 41.

    Credits Willem Van Bockstal @willemvbockstal Looks + grid system Sebastian

    De Deyne @sebdedeyne Scrutinising + JS wizardry