GitHub Burndown Chart as a Service
http://radekstepan.com/burnchart
ee0828f2b5 | ||
---|---|---|
public | ||
src | ||
.bowerrc | ||
.gitignore | ||
Gruntfile.coffee | ||
Makefile | ||
NOTES.md | ||
README.md | ||
bower.json | ||
firebase.json | ||
package.json |
README.md
burnchart.io
Concept
GitHub Burndown Chart as a service. Public repos are free, for private access auth via GitHub and pay.
Tasks
MVP - Community Plan
- show a list of projects and their milestones with progress & due date
- show burnchart for that project milestone
- show all issues as one size
- use
localStorage
to save project names - show a milestones page where we see a table ala projects but for only one project
- create ui sketches for all app states
The 20%
- deal with Firebase timing out, are we still logged-in?
- on system-wide notifications show a button that takes us to the index unless we are on index
- mediator
!app/notify/edit
will edit the current notification - slide topbar up a bit on hover so that the user can click the menu
- landing/index page needs to show (hero box) immediately
- logged-in state slides into view independent of page loading
- have a queue for loading that calls back (emits a mediator message) when it is empty and emits another one when we are busy; wrap each async operations in this doing a
cb
when we are done with 1 - verify that project exists on project page when fetching it remotely (add behind the scenes)
- need to show status (receiving information etc.) per repo
- provide a documentation site
- visiting a chart page saves the project if it isn't saved already
- landing page for the project and put message on my repo
- Handle 404 on routes; from catch all check if '/' or go 404 controller
- allow
pushState
when Firebase hosted - progress needs to be calculated based on strategy even on homepage, then sort the milestones based on priority
- calculate left margin based on the total number of points text width
- Do not show login/logged-in state when we are still fetching that information from Firebase
- local storage is getting reset
- a bit of a freeze when fetching
mbostock/d3
- Validate repo input and show a loading sign of sorts
- Check that we have not run out of requests to make
- Show loading sign on top of browser window which is unobtrusive enough we can show it immediately.
- show a countdown clock towards the end of the milestone or show overdue
- highlight for a moment recently changed milestone
- smooth animation when transitioning between icons and notifications
- show logged-in state only after it is known
- how does a message look like when we have an error and nothing to render?
- format milestone titles prepending "Milestone" word if appropriate
- Variable document.title on different pages
- be able to go back to homepage
- deal with no due date milestones - always on track
- show title on the chart page
- work for
mbostock/d3
- allow people to go straight to a URL that fetches the repo, if public, for them; to demo our app without adding a repo (add it behind the scenes); req cache repos
- closed issues can be moved to a newly created milestone, this messes up the chart since we assume milestone is created first!
Extras
- show animated lines when drawing the chart
- highlight changes from past fetch
- In add a project form autocomplete on my username, orgs I am member of and repos I have access to
- Someone might create a public repo, add it to the system and switch it to private; need to check repo priviledges at runtime; or when asking for auth, one would choose either public OR public/private, but this could get confusign.
- Make sure the padding fits throughout the interface; we have user-select on elements.
- Check location.hash is supported
- Have an app wide of triggering a URL and have named routes too
- On page load get all the latest data regardless of
time_ago
- rotate between percentage progress and points left
- be able to config options through UI that currently have to be hardcoded in config
- cache repos in
localStorage
for those that do not use GitHub login - choose your own theme
- custom milestone start dates
- show burndown chart for all milestones
- handle Enterprise editions of GH (signed up in gh dev program)
- auto-update the chart (with delay when no activity) when logged-in
- add weekly velocity across all projects and a bar chart to that effect
- show a little lightning and a number for today's velocity
- show burnchart only for your tasks; this would be a second category of projects & tasks in the dashboard
- show an overall text-based status like: all projects on time etc.
- until GH fix milestone start date then provide an option to specify it (either do that on GH server or locally); for example a text like this:
starts: 09-10-2014
in the description which we provide regex for - work on mobile devices
- show velocity number for each member of the team in the corner of the layout
- show velocity for all team members and how it progresses through time
- points collector - give medals for 1st 3 spots in terms of velocity
- show past commits or due dates like in this calendar
- allow people to submit suggestions via GitHub Issues
- find a way where, as a group, we can share repo data by trusting the other repo members that use our platform
- support Jira & Gitlab
- when fetching subsequent updates, fetch only the last page of issues since some repos are large (2.5MB & 19 pages for
mbostock/d3
); actually that is for all issues, not milestone constrained. So only an issue if we want to see a burnchart for all the issues for a repo - move tests from
radekstepan/github-burndown-chart
- if all issue circles are close to each other, make a "master circle" that amalgamates all the issues into one large circle, makes for a prettier view
- tell people if they have no due date
- make better x-axis date display, otherwise we see all 1s.
Notes
- payment gateways in Canada: Shopify, Chargify list; I get free processing on first $1000 with Stripe
- start people on a Community plan showing them a comparison table to upgrade to a better offering
- community (open source, local storage), business (private repos, firebase)
- keep discussion going via gitter
- credit card form ux from Designmodo
- workers: using a free instance of IronWorker and assuming 5s runtime each time gives us a poll every 6 minutes. Zapier would poll every 15 minutes but already integrates Stripe and FB.
- worst case scenario I provide even Small Business plan for free and provide a better experience
- $2.5 Node.js PaaS via Gandi with promo code
PAASLAUNCH-C50E-B077-A317
. - let people vote on features they want to see fast: tally.tl.
- use readme.io for documentation
Plans
Community
- your repos are saved locally
- no auto-updates to milestones, everything fetched on page load
- no private repos
Business
- you need to pay for a license to use the app for business purposes
- repos, milestones saved remotely
- auto-update with new information
- private repos