- Python 100%
- Added Service Worker support to allow notifications to function in the background. - Improved audio alerts using AudioContext with a custom melody pattern and browser audio unlock handling. - Implemented notification cooldowns and vibration patterns. - Updated desktop application version to 4.3.0. |
||
|---|---|---|
| backend | ||
| desktop_app | ||
| img | ||
| webapp | ||
| .gitignore | ||
| exe_olustur.bat | ||
| icon.ico | ||
| LICENSE | ||
| MANIFEST.in | ||
| pyproject.toml | ||
| README.md | ||
| requirements_web.txt | ||
| start_ui.py | ||
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
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
msedgedriverolmalidir. - Proje kokunde
msedgedriver.exevarsa 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 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.main
Sonra: http://127.0.0.1:5000
Desktop app:
python -m desktop_app.main
Launcher tarafinda process loglari proje kokunde olusur:
web_launcher.logdesktop_launcher.log
Ekran Goruntuleri
Launcher UI:
Web 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:
- 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.
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-launchertcdd-webtcdd-desktop
Lisans
Proje GPL-3.0 ile lisanslidir. Detay: LICENSE.



