{"action":"opened","issue":{"url":"https://api.github.com/repos/TIY-GVL-FEE-2015-August/assignments/issues/279","labels_url":"https://api.github.com/repos/TIY-GVL-FEE-2015-August/assignments/issues/279/labels{/name}","comments_url":"https://api.github.com/repos/TIY-GVL-FEE-2015-August/assignments/issues/279/comments","events_url":"https://api.github.com/repos/TIY-GVL-FEE-2015-August/assignments/issues/279/events","html_url":"https://github.com/TIY-GVL-FEE-2015-August/assignments/issues/279","id":109343530,"number":279,"title":"6.4-backbone-exercies- Michael Esposito","user":{"login":"Esponage","id":11448083,"avatar_url":"https://avatars.githubusercontent.com/u/11448083?v=3","gravatar_id":"","url":"https://api.github.com/users/Esponage","html_url":"https://github.com/Esponage","followers_url":"https://api.github.com/users/Esponage/followers","following_url":"https://api.github.com/users/Esponage/following{/other_user}","gists_url":"https://api.github.com/users/Esponage/gists{/gist_id}","starred_url":"https://api.github.com/users/Esponage/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/Esponage/subscriptions","organizations_url":"https://api.github.com/users/Esponage/orgs","repos_url":"https://api.github.com/users/Esponage/repos","events_url":"https://api.github.com/users/Esponage/events{/privacy}","received_events_url":"https://api.github.com/users/Esponage/received_events","type":"User","site_admin":false},"labels":[],"state":"open","locked":false,"assignee":null,"milestone":null,"comments":0,"created_at":"2015-10-01T17:14:15Z","updated_at":"2015-10-01T17:14:15Z","closed_at":null,"body":"# backbone-exercises\r\n\r\n## Description\r\nAchieve Backbone mastery by completing five Backbone apps.\r\n\r\n## Objectives\r\n\r\n### Learning Objectives\r\n\r\nAfter completing this assignment, you should\r\n\r\n- Be comfortable with the process of finishing a Backbone app from scratch\r\n\r\n## Details\r\n\r\n### Deliverables\r\n\r\n* A repo containing at least:\r\n  * `a.html`, which includes `<script>require('a');</script>`\r\n  * `scripts/a.js`\r\n  * `scripts/a/models/post.js`\r\n  * `scripts/a/view/index.js`\r\n  * `templates/a.index.hbs`\r\n  * etc. for `b`, `c`, `d`, `e`\r\n  * `index.html` with links to a-e\r\n\r\n### Requirements\r\n\r\n* No JSHint warnings or errors\r\n\r\n## Normal Mode\r\nComplete as many of the five apps as possible, copying code from previous\r\nassignments only when absolutely necessary.\r\n\r\nNamespace the files you create so you can have multiple views, models,\r\netc with only one `main.js`.\r\n\r\nEach exercise should have its own html and js file, named after the exercise.\r\nFor example, exercise a should have an `a.html` and a `a.js`.\r\n\r\n- a) Create a form that saves a blog post to tiny-lasagna-server. The post\r\n  should have a title and a body. It does not need to display blog posts, just\r\n  save them.\r\n\r\n- b) Create a form for a person. It should have a first name, last name,\r\n  address, and phone number.  It should save the person to tiny-lasagna-server.\r\n\r\n- c) Create a \"blog reading app\", where you have a list of blog posts on the\r\n  side and when you click on a post title, it opens that post in another view.\r\n  Hint: which blog post is selected is \"application state\".\r\n\r\n- d) Create a bookmarking app where you can save URLs. It should have a form\r\n  where you enter the URL, a title, and a \"tag\". There should be a list of all\r\n  the URLs, as well as a list of all the tags (this should be generated\r\n  dynamically from the link collection). When you click on a tag, the link list\r\n  should show only those tags. Hint: which tag is selected is \"application\r\n  state\", so could appear in your URL and/or have a view model to represent it.\r\n  You can filter a collection with `collection.filter(...)`, but be aware that\r\n  it returns an array of models, not a new collection.\r\n\r\n- e) Create a complete blog CMS from scratch, allowing you to create, read,\r\n  update, and delete blog posts."}}