/Restaurant-Reviews-Web-App

Mobile Web Specialist - Restaurant Reviews Progressive Web App, Performant and Accessible

Primary LanguageJavaScript

Restaurant Reviews Web App


Mobile Web Specialist Nanodegree

overview

This is a project I had to finish so that I can pass the Mobile Web Specialist Nanodegree from Udacity, and earn the certificate.

It’s a 3 stages project in which I have converted a non usable static site to a mobile-ready web application

  • In stage 1:

I’ve converted the design to be responsive on different sized displays and accessible for screen reader use.

  • In stage 2:

I was given a back-end server, and I added the ability to read JSON from that server Asynchronously using the Fetch API and display the data in the app. Then I saved the website main structure and images in cache using a service worker and stored the restaurant information/list in indexedDB to achieve a good Offline first experience, and met a site performance target of 70%.

  • In stage 3:

I implemented review submission logic on the client side, and leveraged offline capabilities so that users are able to write a review offline or mark a restaurant as a favorite while offline, then it’s deferred, and sent to the server when it's back online.

And Lighthouse targets for each category had to exceed:

  • Progressive Web App: >90
  • Performance: >90
  • Accessibility: >90

What do I do from here?

  1. In the /dist folder, start up a simple HTTP server to serve up the site files on your local computer. Python has some simple tools to do this, and you don't even need to know Python. For most people, it's already installed on your computer.

In a terminal, check the version of Python you have: python -V. If you have Python 2.x, spin up the server with python -m SimpleHTTPServer 8000 (or some other port, if port 8000 is already in use.) For Python 3.x, you can use python3 -m http.server 8000. If you don't have Python installed, navigate to Python's website to download and install the software.

  1. Set up the restaurants server by following the instructions in mws-restaurant-stage-3

  2. With your servers running, visit the site: http://localhost:8000.

Audit

To audit this site use the audit tab on Chrome's DevTools in Incognito mode to avoid having extensions interefere with the tests.

Resources