ian-kent / github-notifications

Test of concept and technologies for Github notifications application

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

#github-notifications

An attempt to make Github notifications more manageable with custom filters, 'done' and 'favourite' markers, and stopping them from disappearing as soon as they're marked as 'read' (like Github currently does).

This idea was totally stolen from Octobox.

##Installation

You'll need to have NodeJS, NPM and MongoDB installed first, then:

  1. Run npm install or yarn.
  2. Start MongoDB, following MongoDB's 'NodeJS quick start' guide.
  3. Create a Github authentication token, which has access to your notifications data.
  4. Kick-off the NodeJS server with OAUTH_TOKEN='<authentication token>' npm start.
  5. I'm sometimes experiencing a bug with inferno-component which is fixed by going to node_modules/inferno-component/inferno-component.js and amending the require path from './../inferno/dist/inferno-component.node' to 'inferno/dist/inferno-component.node'.

optional: 4. Run npm run watch, to watch the client-side JS files and re-build when one is amended.

##Todo

Planned bug fixes, features or ideas (in no particular order):

  • Add the option for notifications, eg web push API, Slack and email.
  • Refactor the server-side code (potentially to Golang).
  • Move notification out of a list if an action at that time has meant it no-longer belongs in that list (eg viewing favourites, un-favourite an item, that item should then disappear from the list with refresh).
  • Routing to filters.
  • Allow user to set all to 'favourite' or 'done' with one click.
  • Ability to add your own custom filters.
  • Login via Github.
  • Pagination on lists of notifications.
  • Show all notifications (not just unread).
  • Tell Github a notification is read when it's been set to 'done'.
  • Hide 'done' from all list and make 'all' some accurate, such as 'to do' or 'inbox'.

About

Test of concept and technologies for Github notifications application


Languages

Language:JavaScript 84.2%Language:CSS 11.2%Language:HTML 4.5%