Giter Club home page Giter Club logo

teamchatviz's Introduction

⚠️⚠️⚠️ DEPRECATED: The new home is now here

#teamchatviz

by moovel lab and moovel dev team

#teamchatviz enables you to explore how your Slack team works:

  • channel heartbeat
  • people land
  • channel land
  • frequent speakers
  • messages & reactions
  • emoji timeline

Client app is built with React and JSPM. Visualisations leverage react-vis and d3. Server is written in ES6+ using Koa 2 and Babel. PostgreSQL is used a database with the help of pg-promise.

Nota bene: #teamchatviz is not created by, affiliated with, or supported by Slack Technologies, Inc. Please comply with your applicable data protection and labour law regulations when using our tool.

Project Page

See the project page moovel.github.io/teamchatviz for more infos, screenshots and a screenrecording.

Online Demo

Online demo app under teamchatviz-demo.moovel.com (with fake Slack team data, generated with Faker.js).

Currently supported browsers: latest Chrome/Chromium, Firefox or Safari.

Running your own instance of #teamchatviz App

  1. Go to api.slack.com/apps/new and create a new app. Go to the App Credentials tab of the newly created app to get client id and client secret. Specify the following Redirect URI for your Slack App: http://<hostname of your server>/api/auth/slack/callback
  2. Create a Heroku instance of #teamchatviz using the Deploy to Heroku button below. Specify the choosen hostname, client id and client secret during the creation of the Heroku instance.
  3. Navigate to http://<hostname of your server> and press Add to Slack button. Grant all required permissions to the Slack app that you created on step #1.
  4. The data about your team will be loaded in the background and the visualizations will be available soon.

Run on Heroku

Deploy

Never heard of Heroku? Here's how to install it: https://youtu.be/8lzdCWoiDbY

Run with Docker

See docker image by Xqua

Development Setup

You need a recent Node JS version (4+) installed and JSPM 0.17 Beta (npm install jspm@beta -g).

  1. git clone [email protected]:moovel/teamchatviz.git and cd teamchatviz.
  2. npm install - install server npm dependencies.
  3. cd client && npm install && jspm install - install client dependencies.
  4. cd ...
  5. Create .env file with the following content:
PORT=3333
SLACK_CLIENT_ID="<client id of your slack app>"
SLACK_CLIENT_SECRET="<slack app secret>"
DATABASE_URL="<postgresql database URL e.g. postgres://teamchatviz:teamchatviz@localhost/teamchatviz>"
PUBLIC="false"
ANONYMIZE="false"
SESSION_SECRET="secret"

If PUBLIC === true the data loaded into the system will be public and will not require authentication via Slack. If ANONYMIZE === true the data loaded into the system will be replaced with the fake data using Faker.js. Anonymization will happen only on the initial data loading and before the data reaches the database.

If PUBLIC === true, Add to Slack button on the Main page is hidden and login is disabled. If you change the PUBLIC setting for an existing instance, the changes will apply only after a restart of the server.

  1. Create database as described in the next section and apply database migration by running npm run up.
  2. npm start - start the server.
  3. Open http://localhost:$PORT in your browser.

Create a PostgreSQL database

In order to create a database in PostgreSQL you need to start psql client. On Linux systems you can run sudo -u postgres psql for this. On OS X you can start it via the UI of Postgres.app.

Then you may run the following commands to create a user called teamchatviz with the password teamchatviz and a database called teamchatviz:

CREATE DATABASE teamchatviz;
CREATE ROLE teamchatviz WITH LOGIN CREATEDB PASSWORD 'teamchatviz';
ALTER USER teamchatviz VALID UNTIL 'infinity';
ALTER DATABASE teamchatviz OWNER TO teamchatviz;
GRANT ALL ON DATABASE teamchatviz TO teamchatviz;
\c teamchatviz
ALTER SCHEMA public OWNER TO teamchatviz;

Testing

npm test

Team

Acknowledgement

See the full list of dependencies in the client's package.json and server's package.json.

LICENSE

LGPLv2.1

teamchatviz's People

Contributors

floredc avatar florianporada avatar kant avatar orkon avatar rraapphhaaeell avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

teamchatviz's Issues

[Frontend] Dropdowns

  • close dropdowns if the user clicks somewhere else on the page (same close pattern as big page menu)
  • wrong element, see visual layouts for correct one
    screen shot 2016-07-06 at 09 22 44

[Frontend] emoji timeline

  • can I have more bars for "last 30 days" and "all time"? Seems to be plenty of space ... "last 10 days" = 10 bars, "last 30 days" = 30 bars, "all time" = more (if possibel)
  • left list, missing channel # prefix
  • missing "back" button, left of page title
  • missing time period info (next to channel title)
  • update footer, see #25

[Frontend] people land

  • zoomed in map, panning is odd/broken
  • mouse double click on map should zoom in
  • if map is zoomed in dot sizes should adjust size, become bigger (now they become smaller)
  • missing, big tooltip person details (yield via click on person dot in map)
  • missing, select person in left list via clicking on list item
  • "current user" should always be the first list item e.g. "Oleksii Rudenko (you)"
  • "current user" should always be highlighted in map (bigger dot)
  • person names search should grey out all not found ones
  • missing "back" button, left of page title
  • missing groups control
  • if a person does not have a profile pic, show just grey dot (hope the slack API gives this info)
  • use First and Last names in left list (and not the username)
  • missing zoom/reset control, map bottom right corner
  • zoom in/out with scroll gesture doesn't work 100%, seems to be contradicting with page scrolling (if mouse is not over a viz element of the map)
  • update footer, see #25
  • "selected user" should be highlighted in map (bigger dot)

[Frontend] Home

  • add disclaimer: "#slackviz is not created by, affiliated with, or supported by Slack Technologies, Inc." (Text should be a minimum of 15pt. and a minimum of 80% opacity black or white in color. from https://slack.com/brand-guidelines)
  • wrong title, it should be "#slackviz"
  • hide "Add to Slack" button in online demo website, otherwise too misleading
  • wrong text in footer: slackviz made by moovel lab & moovel dev team
  • "fork me on github" banner has old link, update to https://github.com/moovel/slackviz/
  • page title prefix has to be dynamic: [name of slack data set] #slackviz

[Frontend] modals

close modals if the user clicks somewhere else on the page (same close pattern as big page menu)

[Frontend] frequent speakers

  • missing highlight of "current user": current user is first in left list and card grid. Has slightly different person card layout, layouts.
  • missing "back" button, left of page title
  • channel details treemap, missing profile pics of users
  • channel details treemap, missing title e.g. #book_squad
  • channel details treemap, wrong color palette, see 2 `mockups/6b4.png
  • channel details treemap, viz should always make use of the height of the page, no fixed height
  • left channel list should be scrollable independently from the page
  • bottom footer should be sticky and always visible
  • update footer, see #25
  • missing "user stats" viz
  • missing hover state "open user stats" on person card

[Styling] channel heartbeat

Detailed style review doesn't make sense ... as entire site does almost nowhere 100% match the styles from visual design layout :) Plz carefully check.

  • date picker, time range is not visible, should be styled in light yellow

This is how it should look like:

2b

Create demo online instance w/ obfuscated data

Would be mega to have an interactive online slackviz "demo" ... this should dramatically increase the impact of the project, so much easier then to communicate it. I hope this is doable.

[Styling] home

  • wrong styles page title
  • wrong color separator lines
  • wrong width site desc text
  • wrong style site desc text
  • wrong font size links to subpages e.g. "channel land" (also note the wrong underline link style)
  • wrong font size desc text subpages e.g. "Compare multiple ..." (also note the wrong underline link style)
  • wrong style site footer

This is as it currently looks:
home

VS. how it should look like (add to slack button is out for demo site):
1d

[Frontend] channel land

  • missing big tooltip channel details (yield via click on channel dots in map)
  • zoom/reset control of map are not working
  • hover tooltip channel dots, width of the tooltip is sometimes not wide enough for long channel names e.g. "#Ergonomic Granite Keyboard" (width of tooltip is ideally dynamic in relation to text length)
  • channel names search should grey out not found ones, see 2 mockups/3f.png
  • if map is zoomed in dot sizes should adjust size become slightly bigger.
  • missing "back" button, left of page title
  • missing groups control
  • mouse double click on map should zoom in
  • zoom in/out with scroll gesture doesn't work 100%, seems to be contradicting with page scrolling (if mouse is not over a viz element of the map)
  • update footer, see #25
  • map zooming and dot sizes, size changes should be smooth (if possible and not too much effort)

[Styling] emoji timeline

Cool + Close! ... But fine tuning is missing e.g. height and color of bar roofs, more bars for 30 days, nicer scrollbar for left list etc.

Current:
screen shot 2016-07-03 at 14 41 37

Should be:
7a

[Frontend] messages and reactions

  • missing message numbers, e.g first message should have a black dot w/ white text "1" on the left, see layouts.
  • wrong url, should be /messages-and-reactions
  • missing "back" button, left of page title
  • missing time period info (next to channel title)
  • "open in slack" function is missing
  • make message-box overflow hidden
  • bottom footer should be sticky and always visible
  • left channel list should be scrollable independently from the page
  • update footer, see #25
  • missing multimedia content in messages e.g. images
  • add nothing found hint in messages list area e.g. #account-sunnysandiego seems to have nothing rated

[Frontend] channel heartbeat

  • missing y-axis start and end ticks; missing max y-axis value label
  • missing y-axis on the far right
  • wrong date format e.g. May 17, 2015 vs. much shorter ones in layouts
  • inconsistency of url and title: "channel heartbeat" and /heartbeat vs "channel land" and /channel-land –> rename to "channel-heartbeat"
  • date picker forgets selected dates
  • bottom footer should be sticky and always visible
  • missing "back" button, left of page title
  • links in menu are not working
  • missing select channel mechanism e.g. select via click in left list a channel
  • hide or mark empty channels in the left list (as discussed by Alex & Benedikt)
  • it would be nice if switching times were animated (curves update "hard" at the moment)
  • y-scrolling on the entire page is rough and not very smooth (if too much effort: ingnore it)
  • missing, jump to message mechanism (detail tooltip of data points of the curves)

[Styling] page loading bar

Page loading bar on the very top of each page ... plz use moovel petrol green (loading bar is currently in blue)

test heroku deployment

before this goes public we should test and make a step by step on how this is deployed on heroku.

almost the last details and bugs ;-)

general

  • menu: about -> link to github page (https://moovel.github.io/slackviz/)
  • navigation: is it possible to write everything in small caps? Would be great but if to much effort, please change "All times" in "All Times"...
  • menu: the page you are on should be highlighted yellow when clicking the hamburger icon
  • in safari: when page first being loaded: there is no space between "moovel" and "#teamchatviz" (see screenshot). When navigating through the site, this bug disappears.
  • scrollbar is not styled in FF
  • change "all times" in numbers e.i. real dates when filtering in "all times" (as discussed).

homepage

  • align #slackviz is not created by, affiliated with,…” in footer to right
  • we lost the 2016 © in front of “made by…” in footer. please re-add

channel heartbeat

  • default page on “last 30 days”
  • first channel selected when on page
  • link in tooltip to read messages in slack, if possible
  • when hover on names in list, the names get highlighted. Please also highlight the graph in green.

people land

  • change color border for user (you) to same grey as section in menu (as discussed with Alex and Flore)
  • tooltip: info/email address sometimes comes out of the grey rectangle (e.g. Ricky Littel)
  • when selecting a person in the list, the yellow background should stay on name and not go away when you move mouse
  • panning is still a little rusty (cursor moves quicker than content), plz make smoother if possible
  • in map:
    hover -> avatar scaled with yellow circle
    click -> modal window
  • when searching for people: zoom out map automatically

channel land

  • align “groups” and “all groups to 1,2,3,… buttons
  • links in tooltip don't work
  • when selecting a channel in the list, the yellow background should stay on name and not go away when you move mouse
  • panning is still a little rusty (cursor moves quicker than content), plz make smoother if possible

messages and reactions

  • default page on “last 30 days”
  • add nothing found hint in messages list area
  • when selecting a channel in the list, the yellow background should stay on name and not go away when you move mouse
  • I see that a lot of individual channels have "no data" (especially on last 10 days, last 30 days). Is it possible to put these channels at the end of the list i.e. that first channels are channels with content?
  • missing multimedia content in messages e.g. images, add if possible

frequent speakers

  • default page on “last 30 days”
  • different data for “last 10 days”, “last 30 days”, “All times”
  • user (you) always first person on the list
  • data change when go on “all times”
  • when click on all channels, back to general "all channels" page
  • add some white space underneath tree map
  • hover for treemap (infinite amount of rectangles)?
  • please change style of numbers of messages bold
  • hover on users, as in mockups
  • add total amount of written messages by person on personal treemap page
  • search filter doesn't work on the individual channel pages
  • treemap: would it be possible to not have channel or people names touching the borders of the chart i.e. only show part of the word? Ignore if too difficult!
  • adjust the menu on the left to the changed "fixed" content of the tree maps, if possible.
  • when loading page, "there is no data for the selected time period" appears on the page. Please disable this or change it in "loading data".
  • "people joined" in channel is considered as a message -> is it possible to change this feature?
  • channels are not being selected

emoji timeline

  • default page on “last 30 days”
  • bug: dates underneath charts come on top of footer e.g. the top line of footer is overlapped (in safari und chrome ;-))
  • apply color of font of total amount of emoji’s to colours of bars
  • fix dates correctly underneath charts (as discussed)
  • apply "⌀ there is no data for the selected time period" system too (looks like there are some empty pages (see screenshot)
  • when selecting a channel in the list, the yellow background should stay on name and not go away when you move mouse

[Styling] people land

  • styles search field are not 100% what is in the layout
  • baseline of label "Groups" and button text should be aligned
  • wrong person list style e.g. yellow selection background not the entire width of the list
  • plz nicer styled scrollbar for person list and nicer aligned to map (closer)
  • missing style for "current user"
  • map clusters, missing outline in cluster color, leave the grey fill (looks better as the tinted one from the visual design layout)
  • wrong styles footer

Current people land:
screen shot 2016-07-03 at 14 01 01

Should be people land:
4a

Current channel land:
screen shot 2016-07-03 at 14 18 06

Should be channel land:
3a

[Styling] channel landmessages and reactions

  • limit messages to top 10
  • add hint "no data in this time span" if channel has no data

Cool + Close! ... But fine tuning is missing e.g. fonts or number dots are black but should be dark grey, button in dropdown wrong look etc.

Current:
screen shot 2016-07-03 at 14 21 32

Should be:
5a

[Styling] frequent speakers

Detailed style review doesn't make sense ... as entire site does almost nowhere 100% match the styles from visual design layout :) Plz carefully check.

Should be:
6a1

6b4

6c

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.