Bu proje deprem.io sitesinin backend implementasyonunu icerir.
- English: This project includes the implementation of the deprem.io website.
-
Docker
-
.env dosyasını oluşturunuz içerisine .env-example da yazılanları koyunuz.
-
English:
-
Create .env file and copy content from .env-example
- Yerel geliştirme için paketlerini kurun
- English: Install packages for local development
npm run setup
- Husky kurulumunu yapın
npm run prepare
- Dockerfile build alınız
- English: Build docker container with following command
docker build -t deprem-io-backend .
- Container ı run ediniz
- English: Run docker container with following command
docker run -p 8080:8080 -d deprem-io-backend
- localhost:8080/ adresine gidebiliyorsanız proje ayakta demektir.
- English: if you are able to load localhost:8080/ url, good job project is running up.
make up
Projede kod kalitesini iyileştirmek için husky paketi kullanılmaktadır. Husky, commit oluşturulmadan önce otomatik olarak format, lint scriptlerini çalıştıracaktır.
https://www.postman.com/minikdev/workspace/depremio
istenen yardımları listeler /yardim localhost:8080/yardim?page=1&limit=1
Json Yolla localhost:8080/yardim
- /models/yardimModel.js e bak ÖRNEK JSON POSTU
{
"yardimTipi": "Gıda",
"adSoyad": "John Doe",
"telefon": "555-555-5555",
"yedekTelefonlar": ["555-555-5556", "555-555-5557"],
"email": "[email protected]",
"adres": "123 Main St",
"adresTarifi": "2nd floor, apartment 4B",
"acilDurum": "normal",
"kisiSayisi": "3",
"yardimDurumu": "bekleniyor",
"fizikiDurum": "normal",
"googleMapLink": "https://maps.google.com/maps?q=123+Main+St",
"tweetLink": "https://twitter.com/johndoe/status/1234567890",
"fields-status": "test-status",
"fields-yenialan": "ekstrabilgi"
}
insanların sağladığı yardımları listeler
- localhost:8080/yardimet
YardimTipi filtrelemesi:
- localhost:8080/yardimet?yardimTipi=yolcuTasima
Şehir filtrelemesi:
- localhost:8080/yardimet?sehir=Istanbul
Json Yolla localhost:8080/yardimet
{
"yardimTipi": "Yolcu Taşıma",
"adSoyad": "Jane Doe",
"telefon": "+1 987 654 3210",
"sehir": "Istanbul",
"hedefSehir": "Ankara",
"aciklama": "Need transportation from Istanbul to Ankara.",
"fields-status": "test-status",
"fields-yenialan": "ekstrabilgi",
"yardimDurumu": "bekleniyor"
}
İstenen yardımların altındaki formlara eklenen yardımkaydi bildirimleri
{
"postId": "63e3940d3c12f65e945ff371",
"adSoyad": "Jane Doe",
"telefon": "555-555-5555",
"sonDurum": "yardim-bekleniyor",
"email": "[email protected]",
"aciklama": "Merhaba, ben Jane Doe. Bu posta yardım etmek istiyorum."
}
post olarak fields-{burası aalanı adı}: value şeklinde datayı gönderin onunları fields objesi altında birleştirip db ye kayddedecek
örneğin fiels-yardimalani: "ankara" şu şekilde döner
fields: {
yardimalani: "ankara"
}
Opsiyonel her türlü yardım isteme ve yardımEt kısmına eklenecek özellikler için fields alanını kullanın isteidğiniz gibi json objesi post edebilirsiniz
/cache/flushall
/cache/getstats
localhost:8080/iletisim
{
"adSoyad": "John Doe",
"email": "[email protected]",
"telefon": "+1 123 456 7890",
"mesaj": "This is a test message."
}
istenen yardımların altında form var süreci takip etmek için yardimKaydi olarak ekleyebilirsiniz
{
"postId": "63e3940d3c12f65e945ff371",
"adSoyad": "Jane Doe",
"telefon": "555-555-5555",
"sonDurum": "yardim-bekleniyor",
"email": "[email protected]",
"aciklama": "Merhaba, ben Jane Doe. Bu posta yardım etmek istiyorum."
}
- Yeni data eklenince tüm cache i temizliyor onun düzeltilmesi lazım sadece ilgili cache temizlenecek
- İp logging kısmını biri kontrol etsin
- Filter kısmında yazılan queryi isim, adres telefon gibi tüm yerlerde arıyor ama araya boşluk konup birden fazla paramatere yollarsa çalışmaz
- export scriptlerinde fields kısmında bug var ama acil değil kullanılacaksa bakılır şuan çalışıyor
- /yardim (POST/GET)
- /yardimet (POST/GET)
- /ara-yardimet (/GET)
- /ara-yardim (GET)
- /yardim/:id (GET)
- /yardimet/:id (GET)
- /iletisim (POST)
- /yardimet (POST)
- /ekleYardimKaydi (POST)
- exportYardimEtCsv.js
node scripts/exportYardimEtCsv.js
YardimEt datasını csv export eder
Avoid running lifecycle scripts from packages
- added
--ignore-scripts
to Dockerfile. - installed and configured allow-scripts for development - to only run allowed ones.
run npx allow-scripts auto
to update the list after new packages with install scripts have been added.