Nie daj zaskoczyć się utrudnieniom komunikacji miejskiej.
Clone or download
Fetching latest commit…
Cannot retrieve the latest commit at this time.
Permalink
Type Name Latest commit message Commit time
Failed to load latest commit information.
.meteor
client
cordova-build-override/hooks/after_prepare
lib
packages
private
public
server
.gitignore
LICENSE.txt
README.md
config.push.json.sample
makefile
mobile-config.js.sample
zodiase-mdl.json

README.md

City Ninja

City Ninja jest platformą wymiany informacji o bieżącym stanie komunikacji miejskiej. Doniesienia o opóźnieniach i kłopotach na trasie są pojawią się w czasie rzeczywistym na telefonach wszystkich użytkowników.

W Warszawie, aplikacja działa pod nazwą Warszawski Ninja.

Inspiracja

Projekt City Ninja zainspirowany został konkursem Dane po warszawsku oraz projektem mbta.ninja.

Instalacja

  • Zainstaluj Meteor wg instrukcji:

    curl https://install.meteor.com/ | sh
    
  • Sklonuj kod:

    git clone https://github.com/stasm/cityninja.git
    
  • Przejdź do nowo utworzonego katalogu:

    cd cityninja
    
  • Skopiuj i wyedytuj następujące pliki:

    cp config.push.json.sample config.push.json
    cp mobile-config.js.sample mobile-config.js
    cp client/meta.html.sample client/meta.html
    cp client/lib/custom.js.sample client/lib/custom.js
    cp client/tempates/view-eula.html.sample client/templates/view-eula.html
    
  • Uruchom lokalny serwer:

    meteor run
    

Licencja i kod źródłowy

Platforma City Ninja jest dostępna na licencji AGPL3. Jeśli masz pomysł na usprawnienie działania albo nową funkcję, zgłoś go albo wyślij pull requesta!

API

Platforma City Ninja udostępnia dane poprzez następujące API.

###GET /api/v1/reports/current

Zwraca listę bieżących zgłoszeń w formacie JSON. Każde zgłoszenie opisane jest następującymi polami:

  • source - źródło zgłoszenia: user, twitter lub sms,

  • sourceName - nazwa źródła, na przykład nazwa użytkownika, konta na Twitterze lub skrócony nr telefonu,

  • createdAt - data utworzenia zgłoszenia w formacie ISO 8601,

  • text - treść zgłoszenia,

  • tags - powiązane ze zgłoszeniem informacje o przystanku i liniach, których dotyczy zgłoszenie; tagi występują w postaci tablicy i każdy opisany jest trzema polami:

    • type - typ taga: stop lub line,
    • key - unikatowy identyfikator taga, np. nr przystanku (grupy przystanków) lub nr linii wraz z kierunkiem (A lub B),
    • name - czytelna nazwa taga.

W obecnej implementacji tylko jeden tag przypisany do danego zgłoszenia może mieć typ stop.

Przykład zwróconych danych:

{
  "status": "ok",
  "data": [
    {
      "source": "user",
      "text": "114 spóźniony 7 min",
      "tags": [
        {
          "type": "line",
          "key": "114B",
          "name": "114 → BRÓDNO-PODGRODZIE"
        },
        {
          "type": "stop",
          "key": "6003",
          "name": "PL.WILSONA"
        }
      ],
      "createdAt": "2016-02-04T16:27:46.362Z",
      "sourceName": "zyrijy"
    },
    {
      "source": "twitter",
      "sourceName": "ZTM Warszawa",
      "text": "Utrudnienia w kursowaniu autobusów linii 136 ",
      "tags": [],
      "createdAt": "2016-02-04T16:48:06.455Z"
    }
  ]
}