.. image:: https://raw.githubusercontent.com/caputomarcos/tsp-rest-api-server/master/logotipo-pickngo.png
tsp-rest-api-server
TSP Rest Api Server - Rest Api Server using Dijsktra's algorithm applied to travelling salesman problem.
License
Licensed under the MIT License.
Install
Follow the steps below to get everything up and running.
pip
-
Create project folder:
.. code-block:: bash
$ mkdir tsp-rest-api-server && cd tsp-rest-api-server
-
Create virtualenv in the normal way:
.. code-block:: bash
$ virtualenv env --python=python
-
Active your new virtualenv:
.. code-block:: bash
$ source env/bin/activate
-
Install tsp-rest-api-server:
.. code-block:: bash
$ pip install tsp-rest-api-server
-
Create setting file:
.. code-block:: bash
$ tsp_rest_api_server settings
-
Set EVE_SETTINGS:
.. code-block:: bash
$ export EVE_SETTINGS=$PWD/settings.py
-
Run tsp rest api server:
.. code-block:: bash
$ tsp_rest_api_server runserver
Git
-
Clone repository:
.. code-block:: bash
$ git clone git@github.com:caputomarcos/tsp_rest_api_server.git
-
Go to tsp_rest_api_server source folder:
.. code-block:: bash
$ cd tsp-rest-api-server/
-
Create virtualenv in the normal way:
.. code-block:: bash
$ virtualenv env --python=python
-
Active your new virtualenv:
.. code-block:: bash
$ source env/bin/activate
-
Create dev environment:
.. code-block:: bash
$ make develop
Usage
-
Create routes:
.. code-block:: bash
$ curl -d "@map.json" -H "Content-Type: application/json" -X POST http://0.0.0.0:5000/maps
or
$ curl -d '{ "title":"Sao Paulo", "routes":[{"origin":"A","destiny":"B","distance":10},{"origin":"B","destiny":"D","distance":15},{"origin":"A","destiny":"C","distance":20},{"origin":"C","destiny":"D","distance":30},{"origin":"B","destiny":"E","distance":50},{"origin":"D","destiny":"E","distance":30}]}' -H "Content-Type: application/json" -X POST http://0.0.0.0:5000/maps
-
Search shortest route:
.. code-block:: bash
$ curl 'http://0.0.0.0:5000/maps/shortest?map=Sao%20Paulo&origin=A&destiny=D&price=2.50&autonomy=10'
{
"data": [
{
"Path": "['A', 'B', 'D']"
},
{
"Total KM": "25.00"
},
{
"Cost": "6.25"
}
]
}
Drop all mongodb databases
.. code-block:: JavaScript
# dropall.js
var dbs = db.getMongo().getDBNames()
for(var i in dbs){
db = db.getMongo().getDB( dbs[i] );
print( "dropping db " + db.getName() );
db.dropDatabase();
}
usage
.. code-block:: bash
mongo dropall.js
refs
DIJKSTRA'S SHORTEST PATH ALGORITHM <http://www.bogotobogo.com/python/python_Dijkstras_Shortest_Path_Algorithm.php>
_