Easy-to-manage touch screens
Free, open-source touch screens. Guided USB setup, a drag-and-drop editor and local control. Made for Home Assistant.
Prototype rideshare app for West Palm Beach with live GPS.
LifestyleJavaScript · CSSGitHub @WagonPrototypeOnlineOwner unconfirmed
Have you tried it? One tap is enough. No sign-in needed.
No updates detected yet. GitHub releases will appear here.
Owners of public repositories under a personal GitHub account can sign in to verify ownership and manage the introduction themselves. No administrator approval is needed.
Sign in, generate a verification file, and commit it to this repository’s default branch within 30 minutes. Files on other branches or forks do not count. Then check the file below to manage the project without administrator approval. Keep the file to retain your access.
If needed, you will go to sign-in. After signing in, return here and press your chosen verification button again.
Run /nomorevibe verify in your project folder to verify ownership and manage the introduction yourself.
Verify in one minuteAsk about other verification options
Loading the full README. The saved excerpt is shown below.
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.Read the full 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.