Restaurant Recommender System with JavaScript - Part 2
Primary Goals
To build UI and client-side tests for a portfolio-ready client-side application.
Overview
You’ll build a Restaurant Recommender app that will help you practice building a complete client-side Object Oriented application. This will take 2-3 days, and is due to the Program Facilitor by noon on Friday.
Context
Now that you’ve finished Part 1 and your Restaurant Recommender class is complete, you will create a UI that allows a user to implement your class methods in a tested, deployed website.
User Requirements
- Create a User Interface with jQuery for each of the following methods:
- Users:
- Add a new User to the System
- Update a User’s Rating for a Restaurant
- Delete a User from the System
- Delete a User’s rating for a Restaurant
- Restaurant:
- Add a new Restaurant to the System
- Update a Restaurant’s categories
- Maintain a Restaurant’s “average” score every time a new user score is added.
- Delete a Restaurant from the System
- Category:
- Add a new Category to the System
- Update Restaurants in a Category
- Delete a Category from the System
- Filter:
- All Restaurants in a certain category (order does not matter)
- All Restaurants with an Average Score greater than “X” in decreasing order
- Top “X” number of restaurants in decreasing order in a certain category
Your site must be responsive from 300px to at least 1400px window width.
You will need to add Jasmine Tests for each of the above methods.
Your app must pass an aXe accessibility test.
Your app must pass all tests in the Facebook Sharing Debugger for meta tags.
You are required to deploy your completed project using Netlify or GitHub Pages. Send the links to your GitHub repo and live site url to the program facilitator by noon on Friday.
You are required to have a top-notch README.md with screenshots of your project in your GitHub project repo.
Tips:
- Although your wireframe will not be assessed, we highly recommend looking at websites that have successful UIs for creating, retrieving, updating, deleting, and filtering data, and wireframe your design before starting to code with jQuery, HTML, or CSS. Consider designing a desktop and a mobile version to make coding as straight-forward as possible. It will be much easier overall!
- If you ‘finish early’, use your extra time to get user feedback and refine your app as much as you can.
Good luck!