Giter Club home page Giter Club logo

gis709-assignment4's Introduction

Safe Routes

Motivation

South Africa has many townships, dangerous roads and areas that are not safe to be in. A "standard" GPS provides a route based on the shortest distance between the start and end location however, this may result in the shortest route passing through dangerous areas. Apps such as Google maps and Wayz have managed to incorperate traffic into their routing system but, to our knowledge no one has considered safetey as yet.

Solution

To address this problem, we have created an application that incorperates saftey into the routing suggestions. The suggested route is based on the the safety/danger of the roads instead of the shortest distance. It uses Dijkstra algorithm to determine the safest routes based on the fewest crime incidences.

How to Use the App

The application allows a user to pick a start and end location by either searching for a start and end location with the form above the map or by dragging the markers around the map. Once a start and end location have been determined, the safest route between the start and end location will be displayed.


The App

Tech Stack

All items used in stack are open source. The links attached lead you to the download and/ or documentation for each item respectively.

How the Tech Works

  • Postgres with the PostGIS and pgRouting extention is used to store the spatial data.
  • GeoServer is used to serve the spatial data from the database to the frontend.
  • Nominatim is an API that provides the locations and coordinates for searched places in Hatfield.
  • Leaflet is a mapping library that visually shows the routes that the user requests.

How to Start the App

Ensure that you have Docker downloaded on your computer.

If you are using a Microsoft Windows computer make sure to download Windows Subsystem for Linux (WSL) as Docker runs through WSL on Windows. To do this, follow the steps set out in Learn Microsoft.

Navigate to the source folder in the repository (/gis709-assignment4) and execute the following to start all of the necessary services.

docker compose up

Note if there is any service running on port 80 (usually Nginx) on your local machine stop the service (Otherwise localhost in your browser will navigate you to the local port instead of the Docker container port). In a browser go to "localhost" and the application should automatically open.

It may take a few seconds for the database to kick in. This will create all the infrastructure however, you will needtocreate your own databases and data.

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.