尚未偵測到更新。GitHub 發布版本後會顯示在這裡。
個人 GitHub 帳號下公開儲存庫的擁有者可以登入並驗證所有權,自行管理介紹,無需管理員核准。
登入並產生驗證檔案,在 30 分鐘內將其提交至此儲存庫的預設分支。其他分支或分叉儲存庫中的檔案無效。然後在下方檢查檔案,即可無需管理員核准直接管理專案。請保留檔案以維持管理權限。
如需登入,將前往登入頁面。登入後請回到此處,再次點擊所選的驗證按鈕。
在專案資料夾中執行 /nomorevibe verify,即可驗證所有權並自行管理介紹。
一分鐘完成驗證正在載入完整 README。 以下為已儲存的摘錄。
A test version of a rideshare app for West Palm Beach. One phone requests a ride, another accepts it and drives, and both follow the trip with live GPS to a receipt. It is a plain web app (no build step) that also installs as an app and can be packaged for Google Play.
Status: prototype for a few known testers. Not for public release. No payments.檢視完整 README ↗A test version of a rideshare app for West Palm Beach. One phone requests a ride, another accepts it and drives, and both follow the trip with live GPS to a receipt. It is a plain web app (no build step) that also installs as an app and can be packaged for Google Play.
Status: prototype for a few known testers. Not for public release. No payments.
| Piece | What it does |
|---|---|
index.html, styles.css | The screens: home, rider, driver. |
app.js | All app logic (ES module, no framework). |
config.js | Firebase settings (project rapid-wagon), SDK version, Google Maps key and Map ID. Not secret; the Maps key is restricted to this website. |
firestore.rules | Database access rules. Paste into Firebase console → Firestore → Rules. |
manifest.webmanifest, sw.js, icons/ | Makes it an installable web app (needed for Google Play packaging). |
privacy.html | Privacy page, required for the Play listing. |
Services:
www.gstatic.com/firebasejs/<version>/.v=weekly): the map with Advanced Markers, Place Autocomplete (Places API New, with session tokens) for typed addresses, and the Routes library (Route.computeRoutes, traffic-unaware, so it bills as Essentials) for road routes. The key is restricted to https://wagonprototype.github.io/* and to those three APIs.watchPosition, high accuracy) for GPS.rides/{autoId}
| Field | Notes |
|---|---|
riderUid, riderName | Set by the rider at creation. |
pickup, dropoff | {id, name, lat, lng}. |
fare, miles, minutes | Upfront quote from the Google road route (falls back to straight line × 1.3), sample prices. |
route | {poly, meters, seconds}: planned road route pickup → destination, Google encoded polyline. |
approach | Same shape: the driver's road route to the pickup, written by the driver's phone after accepting. |
trail | Encoded polyline of where the car actually drove during the trip, written by the driver's phone. |
status | requested → accepted → arrived → in_progress → completed; or cancelled. A driver can release a ride back to requested. |
driverUid, driver | driver = {name, car, plate, photo}; photo is a 128 px JPEG data URL. |
driverLoc | {lat, lng, at}. Updated by the driver's phone every ~4 s while moving during a ride. |
createdAt, acceptedAt, arrivedAt, startedAt, completedAt, cancelledAt, releasedAt | Client clock, milliseconds. |
tripMiles, tripMinutes | Measured on the driver's phone from GPS during the trip. |
cancelledBy | rider or expired (requests older than 45 min). |
rating | 1–5, from the rider. |
drivers/{uid}: {name, car, plate, photo, online, loc:{lat,lng}, updatedAt}. A driver counts as online for 3 minutes after the last update; the phone sends one at least every 45 s while the app is open.
Queries (all single-field, no composite indexes needed): rides by riderUid, rides by driverUid, rides with status == requested (limit 50), drivers with online == true. Accepting a ride uses a transaction so two drivers can't take the same request.
DEMO_MAP_ID. Create a real Map ID in Google Cloud (Map Management) and put it in config.js before launch.username.github.io repository (root of the domain, which Google Play's asset links file needs). .nojekyll makes GitHub serve the .well-known folder.firestore.rules, Anonymous sign-in enabled.python3 -m http.server 8080 in this folder, then open http://localhost:8080. Browsers allow GPS on localhost; anywhere else needs HTTPS.Package with PWABuilder (pwabuilder.com) using the site URL, Android package. It produces the app bundle, a signing key (keep it safe; it can't be replaced), and an assetlinks.json file. Put that file at .well-known/assetlinks.json in this repo so the app opens without a browser address bar. Upload the bundle to Internal testing in Play Console.