jcollas / team-navigator

An internal HR product for Artsy's team

Home Page:https://team.artsy.net

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

Build Status

Team Navigator

Meta

What is this?

We have a pretty complicated set of businesses inside Artsy. Now that we're above 150+ staff members, our organizational structure can get tricky to understand. This is a web-app for showing our team setup.

Here's a censored overview. It has search, filter by locations, teams and an A-Z of all staff.

./screenshots/overview.png

And individual people pages have all sorts of useful info

./screenshots/member.png

Set-Up

  • Fork Team Navigator to your GitHub account in the GitHub UI.
  • Clone your repo locally (substitute your GitHub username).
git clone git@github.com:your-github-username/team-navigator.git
  • Install MongoDB
brew install mongodb
  • Install NVM, Node, and npm modules.
brew install nvm
nvm install 6
npm install
  • Copy over a .env file and replace all sensitive config, e.g. SHEETS_URL=REPLACE, with staging config.
cp .env.example .env
# Artsy staff can see our production env vars with
heroku config --app=artsy-team-navigator
  • Start Team Navigator and Mongo
npm run dev
mutation {
  sync
}

Spreadsheet format

We use a pretty liberal parser for syncing. You can see an example of what our spreadsheet looks like here with just Orta's data in.

If the example is out of date, that's fine, go look at the member model and convert the values to snake_case. Some of the values are generated by the sync, or via daily tasks too.

Testing

We use standard for linting. For the best experience it's recommended that you install an inline linter in your text editor, such as Sublime Linter Standard, to surface linting issues immediately.

We use mocha for testing. For the best experience writing tests it's recommended you target the suite you're working on in watch mode npm run mocha -- --watch test/your/tests.js.

To run the full test suite and linter use npm test.

Scripts

We have some daily scripts:

  • scripts/daily_notifications.js sends a slack DM to a manager that their reportee's workaversary is next week.

  • scripts/daily_github_history_for_member.js pulls GitHub repos for anyone with a GitHub handle inside your org.

  • scripts/daily_articles_for_member.js will find any articles someone has contributed to.

Maintainer notes

  • To get an individual's writerAuthorId load the Artsy Editorial channel in writer then inspect the elements for their IDs.

About

An internal HR product for Artsy's team

https://team.artsy.net

License:MIT License


Languages

Language:JavaScript 100.0%