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 uygulamasiwebapp/main.py: Web uygulama giris noktasistart_ui.py: Web/Desktop launcher arayuzu
- Periyodik otomatik koltuk kontrolu
- Telegram bildirimi (opsiyonel)
- Web bildirim + sesli bildirim
- Web ve desktop tarafinda tek algoritma (
backend)
pip install -r requirements_web.txt
pip install -r desktop_app\requirements.txtNot:
- Selenium + Edge kullanildigi icin sistemde Microsoft Edge ve uygun
msedgedriverolmalidir. - Proje kokunde
msedgedriver.exevarsa dogrudan kullanilir.
Kurulum yapmadan kullanmak isteyenler son hazir .exe surumunu GitHub Releases sayfasindan indirebilir:
Releases sayfasindan en guncel surumdeki start_ui.exe dosyasini indirip calistirabilirsiniz.
Launcher UI (onerilen):
python start_ui.pyBu ekrandan:
Web Uygulamasini Baslatile Flask web server baslatilir (http://127.0.0.1:5000)Masaustu Uygulamasini Baslatile Tkinter desktop uygulamasi baslatilirIkisini Birlikte Baslatile ikisi birlikte calistirilirDurdurbutonlari ile ilgili process kapatilir
Web app:
python -m webapp.mainSonra: http://127.0.0.1:5000
Desktop app:
python -m desktop_app.mainLauncher tarafinda process loglari proje kokunde olusur:
web_launcher.logdesktop_launcher.log
Launcher UI:
Web App:
Desktop App:
Evet, domain ile calisir. Ama web app'in arkasinda Selenium calistigi icin standart "statik site" gibi degil, bir sunucuda process olarak calismasi gerekir.
Gerekenler:
- Linux/Windows (7/24 acik)
- Python + Edge +
msedgedriver - Flask uygulamasini proses yoneticisi ile calistirma (systemd, pm2, supervisor vb.)
- Domain DNS -> sunucu IP
- Nginx/Caddy reverse proxy + HTTPS (Let's Encrypt)
Onemli notlar:
webapp/main.pysu an gelistirme modunda (debug=True). Production'dagunicorn/waitress+ reverse proxy kullanin.- Uzun sureli Selenium isleri CPU/RAM tuketir; dusuk kaynakli hostinglerde yavaslayabilir.
- TCDD tarafindaki HTML degisirse
backendicindeki selectorler guncellenmelidir.
Tek algoritma kaynagi artik backend klasorudur. desktop_app veya webapp icine tekrar kopya algoritma dosyasi eklenmemelidir.
Lint ve analiz:
ruff check .
python -m compileall -q start_ui.py webapp desktop_app backendPaket 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.whlTestPyPI/PyPI yukleme:
python -m twine upload --repository testpypi dist/*
python -m twine upload dist/*Paket kurulduktan sonra gelen komutlar:
tcdd-launchertcdd-webtcdd-desktop
Proje GPL-3.0 ile lisanslidir. Detay: LICENSE.



