{"generatedAt":"catalog-deterministic","input":{"useCaseSlug":"last-mile-delivery","platform":"Web","experience":"beginner"},"pathId":"last-mile-delivery--web--beginner","title":"Logistics Web developer path","summary":"Enter as a beginner developer and finish with a tested, source-grounded a delivery promise customers can trust capstone and an explicit production evidence boundary.","industry":"Logistics","outcome":"Fewer failed deliveries and a live, explainable ETA from checkout to doorstep.","stateModel":"hybrid","estimatedEffort":"20–26 hours","moduleCount":7,"tutorialCount":6,"modules":[{"id":"orient","level":"Beginner","title":"Understand Logistics location architecture","objective":"Connect the business outcome, actors, platform lifecycle, product boundaries, and evidence classes before installing a package.","activities":[{"kind":"orientation","title":"A delivery promise customers can trust","href":"/use-cases/last-mile-delivery","evidence":"5 personas · 5 workflow stages"},{"kind":"orientation","title":"Web implementation playbook","href":"/platforms/web","evidence":"4 first-success stages · 4 production checks"},{"kind":"orientation","title":"Why Mappls and the trust boundary","href":"/why-mappls","evidence":"First-party marketing evidence separated from repository and fixture evidence"}],"exitCriteria":["Explain which identities and state belong to the application, the provider, and the user device.","Record the exact product, platform, source, entitlement, region, and credential-owner questions that remain open."]},{"id":"first-success","level":"Beginner","title":"Prove the Web runtime boundary","objective":"Reach one observable first success without moving a server credential into an untrusted runtime or treating a fixture as entitlement proof.","activities":[{"kind":"quickstart","title":"Render one accessible web map","href":"/quickstart/web-map","evidence":"15 minutes · public-source"},{"kind":"quickstart","title":"Your first trusted Mappls request","href":"/quickstart/rest-api","evidence":"15 minutes · public-source"},{"kind":"tutorial","title":"Turn a device fix into a trustworthy check-in","href":"/tutorials/reverse-geocode-check-in","evidence":"30 min · A privacy-aware check-in that retains both raw evidence and human-readable context."},{"kind":"tutorial","title":"Build address autocomplete that users trust","href":"/tutorials/address-autocomplete","evidence":"20 min · An accessible, resilient delivery-address field."}],"exitCriteria":["Capture source identity, configuration generation, a successful proof, and one expected failure signal.","Demonstrate cleanup and explain where the credential is owned."]},{"id":"contract-lab","level":"Intermediate","title":"Practice contracts, errors, and provenance","objective":"Exercise normalized inputs and outputs, generated clients, validation, authentication failure, quota failure, timeout behavior, and source provenance.","activities":[{"kind":"contract-lab","title":"GET AutoSuggest API","href":"/api-reference/core-location-get-api-places-search-json-autosuggest-api","evidence":"legacy-source · stateless · eight generated languages"},{"kind":"contract-lab","title":"GET Routing API","href":"/api-reference/core-location-get-rest-key-resources-profile-geopositions-routing-api","evidence":"legacy-source · stateless · eight generated languages"},{"kind":"contract-lab","title":"GET Gets the details of a single trip","href":"/api-reference/intouch-get-trips-id-gets-the-details-of-a-single-trip","evidence":"legacy-source · stateful · eight generated languages"},{"kind":"tutorial","title":"Call Mappls safely from a trusted server","href":"/tutorials/oauth-server-integration","evidence":"35 min · A credential-safe live server boundary with typed errors, timeout, retry, and provider provenance."},{"kind":"tutorial","title":"Rank responders with a distance matrix","href":"/tutorials/distance-matrix-dispatch","evidence":"45 min · An explainable ETA-based dispatch shortlist rather than a straight-line guess."},{"kind":"contract-lab","title":"Credential-free API Sandbox","href":"/sandbox","evidence":"Six deterministic scenarios across every normalized operation"},{"kind":"contract-lab","title":"Errors and diagnostics","href":"/errors","evidence":"Retry, reconcile-first, and minimized support-evidence decisions"}],"exitCriteria":["Pass success, empty, invalid-input, denied, rate-limited, and unavailable scenarios.","Retain provider identity and source provenance while keeping secrets and payloads out of logs."]},{"id":"compose","level":"Intermediate","title":"Compose the 4-product solution","objective":"Join stateless and durable lanes without coupling user experience, provider resources, or application aggregates to one request.","activities":[{"kind":"orientation","title":"A delivery promise customers can trust on Web","href":"/architect?useCase=last-mile-delivery&platform=Web&products=search-places%2Croutes-navigation%2Cintouch-telematics%2Ccapture-feedback","evidence":"4 products · 71 contracts · 11 durable journeys"},{"kind":"tutorial","title":"Call Mappls safely from a trusted server","href":"/tutorials/oauth-server-integration","evidence":"35 min · A credential-safe live server boundary with typed errors, timeout, retry, and provider provenance."},{"kind":"tutorial","title":"Rank responders with a distance matrix","href":"/tutorials/distance-matrix-dispatch","evidence":"45 min · An explainable ETA-based dispatch shortlist rather than a straight-line guess."},{"kind":"tutorial","title":"Qualify an iOS Mappls release","href":"/tutorials/ios-sdk-production-readiness","evidence":"2 hr · A clean-device iOS qualification record spanning SDK, widget, tracking, and distribution boundaries."}],"exitCriteria":["Draw the trusted-server, client, provider, and durable-data boundaries.","Define stable business, Mappls Pin, provider-resource, request, and aggregate-version identities separately."]},{"id":"operate","level":"Advanced","title":"Attack every durable journey","objective":"Prove success, replay, optimistic concurrency, invalid-transition safety, unknown-outcome reconciliation, and immutable event causation.","activities":[{"kind":"tutorial","title":"Qualify an iOS Mappls release","href":"/tutorials/ios-sdk-production-readiness","evidence":"2 hr · A clean-device iOS qualification record spanning SDK, widget, tracking, and distribution boundaries."},{"kind":"tutorial","title":"Qualify React Native native parity","href":"/tutorials/react-native-native-parity","evidence":"100 min · One JavaScript contract backed by independently qualified Android and iOS behavior."},{"kind":"journey-lab","title":"Connected fleet trip","href":"/tools/journey-lab?journey=connected-fleet-trip&scenario=unknown-outcome","evidence":"6 states · 7 transitions · five fixture scenarios"},{"kind":"journey-lab","title":"Fleet geofence exception","href":"/tools/journey-lab?journey=fleet-geofence-exception&scenario=unknown-outcome","evidence":"6 states · 5 transitions · five fixture scenarios"},{"kind":"journey-lab","title":"Coordinated incident response","href":"/tools/journey-lab?journey=emergency-incident-response&scenario=unknown-outcome","evidence":"7 states · 8 transitions · five fixture scenarios"},{"kind":"journey-lab","title":"Stateful Journey Lab","href":"/tools/journey-lab","evidence":"5 hostile-path scenarios · no provider calls or writes"}],"exitCriteria":["Replay the same command without a second transition or event.","Reject stale and invalid commands without mutation, then reconcile an unknown outcome by stable identity."]},{"id":"capstone","level":"Advanced","title":"Ship the Care Transfer Desk capstone","objective":"Use the maintained advanced application as a runnable evidence base, then adapt it to the logistics outcome without weakening its trust boundary.","activities":[{"kind":"sample-app","title":"Care Transfer Desk","href":"/samples/care-transfer-desk","evidence":"17 declared tests · Request → confirm facility → assign → custody → review exceptions → accept"},{"kind":"sample-app","title":"Download Care Transfer Desk","href":"/downloads/care-transfer-desk.zip","evidence":"Complete checksummed mini-application artifact"}],"exitCriteria":["Run the sample tests and identify every fixture, provider-adapter, persistence, and failure boundary.","Complete the scenario from entry to terminal outcome, including cancellation, restart, and recovery where state is durable."]},{"id":"release","level":"Advanced","title":"Assemble production acceptance evidence","objective":"Turn the capstone into a reviewable release without representing repository, generated, or fixture evidence as live Mappls approval.","activities":[{"kind":"release-control","title":"Environment and deployment readiness","href":"/environments","evidence":"Isolated development, staging, and production controls"},{"kind":"release-control","title":"Authentication and credential ownership","href":"/authentication","evidence":"Exact runtime and product credential path"},{"kind":"release-control","title":"Developer console launch journey","href":"/console/get-started","evidence":"Application-scoped entitlement, credential, request, alert, webhook, and owner proof"},{"kind":"release-control","title":"Trust and production gates","href":"/trust","evidence":"External authority, conformance, privacy, security, observability, and rollback boundary"}],"exitCriteria":["Attach current entitlement, package/host, auth, quota, region, privacy, security, accessibility, performance, support, and rollback evidence.","Obtain independent approval through the company release process; academy completion itself grants no entitlement or certification."]}],"capstone":{"slug":"care-transfer-desk","name":"Care Transfer Desk","downloadPath":"/downloads/care-transfer-desk.zip","checksumPath":"/downloads/care-transfer-desk.zip.sha256","declaredTests":17,"implementation":"full-stack-reference"},"completionContract":{"authority":"application-owned-learning-evidence","mapplsCertificationClaimed":false,"entitlementGranted":false,"providerCallsRequired":false,"requiredEvidence":[{"moduleId":"orient","exitCriteria":["Explain which identities and state belong to the application, the provider, and the user device.","Record the exact product, platform, source, entitlement, region, and credential-owner questions that remain open."]},{"moduleId":"first-success","exitCriteria":["Capture source identity, configuration generation, a successful proof, and one expected failure signal.","Demonstrate cleanup and explain where the credential is owned."]},{"moduleId":"contract-lab","exitCriteria":["Pass success, empty, invalid-input, denied, rate-limited, and unavailable scenarios.","Retain provider identity and source provenance while keeping secrets and payloads out of logs."]},{"moduleId":"compose","exitCriteria":["Draw the trusted-server, client, provider, and durable-data boundaries.","Define stable business, Mappls Pin, provider-resource, request, and aggregate-version identities separately."]},{"moduleId":"operate","exitCriteria":["Replay the same command without a second transition or event.","Reject stale and invalid commands without mutation, then reconcile an unknown outcome by stable identity."]},{"moduleId":"capstone","exitCriteria":["Run the sample tests and identify every fixture, provider-adapter, persistence, and failure boundary.","Complete the scenario from entry to terminal outcome, including cancellation, restart, and recovery where state is durable."]},{"moduleId":"release","exitCriteria":["Attach current entitlement, package/host, auth, quota, region, privacy, security, accessibility, performance, support, and rollback evidence.","Obtain independent approval through the company release process; academy completion itself grants no entitlement or certification."]}],"rule":"A completed path proves repository-backed learning exercises and fixture-safe capstone work only. Production requires independently issued Mappls entitlement and company acceptance evidence."},"providerCredentialsAccepted":false,"providerPayloadsAccepted":false,"providerNetworkCalls":0,"writesExposed":false,"sharePath":"/academy?useCase=last-mile-delivery&platform=Web&experience=beginner"}