#Lab 1: WikiMVC
##Intro This lab will have 3 components:
- Choosing a client-side Javascript framework and learning it
- Using that framework to construct a wiki clone with specified functionality
- Presenting the highlights of your chosen framework to the class
The lab will be completed in pairs. You should collaborate on a new github repository separate from either of your olinjs forks.
##Choosing a Framework Each pair will start by choosing a client side framework. Angular, Backbone (potentially with Marionette), Ember, React, Flight, Knockout, an Riot are some common options, but there are many more that may be interesting to explore. Please check your framework of choice with the teaching team before getting started.
##Constructing a Wiki You must construct a wikipedia-like clone using your chosen framework. You should program the app using the conventions, styles, and functionality of your chosen framework, show off what it can do. It should have the following functionality:
- Topic pages with title and content
- A list of all available pages
- Allow users to submit new pages on topics
- Allow users to edit existing pages
- Documentation for each major component (Minimum of few sentences at top of every file)
- Not look terrible
- One other feature you'd like to implement (anything from a random page button to images or html within content, or even a search bar. It's up to you to be creative!)
If you want to make the wiki have a special topic area (like harry potter or some game) you are encouraged to do so. Brownie points will be awarded for awesome looking websites whose themes match the topic area, though having all the functionallity should come before making it pretty.
##Framework Presentation You and your partner will get together with the other groups who are doing the same framework and create a 8-10 minute presentation about the framework. The goal of the presentation is NOT to teach the class to use the framework. Rather the presentation should contain the following pieces:
- Basic overview and introduction to the framework
- Any unique features that you believe are worth showing off
- What are some advantages of the framework? What did you enjoy about using the framework?
- What are some disadvantages/difficulties of the framework? What specific issues did you have using the framework?
- Is there a specific type of project that the framework would work well or not work well for?
- How is the documentation of the framework? Was it easy to learn and find answers to questions? Is there an active community around the framework? Is it still growing and being developed or is it more stable and stagnant?
- Is there anything else you believe the class should know about the framework?