WallpaperMachine
The wallpapers you love. A new home on your Mac.
When to leave for your next Transperth train
LifestyleJavaScript · JavaGitHub @tdrevans-ausOnlineOwner unconfirmed
Have you tried it? One tap is enough. No sign-in needed.
No updates detected yet. GitHub releases will appear here.
Owners of public repositories under a personal GitHub account can sign in to verify ownership and manage the introduction themselves. No administrator approval is needed.
Sign in, generate a verification file, and commit it to this repository’s default branch within 30 minutes. Files on other branches or forks do not count. Then check the file below to manage the project without administrator approval. Keep the file to retain your access.
If needed, you will go to sign-in. After signing in, return here and press your chosen verification button again.
Run /nomorevibe verify in your project folder to verify ownership and manage the introduction yourself.
Verify in one minuteAsk about other verification options
The maker's introduction consists of the line above. Read the repository README for more details. Repository README ↗
Loading the full README.
Read the full README ↗Open the app and see when to leave for your next train. Pick your station and direction once — settings are saved on your device.
?station=Edgewater%20Stn&direction=Perth&leaveBefore=10npm install
npm start
Open http://localhost:3000.
Repo: github.com/tdrevans-aus/next-train-app
public is auto-detected).Or from this folder after npx vercel login:
npx vercel --prod
vercel.json sets short cache headers on /api/* so live times stay fresh.
On first launch, the app asks you to pick station and direction. You can tap Use nearest station (location permission) to pre-fill the closest Transperth station, then choose your direction and save.
There is no built-in default route — every user sets their own commute.
public/lib/train-times.js — shared logic used locally and in the cloudThe app includes an ad slot below the train details (not in the hero card), a one-time notice before ads load, and Privacy / About pages. The free version always shows ads; an ad-free upgrade is planned for later.
config/site-config.example.json values into public/site-config.json:
{
"adsenseClient": "ca-pub-XXXXXXXXXXXXXXXX",
"adsenseSlot": "XXXXXXXXXX"
}
public/about.html before going live.With empty site-config.json values, no ads or notice appear (fine for local dev).
The Play Store build uses Capacitor to wrap the app and Google AdMob for ads (not AdSense).
Ad IDs live in public/site-config.json:
{
"admobAppId": "ca-app-pub-XXXXXXXXXXXXXXXX~YYYYYYYYYY",
"admobBannerId": "ca-app-pub-XXXXXXXXXXXXXXXX/ZZZZZZZZZZ",
"admobTestMode": true
}
Set admobTestMode to false before a production Play Store release.
Prerequisites: Android Studio with SDK installed.
npm install
npm run cap:sync
npm run cap:open
In Android Studio: Run on a connected phone or emulator. The app loads the hosted Vercel URL (capacitor.config.ts).
Swipe left on the departure card for a later train, or swipe right for an earlier one. A one-time hint appears the first time you use the app.