Giter VIP home page Giter VIP logo

biyunwu / react-neighbourhood-map Goto Github PK

View Code? Open in Web Editor NEW
0.0 1.0 0.0 11.3 MB

My Favorite Restaurants in NYC. This is the final project of my Udacity Front-end Nanodegree program which is funded by Google Scholarship.

Home Page: https://biyunwu.com/react-neighbourhood-map/

HTML 5.69% CSS 9.21% JavaScript 85.09%
react google-maps-api responsive-web-design udacity-frontend-nanodegree restaurants nyc

react-neighbourhood-map's Introduction

Introduction

This is the final project of my Udacity Front-end Nanodegree program which is funded by Google Scholarship.

The project was bootstrapped with Create React App and powered by Google Maps and Foursquare APIs.

Check the live demo.

Project Structure

├── README.md - This file.
├── package.json
├── public
│   ├── favicon.ico
│   └── index.html
└── src
    ├── App.js # This is the root of the app.
    ├── App.css # Styles for the app.
    ├── Data.js #Feed basic info of restaurants
    ├── bar.svg #Burger icon
    ├── GitHub.png
    ├── App.test.js # Used for testing. Provided with Create React App.
    └── components # Components that constitute the app. See below for more details.
        ├── GoogleMapsContainer.jsx
        ├── Search.jsx
        ├── Header.jsx
        └── Footer.jsx

Run the Project

Run in dev modeg

  • Clone or download the project.
  • Use $ npm install command to install all the dependencies.
  • $ npm start to run the project.

Responsiveness and Layout

This project is designed to be responsive. When the width of the viewport is equal to or above 800px, the sidebar is docked and the burger icon in the header is hidden automatically. Otherwise, the sidebar is hidden and the burger icon is visible. See the below images for more details.

  • Desktop Version

The desktop version of this project

  • Mobile Version

The mobile version of this project

Functionality

Marker

  • Clicking any marker (restaurant) on the map trigers a fetching execution to get detailed info about the restaurant from Foursquare.

  • Then, the filtered info will be shown in the marker's info window. The info includes the restaurant's name, pricing tier, ethnic or regional flavor, rating, dilivery info, contact and address. Besides, if the restaurant's official website and third party delivery options are available, they are going to be embeded in the corresponding texts.

  • After the marker is cliked, the corresponding list item's backgorund in the sidebar changes.

  • Please refer to the screenshot of the Layout section or the following Sidebar section for more details.

Sidebar

  • Search. The search field accepts users' inputs to filter matching result. The markers are updated simultaneously.
  • List. The list items (restaurants' names) are sorted by restaurants' locations from north to south.
  • Click list items. Clicking any list item in the sidebar trigers the corresponding marker's drop animation and InfoWindow (which contains the restaurant's basic info) as the following gif shows. A gif shows the list item is clicked, and the corresponding marker animates

Warning

  • Foursquare API quota exceeded. Beacause of the limited quota of Foursquare, the info window may only show the restaurant's basic info. In this situation, the footer changes the background to red along with a warning as the following image shows. Quota exceeded

  • No network connection. If browser is offline on user's end, the following warning implicates that situation. Connection failed

Accessibility

The project use ARIA to impove accessibility.

API

Attribution

Contribution

All pull requests are welcome.

react-neighbourhood-map's People

Contributors

biyunwu avatar

Watchers

James Cloos 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.