Dropoff is a goodwill ride-sharing concept for people who are already heading in the same direction. It keeps the familiar structure of a ride app, but removes the money-first mindset. The product language is intentionally casual and friendly: people ask for a lift, drivers share a seat when it fits their route, and the app checks that the trip stays safe and sensible.
- A polished frontend landing/app shell that explains the product in friendly language.
- A lift-request section instead of a trip-request flow.
- Route matching logic that treats detours over 1 km as suspicious.
- A small in-memory backend with auth, lift requests, ride creation, and matching routes.
- A typed Express entrypoint so the backend can run locally.
Dropoff is for situations like this:
- A driver is already going from Bashundhara R/A to Brac University.
- Another person needs a lift from Jamuna Future Park toward Rampura.
- If the passenger’s destination fits the driver’s route, the lift can be confirmed.
- If the route starts drifting too far away, the app flags it as suspicious instead of treating it as a normal match.
The goal is to make helping each other feel easy, not transactional.
The backend matching logic now uses a meter-based route deviation check.
- Pickup and drop-off are compared against the driver route.
- A route deviation greater than 1000 meters is marked suspicious.
- Suspicious matches are filtered out of the normal match list.
This keeps the system aligned with the same general safety expectations people would want from a standard ride app.
The current frontend is a single-page product shell with these sections:
- Hero intro with the Dropoff positioning.
- Lift request card.
- How-it-works explanation.
- Safety summary.
- Friendly usage reasons.
The UI is built with plain TypeScript and CSS, without relying on Tailwind at runtime.
The backend is a lightweight Express API with in-memory data storage.
POST /api/auth/registerPOST /api/auth/loginPOST /api/requestsGET /api/requests/my-requestsGET /api/requests/:requestIdPOST /api/ridesGET /api/rides/activeGET /api/rides/my-ridesPOST /api/rides/:rideId/acceptGET /api/rides/:rideIdPOST /api/rides/find-matchesGET /health
cd frontend
npm install
npm run buildcd backend
npm install
npm run build- The backend currently uses an in-memory database, so data resets when the process restarts.
- The frontend is a concept shell, ready for a real API connection or map flow later.
- Tailwind is still listed in the frontend dev dependencies, but the app itself uses plain CSS.