autolab / Autolab

Course management service that enables auto-graded programming assignments.
http://www.autolabproject.com/
Apache License 2.0
752 stars 214 forks source link

Refactor annotations to use a modern JS framework #556

Open icanb opened 9 years ago

icanb commented 9 years ago

Right now the code is not DRY at all and we're using weird libraries like elt to create DOM elements.

Tool of choice is open to comments, but I have two options in mind (or maybe combination of both):

@jez What do you think?

jez commented 9 years ago

Yeah I'm not sure.

If we pick one, I'm partial to React. I've used it at work in in a number of my own side projects now, and I really enjoy it. I haven't used Backbone, though. I hear it's pretty nice, and Backbone + React aren't mutually exclusive especially when you're using the Flux pattern.

That being said, I've only used React with respect to designing single-page apps. We certainly could make a move towards making Autolab a single-page app, but I don't know that the benefits in the long-run outweigh the time spent refactoring in the short term. If we were going to approach it just from the perspective of annotations, I'm not sure what benefit it would have. I'm also not that up to speed on the annotations code though.

dlbucci commented 9 years ago

The only SPA I like are the ones that don't reload every static asset with each new page, instead reloading the body, or some portion of the site (a feature that Rails 5 is supposed to support). Also, I'm pretty sure we tried to write the gradesheet in bootstrap and ended up adding 100 lines of code. Also, elt is not a library, it's an 11-line function that does more than most libraries do.