This repo contains the code (front- and back-end) necessary to override the newtab
page in Chromium browsers.
Currently, the dashboard displays the following data:
- Open Pull Requests assigned to you
- Upcoming Calendar Events (Outlook)
- Assigned Shortcut Stories
- New Relic Health Check
- Current On-Call
- BugSnag
- Recently Introduced Bugs
- Open Intercom Conversations
- Trending (Hot) Post from
r/programmerhumor
- Harness apps awaiting deploy
- Most recently deployed PR
- Poker Bank top 3
- Reading / Viewing List
- Source from email newsletters, bookmarks folder, slack messages, gist, etc
- Archive read articles
At a glance, these are the things you'll need to do to get the extension running locally:
- update .env file with valid values
- run server manually or with Automator app
- install chrome extension
To add your own environment variables, run cp remix/.env.example remix/.env
. This will create the boilerplate file for you to start adding correct values to.
To generate your github personal access token, navigate to settings > developer settings > personal access tokens
, and create a new token with the following permissions:
- notifications
- read:org
- read:repo_hook
- read:user
- repo
- user:email
To retrieve your Shortcut API token, navigate to settings > API Tokens
and create a new token. That's it!
On Mac, it is very easy to start the server on-boot. To do this, you'll need to globally install pm2
via npm i -g pm2
Here is a helpful URL that will explain the steps below.
Once installed, you can do the following:
- run
pm2 startup
- this will return another command to run - run the command returned from step 1
- navigate to this
vitals-dashboard/remix
- run
npm run build
to generated a production-ready app - run
pm2 start server/index.js
on the output pm2 list
to verify that the server status is started. you can also verify this by opening up the newtab page (after installing the extension). if data gets returned from the api calls, pm2 is working correctly- run
pm2 save
. once this is run, any pm2 process that is currently running will start up when your computer reboots
NOTE: pm2 will not run on every login; just reboots. if this turns out to be a problem, instructions will be added to use the Automator app.
Note: If you haven't already, run npm run build
script in the extension
folder to generate the minified files.
To install the chrome extension, open chrome://extensions
, then enable Developer Mode
at the top-right part of the page.
Clicking the Load Unpacked
button will open up the file explorer. Navigate to this repo on your drive, and select the entire extension/public
folder.
Once the extension has been loaded, open a new tab. Everything has been set up correctly, you should see the new dashboard, and after a few moments, it will be populated with your personal vitals!
To run the vitals dashboard without installing the chrome extension or running the node server on boot, follow the instructions below.
Both the frontend and backend need to be running for the application to work.
- Navigate to the
extension
folder, and runnpm install
- Run
npm start
. runslive-server
against the public directory, and will open a new browser tab that has hot-reloading enabled.
Note: If you want to update styles, you'll need to open another terminal tab at this same path and run npm run css:watch
- Navigate to the
remix
folder - Verify that you have a
.env
file, and it has correct values in it (instructions above, if needed) - Run
npm start
in one terminal pane, andnpm run start:dev
in another
- allow for dashboard customizations (eg:
GITHUB_ENABLED
,GITHUB_POSITION
variables) - add dark mode
- host server for mobile version & long-term storage
- show loading states for cards fetching data
- show empty states when no data is available
- add server-side caching to speed up page load
- Rebuild with Remix