Skip to content

mcagriaksoy/tcdd-bilet-yer-kontrol

 
 

Repository files navigation

mcagriaksoy - tcdd-bilet-yer-kontrol stars - tcdd-bilet-yer-kontrol forks - tcdd-bilet-yer-kontrol GitHub release License issues - tcdd-bilet-yer-kontrol

Bu proje TCDD eBilet tarafinda secilen rota/saat icin bos koltuk durumunu periyodik olarak kontrol eder. Bu uygulama, yolcuların bilet bilgilerini hızlı ve kolay bir şekilde aramalarina ve doğrulamalarına olanak tanır.

Yeni yapi:

  • backend: Ortak algoritma katmani (web + desktop bunu kullanir)
  • webapp: Flask arayuz dosyalari (template/static/routes)
  • desktop_app: Tkinter masaustu uygulamasi
  • webapp/main.py: Web uygulama giris noktasi
  • start_ui.py: Web/Desktop launcher arayuzu

Ozellikler

  • Periyodik otomatik koltuk kontrolu
  • Telegram bildirimi (opsiyonel)
  • Web bildirim + sesli bildirim
  • Web ve desktop tarafinda tek algoritma (backend)

Kurulum

pip install -r requirements_web.txt
pip install -r desktop_app\requirements.txt

Not:

  • Selenium + Edge kullanildigi icin sistemde Microsoft Edge ve uygun msedgedriver olmalidir.
  • Proje kokunde msedgedriver.exe varsa dogrudan kullanilir.

Windows EXE (Hazir Surum)

Kurulum yapmadan kullanmak isteyenler son hazir .exe surumunu GitHub Releases sayfasindan indirebilir:

Releases sayfasindan en guncel surumdeki start_ui.exe dosyasini indirip calistirabilirsiniz.

Calistirma

Launcher UI (onerilen):

python start_ui.py

Bu ekrandan:

  • Web Uygulamasini Baslat ile Flask web server baslatilir (http://127.0.0.1:5000)
  • Masaustu Uygulamasini Baslat ile Tkinter desktop uygulamasi baslatilir
  • Ikisini Birlikte Baslat ile ikisi birlikte calistirilir
  • Durdur butonlari ile ilgili process kapatilir

Web app:

python -m webapp.main

Sonra: http://127.0.0.1:5000

Desktop app:

python -m desktop_app.main

Launcher tarafinda process loglari proje kokunde olusur:

  • web_launcher.log
  • desktop_launcher.log

Ekran Goruntuleri

Launcher UI:

Launcher UI

Web App:

Web App

Desktop App:

Desktop App

Domain Ile Yayina Alma

Evet, domain ile calisir. Ama web app'in arkasinda Selenium calistigi icin standart "statik site" gibi degil, bir sunucuda process olarak calismasi gerekir.

Gerekenler:

  1. Linux/Windows (7/24 acik)
  2. Python + Edge + msedgedriver
  3. Flask uygulamasini proses yoneticisi ile calistirma (systemd, pm2, supervisor vb.)
  4. Domain DNS -> sunucu IP
  5. Nginx/Caddy reverse proxy + HTTPS (Let's Encrypt)

Onemli notlar:

  • webapp/main.py su an gelistirme modunda (debug=True). Production'da gunicorn/waitress + reverse proxy kullanin.
  • Uzun sureli Selenium isleri CPU/RAM tuketir; dusuk kaynakli hostinglerde yavaslayabilir.
  • TCDD tarafindaki HTML degisirse backend icindeki selectorler guncellenmelidir.

Gelistirici Notu

Tek algoritma kaynagi artik backend klasorudur. desktop_app veya webapp icine tekrar kopya algoritma dosyasi eklenmemelidir.

Pip Paketi Hazirlama

Lint ve analiz:

ruff check .
python -m compileall -q start_ui.py webapp desktop_app backend

Paket olusturma:

python -m build
python -m twine check dist\tcdd_bilet_yer_kontrol-4.3.0.tar.gz
python -m twine check dist\tcdd_bilet_yer_kontrol-4.3.0-py3-none-any.whl

TestPyPI/PyPI yukleme:

python -m twine upload --repository testpypi dist/*
python -m twine upload dist/*

Paket kurulduktan sonra gelen komutlar:

  • tcdd-launcher
  • tcdd-web
  • tcdd-desktop

Lisans

Proje GPL-3.0 ile lisanslidir. Detay: LICENSE.

Buy Me A Coffee

About

TCDD Bilet Kontrol Etme Uygulamasi, Türkiye Cumhuriyeti Devlet Demiryolları (TCDD) tarafından sunulan biletlerin uygunluk durumu ve yer durumunu kontrol etmek için tasarlanmış kullanıcı dostu bir arayüz uygulamasıdır. Bu uygulama, yolcuların bilet bilgilerini hızlı ve kolay bir şekilde aramalarina ve doğrulamalarına olanak tanır.

Topics

Resources

License

Stars

Watchers

Forks

Packages

 
 
 

Contributors

Languages

  • Python 71.7%
  • HTML 9.1%
  • CSS 8.8%
  • JavaScript 8.4%
  • Batchfile 2.0%