How asquare-developer/droppie-laravel-api works
Droppie Track is a Laravel route-tracking application. The main workflow is a driver submitting a route with validated Google Place IDs; route management resolves reusable addresses and queues distance calculation, which calls Google Routes and updates route status. Users can browse/filter routes and generate mileage reports. The README also documents web/API authentication, Google OAuth, autocomplete, optional address verification, profile management, and recovery of stuck jobs. Source excerpts confirm route creation, queue dispatch, and Google distance lookup; other branches are included from documented capabilities, with uncertain wiring left unconnected.
Main entry points: AddressLookupService.php Address lookup · RouteService.php Route service · Route.php Routes · CalculateRouteDistance.php Distance job
Components 31
Route Tracking
- Route API
app/Http/Controllers/Api/RouteController.php - Route workspace
app/Http/Controllers/Web/RouteController.php - Route service
app/Services/RouteService.php - Routes
app/Models/Route.php - Distance job
app/Jobs/CalculateRouteDistance.php - Distance status
app/Enums/DistanceStatus.php - Google Routes
app/Services/GoogleRouteService.php - Route dashboard
app/Http/Controllers/Web/DashboardController.php
Address Services
- Address API
app/Http/Controllers/Api/AddressController.php - Address workspace
app/Http/Controllers/Web/AddressController.php - Address lookup
app/Services/AddressLookupService.php - Google Places
app/Services/GoogleAddressService.php - Address catalog
app/Models/Address.php - User address history
app/Models/AddressUsage.php
Identity and Profile
- API authentication
app/Http/Controllers/Api/AuthController.php - Web authentication
app/Http/Controllers/Web/AuthController.php - Google sign-in
app/Services/SocialLoginService.php - User accounts
app/Models/User.php - Profile management
app/Http/Controllers/Web/ProfileController.php - Profile service
app/Services/UserProfileService.php - Profiles and vehicles
app/Models/UserProfile.php
Mileage Reports
- Report workspace
app/Http/Controllers/Web/RouteReportController.php - Mileage report service
app/Services/RouteReportService.php - Trip reports
app/Models/TripReport.php - PDF generation
app/Services/TripReportPdf.php - Report document
resources/views/pdf/routes-report.blade.php
Queue Operations
- Stuck-route recovery
app/Console/Commands/RecoverStuckRoutes.php - Laravel scheduler
routes/console.php
Other components
- Driver
- Google Routes API
- Google Places API
Connections 34
- Driver → Route API: submits route
- Driver → Route workspace: manages routes
- Route API → Route service: creates or updates
app/Http/Controllers/Api/RouteController.php - Route workspace → Route service: manages routes
app/Http/Controllers/Web/RouteController.php - Route service → Address lookup: resolves places
app/Services/RouteService.php - Route service → Routes: saves route
app/Services/RouteService.php - Route service → Distance job: dispatches calculation
app/Services/RouteService.php - Distance job → Google Routes: requests distance
app/Jobs/CalculateRouteDistance.php - Google Routes → Google Routes API: computes distance
app/Services/GoogleRouteService.php - Distance job → Routes: updates status
app/Jobs/CalculateRouteDistance.php - Routes → Distance status: casts status
app/Models/Route.php - Address API → Address lookup: looks up addresses
- Address workspace → Address lookup: looks up addresses
- Address lookup → Google Places: queries Places
app/Services/AddressLookupService.php - Google Places → Google Places API: validates places
app/Services/GoogleAddressService.php - Address lookup → Address catalog: resolves records
app/Services/AddressLookupService.php - Address lookup → User address history: tracks user history
- Google Places → Address catalog: normalizes address
app/Services/GoogleAddressService.php - Driver → API authentication: signs in
- Driver → Web authentication: signs in
- API authentication → User accounts: authenticates users
app/Http/Controllers/Api/AuthController.php - Web authentication → Google sign-in: uses OAuth
- Google sign-in → User accounts: links account
- Profile management → Profile service: updates profile
- Profile service → Profiles and vehicles: persists profile
- Driver → Profile management: manages profile
- Driver → Report workspace: requests report
- Report workspace → Mileage report service: generates report
app/Http/Controllers/Web/RouteReportController.php - Mileage report service → Trip reports: stores report
app/Services/RouteReportService.php - Report workspace → PDF generation: renders PDF
app/Http/Controllers/Web/RouteReportController.php - PDF generation → Report document: uses template
- Driver → Route dashboard: views routes
- Laravel scheduler → Stuck-route recovery: runs periodically
- Stuck-route recovery → Routes: marks stale routes
app/Console/Commands/RecoverStuckRoutes.php