Code Monkey home page Code Monkey logo

deprem-yardim-backend-go's Introduction

derleme durumu lisans

BENİ OKU

Bu kod tabanında, şu anda yapım aşamasında bulunan acikyazilimagi.com'nun önizleme sürümü yer almaktadır.

main branch'ine aktarılan değişiklikler, bir dizi derleme işleminden sonra https://acikyazilimagi.com adresinde belirecektir.

Projeyi Çalıştırmak

Çalışma Ortamını Hazırlamak

node.js ve pre-commit'in son sürümlerinin sisteminizde kurulu olduğundan emin olun.

Repository'i klonlayıp, npm üzerinden bağımlılıkları çekerek çalışma ortamınızı hazır hale getirin.

git clone https://github.com/acikyazilimagi/acikyazilimagi.git
cd acikyazilimagi

corepack up
pre-commit install

Çalışmaya Başlamak

node --run dev komutu ile geliştirme modunda kod tabanına müdahale etmeye başlayabilirsiniz. Komutu çalıştırdıktan bir süre sonra browser'ınız açılacak, siz değişiklik yaptığınız sürece "hot reloading" sayesinde browser'daki kod otomatik olarak güncellenecektir.

Çalışmayı Kontrol Etmek

pre-commit run --all-files komutu ile yapılan geliştirmenin belirlenen standartlara uyup uymadığını kontrol edebilirsiniz. Eğer bu kontrolü yapmazsanız Pull Request oluşturduğunuzda GitHub tarafından bu kontroller otomatik işletilecek ve açmış olduğunuz Pull Request'i sizden güncellemenizi isteyecektir.

Bazı kod standartları otomatik olarak düzeltilebilmektedir, bunu sağlamak için node --run format komutunu kullanabilirsiniz.

Aynı zamanda yazmış olduğunuz birim testlerini node --test komutu ile başlatabilirsiniz. Testler de aynı lint işlemi gibi hem pull request hem de push esnasında GitHub Actions tarafından CI/CD otomasyonuna bağlı olarak çalıştırılmaktadır.

Dizin Yapısı

Klasör Açıklama
/src/ Kaynak dosyalarını içeren klasör
/public/ Web dizininde yer alacak tüm statik dosyalar

Gereksinimler

Lisans

MIT License, daha fazla detay için lütfen LICENSE dosyasını inceleyin.

Katkı Sağlayamak

Herhangi bir katkıya açıktır. Hata düzenlemeleri, yeni özellik ve modüller ekleyebilirsiniz.

  • Koda katkı sağlamak için: Yukarıda anlatıldığı gibi repository'i klonlayın, değişikliklerinizi gerçekleştirin, ve bir pull request oluşturun.
  • Bir hata bildirmek için: Bir şeyler ters gidiyorsa, GitHub Issues üzerinden yeni bir issue oluşturup bize bildirin.

deprem-yardim-backend-go's People

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

deprem-yardim-backend-go's Issues

refactor: Projenin daha kontrollü geliştirilmesi için mimari stabilizasyon

Refactor İsteği

-- bu bilgiyi ekleyiniz
** discord kullanıcı adı: @ss.ibrahimbas#4990 **

Refactor isteğiniz bir sorunla ilgili mi? Lütfen açıklayın.

Projenin şu anki mimarisinde konfigürasyon dosyaları ve kodlar iç içe. Ayrıca README'de cqrs ve clean architecture izlenimi verse de projede net olarak bu mimariler uygulanmıyor. Mimari anlamında daha katı gitmemiz daha verimli geliştirme süreci ve daha test edilebilir bir proje sağlayacaktır.

Çözüm Önerisi

Şu anda aktif olarak açık kaynaklı bir mimari proje üzerinde çalışıyorum. Cqrs, hexagonal ve clean architecture'a yakın bir mimarisi var. O projedeki gibi bir proje mimarisi kullanabiliriz.

Örnek: https://github.com/mixarchitecture/arch/tree/main/services.auth

Ek Bağlam

Ek bağlam bulunmamaktadır.

feat: harici kanallardan veri girişi sağlayan endpoint

İsteğiniz şeyi tanımlayın

Botlardan ve data ekiplerinden gelen ham veriyi içeriye alan ve adres/ihtiyaç bilgisini çıkartacak ML sistemlere ileten endpoint.

-- bu bilgiyi ekleyiniz
** discord kullanıcı adı: @emre.savci#0226 **

Ek Bağlam

Tüm kanallardan veriyi afet backend sistemine alan endpoint.

refactor: lokal çalıştırma için docker-compose

Refactor İsteği

** discord kullanıcı adı: @ebati#3213**

Lokal çalışmayı kolaylaştırmak için tek tek docker run ile çeşitli konteynerler çalıştırmak yerine docker-compose.yml eklenebilir.

Çözüm Önerisi

docker-compose dosyası eklenebilir.

Ek Bağlam

Ek bağlama gerek yok.

feat: Tweet dogrulugunun Satellite Imagery ile Cakistirilip Dogrulanmasi

İstediğiniz özellikleri tanımlayın

Cok sayida AKUT'a yanlis yonlendirme yapilmis. Hic bir sekilde hasar gormemis veriye ekipler yonlendirilmis. Akut ekipleri bu binalarda saatler harciyor. Tweetler satellite imagery ile cakistirilip, confirm edilebilir.
MAXAR bir acil durum organizasyonu ve bu durumlarda acik satellite imagery paylasiyor. Turkiye repo'su asagida:
https://www.maxar.com/open-data/turkey-earthquake-2023
Elimizde building footprint verisi de var. Alihan Polat bunu paylasmisti. Ulasamazsaniz bana yazin, microsoft'un sitesinde tum dunya building footprint mevcut.

-- bu bilgiyi ekleyiniz
** discord kullanıcı adı: @canerakin111 **

Değerlendirdiğiniz alternatifleri tanımlayın

  1. Onceki ve guncel imageryleri cakistir. Deprem plate kaymasindan dolayi offset olacak. O yuzden imageler parcalanmali
  2. Building footprint feature detection icin kullanilabilir.
  3. Yikilan binalar tanimlaninca, validation yapilmali. Bu validation tweetler ile yapilabilir.
  4. Son user validation yapilip, onayli noktalar harita yuklenir.
  5. Harita'da onayli noktalar "confirmed/onayli" bilgisi ile sunulur.

ayni lokasyonda 1900 uzeri nokta

Hata Tanımı

Ayni noktada 1900 uzeri nokta var. Tweetler de bos gozukuyor.

-- bu bilgiyi ekleyiniz
** discord kullanıcı adı: @canerakin111 **

Hata Ortamı

rc.afetharita.com
afetharita.com

Hatayı nasıl aldığınızı adım adım açıklayın

  1. Afetharita.com'a gidin. https://afetharita.com/#lat=36.213508623647314&lng=36.15446342155337&zoom=18
  2. Hatay bolgesine en cok pin'in oldugu cluster'a zoomlayin
  3. Asagidaki ekran goruntusundeki cluster 1913 tane nokta gosteriyor.

Beklenen Davranış

Amac kurtarma oldugu icin 1 veya 1'den cok bildirimin olmasi durumu degistirmiyor. Akut 1 kisi de olsa gidecek 10 kisi de olsa gidecek. O yuzden coklu bildirimlerin oldugu lokasyonlara filtreleme yapip tek bir nokta secelim.

  1. Bir kullanci olarak, haritayi aciyorum.
  2. Her zoom yaptigim noktada sadece bir tweet bildirimi gorunuyor.

Ekran Görüntüleri

image

Masaüstü Bilgileri

  • İşletim Sistemi: Windows
  • Tarayıcı: Chrome

Staging environment

Rahata erince Pipeline'a staging environment eklemek iyi olabilir. Çok fazla breaking change olabiliyor. Speclerin aynı ayarda olmasına gerek yok ama olursa pentest / stress test vb yapabiliriz.

Eski issue 91

`feeds/areas` response icerisinde birden fazla id field geri donuyor

Merhaba,

feeds/areas altinda hem bir id hem de bir entry_id geliyor, sizin internal yapinizda ne anlam ifade ediyor bunlar ayri ayri bilmiyorum ama id bizim bir isimize yaramiyor UI'da. Sadece entry_id kullaniyoruz (cunku /feeds/:entry_id kullaniyoruz.

Eger bu id ile ilgili bir planiniz yok ise lutfen response'dan kaldiralim boylece aldigimiz data daha da kuculur.

Tesekkurler.

{
    "count": 1918,
    "results": [
        {
            "id": 11,
            "loc": [
                37.5774127,
                36.9212668
            ],
            "entry_id": 16715
        },
...

Ornek request https://apigo.afetharita.com/feeds/areas?ne_lat=37.60248094203899&ne_lng=36.91128574295998&sw_lat=37.592695430778676&sw_lng=36.89933073969745

feat: Babala ekiplerinden gelen verilere ait `reason` field degerinin api response'a eklenmesi

İsteğiniz şeyi tanımlayın

Babala ekiplerinden bizlere iletilen yeni lokasyon verilerine ait reason {Erzak, Enkaz} verisinin api response'a eklenerek frontend tarafindan gosterilen datanin ayristirilmasinin saglanmasi

-- bu bilgiyi ekleyiniz
** discord kullanıcı adı: @nemesisce#9359

Değerlendirdiğiniz alternatifleri tanımlayın

Verilerin veri tabani tablolarimiza aktarilmasi

  • feed_entry yeni field => reason
  • feed_location yeni field => reason

Ek Bağlam

Bu özellik isteği hakkında herhangi bir başka bağlam veya ekran görüntüsü ekleyin.

Varsa eğer sistem dizayn öneri görseli

feat: we need to run cron job for ahbap support locations map

İsteğiniz şeyi tanımlayın

Açık ve kısa bir şekilde istediğiniz feature'ın ne olduğunu tanımlayın.

We have reached data for visualizing support locations via Ahmap Needs Map. We are implementing this data currently.
We need to update our data at certain times. Eg: 1 hour or 30min.

This is our data source: https://www.google.com/maps/d/u/1/viewer?mid=1aQ0TJi4q_46XAZiSLggkbTjPzLGkTzQ&ll=37.425097065410746%2C38.568976663281234&z=8

-- bu bilgiyi ekleyiniz
** discord kullanıcı adı: @oguzergul#9634**

Değerlendirdiğiniz alternatifleri tanımlayın

Değerlendirdiğiniz herhangi bir alternatif çözüm veya özellik hakkında açık ve kısa bir açıklama.

Ek Bağlam

Bu özellik isteği hakkında herhangi bir başka bağlam veya ekran görüntüsü ekleyin.

Varsa eğer sistem dizayn öneri görseli

feat: build validasyonu icin basit github actions

İsteğiniz şeyi tanımlayın

Bazen conflictleri cozerken buildi bozacak sekilde degisiklikler yapilabiliyor. PR acildiginda go build yapabilecek sekilde bir validasyon eklenirse guzel olur

-- bu bilgiyi ekleyiniz
** discord kullanıcı adı: @huseyinbabal#7208**

Değerlendirdiğiniz alternatifleri tanımlayın

Değerlendirdiğiniz herhangi bir alternatif çözüm veya özellik hakkında açık ve kısa bir açıklama.

Ek Bağlam

Bu özellik isteği hakkında herhangi bir başka bağlam veya ekran görüntüsü ekleyin.

Varsa eğer sistem dizayn öneri görseli

Filter/Status - Yardım ulaşamamış konumları öne çıkarmak için

yarliganfatih yazmış:

"Veritabanımızda elde ettiğimiz konumların durumlarının güncelliğini sağlayabilmek adına status parametresi ekleyebiliriz.

gerçekten çok fazla veri birikti

Şu an haritada büyük bir veri yığını mevcut, müdahaleleri hızlandırmak adına bu verilerin bir nebze temizlenmesi lazım. Elbette şu an yardıma ihtiyacı olan konumlar arasında bir öncelik belirleyemeyiz ama en azından asılsız ihbarları ve müdahale edilmiş konumları geri planda tutarak yardıma acil ihtiyacı olan konumları öne çıkarabiliriz. İlerleyen günlerde bu veriler ayrıştırılmazsa çok daha karmaşık hale gelebilir.

Verilerin ayrıştırılması için

yetkili kişilerin güvenilir verileri kullanılabilir

Tahminimce Afad müdahale ettiği noktaların bir veri setini tutuyordur. Bu verilere erişebilirsek (ki ilerleyen zamanda proje sürdürülebilir hale getirilince ortak bir veritabanı kullanılabilir) status="Afad tarafından müdahale edildi/ediliyor" olarak güncellenebilir.

sahadaki sivillerin sağladığı bilgiler kullanılabilir

Diğer bir seçeneğimiz de sahadaki kullanıcılarımızın ihbardaki konumu kontrol edip durumunu güncelleyebilir. Burada bilginin doğruluğunu teyit etmek adına kullanıcının konumunun ihbardaki konumla eşleşip eşleşmediğini kontrol edebiliriz. Authentication ve VPN kontrolü gibi güvenlik prosedürlerine de ihtiyaç var.
Aynı zamanda bu işlemlerin de logları da tutulması gerekir, kimin hangi veriyi güncellediğini bilmek adına. Ya da en temizi aşağıdaki gibi bir post-comments one-to-many ilişkisi.

Bknz: deprem.io'daki güncelleme formu

image

İlk etapta bu şekilde açık bir form da kullanabiliriz. Bu proje deprem.io ile ortak bir veritabanı mı kullanıyor bilmiyorum ama bu issue'da bu özelliğin geliştirilmesi adına fikirlerimi beyan etmiş oldum.

veri kaynağının (tweet'in) silindiği tespit edilirse

Ek olarak acikyazilimagi/deprem-yardim-backend#64 Silinmiş tweetlerle alakalı üzerinde çalıştığım PR'ımı acikyazilimagi/deprem-yardim-backend#79 da bu filtrelemeye dahil edebiliriz. Tweet sahibinin yakınına yardım ulaştığını varsayabiliriz çünkü. Diğer bir ihtimal de asılsız ihbar olması ki onların da karbon ayak izini tutmuş oluyoruz böylece.

Sürdürülebilir bir proje olmasıyla birlikte

Şu anki süreci atlattıktan sonra yapılacak çok şey var. Bu projeye işbirliği sağlanması halinde Afad yetkililerine authorization verilmesiyle bu filtrelemeyi daha etkili kullanabileceklerdir. Böylece ileride yaşanabilecek felaketlere daha koordinasyonlu bir şekilde yardım edilebilmesi sağlanabilir.

Eski issue: 121

afetharita.com Tarih Filtresi

Merhaba,

afetharita.com'a tarih filtresi koymak istiyoruz. İlk requestte tarih bilgisi dönmek istiyoruz. Varsayılan değer olarak son 6 saat dönmeli, filtre değeri olarak da son 6 saat, 12 saat, 1 gün, 3 gün ve tümü yeterli.

Öneriler

Ekip özel bir kanaldan ilerlediği için dahil olamadım. Planlarınızı bilmeden PR yapmanın da koordinasyonunuzla uyumlu olmayacağını düşündüm. Destek gerekirse dahil olmaktan mutluluk duyarım. En azından önerilerimi paylaşacağım:

  • Python projesinden Go'ya geçilmeye çalışıldığı için daha sağlam başlanmalı diye düşünüyorum. Bu yüzden daha modüler bir klasör yapısı faydalı olabilir. Örneğin ahmetcanaydemir/go-rest veya uygun görülen farklı bir yapı
├── pkg
│   ├── api
│   │   ├── controller
│   │   ├── repository
│   │   └── service
│   ├── configs
│   ├── db 
│   └── model
└── test --- sonraki aşamalarda veya doğrudan dosya ile aynı klasörde
    └── unit
        ├── controller
        ├── repository
        └── service
  • Büyük oranda JSON dönüşümü için goccy/go-json gibi performanslı bir kütüphaneye geçilebilir.
  • Bu API'ı kullanan ekiplerle iletişimde kalmak çok kolay değil bu yüzden güzel dökümante edilmiş Swagger benzeri bir api kütüphanesi şart.
  • Daha sonraki aşama için API'ın webtransport veya websocket gibi altyapıları?

feat: Eklenme tarihi filtresi

İsteğiniz şeyi tanımlayın

Frontend tarafinda bu feature ekleniyor. Bunun icin requesting backend tarafinda hazirlanilmasi lazim. Frontend'deki issue asagida.
594

-- bu bilgiyi ekleyiniz
** discord kullanıcı adı: @BrokenBean **

Değerlendirdiğiniz alternatifleri tanımlayın

Frontend'deki issue'da detayli aciklama mevcut.

feat: ihtiyac listesini yonetebilmek icin 2 yeni endpoint eklenmesi

ℹ️ Toplantida yaptigim ihtiyac listesi yonetiminin issue'su yoktu, su an aciyorum bilginize.

İsteğiniz şeyi tanımlayın

Deprem bolgesindeki ihtiyaclari yonetebilmek icin 2 tane endpoint eklenmesi gerekiyor. Veri formati icin herhangi birsey tartisilmadi ama kodlayan kisinin PR'i uzerinden tartisilabilir. Temel anlamda;

  • POST /needs endpointinde ihtiyac girilmesi
  • GET /needs endpointinde de UI icin gerekli ihtiyaclarin listelenmesi olacak

discord kullanıcı adı: @huseyinbabal#7208

Değerlendirdiğiniz alternatifleri tanımlayın

Bilgiler veritabanina yazilip okuma da veritabanindan yapilacak. Hali hazirda devam eden bir pub/sub mekanizmasina entegre edilip adres bilgilerinin iyilestirilmesi ona gore olacak.

Ek Bağlam

AI servisleriyle entegre edecek Pub/Sub tasarimina ileride bagimliligimiz olacak

Varsa eğer sistem dizayn öneri görseli

feat: intent resolver API çağrılması

İstediğiniz özellikleri tanımlayın

Sisteme eklenen verilerin ne amaçla paylaşılan veri olduğunu çözen uygulamaya istek atıp reason bilgisinin edinilmesi.

-- bu bilgiyi ekleyiniz
** discord kullanıcı adı: @emre.savci#0226 **

feat: Need to add 2 query params to /feeds/areas

Describe the new feature

With issue #116 we will have 2 columns in the feed_location
is_location_verified ve is_need_verified
So We need to add those in out end point as query parameters to be able to filter the feed_location

-- Add this info
** discord username: @nemesisce#9359 **

Describe the alternatives

If there are alternate ways to implement this feature, describe them here in a clear and concise way.

Additional Context

Add other screenshots or context that may help describe or implement this new feature

Add a system design visual if needed

bug: secenekleri daraltip yalnizca yemek dagitan noktalari filitrelemek istedigimizde goremiyoruz. bu sebeple kullanmaktan vazgecen cok insan var.

Error Description

secenekleri daraltip yalnizca yemek dagitan noktalari gormek istedigimizde goremiyoruz.
bu sebeple kullanmaktan vazgecen cok insan var.

-- Add this info:
** discord username: @afetharita#1 **

Error Environment

rc.afetharita.com
afetharita.com

Describe how you got the error step by step

  1. go to '...'
  2. click on FILTER
  3. click on scan field '....'
  4. The error is visible

Expected Behaviour

Filter occur and user just see filtered data

Operating System:
Mobile and desktop, Browser

feat: geliştirme ortamı için docker compose desteğinin eklenmesi

İsteğiniz şeyi tanımlayın

Proje 4 bağımlılık içeriyor (redis, postgres, grafana ve prometheus). Geliştiriciler projeyi çalıştırırken bunların tamamını tek tek bilgisayarına kurmak yerine docker compose ile konfigürasyon adımını geçebilir.

-- bu bilgiyi ekleyiniz
** discord kullanıcı adı: @ss.ibrahimbas#4990 **

Değerlendirdiğiniz alternatifleri tanımlayın

Mevcut konfigürasyon ile projeyi kuran birisi aşağıdaki 5 adımı yapmalı:

  • Postgres'i local makinenize kurun
  • Redis'i local docker'ınıza çekin
  • Grafana'yı local docker'ınıza çekin
  • Prometheus'ı local docker'ınıza çekin
  • uygulamanızı docker'da build edin ve çalıştırın

Docker compose desteğinin eklenmesi sonrasında yapılacak adımlar:

  • docker compose up komutunu çalıştırın

Ek Bağlam

Herhangi bir ek bağlam bulunmamaktadır.

Varsa eğer sistem dizayn öneri görseli

Herhangi bir sistem dizayn öneri görseli bulunmamaktadır.

feat: Multi channel query

Describe the new feature

We need to enhance the channel query to have multiple channels in the response. Reason queries already have it.

-- Add this info
** discord username: @nemesisce#9359 **

Describe the alternatives

If there are alternate ways to implement this feature, describe them here in a clear and concise way.

Additional Context

Add other screenshots or context that may help describe or implement this new feature

Add a system design visual if needed

bug: Disable external access to default ports at docker settings

Error Description

We should not open default ports such as 5432, 6379, 9092 to internet for security purpose.

-- Add this info:
** discord username: Ahmet Kaplan#8742

Error Environment

deprem yardim backend

Describe how you got the error step by step

When docker was deployed, default ports for the programs such as Postgresql, Redis or Kafka are open to access.

Expected Behaviour

All ports except 80 and 443 should be disabled to access.

Desktop Environment

Mac m1 pro

Additional Context

In order to secure that, two docker network should be defined. Those names can be web and internal.
Then we assign proper networks to services.

feat: Farkli nokta tipleri destegi

Farkli nokta tipleri destegi

Hastaneler, veterinerler ve guvenli yerlerin lokasyonu database'e atilmali ve feeds/areas'in kopyasi poi/areas endpointi acilmali.

discord kullanıcı adı: @oux#9634

Store and serve extracted "needs" from message content

Implement a flow that sends message content to Intent Extractor API to get detailed intent tags (needs) and serve from the backend API

Request

"inputs": [
    "İskenderun Hatay Mustafa Kemal mahallesinde acil cadir, ilac ve mama ihtiyaci var."
  ]

Response

{
  "response": [
    {
      "string": [
        "People need [çadır, ilaç, mama], tags are [SHELTER, HEALTH, FOOD]"
      ],
      "processed": {
        "intent": [
          "Barinma",
          "Saglik",
          "Yemek"
        ],
        "detailed_intent_tags": [
          "çadır",
          "ilaç",
          "mama"
        ]
      }
    }
  ]
}

bug: 12 saat oncesinden itibaren veri eksikligi

Hata Tanımı

Timestamp query'sini kullanarak bakildiginda son 12 saat icinde yeni rapor olmadigi belirtildi. Kaynagi tam olarak nerde oldugu belli degil su anda.

** discord kullanıcı adı: @caner Dagli#1251 **

Hata Ortamı

apigo.afetharita.com

Hatayı nasıl aldığınızı adım adım açıklayın

https://apigo.afetharita.com/feeds/areas?ne_lat=38.343456959089124&ne_lng=37.42582798004151&sw_lat=34.617016214848114&sw_lng=35.28349399566651&time_stamp=1675890584

https://apigo.afetharita.com/feeds/areas?ne_lat=38.343456959089124&ne_lng=37.42582798004151&sw_lat=34.617016214848114&sw_lng=35.28349399566651&time_stamp=1675933843

Bu iki URL'de data eksikligi gorulebilir.

Beklenen Davranış

Rapor olmali

feat: Projeye Unit Test Yazılması

İsteğiniz şeyi tanımlayın

Projeye Unit Testlerin Yazılması Talebi
discord kullanıcı adı: MuhammedSedef#6734

Ek Bağlam

Var olan projede unit test eklenmesi hatalı kod çıkışını minimalize etmesi açısından faydalı olacağı düşünülmüştür. Bu sebeple projeye unit test eklenebilirse güzel olur.

feat: Adres Verisi Temizliği

Veri ekibi tarafından tanımlı adres verilerinde hatalı kayıtların olduğu iletildi. Manuel update ile yaklaşık 500 veri güncellemesi yapılmış.

Veri ekibinin Lead'i Bilal Şengül ile bir araya gelinerek detaylar görüşülebilir.
** discord kullanıcı adı: Gates#4096 **

DB'de tutulan kordinat verilerinin adrese çevrilmesi değerlendirilebilir.

feat: feed_location table requires 2 new columns

Describe the new feature

To be able to serve a new filter to FE we need to add 2 more columns in the feed_location table.
is_location_verified: It will store whether the location is verified or not.
is_need_verified: It will store whether area workers are routed to that need or not.

-- Add this info
** discord username: @nemesisce#9359 **

Describe the alternatives

If there are alternate ways to implement this feature, describe them here in a clear and concise way.

Additional Context

Add other screenshots or context that may help describe or implement this new feature

Add a system design visual if needed

Swagger eklenmesi

Front-End veya varsa diğer kullanıcılar ile iletişim için API geliştirildikçe Swagger dökümanının güncel tutulması, tercihen güncel halinin bir API ucundan servis edilmesi gerekiyor.

Uygulama çok sayıda client'a sunulacağı için API versiyonlaması da yapılabilir bu süreçte.

Eski issue 58

bug: docker-compose not working, also error handling issue, as it returns empty JSON.

Error Description

docker-compose not working for several reasons:

  • kafka not accessible
  • postgres port is wrong since consumer and api need 5432 to access postgres
  • kafka_ui could not connect to kafka
  • consumer and api were failing to connect to kafka, so consumer panics.

There's a clear error handling issue, as it returns empty JSON instead of error message or meaningful information.

Reason: marshalling error interface will result in {"err": {}}

Discord username: aak#3635

Error Environment

Local Development

Describe how you got the error step by step

  1. run docker compose up
  2. The api does not run, after correction, I was calling the needs endpoint and it was returning empty JSON as a response, when I checked the db, nothing was inserted.

Expected Behaviour

Api issues and the local development with docker compose to be fixed, along with error handling.

Screenshots

If applicable, add screenshots to better illustrate the problem.

Desktop Environment

mac m1 pro

Additional Context

PR to follow.

refactor: geospital query structure

Refactor Request

TR: mevcut yapıyı iyileştirmek ve farklı özellikler katabilmek için geospital tipte veri tutabilmek için structure değişikliği
EN: Requesting changes in the data structure to enhance current structure and bringing in new features for geospatial data types

bug: For provision aid and confirmed option the incoming data is empty except all times

Error Description

For confirmed and provision aid options, the data for last 24 hours is not being sent. Right now isn't there any data, can you check?

-- Add this info:
discord username: cccececcc#4824

Error Environment

afetharita.com

Describe how you got the error step by step

Notifications/ Provision Aid & Confirmed
Notifications/ Last 24 hours and previous

Expected Behaviour

Data displayed on map

Screenshots

image

Desktop Environment

  • Operating System: Windows 11
  • Browser Chrome
  • Version 109.0.5414.120

refactor: Data sent back to client devices could be reduced.

Refactor Request

discord username: @budancamanak#9385

Is your request related to a bug or problem? Please explain.

This is not a bug but a data retrieval enhancement proposal. From what I've seen, backend will return results as json which is known for its easy usage, interoperability and being human-readable. All fields will be put to string which will be carried over the network to client devices eg: a user in need with bad network conditions. We must send minimum data back to clients whenever possible.

Describe the problem in a clear and concise way. For example, "I'm having problems reading the code because [...]".
Network requests to retrieve marker data from server could have thousands of rows. Each row consist of fields listed below:

  • id (2 chars)
  • loc (3 chars)
  • entry_id (8 chars)
  • channel (7 chars)
  • epoch (5 chars)
  • twitter (7 chars) => this is not a field but a long channel name.

Following url has been used for calculations:
https://apigo.afetharita.com/feeds/areas?ne_lat=37.896558262942115&ne_lng=37.92954089003256&sw_lat=37.03406827871118&sw_lng=36.38788890802672&time_stamp=1676030188

API returned a result of 4725 rows.
A map detailed below could be used to shorten fields:

  • id: i
  • loc: l
  • entry_id: e
  • channel: c
  • epoch: t
  • twitter: 1

Json response length before and after operation is (response retrieved from url mentioned above in a gist):

  • Original: 489716
    image

  • Shortened: 371148
    image

This could give us %24 decrease on the output json string hence I think increase on performance.

Fix Recommendation

If you have a fix in mind, please explain.

I thought we might need to shorten field names to be used to construct json data on the server which could reduce payload. Shortening fields might seems odd but all fields described above could be handled by one unique character. We must define unique chars to map fields returned, document it and notify front-end team to update their structure to use mapped chars. Or a mapper function can be developed to be used to unmap chars to fields on successfull data retrieval on client devices.(Just a quick suggestion, frontend team must decide).

Additional Context

I know results are being compressed before sending to clients. But I believe by modifying content of response, we could compress a bit more.

Edit: This scenario would require Front End team to adapt which requires a bit development.

I'd like to hear your comments.

bug: Tweet api returns null (possibly not connected)

Hata Tanımı

afetharita front'end ine tweet bilgileri gelmemekte
-- bu bilgiyi ekleyiniz
Discord: Andslash#1898

Hata Ortamı

rc.afetharita.com
afetharita.com

Hatayı nasıl aldığınızı adım adım açıklayın

1.Front end application'u açın
2.Herhangi bir konuma tıklayın

Ekran Görüntüleri

image

Masaüstü Bilgileri

  • İşletim Sistemi: Ubuntu 22.4
  • Tarayıcı: Chrome
  • Sürüm: 22

User side'a yansıması böyledir, kayıt altına alınması için atılmıştır

Hata monitorleme

mehmetozturk4705 eklemiş:

"Uygulamaya girildiğinde yük bazlı veya akış bazlı hatalar oluşabiliyor bunun yanında hızlıca canlıya alabilmek adına şimdilik testler üzerindeki coverage oranı yok. Söz konusu hataları bildirebilmek adına Sentry sunucusu ve entegrasyonu kurulması gerektiğini düşünüyorum.

Motivasyon

Sentry hataların yakalanması ve ataması konusunda oldukça yetenekli. Bunun yanında örneklem istekler üzerinde performans (APDEX) araştırması için de oldukça iyi bir içgörü sunmakta. Bunun yanında diğer repoların hatalarının toplanması için de önemli olabilir.

İstekler

Min 8GB ram ve min çift çekirdekli sentry hata toplama instance ı ve 40GB üstü SSD.
8GB ram altı için swap ile sağlamak yine de mümkün.
Sentry self-hosted docker diagnostik testi yaparken minimum çift çekirdek olmasını şart koşuyor.
AWS üzerinde email smtp bilgileri.
Sentry üzerindeki mail alertler için gerekli."

Eski issue 123

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.