artsy / team-navigator

An internal HR product for Artsy's team
https://team.artsy.net
MIT License
62 stars 19 forks source link

Note: This project has a new home! Checkout https://github.com/artsy/team

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

mutation {
  sync
}

V3

There is some initial work on a V3 inside the app, v3 is a create-react-app using TypeScript that is deployed into team nav.

It is accessible in /v3/ in the routing schema. To work on it use yarn v3, or yarn dev will load the CRA dev server in port 3001.

In v2 the koa app uses assets created by running yarn build.

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.

Optional ENV vars

EXCEPTION_USER_IDS - lets you add non-artsy users to the app, by adding their user IDs to the environment NO_SYNCING - skips the syncing of data on startup

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 yarn mocha -- --watch test/your/tests.js.

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

Scripts

We have some daily scripts that happen automatically:

Maintainer notes