Een progressive web app om snel de drie volgende treinen van je favoriete station te zien
https://tjoeke.nl
- High contrast theme for e-ink screens (pure black/white) - Material Design icons replace custom SVG designs - Theme toggle cycles through three themes 🤖 Generated with [Claude Code](https://claude.com/claude-code) Co-Authored-By: Claude <noreply@anthropic.com> |
||
|---|---|---|
| .claude | ||
| deployment | ||
| docs | ||
| img | ||
| src | ||
| .eslintrc.json | ||
| .gitignore | ||
| .prettierignore | ||
| .prettierrc.json | ||
| changelog.md | ||
| CLAUDE.md | ||
| DEPLOYMENT.md | ||
| DEVELOPMENT.md | ||
| LICENSE | ||
| package-lock.json | ||
| package.json | ||
| PWA.md | ||
| README.md | ||
| roadmap.md | ||
| UI-REDESIGN.md | ||
Tjoeke - Nederlandse Treinvertrekken
Een Nederlandse trein app die de volgende 3 vertrekken toont voor jouw route in beide richtingen. Ontwikkeld als hobby project om te leren werken met de NS API.
Functies
Basis Functionaliteit
- 3 Volgende Treinen: Toont komende vertrekken in beide richtingen
- Live Vertrekgegevens: Real-time informatie van de NS API
- Reistijd Indicator: Laat zien hoeveel minuten je nog hebt tot vertrek
- Platform Informatie: Actuele spooraanduiding per trein
- Intercity Filter: Optie om alleen Intercity's te tonen (geen Sprinters)
- Dark Mode: Automatische detectie van systeem voorkeur met handmatige toggle
Station Ondersteuning
- Alle NS Stations: Ondersteuning voor 400+ Nederlandse treinstations
- Autocomplete Zoeken: Vind snel je station door te typen
- Route Opslag: Gekozen route wordt onthouden voor volgende bezoeken
- Directe Links: URLs zoals
/htnc-hgzwerken voor bookmarks en delen
Trein Informatie
- Klikbare Treinkaarten: Klik op elke trein voor uitgebreide details
- Detailweergave: Popup toont treintype, overstappen, reistijd en drukte
- Drukte Voorspelling: Zie of de trein rustig, gemiddeld of druk is (🟢🟡🔴)
- Vertraging Indicatie: Duidelijke weergave van vertragingen in minuten
- Annulering Status: Geannuleerde treinen worden apart gemarkeerd
- Aankomsttijden: Verwachte aankomst op eindbestemming
Gebruiksvriendelijkheid
- Mobiel Geoptimaliseerd: Werkt goed op telefoons en tablets
- PWA Ondersteuning: Installeerbaar als app op je homescreen
- Storing Detectie: Rood headerkleur bij meerdere problemen
- Geen Account Vereist: Direct gebruiken zonder registratie
- Persistente Instellingen: Filter en thema keuze bewaard in browser
Technische Details
Prestaties
- Server Caching: API responses gecached voor snellere laadtijden
- Beperkte Updates: Ververst alleen wanneer pagina zichtbaar is
- Compressie: Geoptimaliseerde bestandsgroottes voor sneller laden
- Bandbreedte Reductie: 85-95% minder dataverbruik dan v0.9
Architectuur
- Vanilla JavaScript: Geen externe frameworks, zeer licht
- Single Page App: Eén bestand voor alle functionaliteit
- NS API Integratie: Officiële Nederlandse Spoorwegen data
- Local Storage: Routes lokaal opgeslagen in browser
Voor installatie op eigener server:
Vereisten
- Webserver met PHP ondersteuning
- NS API sleutel (gratis verkrijgbaar)
mod_rewriteenmod_expiresmodules (voor optimale prestaties)
Setup
- Upload bestanden naar webserver
- Maak
cachemap aan met schrijfrechten:mkdir cache && chmod 755 cache - Voeg NS API sleutel toe in
ns-proxy.php - Maak
stations.jsbestand aan met station data - Upload
.htaccessvoor URL routing ondersteuning
Benodigde Bestanden
index.html- Hoofd applicatiens-proxy.php- NS API proxy met cachingstations.js- Nederlandse station database.htaccess- URL routing en caching regelscache/- Map voor API response caching
NS API
Deze app gebruikt de officiële NS Reisinformatie API voor:
- Treinvertrekgegevens per station
- Reisplannen tussen twee stations
- Real-time vertraging en annulering informatie
Een gratis API sleutel is verkrijgbaar op de NS API portal.
Browser Ondersteuning
- Modern Browsers: Chrome 70+, Firefox 65+, Safari 12+, Edge 79+
- Mobiele Browsers: iOS Safari, Chrome Mobile, Samsung Internet
- Progressive Web App: Installeerbaar op Android en iOS
- Offline Functionaliteit: Basis interface werkt zonder internet
Privacybeleid
- Geen Data Opslag: IP adres alleen zichtbaar voor webserver, niet opgeslagen
- Lokale Opslag: Routes bewaard in browser localStorage
- Geen Tracking: Geen analytics of gebruikersvolging
- NS API: Verzoeken via proxy server, geen directe verbinding
Bijdragen
Dit is een hobby project voor persoonlijk gebruik. Feedback en suggesties zijn welkom via het contactformulier op de website.
Licentie
Open source - bekijk de broncode op de Git repository (link in app footer).
Let op: Deze app is niet officieel verbonden met Nederlandse Spoorwegen. Voor officiële reisinformatie gebruik de NS app.