TreeMap
A free, open-source disk-space visualizer. Squarified treemap, duplicate hunting, disk-full forecasting, and cleanup that only ever moves files to the Trash.
翻譯準備中
尚未偵測到更新。GitHub 發布版本後會顯示在這裡。
個人 GitHub 帳號下公開儲存庫的擁有者可以登入並驗證所有權,自行管理介紹,無需管理員核准。
登入並產生驗證檔案,在 30 分鐘內將其提交至此儲存庫的預設分支。其他分支或分叉儲存庫中的檔案無效。然後在下方檢查檔案,即可無需管理員核准直接管理專案。請保留檔案以維持管理權限。
如需登入,將前往登入頁面。登入後請回到此處,再次點擊所選的驗證按鈕。
在專案資料夾中執行 /nomorevibe verify,即可驗證所有權並自行管理介紹。
一分鐘完成驗證Driving lesson notes app for iPhone: dictate, tidy with Claude or ChatGPT, keep every student's notes on your phone.
翻譯準備中
取自儲存庫 README
正在載入完整 README。 以下為已儲存的摘錄。
A home-screen app for driving instructors at Key Skills Driving School. Talk through what happened in a lesson and get a professional lesson breakdown (a bare "Covered today" list, then a personal message in the instructor's voice about how it went, then "Focus for next lesson", with no title or date line) that's one tap to copy and send.檢視完整 README ↗A home-screen app for driving instructors at Key Skills Driving School (called KSDS Lesson Breakdown until v3.12): lesson breakdowns, the review card, practice routes and test routes. Talk through what happened in a lesson and get a professional lesson breakdown (a bare "Covered today" list, then a personal message in the instructor's voice about how it went, then "Focus for next lesson", with no title or date line) that's one tap to copy and send.
claude-opus-5 with adaptive thinking at low effort and server-side fallbacks, dropping either if the chosen model rejects them. Without a key, it copies a ready-made prompt to paste into the ChatGPT or Claude app.worker/)A Cloudflare Worker (ksds-lessons) plus a D1 database holds the school's Gemini key and the list of approved phones, so staff never need a key. It also fetches practice routes for approved phones, with the school's OpenRouteService key (only coordinates are sent), and keeps the school's test routes (test_routes table): approved phones list them, admins add and delete them, and GET /shared/<id> returns one to anyone holding its random 12-character link. Each keeps its turn-by-turn list for Drive mode, checked with cleanGuide from docs/drive.js (the server imports it, so that file must not touch the page when it loads). Each phone makes up an id and secret token; the server keeps only a hash. The first phone to tap Become the admin claims the school and becomes its one master admin; after that only admins can approve, remove or promote phones, or change the school key (which is never sent back to a phone). The master admin can't be removed or demoted by anyone, and only they can pass the role on (Make master admin on the Phones screen, behind a tick box and a confirmation). Wipe App is refused on the master admin's phone until the role has been passed on. The server builds the prompt itself (it imports docs/ai.js), only answers the app's own origin, allows 200 breakdowns per phone per day, and keeps no lesson text or logs.
Notifications use Web Push (@block65/webcrypto-web-push): the VAPID public key is in wrangler.toml and docs/app.js, the private key is the VAPID_PRIVATE_KEY secret. Deploy with npx wrangler deploy from worker/. For local testing, wrangler dev on port 8787 (the app switches to it automatically on localhost) needs http://localhost:8787 temporarily added to the connect-src list in docs/index.html.
Opening the link on a phone shows a walkthrough until the app is installed. iPhone: Share → Add to Home Screen (Apple offers no shorter route), shown as a looping animation of the three taps plus a browser-specific hint about where Share lives. Android: an Install button that triggers the browser's own install prompt, with menu instructions as the fallback for browsers that don't offer one. Use the installed app on iPhone, not the Safari tab: iOS keeps their storage separate. On Android the two share storage.
Plain HTML/CSS/JS with no build step. The site lives in docs/.
On every release, bump VERSION in docs/app.js and CACHE in docs/sw.js together, or installed phones keep the old files.
docs/vendor/qrcode.js is qrcode-generator 2.0.4 (MIT).
docs/vendor/maplibre/ is MapLibre GL JS 6.14.0 (BSD-3-Clause, license file alongside).
The Routes tab never asks a map server for spots. They're prepared ahead of time from OpenStreetMap (© OpenStreetMap contributors, ODbL) for the school's area, Phoenix and Tempe down to Sun Lakes and over to Queen Creek:
python -I tools/route-spots/fetch.py # downloads the area from the Overpass API (slow; skips cells it already has)
python -I tools/route-spots/build.py # writes docs/route-spots/*.json
Then release as usual. Drive mode (docs/drive.js, map helpers in docs/geo.js) needs no outside service beyond the map tiles: GPS and the voice (speechSynthesis) are the phone's own. Road routes come from OpenRouteService through the school
server, which keeps the key as the ORS_KEY secret (npx wrangler secret put ORS_KEY from worker/). The free key
allows 200 route requests a day for the whole school; one build uses up to 4. Map tiles are
OpenFreeMap's free "dark" style.