Bu proje, AI Builder Challenge 2-Day Hackathon için hazırlanmış bir "Broken Calculator Agent" challenge'ıdır. Projede 12 kritik hata ve 100+ derleme hatası gizlidir. Katılımcıların görevi bu hataları tespit edip düzeltmek ve projeye yeni bir modül eklemektir.
- Gün 1: Syntax ve runtime hatalarını bulup düzeltmek
- Gün 2: Silent failures'ı tespit etmek ve yeni modül eklemek
- Bonus: CI/CD pipeline kurmak ve dokümantasyon tamamlamak
- Level 1 Hatalar (Syntax): 10 puan/hata (Toplam 40 puan)
- Level 2 Hatalar (Runtime): 20 puan/hata (Toplam 60 puan)
- Level 3 Hatalar (Silent Failures): 30 puan/hata (Toplam 60 puan)
- Bonus Modül: 40 puan
- CI/CD: 20 puan
- Dokümantasyon: 10 puan
- Toplam: 230 puan
Google Gemini Gen AI SDK kullanılarak geliştirilmiş modüler, genişletilebilir bir hesaplama agent'ı. Proje şu anda çalışmayan durumda ve hackathon katılımcıları tarafından düzeltilmesi gerekiyor.
- Modüler Yapı: Her hesaplama türü bağımsız modüller halinde
- Gemini AI Entegrasyonu: Google Gemini ile akıllı hesaplama
- Çoklu Domain Desteği:
- Temel Matematik (+, -, *, /, sqrt, log, trigonometri)
- Kalkülüs (limit, türev, integral, seri)
- Lineer Cebir (matris, vektör, determinant)
- Finansal Hesaplamalar (NPV, IRR, faiz, kredi)
- Denklem Çözücü (doğrusal, polinom, diferansiyel)
- Grafik Çizim (2D/3D plotlar)
- Python 3.11+
- Google Gemini API Key
- Git
- Repository'yi klonlayın:
git clone <repository-url>
cd CalculatorAgent- Sanal ortam oluşturun:
python -m venv venv
source venv/bin/activate # Windows: venv\Scripts\activate- Bağımlılıkları yükleyin:
pip install -r requirements.txt- Environment değişkenlerini ayarlayın:
cp .env.example .env
# .env dosyasını düzenleyip GEMINI_API_KEY'inizi ekleyinBu hatalar derleme anında tespit edilir ve projenin çalışmasını engeller.
Örnek Hata Tipleri:
- Circular import hataları
- Eksik parantezler
- Yanlış indentasyon
- Tanımlanmamış değişkenler
Çözüm Şablonu:
# HATA: [Hata açıklaması]
# Dosya: [dosya_yolu]
# Satır: [satır_numarası]
# MEVCUT KOD (HATALI):
[hatalı_kod_buraya]
# ÇÖZÜM:
[çözüm_kodunuz_buraya]
# AÇIKLAMA:
[çözümünüzü_neden_bu_şekilde_yaptığınızı_açıklayın]Alternatif Çözümler:
- [Alternatif çözüm 1 açıklaması]
- [Alternatif çözüm 2 açıklaması]
Bu hatalar çalışma zamanında ortaya çıkar ve uygulamanın crash etmesine neden olur.
Örnek Hata Tipleri:
- API key güvenlik zaafiyetleri
- Sıfıra bölme hataları
- Yanlış metod çağrıları
- Dictionary key hataları
Çözüm Şablonu:
# HATA: [Hata açıklaması]
# Dosya: [dosya_yolu]
# Satır: [satır_numarası]
# Hata Tipi: Runtime Error / KeyError / ValueError
# MEVCUT KOD (HATALI):
[hatalı_kod_buraya]
# ÇÖZÜM:
[çözüm_kodunuz_buraya]
# TEST:
[çözümünüzü_nasıl_test_ettiğiniz]
# AÇIKLAMA:
[çözümünüzü_neden_bu_şekilde_yaptığınızı_açıklayın]Alternatif Çözümler:
- [Alternatif çözüm 1 açıklaması]
- [Alternatif çözüm 2 açıklaması]
Bu hatalar en zor tespit edilenlerdir. Uygulama çalışır gibi görünür ama yanlış sonuçlar üretir.
Örnek Hata Tipleri:
- Rate limit bypass
- Logging yapılandırma hataları
- Tip dönüşüm hataları
- Async blocking sorunları
Çözüm Şablonu:
# HATA: [Hata açıklaması]
# Dosya: [dosya_yolu]
# Satır: [satır_numarası]
# Hata Tipi: Silent Failure / Logic Error
# MEVCUT KOD (HATALI):
[hatalı_kod_buraya]
# PROBLEM ANALİZİ:
[hatayı_nasıl_tespit_ettiğiniz]
# ÇÖZÜM:
[çözüm_kodunuz_buraya]
# TEST:
[çözümünüzü_nasıl_test_ettiğiniz]
# AÇIKLAMA:
[çözümünüzü_neden_bu_şekilde_yaptığınızı_açıklayın]Alternatif Çözümler:
- [Alternatif çözüm 1 açıklaması]
- [Alternatif çözüm 2 açıklaması]
Adım 1: Derleme Hatalarını Bulun
# Python syntax kontrolü
python -m py_compile src/**/*.py
# Linter kullanımı
pylint src/
flake8 src/Adım 2: Runtime Hatalarını Test Edin
# Basit test çalıştırma
python -m src.main "2 + 2"
# Test suite çalıştırma
pytest tests/Adım 3: Silent Failures İçin Debug
# Logging seviyesini artırın
export LOG_LEVEL=DEBUG
python -m src.main
# Profiling ile performans analizi
python -m cProfile -o profile.stats src/main.pyYaklaşım 1: Minimal Değişiklik
- Sadece hatayı düzeltin
- Minimum kod değişikliği
- Hızlı çözüm
Yaklaşım 2: Refactoring
- Kodu yeniden yapılandırın
- Daha iyi mimari
- Uzun vadeli çözüm
Yaklaşım 3: Defensive Programming
- Ekstra kontroller ekleyin
- Hata yakalama mekanizmaları
- Güvenli çözüm
Her hatayı düzelttikten sonra:
# Unit Test Örneği
def test_fixed_error():
"""Düzeltilen hatanın testi"""
# Arrange
[test_verileri]
# Act
[test_aksiyonu]
# Assert
[beklenen_sonuç]Hackathon sırasında projeye eklediğiniz yeni özellikleri buraya dokümante edin.
Açıklama: [Yeni modülünüzün ne yaptığını açıklayın]
Kullanım:
# Kullanım örneği
[örnek_kod]Özellikler:
- [Özellik 1]
- [Özellik 2]
- [Özellik 3]
Test Coverage:
pytest tests/modules/test_[modül_adı].py --covDosya Yapısı:
src/modules/
├── [modül_adı].py
└── ...
tests/modules/
├── test_[modül_adı].py
└── ...
Açıklama: [Özelliğin açıklaması]
Kullanım:
[örnek_kod]Faydalar:
- [Fayda 1]
- [Fayda 2]
Açıklama: [Özelliğin açıklaması]
Kullanım:
[örnek_kod]Faydalar:
- [Fayda 1]
- [Fayda 2]
# Coverage raporu
pytest --cov=src --cov-report=htmlCoverage Sonuçları:
- Toplam Coverage: [%XX]
- Modüller: [%XX]
- Core: [%XX]
- Utils: [%XX]
# Test çalıştırma
pytest -vSonuçlar:
- ✅ Başarılı Testler: [sayı]
- ❌ Başarısız Testler: [sayı]
- ⏭️ Atlanan Testler: [sayı]
| Hata No | Kategori | Dosya | Satır | Durum | Puan |
|---|---|---|---|---|---|
| 1 | Level 1 | [dosya] | [satır] | ✅ | 10 |
| 2 | Level 1 | [dosya] | [satır] | ✅ | 10 |
| 3 | Level 2 | [dosya] | [satır] | ✅ | 20 |
| ... | ... | ... | ... | ... | ... |
- Level 1 Hatalar: [X] / 40 puan
- Level 2 Hatalar: [X] / 60 puan
- Level 3 Hatalar: [X] / 60 puan
- Bonus Modül: [X] / 40 puan
- CI/CD: [X] / 20 puan
- Dokümantasyon: [X] / 10 puan
- TOPLAM: [X] / 230 puan
Pipeline Yapılandırması:
# .github/workflows/ci.yml veya .gitlab-ci.yml
[pipeline_yapılandırmanız]Pipeline Adımları:
- [Adım 1]
- [Adım 2]
- [Adım 3]
Pipeline Durumu:
- ✅ Build: [durum]
- ✅ Test: [durum]
- ✅ Lint: [durum]
- ✅ Deploy: [durum]
Projede uyulması gereken standartlar:
- Async/Await: Tüm Gemini API çağrılarında async pattern
- Type Hints: Tüm fonksiyonlarda zorunlu tip belirtilmesi
- Google Docstring: Dokümantasyon formatı
- Pydantic Models: Input/output validasyonu
- Test Coverage: Minimum %90 unit test coverage
Hackathon sırasında yaptığınız güvenlik iyileştirmeleri:
Problem: [Güvenlik sorunu]
Çözüm: [Çözüm açıklaması]
Kod:
[çözüm_kodu]calculator-agent/
├── src/
│ ├── main.py # Agent orchestrator ve UI entry point
│ ├── config/
│ │ ├── settings.py # API keys, modeller, rate limiting
│ │ └── prompts.py # Gemini prompt templates
│ ├── core/
│ │ ├── agent.py # Gemini ile iletişim layer'ı
│ │ ├── parser.py # Doğal dil → semantik komut
│ │ └── validator.py # Giriş doğrulama ve güvenlik
│ ├── modules/
│ │ ├── base_module.py # Abstract base class
│ │ ├── calculus.py # Kalkülüs modülü
│ │ ├── linear_algebra.py # Lineer cebir modülü
│ │ ├── basic_math.py # Temel matematik
│ │ ├── financial.py # Finansal modül
│ │ ├── equation_solver.py # Denklem çözücü
│ │ ├── graph_plotter.py # Grafik çizim modülü
│ │ └── [yeni_modül].py # Eklediğiniz yeni modül
│ ├── utils/
│ │ ├── logger.py # Yapılandırılmış logging
│ │ ├── exceptions.py # Custom exception'lar
│ │ └── helpers.py # Ortak yardımcı fonksiyonlar
│ └── schemas/
│ └── models.py # Pydantic modelleri
├── tests/
│ ├── conftest.py
│ ├── test_integration.py
│ └── modules/
│ ├── test_calculus.py
│ ├── test_linear_algebra.py
│ └── test_[yeni_modül].py
├── requirements.txt
├── .env.example
├── .gitignore
└── README.md
Hackathon sırasında öğrendiğiniz önemli dersler:
-
[Ders 1]
- [Açıklama]
-
[Ders 2]
- [Açıklama]
-
[Ders 3]
- [Açıklama]
Bu proje AI Builder Challenge hackathon'u için geliştirilmiştir.
İyi hackathonlar! 🚀