Afet anında yardıma ihtiyaç duyan kişilerle onlara en yakın konumdaki gönüllüleri anında eşleştiren bir mobil uygulama.
AFETAR, afet ve acil durum anlarında yardıma ihtiyaç duyan kişilerin tek bir tuşla yardım çağrısı yapabilmelerini ve bu çağrının en yakındaki gönüllüye anında iletilmesini sağlayan bir mobil uygulamadır.
- 🚨 Tek Dokunuşla SOS: Afetzedeler tek tuşla anlık konum bilgisiyle yardım çağrısı gönderebilir
- 📍 Konum Tabanlı Eşleştirme: Sistem, en yakındaki aktif gönüllüyü otomatik olarak bulur
- 🔔 Anlık Bildirimler: Gönüllüler yakınlarındaki yardım çağrılarından anında haberdar olur
- 🗺️ Harita Entegrasyonu: Yardım taleplerinin ve güvenli bölgelerin harita üzerinde görüntülenmesi
- 👥 Gönüllü Modu: Kullanıcılar aktif olarak gönüllü olup yardım edebilirler
- 🏥 Sağlık Profili: Kan grubu, alerji ve kronik hastalık bilgilerinin saklanması
- 📱 Acil Durum Kontakları: Kullanıcının yakınlarına otomatik bildirim gönderimi
- 📊 İhtiyaç Takibi: Gıda, su, ilaç gibi spesifik ihtiyaçların belirtilmesi
- Framework: Flask 2.3+
- Veritabanı: PostgreSQL 12+
- ORM: SQLAlchemy
- Migration: Flask-Migrate (Alembic)
- Ortam Yönetimi: python-dotenv
- Framework: React Native (Expo)
- Harita: Mapbox / Google Maps
- Bildirimler: Firebase Cloud Messaging
- State Management: Redux / Context API
- Backend: Railway / Render / AWS
- Veritabanı: Supabase / AWS RDS
- Frontend: Expo Application Services (EAS)
afetar/
├── backend/ # Flask API Backend
│ ├── app/
│ │ ├── __init__.py # Flask factory
│ │ ├── models.py # SQLAlchemy modelleri
│ │ ├── extentions.py # Flask eklentileri
│ │ └── api/ # API endpoint'leri
│ ├── migrations/ # Veritabanı migration'ları
│ ├── .env.example # Örnek ortam değişkenleri
│ ├── config.py # Konfigürasyon
│ ├── requirements.txt # Python bağımlılıkları
│ ├── run.py # Uygulama başlangıcı
│ └── README.md # Backend dokümantasyonu
├── frontend/ # React Native Mobile App (Geliştirilecek)
├── dbmodel.txt # Veritabanı şeması
├── PRD.md # Ürün Gereksinimleri Dokümanı
└── README.md # Bu dosya
- Python 3.8 veya üzeri
- PostgreSQL 12 veya üzeri (veya Supabase)
- pip (Python paket yöneticisi)
- Git
- Repoyu klonlayın:
git clone https://github.com/Hasmolam/afetar.git
cd afetar/backend- Sanal ortam oluşturun ve aktif edin:
python3 -m venv venv
source venv/bin/activate # Linux/Mac
# veya
venv\Scripts\activate # Windows- Bağımlılıkları yükleyin:
pip install -r requirements.txt- Ortam değişkenlerini ayarlayın:
cp .env.example .env
# .env dosyasını düzenleyin ve gerekli değerleri girin- Veritabanı migration'larını uygulayın:
flask db upgrade- Uygulamayı başlatın:
python run.pyBackend artık http://localhost:5000 adresinde çalışıyor! 🎉
Detaylı kurulum talimatları için Backend README dosyasına bakın.
Proje aşağıdaki temel modelleri içerir:
- User: Kullanıcı kimlik doğrulama ve temel bilgiler
- UserProfile: Sağlık bilgileri, kan grubu, alerji bilgileri
- EmergencyContact: Acil durum iletişim kişileri
- HelpRequest: SOS yardım talepleri
- LocationPoint: Güvenli bölgeler, toplanma alanları
- NeedType: İhtiyaç kategorileri (gıda, su, barınak, vb.)
- RequestedNeed: Talep edilen spesifik ihtiyaçlar
Detaylı veritabanı şeması için dbmodel.txt dosyasına bakın.
GET / # API bilgisi
GET /health # Health check
GET /api/v1/users # Kullanıcıları listele
POST /api/v1/users # Yeni kullanıcı oluştur
GET /api/v1/users/<id> # Kullanıcı detayı
PUT /api/v1/users/<id> # Kullanıcı güncelle
DELETE /api/v1/users/<id> # Kullanıcı sil
GET /api/v1/help-requests # Tüm talepleri listele
POST /api/v1/help-requests # Yeni SOS talebi oluştur
GET /api/v1/help-requests/<id> # Talep detayı
PUT /api/v1/help-requests/<id> # Talep durumunu güncelle
GET /api/v1/help-requests/nearby # Yakındaki talepleri getir
GET /api/v1/locations # Onaylanmış konumları listele
POST /api/v1/locations # Yeni konum bildir
GET /api/v1/locations/type/<type> # Tipe göre konumları getir
GET /api/v1/need-types # İhtiyaç kategorilerini listele
POST /api/v1/need-types # Yeni kategori ekle
Detaylı API dokümantasyonu için Backend README dosyasına bakın.
- Kullanıcı uygulamayı açar
- Ana ekrandaki büyük YARDIM butonuna basar
- İhtiyaçlarını seçer (gıda, su, ilaç, vb.)
- Sistem konumunu otomatik alır ve yardım talebi oluşturur
- En yakın aktif gönüllüye bildirim gönderilir
- Kullanıcı "Yardım yolda!" mesajı alır
- Gönüllü "Gönüllü Modu"nu aktif eder
- Yakınında bir YARDIM çağrısı geldiğinde bildirim alır
- Haritada çağrıyı görür ve kabul eder
- Navigasyon ile afetzedenin konumuna yönlendirilir
- Yardımı tamamladıktan sonra durumu "Tamamlandı" olarak işaretler
- Backend proje yapısı ve konfigürasyonu
- Veritabanı modellerinin oluşturulması
- Temel API endpoint'lerinin hazırlanması
- PostgreSQL entegrasyonu
- Kullanıcı kimlik doğrulama (JWT)
- Telefon numarası doğrulama (SMS)
- Konum tabanlı sorgulama optimizasyonu
- Real-time bildirim sistemi
- React Native frontend uygulaması
- Harita entegrasyonu
- Push notification servisi
- Admin paneli
- Test senaryolarının yazılması
- CI/CD pipeline kurulumu
- Production deployment
Bu proje açık kaynaklıdır ve katkılara açıktır! Katkıda bulunmak için:
- Bu repoyu fork edin
- Yeni bir branch oluşturun (
git checkout -b feature/yeni-ozellik) - Değişikliklerinizi commit edin (
git commit -am 'Yeni özellik: Açıklama') - Branch'inizi push edin (
git push origin feature/yeni-ozellik) - Pull Request oluşturun
Bu proje MIT Lisansı altında lisanslanmıştır.
- Hasan Hüseyin Yolcu - Backend developer
- Kahraman Boyraz - Developer
- Mert - Mobil Developer
- Naz - UI/UX Designer
- Uğur Emre - Developer
- Arda Haluk Türkoğlu - Developer
- Türker Özgür - Developer
Sorularınız veya önerileriniz için:
- GitHub Issues: github.com/Hasmolam/afetar/issues
- Email: hasanhuseyinyolcu25@gmail.com
Bu projeyi faydalı bulduysanız ⭐ vermeyi unutmayın!
Afetlere Karşı Hazırlıklı Olalım, Birlikte Güçlüyüz! 💪
Made with ❤️ for a safer world