Giter Site home page Giter Site logo

newtonjoshua / restaurantfinder Goto Github PK

View Code? Open in Web Editor NEW
1.0 3.0 0.0 505 KB

A Web App for tourists to Find the nearest Restaurants

Home Page: https://RestaurantFinder.NewtonJoshua.com/

TypeScript 2.30% JavaScript 1.37% HTML 88.21% CSS 8.11%
angular-4 ng-bootstrap ng-cli firebase google-maps-api bootstrap-4 firebase-auth travis-ci twitter-api

restaurantfinder's Introduction

Build Status dependencies Status Twitter

Restaurant Finder

https://restaurantfinder.newtonjoshua.com/

User Stories

  • As a tourist I want to know which restaurants are currently near me, so I can decide where I might want to eat.
  • As a tourist I want to be informed how other people experienced a restaurant, so I can make a better judgement of the place where I want to eat.
  • As a tourist I want to express how I experienced a restaurant after I visited it, so I help other tourists to make a better decision in the future.

Key aspects

  • Neat implementation of the user interface
  • Linting for both business logic and CSS
  • Clear way on how to integrate the CI approach
  • Documentation โ€“ TSDocs and readme.md file
  • Description on how this application can be deployed โ€“ FireBase

Google Maps setup

Refer Google Maps Documentation.

Firebase setup

Refer FireBase Setup Documentation.

Scaffolding

This project was generated with Angular CLI version 1.0.0-rc.2.

To get more help on the Angular CLI use ng help or go check out the Angular CLI README.

PWA & Add to Home Screen

This Web app as a Progressive Web Apps (PWA) is reliable, fast, and engaging. Visit https://restaurantfinder.newtonjoshua.com/ in any android phones. It'll prompt you to add this web app to your homescreen, making it easy to launch and return to this app. Thanks to Web app install banners.

Web App Quality

Lighthouse, an open-source automated tool, is used for improving the quality of this web pages.

npm install -g lighthouse

lighthouse https://restaurantfinder.newtonjoshua.com/ --view --output-path=./src/docs/lighthouse-results.html

Take a look at the latest Quality Report below

https://restaurantfinder.newtonjoshua.com/docs/lighthouse-results.html

Refer LightHouse Documentation.

Linting

For TypeScript Linting - ng lint

For CSS Linting - csslint src

Development server

Run ng serve for a dev server. Navigate to http://localhost:4200/. The app will automatically reload if you change any of the source files.

Continuous Integeration

The continuos integeration service, Travis CI, is used for automatically build and deploy this code as you push it to GitHub.

continuous integration : angular cli + firebase + travis ci

The angular cli is used to build the project and firebase is used to host the web app.

Take a look at the Travis CI Dashboard here https://travis-ci.org/NewtonJoshua/RestaurantFinder

Documentation

TypeDoc, a documentation generator is used to generate the documentation for this TypeScript project/

npm install -g typedoc

typedoc --module commonjs --includes src/app --out src/docs

Take a look at the latest documentation generated as a step in the continuous integeration is given below,

https://restaurantfinder.newtonjoshua.com/docs/globals.html

Refer TypeDoc Documentation.

Deployment

Run ng build to build the project. The build artifacts will be stored in the dist/ directory. Use the -prod flag for a production build.

FireBase is used to easily deploy and host this app's static assets (HTML, CSS, JavaScript, etc)

firebase deploy

Refer FireBase Hosting Documentation.

Test with different GeoLocation

To test the functionality of the web app you can manipulate the current geolocation in the chrome browser and search for restaurants.

Refer Emulating Geolocation.

Time taken

The time taken to develop, test, deploy, document this web app is apprx. 16 hrs, equivalent to 2 working days.

About the developer

The AITAM products are developed by Newton Joshua

Know more @ NewtonJoshua.com.

Socialize @ FaceBook.

restaurantfinder's People

Contributors

angular-cli avatar newtonjoshua avatar

Stargazers

 avatar

Watchers

 avatar  avatar  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.