zorbash

zorbash

Kitto: A framework for interactive dashboards

I created Kitto a framework for dashboards inspired by Dashing.

The distributed characteristics of Elixir and the low memory footprint (compared to Ruby/Rails) make it ideal for a dashboard server. It feels familiar to users of Dashing and provides a DSL to define jobs.

# File jobs/random.ex
use Kitto.Job.DSL

job :random, every: :second do
  broadcast! :random, %{value: :rand.uniform * 100 |> Float.round}
end

The front end uses React/Webpack (which are really widespread) so it should be easy to dive in and code widgets without having to learn yet another framework.

Currently i’m expanding the wiki and general documentation so to make it as straightforward as possible to use.

You’re welcome to try it, make suggestions and if you evaluate it positively, help me get it in awesome elixir.

Most Liked

zorbash

zorbash

New Security release for Kitto.

The latest v0.5.2 release contains various security fixes listed below:

3 security vulnerabilities have been disclosed to us by @griffinbyatt

  1. Directory Traversal
  1. XSS in 404 page
  1. DoS from query parameter conversion to Atoms (since they’re not Garbage-Collected)

https://github.com/kittoframework/kitto/commit/5323717e4ac978144bcf89169dce9d79a4c2bdb6

Please mind to upgrade.

Special thanks to @davejlong and @griffinbyatt for the their swift and responsible work.

vfsoraki

vfsoraki

Have you looked at Drab?

With this, you could eliminate React dependency, just clean Elixir code.

Just a thought though :slight_smile:

zorbash

zorbash

I had plans from the beginning to diverge from Dashing/Smashing and that’s why there’s nowhere in the documentation a promise for compatibility between the projects. Building it on some of the conventions of Dashing though can hopefully make people using it more productive and eager to port existing dashboards to Kitto (and even find an excuse to introduce Elixir at work :innocent:)

Concerning your question abou the text widget, you’re right about it having only one dynamic attribute at the moment.
Changing it to have more or all of its attributes dynamic is quite simple and i wouldn’t mind if the default generated text widget
had all of them dynamic (feel free to submit a PR about this).

Keep in mind that even core widgets are generated in any new dashboard app instead of being bundled somehow to allow the user to see the source code, and adapt it accordingly.

zorbash

zorbash

@vfsoraki Thanks for the suggestion, it’s a really interesting project! But has phoenix as a requirement and Kitto is not built on phoenix, it just uses Plug, also uses Server Sent Events instead of WebSockets.

Where Next?

Popular in Libraries Top

OvermindDL1
Been making an MLElixir thing (not released yet…) for fun in spare time in the past day. I’m just trying to see how much I can get an ML...
132 13487 106
New
versilov
Could not wait for the missing Elixir ML libraries to appear, so, I wrote one myself, taking https://github.com/sdwolfz/exlearn as a foun...
New
pkrawat1
Hey guyz We at @aviabird are working on a payment library in elixir/phoenix. We are targeting March 2018 to add 56 Gateways to it. Have...
New
kevinlang
Hey all, We have made an Ecto3 Adapter for SQLite3, ecto_sqlite3! We have successfully on-boarded the full suite of integration tests (...
New
mathieuprog
Hello :wave: Allow me to introduce you to Tz, an alternative time zone database support to Tzdata. Why another library? First and fore...
New
entone
ExARI An Elixir library for interfacing with Asterisk using the ARI protocol. Be sure to check out the example application https://git...
New
josevalim
EDIT: since Ecto 3.0 final version is out, this post was amended to use the final versions in the instructions below. Hi everyone, We a...
New
michalmuskala
Another small library today. PersistentEts Hex: persistent_ets | Hex GitHub: GitHub - michalmuskala/persistent_ets Ets table backed by...
New
woylie
Flop is an Elixir library that applies filtering, ordering and pagination parameters to your Ecto queries. offset-based pagination with...
New
mischov
import Meeseeks.CSS html = HTTPoison.get!("https://news.ycombinator.com/").body for story <- Meeseeks.all(html, css("tr.athing")) do...
New

Other popular topics Top

Patoshizzle
After calling mix ecto.create I get this error: 17:00:32.162 [error] GenServer #PID<0.412.0> terminating ** (Postgrex.Error) FATAL...
New
fireproofsocks
I’m working on defining a simple Ecto schema for a table (in PostGres), but I don’t see where I can define a column as NOT NULL. Conside...
New
chrisalley
ExUnit now has describe blocks which is a welcome addition coming from RSpec. In the docs, it states that nested hierarchies of describe ...
New
vonH
In asking this question I am more interested about the expressiveness of the language itself and less concerned about the availability of...
New
openscript
Hello! Sorry for this astonishing simple question, but I’m really stuck. I try to set up the intellij-elixir plugin, but I don’t know ho...
New
ycv005
I have followed this StackOverflow post to install the specific version of Erlang. And When I am running mix ecto.setup then getting fol...
New
malloryerik
Hi, this is for people who, like me, have had some friction using .html.heex templates in VSCode. The solution seems to be, in a hyphena...
New
quazar
How to set Jason to encode all fields in ecto schema, I don’t care about security and implementing only is taking long list of attributes...
New
polypush135
As many of you may have realized by now (sorry for all the posts here) I’ve been working on a db problem where I’m trying to aggregate a ...
New
alice
Hey, Just curious what are the main benefits of Elixir compared to Clojure? When is Elixir more useful than Clojure and vice versa? Th...
New

Sub Categories:

We're in Beta

About us Mission Statement