bus_sg_app Svelte Themes

Bus_sg_app

A lightweight bus transport web app that uses the gateway OpenAPI contract at: http://localhost:8067/openapi.json The frontend is built with SvelteKit. It dynamically loads transport endpoints from the OpenAPI spec and calls them through a SvelteKit server hook proxy.

Bus SG App

A lightweight bus transport web app that uses the gateway OpenAPI contract at:

The frontend is built with SvelteKit. It dynamically loads transport endpoints from the OpenAPI spec and calls them through a SvelteKit server hook proxy.

Stack

  • SvelteKit + Vite + Svelte 5
  • Bun for package management and scripts

Run

  1. Ensure your API gateway is running at http://localhost:8067.
  2. Install dependencies:
bun install
  1. Start this app in development:
bun run dev
  1. Open:

Build and preview

bun run build
bun run preview

You can also use bun run start to run preview mode.

Containerized run (Docker and Podman)

This project includes:

  • Dockerfile
  • compose.yaml
  • Makefile wrapper for Docker Compose and Podman Compose

By default, the container expects your gateway at:

  • http://host.containers.internal:8067

If you use Docker Desktop on macOS and need Docker host mapping instead, set:

  • API_ORIGIN=http://host.docker.internal:8067

Start with Docker Compose

make up ENGINE=docker

Start with Podman Compose

make up ENGINE=podman

Useful commands

make build ENGINE=docker
make logs ENGINE=docker
make ps ENGINE=docker
make down ENGINE=docker

You can replace ENGINE=docker with ENGINE=podman in all commands.

Optional environment overrides

APP_PORT=3001 API_ORIGIN=http://host.docker.internal:8067 make up ENGINE=docker

Screenshot

Project structure

src/
    app.css
    app.html
    hooks.server.js
    routes/
        +layout.svelte
        +page.svelte
svelte.config.js
vite.config.js
package.json

Features

  • Dynamic endpoint explorer built from OpenAPI paths under /api/v1/*
  • Bus-focused endpoint filtering (Bus and Passenger Volume tags)
  • Quick bus-arrival panel that uses your current location to resolve the nearest bus stop automatically
  • Map view for current location and nearest resolved bus stop
  • Tap-to-query map interaction: tap any point on the map to resolve nearest stops and load arrivals for that area
  • Optional ServiceNo filter for arrival checks
  • JSON response viewer
  • Arrival board card view when the response includes Services
  • Server-side proxying for /api/* and /openapi.json

Config

Environment variables:

  • API_ORIGIN (default: http://localhost:8067)

Example:

API_ORIGIN=http://localhost:8067 bun run dev -- --port 3001

Cleanup note

Legacy files from the earlier custom Node static server version were removed.

Top categories

Loading Svelte Themes