Kocaeli Üniversitesi öğrenci bilgi sisteminden otomatik not çekme ve offline erişim aracı. Veri toplama ile hızlı offline erişim sağlar.
- Kullanılan Araçlar
- Amaç
- Proje Özellikleri
- Teknik Detaylar
- İndirme ve Çalıştırma
- Kullanım
- Proje Yapısı
- Not
- Web Automation: Selenium WebDriver ile tarayıcı otomasyonu
- UI Framework: Rich library ile güzel konsol arayüzü
- Data Processing: BeautifulSoup ve JSON ile veri işleme
- Session Management: Cookie-based oturum yönetimi
- Performance: JavaScript tabanlı hızlı parsing
Kullanılan Araç | Sürüm | Amaç |
---|---|---|
Python | 3.8+ | Ana programlama dili |
Selenium | 4.15.0+ | Web otomasyonu |
Rich | 13.7.0+ | Konsol arayüzü |
Chrome WebDriver | Latest | Tarayıcı kontrolü |
Requests | 2.31.0+ | HTTP istekleri |
BeautifulSoup4 | 4.12.2+ | HTML parsing |
Bir hobi projesi olarak Öğrenci Bilgi Sisteminden verileri çekip çekemeyeceğimi kontrol etmek isterken kendimi burada buldum.
{
"Veri Toplama": "Tüm dönemlerin verilerini toplar ve offline kullanım için saklar",
"Session Management": "Cookie-based oturum saklama ve yeniden kullanım",
"Ultra-Fast Offline Access": "Sonraki kullanımlarda < 1 saniye erişim",
"On-Demand Data Update": "Menüden tek tıkla sunucudan fresh veri güncelleme",
"Detaylı Ders Bilgileri": "Öğretim elemanı, etkinlikler, notlar ve tüm detaylar",
"JavaScript-Based Parsing": "Ultra-hızlı veri çıkarma teknolojisi",
"Rich Console Interface": "Güzel ve kullanıcı dostu konsol arayüzü",
"Secure Data Storage": "Şifreler saklanmaz, sadece oturum bilgileri",
"Automatic Cache Management": "Akıllı önbellek yönetimi",
"Cross-Platform Support": "Windows, macOS, Linux desteği"
}
Özellik | Durum | Detay |
---|---|---|
Session Management ve reCAPTCHA Bypass | ✅ | İlk girişten sonra Cookie-based oturum saklama ve yeniden kullanım |
Ultra-Fast Parsing | ✅ | JavaScript tabanlı DOM manipulation |
Offline Data Access | ✅ | JSON formatında lokal veri saklama |
Rich Console UI | ✅ | Progress bar, tablo ve renkli çıktılar |
Error Handling | ✅ | Kapsamlı hata yönetimi ve user-friendly mesajlar |
Performance Optimization | ✅ | Cache sistemi ve paralel işlem |
Modular Architecture | ✅ | Temiz kod yapısı ve maintainability |
Projeyi yerel ortamınızda çalıştırmak için aşağıdaki adımları izleyebilirsiniz:
- Repoyu klonlayın:
git clone https://github.com/metehansenyer/KOU-Not-Bilgi-Sistemi-CLI.git
cd KOU-Not-Bilgi-Sistemi-CLI
- Sanal ortam (Virtual Environment) oluşturun ve etkinleştirin:
Windows için:
python -m venv venv
venv\Scripts\activate
macOS/Linux için:
python -m venv venv
source venv/bin/activate
- Gerekli paketleri yükleyin:
pip install -r requirements.txt
-
Chrome tarayıcısının güncel olduğundan emin olun (WebDriver otomatik indirilir)
-
Programı çalıştırın:
python start.py
- Programı çalıştırın
- KOU öğrenci numaranızı (9 haneli) girin
- Parolanızı girin
- reCAPTCHA'yı çözün ve giriş yapın
- Program tüm dönemlerinizin verilerini toplayacak (~2-5 dakika)
- Veriler
.kou_sessions/data/
dizininde saklanır
- Programı çalıştırın
- Öğrenci numaranızı girin
- < 1 saniye içinde verileriniz yüklenir
- 4 ana menü seçeneği:
- 1. 📊 Güncel dönem notları
- 2. 📅 Dönem seçerek görüntüleme
- 3. 🔄 Verileri güncelle
- 4. ❌ Çıkış
KOU-Not-Bilgi-Sistemi-CLI/
├── config.py # Konfigürasyon ayarları
├── exceptions.py # Özel hata sınıfları
├── logger.py # Loglama sistemi
├── utils.py # Yardımcı fonksiyonlar
├── session_manager.py # Session ve cookie yönetimi
├── main_with_session.py # Selenium ile veri toplama
├── kou_main.py # Ana program ve offline arayüz
├── start.py # Production başlatıcı
├── requirements.txt # Python bağımlılıkları
├── .gitignore # Git ignore kuralları
├── LICENSE # MIT lisansı
└── README.md # Bu dosya
kou_main.py
: Ana kullanıcı arayüzü ve offline veri erişimimain_with_session.py
: Selenium ile KOU sistemine bağlanma ve veri toplamasession_manager.py
: Cookie'leri saklama ve oturum yönetimiutils.py
: Veri saklama, yükleme ve temizleme fonksiyonlarılogger.py
: Production/Development mod logging sistemiconfig.py
: Tüm konfigürasyon ayarları
.kou_sessions/
├── data/
│ └── user_a1b2c3d4e5f6.json # Kullanıcı dosyası
├── username_cookies.pkl # Session cookies
├── username_session.json # Session metadata
└── kou_client.log # Log dosyası
Not: Bu araç eğitim amaçlıdır ve KOU'nun resmi uygulaması değildir. Kullanım sorumluluğu kullanıcıya aittir.