MetaList is a javascript application designed for easy content organization. even though it can be used as a product actual purpose of the application is to demonstrate how to craft production ready javascript application.
with framworks
MetaList demonstrates how to use MVC pattern to craft your code (without using MV* framework) and abstract it into a reusable library. it also leverages cleaner and simpler prototypal approach to support multilevel inheritance.
MetaList implements requireJs to handle dependency injection and async module definition. It also shows how to use requireJs with Jasmine, funcUnit and grunt.
MetaList follows TDD approach and uses jasmine to write unit tests.
Javascript testing is somewhat different than server-side testing and writing unit test cases related to controller brings not only trivial value but more hassle instead metaList uses funcUnit to test controller.
MetaList uses funcUnit to write functional test case. FuncUnit allows you to write functional test cases in jasmine with jquery like syntax and run it on iframe.
MetaList utilize grunt as a build tool and uses it to runs unit tests and lint Js files.
CI system can run application's buildFile on multiple environment with every commit and notify back by email if something goes wrong. Although setting up local CI like jenkins could be a potential hassle travis makes it a breeze for open source github project like metsList.
MetaList follows smacss guidelines to architect css in modular fashion and organizes base, layout and module classes separately. Every css module in metalist can be effectively re-used and adopt different layouts.
MetaList responds with user friendly version of application on smaller resolution.
MetaList stores data locally in your browser.
MetaList uses jquery for Dom and Underscore for utility belt.