burnchart/TODO.md

6.2 KiB

#Tasks to do

##Release: MVP

###Main

  1. Switch to ractive-ractive and use proxied events.
  2. Load projects from localStorage (use sync). If we are on Project or Chart page, add it behind the scenes.
  3. Now we fetch all milestones for our repo if we don't have any cached already. This calculates the points for each milestone. The first two steps can happen on a Router level
  4. Continue with page-specific actions.

###GitHub

  • progress needs to be calculated based on strategy even on homepage, then sort the milestones based on priority

###Notifications

  • create a 500/400/loading system messages
  • mediator !app/notify/edit will edit the current notification
  • need to show status (receiving information etc.) per repo with little warning triangle when we get 400/500 on milestones
  • handle multiple notifications, for example success on closed milestone and then show a different chart or add a project

###Error Handling

  • verify that project exists on project page when fetching it remotely (add behind the scenes)
  • deal with Firebase timing out, are we still logged-in?
  • visiting a chart page saves the project if it isn't saved already
  • check that we have not run out of requests to make
  • can we get more than 1 notification at a time?
  • save in memory only if no localStorage, warn about that

###Bugs

  • localStorage is getting reset
  • a bit of a freeze when fetching mbostock/d3

###Docs

  • landing page for the project and put message on github-burndown-chart repo
  • provide a documentation site (because we ref it from hero)

###Routing

  • Handle 404 on routes; from catch all check if '/' or go 404 controller
  • allow pushState when Firebase hosted

###Style

  • focus on form fields style
  • switch off user-select on buttons

###Misc

  • vendor module so we can proxy require all window libs
  • implement search box that quickly takes you to a chart (and may hide "pro actions")
  • show hero box or projects with a fade in and only when known
  • calculate left margin based on the total number of points text width
  • show a countdown clock towards the end of the milestone or show overdue
  • trigger success topbar when we have completed a milestone on chart page; show plain when we are behind
  • on chart page show a little progress bar in the title
  • use tap plugin for Ractive
  • the app bundle (albeit uncompressed) clocks in at 1.5MB, reduce the size (d3 is huge (use grunt-smash, docs here), localForage not nedded)
  • make tests work again
  • use minified builds in production
  • move project to Assembly

##Future Releases

  • desktop app via node-gyp
  • when watching, only build changed files and then concat them to make builds much faster
  • smooth animation when transitioning between icons and notifications
  • 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.
  • some fun loading messages from Sim City.
  • show number of tasks, points, days left just like in Assembly