{"action":"created","issue":{"url":"https://api.github.com/repos/YaleSTC/reservations/issues/1061","labels_url":"https://api.github.com/repos/YaleSTC/reservations/issues/1061/labels{/name}","comments_url":"https://api.github.com/repos/YaleSTC/reservations/issues/1061/comments","events_url":"https://api.github.com/repos/YaleSTC/reservations/issues/1061/events","html_url":"https://github.com/YaleSTC/reservations/issues/1061","id":51590825,"number":1061,"title":"Rewrite front-end in JS framework (and back-end as API)","user":{"login":"mnquintana","id":823545,"avatar_url":"https://avatars.githubusercontent.com/u/823545?v=3","gravatar_id":"","url":"https://api.github.com/users/mnquintana","html_url":"https://github.com/mnquintana","followers_url":"https://api.github.com/users/mnquintana/followers","following_url":"https://api.github.com/users/mnquintana/following{/other_user}","gists_url":"https://api.github.com/users/mnquintana/gists{/gist_id}","starred_url":"https://api.github.com/users/mnquintana/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/mnquintana/subscriptions","organizations_url":"https://api.github.com/users/mnquintana/orgs","repos_url":"https://api.github.com/users/mnquintana/repos","events_url":"https://api.github.com/users/mnquintana/events{/privacy}","received_events_url":"https://api.github.com/users/mnquintana/received_events","type":"User","site_admin":false},"labels":[{"url":"https://api.github.com/repos/YaleSTC/reservations/labels/diff%3A+8","name":"diff: 8","color":"ffff00"},{"url":"https://api.github.com/repos/YaleSTC/reservations/labels/JS","name":"JS","color":"bfe5bf"},{"url":"https://api.github.com/repos/YaleSTC/reservations/labels/pri3%3A+low","name":"pri3: low","color":"ffe0e0"},{"url":"https://api.github.com/repos/YaleSTC/reservations/labels/type%3A+enhancement","name":"type: enhancement","color":"c7def8"}],"state":"open","locked":false,"assignee":null,"milestone":{"url":"https://api.github.com/repos/YaleSTC/reservations/milestones/29","labels_url":"https://api.github.com/repos/YaleSTC/reservations/milestones/29/labels","id":921063,"number":29,"title":"API/client","description":"Fully separate backend/frontend concerns into a Rails API serving JSON and a JS frontend client using the Ember framework","creator":{"login":"squidgetx","id":6618711,"avatar_url":"https://avatars.githubusercontent.com/u/6618711?v=3","gravatar_id":"","url":"https://api.github.com/users/squidgetx","html_url":"https://github.com/squidgetx","followers_url":"https://api.github.com/users/squidgetx/followers","following_url":"https://api.github.com/users/squidgetx/following{/other_user}","gists_url":"https://api.github.com/users/squidgetx/gists{/gist_id}","starred_url":"https://api.github.com/users/squidgetx/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/squidgetx/subscriptions","organizations_url":"https://api.github.com/users/squidgetx/orgs","repos_url":"https://api.github.com/users/squidgetx/repos","events_url":"https://api.github.com/users/squidgetx/events{/privacy}","received_events_url":"https://api.github.com/users/squidgetx/received_events","type":"User","site_admin":false},"open_issues":25,"closed_issues":0,"state":"open","created_at":"2015-01-04T16:10:55Z","updated_at":"2015-01-04T16:30:21Z","due_on":null,"closed_at":null},"comments":11,"created_at":"2014-12-10T18:06:36Z","updated_at":"2015-01-04T17:17:52Z","closed_at":null,"body":"Although this is likely a long ways off, we should seriously refactor the entire front-end with [Ember](https://github.com/emberjs/ember.js), and rewrite the Rails-side of things to be a back-end API. I think we're hitting a point with Reservations where we have Ajaxed a lot of individual pieces of the UX, but it's slowly becoming nightmarish to maintain. Rails + jQuery are not good at managing complex front-end UI interactions that don't require a new page request.\r\n\r\nFor instance, I'm pretty confident that #718 would be significantly easier to implement if we were using a JS front-end framework. We chose to refresh the entire catalog when making a change 2 years ago because it was a lot easier than trying to figure out exactly what component(s) changed and only updating that/them.\r\n\r\n(*Why not Angular?* Ehhhh wellll, I have a lot of feelings about Angular. We could always talk about it some other time.)"},"comment":{"url":"https://api.github.com/repos/YaleSTC/reservations/issues/comments/68640518","html_url":"https://github.com/YaleSTC/reservations/issues/1061#issuecomment-68640518","issue_url":"https://api.github.com/repos/YaleSTC/reservations/issues/1061","id":68640518,"user":{"login":"mnquintana","id":823545,"avatar_url":"https://avatars.githubusercontent.com/u/823545?v=3","gravatar_id":"","url":"https://api.github.com/users/mnquintana","html_url":"https://github.com/mnquintana","followers_url":"https://api.github.com/users/mnquintana/followers","following_url":"https://api.github.com/users/mnquintana/following{/other_user}","gists_url":"https://api.github.com/users/mnquintana/gists{/gist_id}","starred_url":"https://api.github.com/users/mnquintana/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/mnquintana/subscriptions","organizations_url":"https://api.github.com/users/mnquintana/orgs","repos_url":"https://api.github.com/users/mnquintana/repos","events_url":"https://api.github.com/users/mnquintana/events{/privacy}","received_events_url":"https://api.github.com/users/mnquintana/received_events","type":"User","site_admin":false},"created_at":"2015-01-04T17:17:52Z","updated_at":"2015-01-04T17:17:52Z","body":"@squidgetx Totally agree"}}