Skip to content

About

No description, website, or topics provided.

Resources

Stars

0 stars

Watchers

0 watching

Forks

Repository files navigation

Car Tracker

Car Tracker is a family-focused Android application for sharing a driver's live location, route progress, and estimated arrival time with approved family members.

Download for Android

Download Car Tracker v1.1.0

The previous build remains available at Download v1.0.2.

Open a link on your Android phone while signed into GitHub, download the APK, and allow installation from your browser when Android asks. Existing Car Tracker installations can update directly because every release uses the same signing certificate.

Current milestone

Version 1.1.0 adds a live illustrated journey poster, an icon-based top-right menu, and displays trip distance in miles and feet. The Watch Trip map now uses the same uninterrupted smooth drag, pinch, and zoom handling as My Map. The app uses the existing no-cost Firebase and public map services; its visuals and animations are bundled locally and add no paid dependency.

Version 1.0.2 fixes map controls and introduces smooth, frame-synchronised dragging, animated zoom buttons, and two-finger pinch zoom anchored beneath the user's fingers. Zoom controls no longer change the selected destination. Version 1.0.1 added private, editable family labels to approved viewer IDs, making access lists easy to recognise and organise. Version 1.0 introduced the family-ready experience: approved viewers choose a driver by name without entering that driver's ID. Drivers can optionally share a phone number, which adds a safe Call button that opens Android's dialer. Destination search is available directly above the map, and a new car-and-location-pin icon makes the app easy to recognise on the home screen.

The map shows the road route, driving distance, estimated time, and approaching/arrival state. If routing or search is temporarily unavailable, the app retains tap-to-select and direct-progress fallbacks. Viewer status distinguishes live, updating slowly, stale, stopped, and last-known/offline locations.

The map renderer is bundled with the app and uses standard OpenStreetMap tiles for normal interactive viewing, with visible attribution and no API key or billing account. It does not prefetch maps or provide offline tile downloads. Road routing is rate-limited by the app and recalculated only after meaningful movement. Place search runs only when the user submits a query and returns at most five results. The public OSRM and Photon demo services are best-effort and have no uptime guarantee.

The Firebase project uses the no-cost Spark plan. Database rules in database.rules.json restrict each trip to its signed-in driver and the viewer IDs that driver has approved. The Firebase Android configuration is safe to include in the client; authorization is enforced by Authentication and the deployed database rules.

Principles

  • No required subscription or pay-as-you-go service.
  • Tracking is explicitly started and stopped by the driver.
  • Location is visible only to approved family members.
  • Stale, inaccurate, or offline location data is clearly identified.
  • Secrets, signing keys, and generated APKs are never committed to Git.

Planned milestones

  1. 0.1.x - project foundation and automated checks (complete)
  2. 0.2.0 - local phone location and foreground trip service (complete)
  3. 0.3.0 - private family accounts and live location synchronisation (complete)
  4. 0.4.0 - visual refresh, appearance modes, map, destination, and animated vehicle (complete)
  5. 0.5.0 - road route, ETA, approaching/arrival states, and offline handling (complete)
  6. 1.0.0 - named driver directory, optional calling, map search, and branded family release (complete)

Local build

Open this directory in Android Studio and allow Gradle to sync. To build from a terminal:

.\gradlew.bat assembleDebug

The debug APK is generated under app/build/outputs/apk/debug/.

Trying private sharing

  1. Install the same APK on the driver's and viewer's Android phones.
  2. Create a different account on each phone.
  3. On the viewer's phone, copy the viewer's Family ID.
  4. On the driver's phone, paste that ID under Approve a family member.
  5. On the driver's phone, press Share my trip.
  6. On the driver's phone, open My map and tap the destination.
  7. On the viewer's phone, open Watch trip and choose the approved driver by name.

Each driver should save a display name under Your driver profile. A phone number is optional; when supplied, approved viewers receive a Call button that opens the phone dialer. Existing approvals are added to the new directory automatically when the driver opens version 1.0.0.

Use Menu > Appearance to cycle between System, Light, and Dark modes. The selection is saved on that phone.

The driver can stop sharing or remove a viewer at any time. Sign-out is disabled while a trip is active so the online trip cannot accidentally be left marked as active.

Distribution

APK files are attached to versioned GitHub Releases instead of being committed to the repository. Android users must explicitly allow installation from the browser or file manager used to download the APK.

About

No description, website, or topics provided.

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages