GitHub IssuesEvent at 2015-01-01 09:40:39
Repository: klpdotorg/dubdubdub
Actor: imohkay
Payload: {"action":"opened","issue":{"url":"https://api.github.com/repos/klpdotorg/dubdubdub/issues/340","labels_url":"https://api.github.com/repos/klpdotorg/dubdubdub/issues/340/labels{/name}","comments_url":"https://api.github.com/repos/klpdotorg/dubdubdub/issues/340/comments","events_url":"https://api.github.com/repos/klpdotorg/dubdubdub/issues/340/events","html_url":"https://github.com/klpdotorg/dubdubdub/issues/340","id":53216542,"number":340,"title":"Frontend Refactor: Scope and viability","user":{"login":"imohkay","id":1667470,"avatar_url":"https://avatars.githubusercontent.com/u/1667470?v=3","gravatar_id":"","url":"https://api.github.com/users/imohkay","html_url":"https://github.com/imohkay","followers_url":"https://api.github.com/users/imohkay/followers","following_url":"https://api.github.com/users/imohkay/following{/other_user}","gists_url":"https://api.github.com/users/imohkay/gists{/gist_id}","starred_url":"https://api.github.com/users/imohkay/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/imohkay/subscriptions","organizations_url":"https://api.github.com/users/imohkay/orgs","repos_url":"https://api.github.com/users/imohkay/repos","events_url":"https://api.github.com/users/imohkay/events{/privacy}","received_events_url":"https://api.github.com/users/imohkay/received_events","type":"User","site_admin":false},"labels":[{"url":"https://api.github.com/repos/klpdotorg/dubdubdub/labels/frontend-refactor","name":"frontend-refactor","color":"c7def8"}],"state":"open","locked":false,"assignee":{"login":"imohkay","id":1667470,"avatar_url":"https://avatars.githubusercontent.com/u/1667470?v=3","gravatar_id":"","url":"https://api.github.com/users/imohkay","html_url":"https://github.com/imohkay","followers_url":"https://api.github.com/users/imohkay/followers","following_url":"https://api.github.com/users/imohkay/following{/other_user}","gists_url":"https://api.github.com/users/imohkay/gists{/gist_id}","starred_url":"https://api.github.com/users/imohkay/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/imohkay/subscriptions","organizations_url":"https://api.github.com/users/imohkay/orgs","repos_url":"https://api.github.com/users/imohkay/repos","events_url":"https://api.github.com/users/imohkay/events{/privacy}","received_events_url":"https://api.github.com/users/imohkay/received_events","type":"User","site_admin":false},"milestone":null,"comments":0,"created_at":"2015-01-01T09:40:38Z","updated_at":"2015-01-01T09:40:38Z","closed_at":null,"body":"Just a collection of thoughts about a Frontend refactor:\r\n\r\n**Step 1**\r\n- Making sure all JS classes in the current develop branch are prefixed with 'js-' (and no styling is applied to them via CSS). Basically, ensure that behaviour and styling are not too tightly coupled, which would make the rewrite very hard.\r\n- Figure out who all on the team are working on the front end, and be in touch with them while the refactor is going on (if so), so there are no major conflicts. And of course, making a note of major frontend changes that are slated to happen over the next 2-3 months.\r\n- Making a note of things that the team may wish to change or update: e.g. moving off Highcharts and any gnarly UX issues that may need a redesign (enhancements more than bugs), and creating a new, additional label in the issue tracker for the rewrite\r\n- Making a note of base styles for all HTML elements, presuming the CMS has richtext/markdown textareas, so styling doesn't get affected by user updated content. I can't seem to find any richtext areas when I looked, though. \r\n- Document base browser support (perhaps A-grade modern browsers and which ancient browsers or B-grade still need to be supported). IE, Android and iOS, most importantly.\r\n- Looking at the sub-domains and see if new UI components need to be created, so all of them have to potential to have a consistent UI, at some point in the future\r\n\r\n**Step 2**\r\n- Make a new branch for this front-end rewrite, from the develop branch\r\n- Keep merging/rebasing develop branch changes into this new branch, so things are in sync. This would possibly get tricky at some point.\r\n-  Remove all the styling and try and keep the current HTML syntax as close to the current is as practically possible. Then start with the CSS from scratch and refactor the JS accordingly.\r\n- Remove all unnecessary conditional code for mobile and desktop and retina screens\r\n- Clean up the JS files\r\n- Making small UI components for UI modules: e.g. modals, accordions, tabs, search filters, etc. that are modular and resuable\r\n- Moving from raster to vector images (also rids us of this ridiculous 2x png stuff) and requesting the designers to provide vectors for several icons and images currently there in the app.\r\n- Move to [autoprefixer](https://github.com/postcss/autoprefixer) for vendor prefixes. This allows us to write regular CSS (via Sass, in our case) and will automatically add vendor prefixes. So we don't depend on a preprocessor for the same. Will add an extra step in building and compiling but is worth it.\r\n- I may get abused for this, but some build or compile tool (like Grunt or Gulp) or simple way to have everything build and compile by running just one command. [Some info here](https://lincolnloop.com/blog/simplifying-your-django-frontend-tasks-grunt/). But then again, Sass is very slow inside vagrant, so maybe not.\r\n\r\n**Step 3**\r\n- A living styleguide that is maintained (possibly by directly accessing production CSS files, so we're in sync)\r\n- Proper documentation for the front end code including preferred naming conventions, spacing and indentation for HTML, CSS, JS\r\n"}}