-
Notifications
You must be signed in to change notification settings - Fork 2
Architecture
Stephen Franceschelli edited this page May 25, 2017
·
12 revisions
Architecture for new tooling with web UI - see issue #9
NB: Database names are up for discussion.
-
Database to mirror all Github (GH) issues changes:
- For now, lets call DbIssues.
- New data is pulled via GitHub API every ~10 mins -- see #142 for details
- Database backend captures each issue timeline: Azure tables (the schema is pretty trivial with 1-2 indexes)
- Feature: Import/onboard new repo (i.e. download all info about the repo)
-
Database to store user preferences (queries settings, etc.):
- For now, lets call DbUserPreferences
- Optional: If you change your query or add a new one, you should get the option to generate its notifications for a time period.
-
Database exposes generalised notifications (e.g REST API) - push notifications.
- For now, lets call DbNotifications
- Optional/Future: Expose the notifications as a service for existing solutions like https://octobox.io (similar to GitHub APIs)
NB: Names of APIs are up for discussion.
-
PullFromGithub: Octokit.Net Implementation that pulls down new Issues into DbIssues.
-
PullToOurDb: Issues from DbIssues pushed into DbNotifications, filtered (if any) by queries stored in DbUserPreferences.
-
PushToOurDb: API that handles updating DbNotifcations (i.e. marking as READ).
- Create web UI which has simple email / http://octobox.io look & feel:
- Functions required:
- Delete notification
- Mark notification/issue as follow up
- Unsubscribe from query-notifications (in cases you didn't subscribe on GitHub explicitly) - similar to 'ignore thread' in email client
- Enable simple per-repo customisation:
- List of queries to watch/get notifications for (default query is entire repo)
- Per-query options:
- Notification for every new issue in the query -- note: Today even external folks want this, they work around it today by channelling notifications to Twitter, e.g. @corefxissues and @dotnetissues
- Notification for every gone issue in the query
- Notification for every comment on any issue in the query
- Notification for milestone change for any issue in the query
- Notification for label change for any issue in the query *Per-notification choice to be via email or only in web UI (or both) -- ideally should be configurable per query & notification kind combo
- Functions required:
- Work in Progress: Overall Architecture Diagram (as from 19.5.2017):