SigortaCu, acentelerin poliçelerini, müşterilerini ve varlıklarını yönetmelerine olanak tanıyan modern, platformlar arası bir uygulamadır. Flutter ile geliştirilen ön uç, PHP tabanlı bir REST API ile iletişim kurar.
Bu proje şu anda üretim seviyesine getirilmek üzere aktif olarak geliştirilmektedir. Mevcut odak, temel altyapıyı (veritabanı, kimlik doğrulama, CI/CD) sağlamlaştırmak ve kod kalitesini artırmaktır. Detaylı yol haritası için ROADMAP.md dosyasına bakın.
- Frontend: Flutter
- Backend: PHP (REST API)
- Database: MySQL
- Database Migrations: Phinx
- Testing: PHPUnit (Backend), Flutter Test (Frontend)
- CI: GitHub Actions
Bu projeyi yerel makinenizde kurmak ve çalıştırmak için aşağıdaki adımları izleyin.
- Flutter SDK: Resmi kurulum kılavuzu
- PHP: >= 8.0
- Composer: Resmi kurulum kılavuzu
- MySQL: Veya MariaDB gibi uyumlu bir veritabanı sunucusu.
- Git
git clone https://github.com/Yamac/Sigortacu.git
cd SigortaCuBu proje, PHP ve MySQL için yapılandırılmış bir Docker ortamı içerir. Bu, en hızlı ve en güvenilir kurulum yöntemidir.
a. Ortam Değişkenlerini Ayarlama
.env.example dosyasını kopyalayarak başlayın.
cp .env.example .env.env dosyasını açıp içindeki değerleri (özellikle PHP_PASSWORD ve JWT_SECRET_KEY) güvenli değerlerle değiştirebilirsiniz, ancak varsayılanlar yerel geliştirme için çalışacaktır.
b. Docker Servislerini Başlatma
docker-compose up -d --buildBu komut, PHP ve MySQL servislerini arka planda başlatacaktır.
c. Bağımlılıkları Yükleme ve Veritabanını Hazırlama
Docker container'ı içinde composer install ve Phinx komutlarını çalıştırın.
# Composer bağımlılıklarını yükle
docker-compose exec php composer install
# Veritabanı şemasını oluştur (migrations)
docker-compose exec php vendor/bin/phinx migrate
# Veritabanını başlangıç verileriyle doldur (seeding)
docker-compose exec php vendor/bin/phinx seed:run -s UserSeederArtık backend API'niz http://localhost adresinde çalışıyor.
Eğer Docker kullanmıyorsanız, aşağıdaki adımları izleyebilirsiniz.
a. Backend Kurulumu
Backend, PHP tabanlı bir REST API'dir.
a. Bağımlılıkları Yükleme
Proje, veritabanı migration'ları ve testler için Composer kullanır.
composer installb. Ortam Yapılandırması
Veritabanı bağlantısı ve güvenlik anahtarları için bir yapılandırma dosyası oluşturmanız gerekir.
cp backend/config.example.php backend/config.phpŞimdi backend/config.php dosyasını açın ve yerel veritabanı ayarlarınızla (DB_HOST, DB_USER, DB_PASS, DB_NAME) güncelleyin. JWT_SECRET_KEY için de güvenli bir anahtar belirleyin.
c. Veritabanını Hazırlama (Migrations)
Veritabanı şeması Phinx ile yönetilmektedir. Veritabanını oluşturmak ve en son şemaya getirmek için aşağıdaki komutu çalıştırın:
vendor/bin/phinx migrated. Veritabanını Doldurma (Seeding)
Uygulamaya giriş yapabilmek için varsayılan bir kullanıcı oluşturun:
vendor/bin/phinx seed:run -s UserSeederBu komut, aşağıdaki kimlik bilgileriyle bir kullanıcı oluşturur:
- Kullanıcı adı:
admin - Şifre:
password
Frontend, Flutter ile geliştirilmiştir.
a. Bağımlılıkları Yükleme
flutter pub getb. Uygulamayı Çalıştırma
Bir emülatör veya bağlı bir cihaz üzerinde uygulamayı çalıştırın:
flutter runc. API Bağlantısını Yapılandırma
Uygulama ilk açıldığında, sizi Login ekranına yönlendirecektir. Ancak, uygulamanın backend'inize bağlanabilmesi için Ayarlar sayfasından API adresini yapılandırmanız gerekebilir.
- Uygulama içindeki Ayarlar menüsüne gidin.
- API Base URL alanına yerel PHP sunucunuzun adresini girin (örn:
http://localhost:8000). - Ayarları kaydedin.
a. Backend Testleri (PHPUnit)
vendor/bin/phpunitb. Frontend Testleri (Flutter)
flutter testKatkılarınız memnuniyetle karşılanır! Lütfen ROADMAP.md dosyasını inceleyin ve bir issue açarak veya mevcut bir issue üzerinde çalışarak katkıda bulunun.
- Projeyi fork'layın.
- Yeni bir feature branch oluşturun (
git checkout -b feature/YeniOzellik). - Değişikliklerinizi commit'leyin (
git commit -m 'Yeni bir özellik eklendi'). - Branch'inizi push'layın (
git push origin feature/YeniOzellik). - Bir Pull Request açın.
Bu proje MIT Lisansı altında lisanslanmıştır. Detaylar için LICENSE dosyasına bakın.