Add Readme

This commit is contained in:
rui hildt 2020-02-08 20:50:22 +01:00
parent 4379b4d231
commit 35e2dcb8da
3 changed files with 127 additions and 5 deletions

122
README.md Normal file
View File

@ -0,0 +1,122 @@
# dijkstra-backend
Dijkstra is an app thas uses Dijkstra algorithm to display the shortest path between different cities in Belgium.
Deployed backend: https://dijkstra-rui.herokuapp.com/
## 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 countries list
**`GET /api/countries`**
##### Response
A json object with the `name` and `id`.
```
{
"id": 1,
"name": "Belgium"
}
```
### CITIES | **`cities`**
| field | data type | metadata |
| :--------| :--------------------- | :-------------------------------------------------- |
| id | unsigned integer | primary key, auto-increments, generated by database |
| name | string | |
| integer | unsigned integer | foreign key referencing `countries.id` |
#### Get cities list
**`GET /api/cities`**
##### Response
A json object 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 json object with `id`, `start_city_id`, 'end_city_id` and `distance`.
```
{
"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
A json object with **`start_city_id`** and **`end_city_id`**.
```
{
"start_city_id": 2,
"end_city_id": 9
}
```
##### Response
A json object composed of the `path` (in the correct order) 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
}
```

View File

@ -3,10 +3,10 @@ exports.seed = function(knex) {
return knex('cities').truncate() return knex('cities').truncate()
.then(function () { .then(function () {
return knex('cities').insert([ return knex('cities').insert([
{ {
"id": 1, "id": 1,
"name": 'bruges', "name": 'bruges',
"country_id": 1 "country_id": 1
}, },
{ {
"id": 2, "id": 2,

View File

@ -3,7 +3,7 @@ const server = require("./api/server");
server.get("/", (req, res) => { server.get("/", (req, res) => {
res.json({ res.json({
message: `API server for Dijkstra. :)`, message: `API server for Dijkstra. :)`,
documentation: `Coming` documentation: `Check out: https://github.com/ruihildt/dijkstra/tree/completed-backend`
}); });
}); });