Home - Smashing/smashing GitHub Wiki
Introduction
Smashing is a Sinatra based framework that lets you build beautiful dashboards.
Key features
- Use premade widgets, or fully create your own with scss, html, and coffeescript.
- Widgets harness the power of data bindings to keep things DRY and simple. Powered by batman.js.
- Use the API to push data to your dashboards, or make use of a simple ruby DSL for fetching data.
- Drag & Drop interface for re-arranging your widgets.
- Host your dashboards on Heroku in less than 30 seconds.
This is a fork of dashing project which was created at Shopify for displaying custom dashboards on TVs around the office.
Why use Smashing when there are plenty of cloud based dashboards out there?
Good question! There are tons of great options available, such as Geckoboard and Dashku. However, each have their own limitations.
Some requirements that are noteworthy:
- Use your own authentication. Many online platforms give you private URLs to your dashboards. Those can be tricky to remember, and can accidentally fall in the wrong hands. With Smashing, you can add whatever auth you want. We use Google Auth.
- Be completely customizable. We didn't want to be limited by the widgets that are available on other platforms. We also wanted all of our code to be in version control, and editable in whatever IDE we want.
- Keep instances of the same widget in sync. Many online dashboards give unique ids for every widget instance you create. This means that if you want to update 3 identical widgets showing 'daily sales', you'll need to use the API to push the value to all 3 instances. With Smashing, identical widgets all have the same id, meaning less duplication, and complete synchrony across all dashboards.
Additional Widgets
Here's a list of awesome widgets you can include in your dashboards. Feel free to add your own!
How To's
- How To: Add authentication
- How To: Deploy to Heroku
- How To: Run Dashing on Puma
- How To: Send HTML data to your widgets
- How To: Run on a different port, or in production
- How To: Debug incoming widget data
- How To: Change the default dashboard
- How To: Run smashing on a sub path
- How To: Update font awesome fonts from version 3 to 4
- How To: Prevent a job from overlapping with itself
- How To: Share your widgets
- How To: Send Mysql data to your widgets
- How To: Cycle through Multiple Dashboards
- How To: Prepare data for a graph widget
- How To: Define a data model and store history data to database
- How To: Drive Smashing widgets with PHP
- Use Docker to run Smashing