Code Monkey home page Code Monkey logo

paketci-frontend's Introduction

It is a project developed for BiTaksi Getir Hackathon 2018. Detailed information can be foud from below.

Team Paketci!

Timeline of our little project!

Paketçi Backend

Getir Hackhathon 2018

Takımdakiler: Sertan Sezgin Kutlu <<<<<<< HEAD Ertuğrul Çınar

Ertuğrul Çınar

600a5566f7b35449521505291b6a4b042b8d38c0 Mehmet Ozan Ünal

Paketci App

Its a work on pack collection and delivery for courier and observer.

Features:

By Backend: 1.Assign routes for couries by relate most efficent path. 2.Update states of packets. 3.Update states of couriers.

By Frontend 1.Courier see waypoints and pack to collect. 2.Observers see all couriers and pack states. 3.Adding new packs

Used Libraries and API in frontend

1.Android Libraries 2.Java 3.Volley 4.Google Maps Directions API 5.Google Maps Javascript API 6.AngularJS

Compleated Part of Frontend

Application is designed for used by cariers. It gave users to see which way courier should go and where to take packs.

In order to make it more stable, decions of disturbution made at backend in order to keep system stable for all users, this app communacte with backend by using asyncrounous http requests.

For async HTTPS requess, it been used Volley library in JSON Object and String responsed GET and POST requests.

App takes missions from backend and by communicating with Google Direcitons API, get caluclations of every shorth path waypoints which collect and carry pointed packs in missions and drawing them on a Map View.

In angular web app we see all packs and couriers with their missions and routes. Its allows users to add new packs to environment.

<<<<<<< HEAD

BACKEND

enter image description here Data structure and Crud Outputs Sample JSON files, it can be enchance according to packet number and courier number

/api/courier

> [   {
>     "_id": 0,
>     "initLocation": {
>       "lat": 40.73726833204571,
>       "long": -111.86816435821093
>     },
>     "curLocation": {
>       "lat": 40.73726833204571,
>       "long": -111.86816435821093
>     },
>     "weightCapacity": 20,
>     "remainingWeightCapacity": 18.2923904630732,
>     "pieceCapacity": 8,
>     "remainingPieceCapacity": 7,
>     "routes": [
>       {
>         "_id": 1,
>         "routeFromGoogle": "",
>         "distance": 0.02248501759660298,
>         "startLoc": {
>           "lat": 40.73726833204571,
>           "long": -111.86816435821093
>         },
>         "endLoc": {
>           "lat": 40.73287234594392,
>           "long": -111.84611325115227
>         },
>         "nearPacketsDistance": [
>           -1
>         ],
>         "state": 1
>       },
>       {
>         "_id": 3,
>         "routeFromGoogle": "",
>         "distance": 0.01372524844602735,
>         "startLoc": {
>           "lat": 40.73287234594392,
>           "long": -111.84611325115227
>         },
>         "endLoc": {
>           "lat": 40.745843583374935,
>           "long": -111.84162666621344
>         },
>         "nearPacketsDistance": [
>           -1
>         ],
>         "state": 1
>       }
>     ],
>     "packets": [
>       {
>         "_id": 0,
>         "initLocation": {
>           "lat": 40.73287234594392,
>           "long": -111.84611325115227
>         },
>         "destLocation": {
>           "lat": 40.745843583374935,
>           "long": -111.84162666621344
>         },
>         "weight": 1.707609536926801,
>         "state": 1,
>         "courier": {}
>       }
>     ]   } ]

/api/packet

[
  {
    "_id": 0,
    "initLocation": {
      "lat": 40.73287234594392,
      "long": -111.84611325115227
    },
    "destLocation": {
      "lat": 40.745843583374935,
      "long": -111.84162666621344
    },
    "weight": 1.707609536926801,
    "state": 1,
    "courier": {}
  }
]

/api/route

> [   {
>     "_id": 0,
>     "routeFromGoogle": "",
>     "distance": 0.027888779677731172,
>     "startLoc": {
>       "lat": 40.73726833204571,
>       "long": -111.86816435821093
>     },
>     "endLoc": {
>       "lat": 40.745843583374935,
>       "long": -111.84162666621344
>     },
>     "nearPacketsDistance": [
>       -1
>     ],
>     "state": 0   },   {
>     "_id": 1,
>     "routeFromGoogle": "",
>     "distance": 0.02248501759660298,
>     "startLoc": {
>       "lat": 40.73726833204571,
>       "long": -111.86816435821093
>     },
>     "endLoc": {
>       "lat": 40.73287234594392,
>       "long": -111.84611325115227
>     },
>     "nearPacketsDistance": [
>       -1
>     ],
>     "state": 1   },   {
>     "_id": 2,
>     "routeFromGoogle": "",
>     "distance": 0,
>     "startLoc": {
>       "lat": 40.73287234594392,
>       "long": -111.84611325115227
>     },
>     "endLoc": {
>       "lat": 40.73287234594392,
>       "long": -111.84611325115227
>     },
>     "nearPacketsDistance": [
>       -1
>     ],
>     "state": 0   },   {
>     "_id": 3,
>     "routeFromGoogle": "",
>     "distance": 0.01372524844602735,
>     "startLoc": {
>       "lat": 40.73287234594392,
>       "long": -111.84611325115227
>     },
>     "endLoc": {
>       "lat": 40.745843583374935,
>       "long": -111.84162666621344
>     },
>     "nearPacketsDistance": [
>       -1
>     ],
>     "state": 1   } ]

Route Optimization

enter image description here Firstly, every courier has a route to common destination point. Then most efficient package route change apply. It's calculated with change of route distance according to package location. It will iterate until no package will left. But according to courier capacities, some of package can be over couriers' capacities; so you need to go second round.

"dependencies": {
    "body-parser": "~1.18.2",
    "cookie-parser": "~1.4.3",
    "debug": "~2.6.9",
    "express": "~4.15.5",
    "mathjs": "^3.20.2",
    "point-line-distance": "^1.0.0",
    "google_directions": "^0.6.0",
    "polyline": "^0.2.0",
    "request": "^2.83.0"
  }

600a5566f7b35449521505291b6a4b042b8d38c0

paketci-frontend's People

Contributors

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