9_Conclusion - MoSanogo/Project-8- GitHub Wiki

To make the todo app more production-ready app, I would strongly recommend :

  • Replacing the module Template.js by the templating engines such as Moustache,Jade,Handlebars,etc.
  • Removing the code NodeList.prototype.forEach = Array.prototype.forEach; at line 51 in the helpers.js: NodeList has in its prototype the forEach method.
  • Replacing the code if (!element.parentNode) {return;} at lines:40 to 42 in the the helpers.js by if(!element.parentNode.tagName) {return;}: any html element has always a parent and in the worst case scenario its parentNode will be the body.So there is no need to check if the parentNode exist or not but it would be better to check whether the tagName passed to the window.$parent function exists on the parentNode of th element passed to that function .
  • Rewriting the View.prototype.bind at line 176:the syntaxes are very messy .
  • Using a proper database as such MongoDb instead of using client side storage which is not a great place to store personal data .
  • Adding features which allows the user to have a list of todo lists and different categories of todoes list.
  • Adding sorting features such as filtering by priority ,by the most recent ,etc.