{"action":"opened","issue":{"url":"https://api.github.com/repos/TIY-GVL-FEE-2015-August/assignments/issues/304","labels_url":"https://api.github.com/repos/TIY-GVL-FEE-2015-August/assignments/issues/304/labels{/name}","comments_url":"https://api.github.com/repos/TIY-GVL-FEE-2015-August/assignments/issues/304/comments","events_url":"https://api.github.com/repos/TIY-GVL-FEE-2015-August/assignments/issues/304/events","html_url":"https://github.com/TIY-GVL-FEE-2015-August/assignments/issues/304","id":110470866,"number":304,"title":"7.4-Majestic_Thai-Laura_Harris","user":{"login":"Laura-Harris","id":13736080,"avatar_url":"https://avatars.githubusercontent.com/u/13736080?v=3","gravatar_id":"","url":"https://api.github.com/users/Laura-Harris","html_url":"https://github.com/Laura-Harris","followers_url":"https://api.github.com/users/Laura-Harris/followers","following_url":"https://api.github.com/users/Laura-Harris/following{/other_user}","gists_url":"https://api.github.com/users/Laura-Harris/gists{/gist_id}","starred_url":"https://api.github.com/users/Laura-Harris/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/Laura-Harris/subscriptions","organizations_url":"https://api.github.com/users/Laura-Harris/orgs","repos_url":"https://api.github.com/users/Laura-Harris/repos","events_url":"https://api.github.com/users/Laura-Harris/events{/privacy}","received_events_url":"https://api.github.com/users/Laura-Harris/received_events","type":"User","site_admin":false},"labels":[],"state":"open","locked":false,"assignee":null,"milestone":null,"comments":0,"created_at":"2015-10-08T15:01:37Z","updated_at":"2015-10-08T15:01:37Z","closed_at":null,"body":"# majestic-thai\r\n\r\n## Description\r\nA dynamic restaurant page\r\n\r\n## Objectives\r\n\r\n### Learning Objectives\r\n\r\nAfter completing this assignment, you should:\r\n\r\n- Understand how to design and execute a frontend application given ambiguous\r\n  requirements by a client.\r\n- Understand how all of the pieces of Backbone fit together to create a dynamic\r\n  frontend application.\r\n\r\n### Performance Objectives\r\n\r\nAfter completing this assignment, you should be able to:\r\n\r\n- Create wireframes, a domain model, and a outline of objects\r\n  needed as part of the planning process when making a complex frontend\r\n  application.\r\n- Execute client requirements to make a complete application.\r\n\r\n## Details\r\n\r\n### Deliverables\r\n\r\n* A repo containing at least:\r\n  * `index.html`\r\n  * `scripts/main.js`\r\n  * `styles/main.scss`\r\n\r\n### Requirements\r\n\r\n* No JSHint warnings or errors\r\n\r\n## Normal Mode\r\nA \"client\" has approached you and asked you to help them build a web presence.\r\nThey are a local Thai restaurant called Majestic Thai. They don't know anything\r\nabout the Internet, but they know they need a web page. They want an interactive\r\nmenu that displays all of their food choices with prices, descriptions, etc.\r\nThey also want the customer to be able to select menu items and create an order\r\nwith a total price. When the user saves the order, it should create a new item\r\non the backend so that the kitchen can process the order.\r\n\r\nCreate a Backbone.js app to create a dynamically updating menu page. See Additional Resources for an example of an actual restaurant page.\r\n\r\n### Tasks\r\n#### Getting Started\r\n- [ ] Setup the scaffolding and install Backbone\r\n- [ ] Setup templates for the different dynamic portions of the application\r\n- [ ] Produce static data for the menu items\r\n- [ ] Produce a functional static mockup\r\n\r\n#### Menu\r\n- [ ] Fetch and `console.log` the static JSON for the menu items\r\n- [ ] Render a template for each menu item, not according to category.\r\n- [ ] Define a FoodItemView constructor\r\n- [ ] Define a FoodListView constructor that inherits from CollectionView\r\n- [ ] `console.log` the food model when I click on its price button\r\n- [ ] Define a Order constructor\r\n- [ ] Create an instance of Order\r\n- [ ] Pass the order to the child views\r\n- [ ] `console.log` the order when I click on the foods price\r\n- [ ] Add the food model to the order\r\n\r\n#### Order view\r\n- [ ] Define an OrderView constructor\r\n- [ ] Render an instance of OrderView\r\n- [ ] In OrderView, `console.log` the order\r\n- [ ] In OrderView, `console.log` a food model every time a food model is added to the order\r\n- [ ] Render the data from the order every time the order is updated\r\n- [ ] In Order, define a `subtotal` function that calculates the total price.\r\n- [ ] `console.log`, then render, every time the order is updated\r\n\r\n#### Order data\r\n- [ ] Save the order data to tiny-lasagna-server when the order is submitted\r\n\r\n## Hard Mode\r\n- Organize the food by category\r\n- Create another page (e.g. admin.html) that gives the owner the ability to view\r\n  the orders and \"complete\" them.\r\n- Using Backbone's built in [validation](http://backbonejs.org/#Model-validate),\r\n  create a modal contact form that validates the input and saves the information\r\n  to a contact list.\r\n\r\n## Additional Resources\r\n- [Example of a real restaurant app](https://eatstreet.com/angel-thai-cuisine/menu)"}}