upmin / upmin-admin-ruby

Framework for creating powerful admin backends with minimal effort in Ruby on Rails.
MIT License
754 stars 66 forks source link

Basic dashboard #98

Closed mbrookes closed 9 years ago

mbrookes commented 10 years ago

What MVP level spec did you have in mind for this?

joncalhoun commented 10 years ago

I would probably start with a bar graphs that shows a model, grouped by created_at per month. eg:

Users per Month
      _
_  =  =  =
J  F  M  A

Where J is January, F is February, etc.

Longer term I expect we will probably want a basic grid (so graphs can be defined as 2x2, 4x2, etc), more graph types, and a way to define custom axis for graphs. I don't know where these would be defined, or anything like that yet, so if you want to sit down and think through some of that first you can, but it definitely doesn't need to happen before a very basic MVP is built.

mbrookes commented 10 years ago

Like this?

screen shot 2014-11-05 at 04 34 16

joncalhoun commented 10 years ago

Looking good. How do you decide what data to show?

On Thu, Nov 6, 2014, 9:02 PM mbrookes notifications@github.com wrote:

Like this?

[image: screen shot 2014-11-05 at 04 34 16] https://cloud.githubusercontent.com/assets/357702/4947333/db393a5c-6621-11e4-869e-e7a1d58a2e38.png

— Reply to this email directly or view it on GitHub https://github.com/upmin/upmin-admin-ruby/issues/98#issuecomment-62085153 .

mbrookes commented 10 years ago

At the moment it's showing the created_at grouped by month bar-chart for Upmin::Model.all - [AdminUser] (the bottom three bar-charts in this example). It's showing all records, so a model with lots of history would have lots of bars. Need to decide whether to restrict the date-range by default (and allow customisation), or to select the grouping based on the time-range of the history.

The AdminUser graphs (top two) are a special case, as there's no guarantee that there's a User model. The intention is that if there is, and the necessary fields are there (:created_at, :last_sign_in_at), then the graphs are shown (or just a bar chart for created_at). That logic isn't there yet.

The cohort-retention scope and view-helper currently lives in the User model in the parent Rails app - I need to figure out how and where to add it to UA. Any pointers?

mibamur commented 10 years ago

What about to add PaperTrail. Last changes - https://strukturedkaos.github.io/kickdrop-drops/drops/timeline/

mbrookes commented 10 years ago

Hi @mibamur, that's something I'd thought about, both for the dashboard, and also on a per-model basis. I'd like to get the basic dashboard done first, then enable it to be configured / customized, and then think about what additional dashboard features belong in the Upmin default dashboard, and what might simply be something you add to a custom Upmin dashboard view in the parent Rails app.

mbrookes commented 10 years ago

Quick update - although I made some progress integrating it into the framework, I've dropped the User cohort retention chart for now to concentrate on the default charts.

screen shot 2014-11-13 at 10 52 08 pm

These now select the most appropriate grouping (by hour, day, week, month etc.) dependent on the time-range of the source data. The title and description also adjust.

One challenge is that unlike line-charts, the (google) column / bar chart doesn't format the date strings according to the grouping, but takes them as given.Haven't tried with HighCharts yet.

mbrookes commented 10 years ago

Okay, I think the dashboard code is ready for its first public airing! :shipit:

I'd really welcome feedback, good or bad! :sweat_smile:

SeanLF commented 9 years ago

:+1: Looks good! Any updates?

mbrookes commented 9 years ago

It's pretty much code-complete (albeit with the limitations mentioned above), but lacking tests. I'm no longer actively involved with upmin-admin, but if you'd like to fork and add some basic tests, I'll gladly merge and push a new gem. Feel free to tweak any code that is lacking or add features you need.

mbrookes commented 9 years ago

Merged and released (without tests) with PR #177