Giter VIP home page Giter VIP logo

rproenza86 / mws-restaurant-reviews Goto Github PK

View Code? Open in Web Editor NEW

This project forked from udacity/mws-restaurant-stage-1

4.0 2.0 2.0 71.88 MB

Progressive Web Application - Offline first, Mobile first, Fullstack development, Docker. Udacity Nano Degree for Mobile Web Specialist. Final project.

Home Page: https://roca-bws.firebaseapp.com/

License: GNU General Public License v3.0

CSS 4.97% HTML 8.64% JavaScript 67.03% Dockerfile 0.98% TypeScript 18.38%
es6 typescript firebase grunt docker azure material-design

mws-restaurant-reviews's Introduction

Restaurants Reviews - Progressive Web App POC


Mobile Web Specialist - Udacity Certification Course

Online demo

https://roca-bws.firebaseapp.com/

Video recorded demo

Video recorded demo

Webapp technical requirements

  • Offline support: Cache the static assets and webapp data
  • Image optimization
  • Responsive design
  • Accessibility features : Accessible for screen reader use
  • Performance metrics:
    • Progressive Web App: >90
    • Performance: >90
    • Accessibility: >90
  • Backend server
  • Frontend hosting with ssl support
  • Database
  • Cached JSON responses using the IndexedDB API
  • Material design component for new UI elements design
  • Functionality to defer updates until the user is connected when offline

Webapp non-technical requirements

  • Accessible for screen reader use
  • The client application works offline
  • The web app must to usable on any kind of device viewport, including desktop, tablet, and mobile displays
  • Use data stored on database
  • Server to provide and data store on the database
  • Any data previously accessed while connected is reachable while offline
  • Resilient handling of actions on offline mode
  • Allow user to mark favorites restaurants
  • Allow user to create restaurants' reviews

Technologies and services used

  • ES6
  • Typescript
  • Firebase
    • Hosting
    • Firestore(no-sql db)
    • Functions(serverless nodejs server)
  • Material Design Web Components
  • Grunt
  • Docker
  • Azure

    Try the app on working in a container on Azure : http://restaurantsreviews.centralus.azurecontainer.io

    • Container group
    • Web application - container base

Performance Results

The Performance Specifications Audit was performed using Google Chrome Version 69.0.3497.100

Audits configurations options: Device: Mobile, Throttling: Simulated Fast 3G, 4x CPU Slowdown, Clear storage option unchecked.

Important to know: While performing audit should not be enable the 'Disable cache' option in the Network panel nor the 'Update on Reload' and 'Bypass for network' options on the Application panel Service Workers tab.

How to run the webapp locally

  • Start client and backend servers:

    $ npm start

mws-restaurant-reviews's People

Contributors

rproenza86 avatar forbiddenvoid avatar

Stargazers

Spalding avatar  avatar  avatar  avatar

Watchers

 avatar  avatar

mws-restaurant-reviews's Issues

Fork new server

Fork and clone the server repository. You’ll use this development server to develop your project code.

Added logic to submit new reviews

Added logic to submit new reviews. If the app is offline, when a review is submitted, the UI is updated and the review is saved in IndexDB.

Accessibility: images

All content-related images include appropriate alternate text that clearly describes the content of the image.
 

Make required performance changes

Follow the recommendations provided by Lighthouse to achieve the required performance targets.

Lighthouse targets for each category exceed:

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

Image optimization

Create grunt task to convert images to different formats and optimization levels

Change fetch json data to api data

Change the data source for your restaurant requests to pull JSON from the server, parse the response and use the response to generate the site UI.

Accessibility: focus

Focus is appropriately managed allowing users to noticeably tab through each of the important elements of the page. Modal or interstitial windows appropriately lock focus.

Check focus using tab and screen reader.

Pay attention to the ring contrast and proper order.

Cloud native app work

Create Dockerfile spec to allow the app to run in a container.

Why?
This will improve and simplify the way the app can be deployed and tested among others great benefits.

Bug: Link to details is broke

When we click in the restaurant detail view the url should have the restaurant id which is use to find the restaurant info but is missing

Accessibility: semantic

Elements on the page use the appropriate semantic elements. For those elements in which a semantic element is not available, appropriate ARIA roles are defined.

Performance improvement

Follow the recommendations provided by Lighthouse to achieve the required performance targets.

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.