Detaylar ve Dokümantasyon
Kapsamlı Dokümantasyon
Bu proje için detaylı kullanım kılavuzu, API referansı ve geliştirme notları GitHub'da bulunan README dosyasında yer almaktadır.
GitHub README'yi İnceleProje Hakkında
YokAPI
YÖK Verilerini Normalize Eden API Katmanı
Proje Hakkında
YokAPI, YÖK Atlas verilerini tek bir standardize edilmiş API üzerinden sunan, geliştiriciler için tasarlanmış bir veri katmanıdır. Asenkron yapıya sahip toplu ve hızlı veri çekme işlemleri için YÖK Atlas'ın yıllara göre dağınık ve farklılaşan site yapısını normalize edip standartlaştırılmış bir şekilde JSON olarak sunan güçlü bir araçtır. Farklı kaynaklardan gelen eğitim verilerini birleştirip, tutarlı bir format halinde sunarak diğer projelerde kullanımını kolaylaştırır.
Temel Özellikler
Asenkron Performans
aiohttp ve asyncio ile yüksek performanslı veri işleme
Tip Güvenliği
Pydantic modeller ile güvenli veri kullanımı
Kolay Entegrasyon
Basit API endpointleri ve Python kütüphanesi
Esnek Kullanım
Kendi session'ınızı kullanabilir veya otomatik oluşturabilirsiniz
Örnek Kullanım
from YokAPI import Lisans, Onlisans
import asyncio
async def main():
async with Lisans(program_id=108210665, year=2024) as lisans:
# Normalize edilmiş veri al
data = await lisans.get_program_data()
print(data)
if __name__ == "__main__":
asyncio.run(main())
Proje İmpactı
YokAPI, Sınavİzcisi.com projesinin temel veri katmanını oluşturuyor. MIT lisansı ile açık kaynak olarak sunulan bu proje, diğer geliştiricilerin de eğitim verilerine kolayca erişmesini sağlıyor.
Öne Çıkan Özellikler
Normalize Edilmiş Veri
Farklı kaynaklardan gelen YÖK Atlas verileri tek formatta sunulur.
Kolay Entegrasyon
Basit REST endpointleri ve Python kütüphanesi ile hızlıca projelere entegre edilir.
Asenkron Destek
aiohttp ve asyncio ile yüksek performanslı, asenkron veri çekme desteği.
Zengin Veri Modelleri
Pydantic tabanlı güçlü modeller ile güvenli ve tip kontrollü veri kullanımı.
Gelişmiş Fonksiyonlar
Kontenjan, taban puan, tercih istatistikleri, lise ve il bazlı dağılımlar gibi onlarca fonksiyon.
Esnek Session Kullanımı
Kendi aiohttp sessionunuzu kullanabilir veya otomatik oluşturulan session ile çalışabilirsiniz.
Teknik Detaylar
API Tasarımı & Mimarisi
Asenkron İşlemler
aiohttp ve asyncio kullanarak yüksek performanslı, non-blocking HTTP istekleri
- Concurrent request handling
- Connection pooling optimizasyonu
- Timeout ve retry mekanizmaları
Veri Modelleme
Pydantic ile güçlü tip kontrolü ve veri validasyonu
- Automatic JSON serialization/deserialization
- Type hints ile IDE desteği
- Custom validators ile veri kontrolü
Kod Mimarisi
Session Management
Esnek session yönetimi ile kullanıcı tercihine göre:
# Otomatik session
async with Lisans(program_id=123) as api:
data = await api.get_data()
# Custom session
session = aiohttp.ClientSession()
api = Lisans(program_id=123, session=session)
Veri İşleme Pipeline
Veri Çekme
YÖK Atlas'tan ham verilerin asenkron çekilmesi
Normalizasyon
Tutarsız formatların standart hale getirilmesi
Validasyon
Pydantic modeller ile veri doğrulaması
API Response
Standartlaştırılmış JSON response
Proje Bilgileri
Kategori
Geliştirme Tarihi
2025-03
Kaynak Kod
GitHub RepositoryREADME
README DetaylarıEk Bilgiler
- License: MIT
İş Birliği Yapalım
Bu proje ilginizi çekti mi? Benzer bir proje geliştirmek istiyorsanız iletişime geçelim.
İletişim KurDiğer Projeler
Geliştirdiğim diğer projelere de göz atın
Sınavİzcisi
YKS verilerini analiz eden ve yapay zekâ destekli tercih tahmini yapan web platformu. Django + PostgreSQL + Transformers kullanıldı.
EBA Puan Botu
EBA'da puan kasmayı sağlayan masaüstü arayüze sahip bir bot.