ESP32-S3 Bench Guide
ESP32-S3 N16R8 bench guide: live pinout, lessons, simulators and the bench log.
翻譯準備中
尚未偵測到更新。GitHub 發布版本後會顯示在這裡。
個人 GitHub 帳號下公開儲存庫的擁有者可以登入並驗證所有權,自行管理介紹,無需管理員核准。
登入並產生驗證檔案,在 30 分鐘內將其提交至此儲存庫的預設分支。其他分支或分叉儲存庫中的檔案無效。然後在下方檢查檔案,即可無需管理員核准直接管理專案。請保留檔案以維持管理權限。
如需登入,將前往登入頁面。登入後請回到此處,再次點擊所選的驗證按鈕。
在專案資料夾中執行 /nomorevibe verify,即可驗證所有權並自行管理介紹。
一分鐘完成驗證Queensland bus driver route trainer — learn routes, stop sequences and variants with active recall and spaced repetition. Next.js 16 + Prisma. GTFS data under CC BY 4.0.
翻譯準備中
取自儲存庫 README
正在載入完整 README。 以下為已儲存的摘錄。
Queensland Bus Driver Route Learning & Memory Trainer.
An independent, specialised training application engineered to help Queensland bus drivers quickly learn and retain unfamiliar bus routes, service variations, stop sequences, and depot driver knowledge.
Language & Locale Standard: This project adheres to Australian English (en-AU) across all user interfaces, terminology (e.g. timetables, depot, centre, specialised), and user-facing documentation. The interface is also available in Traditional Chinese (zh-TW).檢視完整 README ↗Queensland Bus Driver Route Learning & Memory Trainer.
An independent, specialised training application engineered to help Queensland bus drivers quickly learn and retain unfamiliar bus routes, service variations, stop sequences, and depot driver knowledge.
Language & Locale Standard: This project adheres to Australian English (
en-AU) across all user interfaces, terminology (e.g. timetables, depot, centre, specialised), and user-facing documentation. The interface is also available in Traditional Chinese (zh-TW).
No. Bus Route Trainer is a website. There is no app to download from the App Store or Google Play. You only need a modern web browser (Safari, Chrome, Edge, or Firefox) and an internet connection.
It works on phones, tablets, and desktop computers.
This makes the site open like an app, without the browser address bar.
Note: this creates a shortcut only. The app still requires an internet connection — offline support is not yet implemented (see Roadmap).
Practice uses active recall with a spaced repetition system (SRS):
Two question modes are used:
| Mode | What you are asked |
|---|---|
| Next stop | Given the current stop, name the stop that comes next |
| Station identification | Given a position in the route, name that stop |
| Rule | Requirement |
|---|---|
| Length | At least 8 characters (12 or more recommended) |
| Lowercase | At least one a-z |
| Uppercase | At least one A-Z |
| Special character | At least one of !@#$%^&*()_+-=[]{}|;:,.<>? |
| Digits | Optional |
| Common passwords | Blocked (e.g. Password!1) |
Forgot your password? Tap Forgot password? on the sign-in page. A reset link is emailed to you and is valid for 1 hour, single use. This only works if you registered an email address.
Never use this app while driving. It is a study tool for use before or after your shift.
Timetables, route alignments, and stop sequences come from periodic snapshots of open data and may be out of date. During actual operation, always follow official Translink depot notices, master run sheets, and radio dispatch instructions. See DISCLAIMER.md.
| Software | Why | Notes |
|---|---|---|
| Docker Desktop | Runs the app and PostgreSQL in containers | Required. macOS/Windows/Linux. After install, ensure docker is on your PATH (on macOS it may be at ~/.docker/bin) |
| Git | Clone the repository | Pre-installed on macOS/Linux; Windows users install Git for Windows |
That is all. Node.js and PostgreSQL are not installed on your machine — they run inside the container. This keeps every environment identical.
Project rule: never run
node/npmdirectly on the host. The database only exists inside Docker, so host runs will fail or behave inconsistently. SeeAGENTS.md.
Optional: an editor with Dev Containers support (VS Code, Cursor, or Antigravity) lets you use Reopen in Container for a fully configured shell.
# 1. Clone
git clone https://github.com/Jake627520/bus-route-trainer.git
cd bus-route-trainer
# 2. Create your local environment file
cp .env.example .env
Then edit .env. For local development, point both database URLs at the container's database and set an auth secret:
DATABASE_URL="postgresql://postgres:postgres@db:5432/bus_route_trainer"
DIRECT_URL="postgresql://postgres:postgres@db:5432/bus_route_trainer"
AUTH_SECRET="<output of: openssl rand -base64 32>"
# 3. Start the database
docker compose up -d db
# 4. Apply the schema
docker compose run --rm app npx prisma migrate deploy
# 5. Start the dev server
docker compose run --rm --service-ports app npm run dev -- -H 0.0.0.0
Open http://localhost:3000, register an account, and you are in.
The route list is empty until you import GTFS data — see Importing transport data.
| Task | Command |
|---|---|
| Run tests | docker compose run --rm app npm test |
| Lint | docker compose run --rm app npx eslint . |
| Production build | docker compose run --rm app npx next build |
| Regenerate Prisma client | docker compose run --rm app npx prisma generate |
| Stop everything | docker compose down |
| Stop and wipe the database | docker compose down -v |
Tests run serially (
--fileParallelism=false) because integration tests share one database.
Download a GTFS feed from Translink Open Data, unzip it, then:
# Buses only (recommended first import)
docker compose run --rm app npx tsx scripts/import-gtfs.ts ./path-to-gtfs --bus-only
# Other modes, with a cap on how many routes are imported
docker compose run --rm app npx tsx scripts/import-gtfs.ts ./path-to-gtfs --route-types=2,4 --max-routes=50
| Flag | Effect |
|---|---|
--bus-only | Import bus routes only (GTFS route type 3) |
--route-types=2,4 | Import specific GTFS route types (2 = train, 3 = bus, 4 = ferry) |
--max-routes=N | Cap the number of routes — useful to stay inside a free database tier |
--clear | Delete existing GTFS tables before importing |
A scheduled GitHub Actions workflow refreshes the feed automatically; see .github/workflows/gtfs-update.yml.
| Symptom | Cause / fix |
|---|---|
Cannot connect to the Docker daemon | Docker Desktop is not running — start it |
Port 3000 is in use | An old dev container is still up: docker ps then docker rm -f <id> |
Unknown argument from Prisma | Stale generated client — run npx prisma generate inside the container |
Build fails on migrate | DIRECT_URL is missing or pointed at a pooled connection; migrations need a direct connection |
Redirected to /login in a loop | Cookies need HTTPS in production (SameSite=Lax + Secure) |
openspec/changes/<id>/ and reviewed before coding; tests go red before implementation turns them green.DEPLOY.md · Handover notes: HANDOFF.md · Agent rules: AGENTS.mdAvailable now
This project keeps three things legally separate: the code, the transport data, and third-party branding.
Copyright © 2026 Jake627520. Licensed under the MIT Licence — see LICENSE.
You may use, copy, modify, merge, publish, distribute, sublicense, and sell copies of the code, provided the copyright notice and permission notice are retained. The software is provided "as is", without warranty of any kind.
Route, stop, trip, and timetable data is sourced from Translink Queensland Open Data, provided by the Department of Transport and Main Roads (Translink), Queensland Government, under Creative Commons Attribution 4.0 International (CC BY 4.0).
Important: the MIT licence covers the code only. It grants you no rights over the transport data. If you redistribute that data you must comply with CC BY 4.0 independently, including correct attribution to Translink.
Full details: DATA-LICENSE.md.
Translink, the Queensland Government, and the Department of Transport and Main Roads own their respective trade marks, logos, and visual identity. Those marks are deliberately not used in this application, and no licence to use them is granted or implied by the MIT licence.
Route numbers and stop names are factual identifiers used descriptively for training purposes; this does not imply endorsement.
This is an independent community project. It is not affiliated with, endorsed by, sponsored by, maintained by, or operated by Translink, the Department of Transport and Main Roads, or the Queensland Government.
Provided "as is" with no warranty. Transport data is a periodic snapshot and may be inaccurate or outdated. Drivers must always follow official depot notices, master run sheets, and radio dispatch instructions during actual operation. Nothing here is operational advice.
Full text: DISCLAIMER.md.
Accounts store a username, an optional email address, and a salted password hash — passwords are never stored in plain text. Practice history is tied to your account and used to schedule your reviews. Self-hosters are responsible for their own privacy obligations.
Contributions are accepted under the MIT Licence. By submitting a pull request you agree your contribution is licensed under the same terms, and you confirm you have the right to submit it. Follow the OpenSpec + TDD workflow described in AGENTS.md.