Projekt Pola składa się z kilku podprojektów, którego rdzeniem jest proejkt pola-backend
i na nim się skupimy w tym dokumencie
- pola-backend - rdzeń aplikacji napisany w Django.
- pola-ios - aplikacja na system iOS.
- pola-android - aplikacja na system Android.
- pola-flutter - aplikacja multiplatformowa napisana w Flutter (projekt niewydany).
- pola-web - statyczna strona napisana w Gatsby.
- pola-bi - zbiór narzędzi odpowiedzialnych za analityke biznesową.
- pola-ai - sztuczna inteligencja rozpoznajaca produkty (projekt porzucony).
- pola-facebook - chatbot na Facebook (projekt porzuczony).
pola-backend
zapewnia dwie funkcjonalności:- API wykorzystywany jest przez
pola-ios
,pola-android
,pola-flutter
,pola-web
. - CMS wykorzystywany jest przez redakcje do aktualizacji danych
- API wykorzystywany jest przez
pola-backend
jest uruchamiana na platformieHeroku
Platforma dostarcza kilka usług oodpowiedzialnych za monitoring:- New Relic APM - monitoring aplikacji (rzadko wykorzystywany)
- Logentries - dziennik aplikacji
- Sentry - monitoring błedów w aplikacji (często wykorzystywany)
- Heroku Scheduler - uruchamianie operacji cyklicznych
Ponad to dostarcza usługi składowania danych:
- Redis To Go - cache
- Heroku Postgres - baza danych
Wykorzystywany jest również MailGun do wysyłania wiadomości z przypomniemiem hasła.
pola-backend
jest aplikacja kontenerową wdrażana przez process Ci/CD uruchamiany na Github Action. Po szczegóły, patrz: Wdrożeniepola-web
jest rozwijana, jako niezależna aplikacja Gatsby/React, a następnie w procesie CI/CD uruchamianym naGithub Action
jest publikowana na wiaderkuAWS Bucket Web
.pola-web
odczytuje dane z wiaderka i zwraca użytkowniką. Z tego wynika, żepola-backend
ipola-web
mogą być wdrażane niezależnie, ale wykorzystują wspólne wiaderko.pola-backend
wykorzystuje wiaderka na platformie AWS:AWS Bucket AI Pics
- przechowuje zdjęcia od użytkowników, które miały być wykorzystywane przezpola-ai
(project porzucony).AWS Bucket Backend
- przechowuje pliki przesłane przez uzytkowników, które nie powinny być publiczne np. raporty.AWS Bucket Public
- przechowuje pliki statyczne np. kod CSS/JS,. Zawartość jest publiczna dla wszystkich.AWS Bucket Web
- przechowuje skompilowana aplikacjepola-web
.
pola-bi
jest składa się dwóch elementów:Kodu w tym repozytorium:
dbt`
- projet dbt, który pozwala na wykonywanie transformacji danych.postgres_to_gcs
- skryptu Python, który kopiuje dane zPostgresSQL
do Gogole BigQuery
Obydwa narzędzia są uruchamiane na
GitHub Action
.Do wizualizacji danych wykorzystywany jest Google Looker Studio/Google Data Studio. On łączy się z
Google BigQuery
.