Giter Club home page Giter Club logo

isp-2020-zekjakgyndam's Issues

Kolejkowanie requestów

Trzeba zabezpieczyć się przez wysyłaniem zbyt wielu wiadomości do określonego serwisu w zbyt krótkim czasie, bo może to grozić blokadą.

Instalacja basemap na ubuntu

Trzeba znaleźć działający sposób na zainstalowanie basemap na ubuntu. Jako, że to może być dość uciążliwe, bo pewnie trzeba będzie instalować całą masę dodatkowych pakietów, sugeruję, żeby spisywać wszystkie wpisane komendy do jakiegoś notatnika. Pozwoli nam to na szybką instalację wszystkiego co potrzebne poprzez copy/paste bloków komend w konsolę (lub napisanie programu bash'owego, który zrobi to za nas).

Funkcja Lambda

Należy stworzyć odpowiednią funkcję lambda z wykorzystaniem technologii AWS Lambda. Funkcja ta powinna spełniać następujące zadania:

  • przyjmować i dekodować dane o samolocie wepchnięte do stream'a
  • sprawdzenie czy dany samolot leży na obszarze Polski (z wykorzystaniem bounding boxów i geoapify
  • dodanie odpowiedniego wpisu do tabeli w DynamoDB

Wybór technologii zrównoleglającej działania

Z listy otrzymanych samolotów trzeba wybrać tylko te, które są w/nad Polską. Sprawdzanie musi wykonywać się równolegle dla każdego samolotu, a do tego trzeba wybrać odpowiednią technologię i je jakoś przetestować.
Wstępnie do sprawdzenia są:

  • kinesis
  • kafka

W poszukiwaniu nowego samolotowego API

Opensky-API jest fajne, ale brakuje informacji dotyczących miejsca startowego i lądowania, więc nie jesteśmy w stanie estymować opóźnienia.

Poszukiwania nowego dobrego API można zacząć od:
https://www.aerodatabox.com/

Poza tym tutaj jest spis 10 API:
https://geekflare.com/flight-data-api/#anchor-cirium-flight-stats

  1. Aviationstack odpada bo pokazuje 1000 "przypadkowych" samolotów.
  2. FlightAware wymaga podania danych karty kredytowej
  3. Opensky nie daje informacji dotyczących miejsca startowego i lądowania
  4. Aviation Edge nie oferuje już darmowego API

Wybór kształtu tabel DynamoDB

Postanowiliśmy, że dane o samolotach będziemy zapisywać do bazy danych z wykorzystaniem technologii DynamoDB. Ze względu na specyficzne możliwości tej technologii trzeba dobrze przemyśleć wygląd tabeli/tabel, wybrać odpowiednie klucze i dane do wyboru.

Wizualizacja samolotów

Można się już zająć rysowaniem samolotów na mapie Polski. Do zrealizowania są następujące rzeczy:

  • Znalezienie odpowiedniej biblioteki graficznej. Możesz sprawdzić czy biblioteka matplotlib umożliwia wklejanie obrazków w wyznaczony punkt, oraz czy można wklepać obrazek jako tło rysunku
  • Wygenerowanie N losowych punktów i aktualizowanie ich współrzędnych w każdej iteracji pętli (na razie po prostu zrób pętlę w której do każdego punktu dodajesz jakieś dx i dy i to wyrysowujesz)
  • Wklepanie na tło obrazka Polski
  • Wklepanie w miejsce punktów obrazków samolotów (na razie z obojętnie jaką orientacją)

Sprawdzanie czy dany samolot znajduje się nad terenem Polski

Można ograniczyć wywoływanie geoapify w celu sprawdzenia czy dany samolot jest nad terenem Polski. W tym celu należy zdefiniować odpowiednie obszary geograficzne, które na pewno należą do Polski lub na pewno do niej nie należą. Wówczas w pierwszej kolejności sprawdzane jest czy dany samolot znajduje się w którymś z tych obszarów, a jeśli nie, to dopiero wówczas wysłanie odpowiedniego requesta do geoapify.

Ustawianie środowiska programistycznego

Na samym początku piszemy na naszych komputerach, a nie na AWS, więc wypadałoby żebyście przygotowali sobie pythonowe (wirtualne) środowiska i założyli konto na opensky. Po prostu spójrzcie w README.md i zróbcie wszystko po kolei. Odpalcie sobie ten przykładowy kod na końcu i sprawdźcie czy wam działa.

Niech każdy z was po zrobieniu tych rzeczy napisze w komentarzu, że się udało, żebym mógł zamknąć issue.

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.