An app using Dijkstra algorithm to find the shortest path between different cities. https://dijkstra-backend.ruihildt.xyz
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
rui hildt a227f7f21b Update deployed link and formatting 6 months ago
api Update doc 1 year ago
data Update deployed link and formatting 6 months ago
helpers Remove unused files 1 year ago
.gitignore first commit 1 year ago
README.md Update deployed link and formatting 6 months ago
index.js Update documentation url 7 months ago
knexfile.js first commit 1 year ago
package-lock.json Update deployed link and formatting 6 months ago
package.json Add package to allow CORS and helmet for security 1 year ago

README.md

dijkstra-backend

Find the the shortest path between different cities in Belgium with Dijkstra algorithm.

API Documentation


Values required in bold.

COUNTRIES countries

field data type metadata
id unsigned integer primary key, auto-increments, generated by database
name string

Get a list of all cities by country id

GET /api/countries/:country_id

Response

An array of json objects with a list of cities in the selected country with name, id and country_id.

[
  {
    "id": 1,
    "name": "bruges",
    "country_id": 1
  },
  {
    "id": 2,
    "name": "antwerp",
    "country_id": 1
  },
  {
    "id": 3,
    "name": "ghent",
    "country_id": 1
  },
]

CITIES cities

field data type metadata
id unsigned integer primary key, auto-increments, generated by database
name string
country_id unsigned integer foreign key referencing countries.id

Get a list of all cities

GET /api/cities

Response

An array of json objects with id, name and country_id.

[
  {
    "id": 1,
    "name": 'bruges',
    "country_id": 1
  }
]

ROADS roads

field data type metadata
id unsigned integer primary key, auto-increments, generated by database
start_city_id string required
end_city_id string required
distance unsigned integer

Get roads list

GET /api/roads

Response

A array of json objects with id, start_city_id, 'end_city_idanddistance`.

[
  {
    "id": 1,
    "start_city_id": 1,
    "end_city_id": 3,
    "distance": 50
  }
]

Shortest Path cities

Get the shortest path between two cities and the total distance

GET /api/path

Request

Add the start_city_id and end_city_id as query strings to the url.

/api/path?start_city_id=2?end_city_id=9
Response

A json object composed of the path correctly ordered and the total distance.

{
  "path": [
    {
      "id": 2,
      "name": "antwerp"
    },
    {
      "id": 4,
      "name": "mechelen"
    },
    {
      "id": 5,
      "name": "brussels"
    },
    {
      "id": 8,
      "name": "liege"
    },
    {
      "id": 7,
      "name": "namur"
    },
    {
      "id": 9,
      "name": "arlon"
    }
  ],
  "distance": 337
}