ESP32-S3 Bench Guide
ESP32‑S3 N16R8 벤치 가이드: 실시간 핀아웃, 강의, 시뮬레이터 및 벤치 로그
아직 감지된 업데이트가 없습니다. GitHub 릴리스가 나오면 여기에 보입니다.
개인 계정의 공개 저장소 소유자는 GitHub로 로그인해 운영자를 확인하고 소개를 직접 관리할 수 있습니다. 관리자 승인은 필요하지 않습니다.
로그인한 뒤 확인 파일을 만들어 이 저장소의 기본 브랜치에 30분 안에 커밋해 주세요. 다른 브랜치나 포크의 파일은 인정하지 않습니다. 파일을 올린 뒤 아래에서 확인하면 관리자 승인 없이 관리할 수 있습니다. 자격을 유지하려면 파일을 남겨 두세요.
로그인이 필요하면 로그인 화면으로 이동합니다. 로그인 후 이곳으로 돌아와 원하는 확인 버튼을 다시 눌러 주세요.
프로젝트 폴더에서 /nomorevibe verify를 실행하면 소유권을 확인하고 소개를 직접 관리할 수 있습니다.
1분 만에 확인하기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.