GithubHelp home page GithubHelp logo

isabella232 / takeaway-homework-assignment Goto Github PK

View Code? Open in Web Editor NEW

This project forked from potherca-blog/takeaway-homework-assignment

0.0 0.0 0.0 283 KB

My implementation of the sample application for the Takeaway Homework Assignment.

Home Page: https://blog.pother.ca/takeaway-homework-assignment/web/

CSS 21.18% HTML 21.29% PHP 10.48% JavaScript 47.06%

takeaway-homework-assignment's Introduction

Takeaway Homework Assignment Logo

Takeaway Homework Assignment

"Be more ambitious. Do your homework. There's no easy way around this." ~ Anthony McCarten

Introduction

This document outlines the process I went through whilst implementing the "homework" assignment I received from Takeaway.

To view the end result visit: https://blog.pother.ca/takeaway-homework-assignment/web/

Based on my my critique of the assignment I have created a version of the assigment text which offers some improvements.

Implementation Steps taken

  1. Dowload, unzip and read the assignment (see my critique).
  2. Research Takeaway corporate identity (see style).
  3. Build the main UI.
  4. Build a UI component to represent a restaurant.
  5. Add some color and branding to the UI.
  6. Create logic to generate static JSON files for the available sort scenarios. (see generate.php)
  7. Adds concern about the "Top Restaurants" formula (see the "Bonus assignment" section of my critique.)
  8. Add logic to populate the Restaurant List in the UI from the sample.json (see list.js).
  9. Add logic to populate the sort options in the UI (see sortOptions.js).
  10. Moves HTML into templates for JS re-use.
  11. Connects JS logic to HTML (see application.js)
  12. Adds search functionality (see jquery.filterFor.js).
  13. Adds logic to filter by Restaurant State (see filterTabs.js)
  14. Adds logic to mark restaurants as favorite. (see favorites.js)

Implementation Choices

  • I have chosen to use the Bulma CSS framework to quickly have something decent-looking setup.
  • I have chosen to use CSS custom properties (also know as "CSS variables"). In a production environment a pre-compiler would be used to make sure that older broswer are also able to use the created CSS.
  • The HTML class attribute contains both framework classes and custom ones. A pipe character | is added to more easily distinguish between both. Please note that the | can not be accessed as a class as, in the context of a CSS selector, the pipe charater is used as a namespace separator.
  • I have chosen to us BEM as the naming scheme for CSS classes.
  • As part of the sample application branding I have added a logo.
  • Thuisbezorgd.nl uses jQuery 1.12.4. I have chosen to use jQuery too, instead of vanilla JS. I did choose to use a newer version.
  • I have chosen to have the restaurants sorted by "Top Restaurant" by default as this makes the most sense from a business perspective.
  • Instead of also implementing a server-side application, I have chosen to generate the JSON responses such an application would return.
  • I have chosen to use a jQuery search plugin I had lying around from an earlier project rather than write something new or go looking for the most appropriate plugin.
  • As this application does not have a backend, I have chosen to store favorites in the browsers LocalStorage.

takeaway-homework-assignment's People

Contributors

potherca avatar potherca-bot avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.