Unofficial API Integration for Delivery App

Cliente Freelancer · Remoto · Remoto · freelance · mid · 36.400–36.401 USD

Publicada el 2026-07-24

Descripción de la oferta

Flutter Developer – Driver Tool Integration (No Public API – Analysis Required) We are looking for an experienced Flutter developer for a driver assistance application. --- SECTION 1 – IMPORTANT: READ THIS FIRST There is NO official public API for this project. The target platform (a major delivery app used by millions of drivers) does NOT provide: - Public documentation for developers - An official SDK for drivers - Endpoints for receiving orders, accepting trips, or managing sessions This means the project requires a different approach than standard API integration. If you have only worked with apps that provide ready documentation (Stripe, Twilio, Google Maps, etc.), PLEASE DO NOT APPLY. If you are comfortable analyzing how mobile apps communicate with their servers, please read on. --- SECTION 2 – WHAT THE APP WILL DO Once completed, the app will allow drivers to: 1. Log in once using their existing delivery platform credentials 2. Stay connected to the platform without keeping the original app open 3. Go online on our app and select schedule times 4. Receive incoming order/trip requests in real time 5. See key information with each request (payout, distance, pickup, dropoff) 6. Receive push notifications when a new request arrives 7. Apply simple user-defined rules (example: minimum payout of $8) 8. Automatically accept or reject requests based on those rules 9. Run reliably in the background for hours at a time Target platform: Android only for the initial version (iOS may come later) Target audience: Delivery drivers using a specific major platform (name shared after NDA) --- SECTION 3 – TECHNICAL STACK REQUIREMENTS The final app must be built with: - Framework: Flutter (latest stable version) - Language: Dart - Minimum Android SDK: API 26 (Android 8.0) - Target Android SDK: API 34 (Android 14) - Networking: Dio or similar HTTP client - Real-time communication: WebSocket client (web_socket_channel or equivalent) - Background execution: Foreground service with persistent notification - Secure storage: flutter_secure_storage (for tokens and sessions) - Notifications: Local notifications via flutter_local_notifications The app must NOT require: - Root access on the user's device - Any modifications to the user's phone (custom ROMs, Magisk, etc.) - The original driver app to remain open on screen --- SECTION 4 – PROJECT PHASES This project is divided into three clear phases. PHASE 1 – ANALYSIS (Estimated: 30-50 hours) No code will be written during this phase. The goal of Phase 1 is to understand how the target delivery app communicates with its backend servers. Because there is no public API or documentation, this must be discovered through analysis. Tasks in Phase 1: 1. Set up the analysis environment - Prepare an Android device or environment suitable for traffic inspection - Install network analysis tools (Burp Suite, Charles Proxy, Proxyman, Wireshark) - Configure the device to route traffic through the analysis tool 2. Capture network traffic - Run the target delivery app on the device - Perform key actions: login, receive an offer, accept an offer, reject an offer, logout - Record all network requests and responses during these actions 3. Document the communication patterns - Identify the login endpoint and authentication method (OAuth, token-based, etc.) - Identify how the app maintains sessions (tokens, cookies, or both) - Identify how the app receives real-time offers (WebSocket, Server-Sent Events, or polling) - Identify the endpoints for accepting and rejecting offers - Document all required headers (authentication, device fingerprint, content-type, etc.) - Document the data format (JSON, Protobuf, MessagePack, or other) 4. Deliverable for Phase 1 - A technical document (PDF or Markdown) containing all findings - Sample request and response data - A diagram showing the communication flow - A working test script (Python or Node.js) that authenticates and receives real offers WITHOUT the original app open Phase 1 is considered complete when I have reviewed and approved the technical document and the test script works on a non-rooted device. --- PHASE 2 – IMPLEMENTATION (Estimated: 60-80 hours) Only after Phase 1 is approved, coding begins. Tasks in Phase 2: 1. Authentication module - Implement login screen - Implement API calls using the discovered authentication endpoints - Store session tokens securely using flutter_secure_storage - Implement automatic token refresh 2. Real-time offer reception - Implement WebSocket connection - Maintain connection in the background - Parse incoming offers (payout, distance, pickup, dropoff) - Handle connection drops and automatic reconnection 3. Notification system - Display local push notification when an offer arrives - Notification must show: payout, distance, restaurant/store name 4. Basic auto-response rules - Implement simple user-configurable rules - Example: IF payout >= $8 THEN accept - Example: IF distance >= 10 miles THEN reject - Apply rules automatically and execute accept/reject 5. Background operation - Implement foreground service with persistent notification - Ensure the app continues to receive offers even when screen is off 6. Deliverable for Phase 2 - Complete Flutter source code with comments - Signed APK file - README with build instructions --- PHASE 3 – TESTING AND DELIVERY (Estimated: 10-15 hours) Tasks in Phase 3: 1. Testing on non-rooted devices - Install the APK on a standard Android phone - Log in with real credentials - Verify offers, notifications, and auto-response rules work 2. Bug fixes - Address any issues discovered during testing 3. Final deliverables - Final APK - Final source code - Demo video (3-5 minutes) - Maintenance guide --- ACCEPTANCE CRITERIA Phase 1: - Technical document clearly describes all communication patterns - Document includes real request/response examples - Working test script (Python/Node.js) authenticates and receives real offers WITHOUT the original app open Phase 2 & Phase 3: - App installs and runs on a standard Android device (no root) - App successfully logs in with real credentials - App receives real offers and displays them - App shows notifications when offers arrive - App applies basic rules and auto-responds correctly - App runs in the background for at least 2 hours without disconnecting --- BUDGET AND CONTRACT TERMS - Contract type: Hourly (or fixed price after discussion) - Hourly rate range: $40 - $80 USD per hour - Total estimated hours: 100-150 hours - Phase 1 (Analysis): 30-50 hours - Phase 2 (Implementation): 60-80 hours - Phase 3 (Testing): 10-15 hours --- LONG-TERM COLLABORATION If Phase 1, Phase 2, and Phase 3 are successful, we will continue with: - Sprint 2: Advanced filters (time filters, zone filters, multi-app support) - Sprint 3: Support for additional driver apps - Ongoing maintenance retainer: When the target app updates, the integration may break. I will pay hourly for maintenance work. Reference app: https://play.google.com/store/apps/details?id=com.mystrodriver --- TO APPLY To prove you have read the entire proposal, start your proposal with the word: ANALYSIS Then answer these questions: 1. What network traffic analysis tools have you used in previous projects? Name at least two. 2. Have you worked on a mobile app that had no public API or documentation? If yes, briefly describe what you did. 3. Have you built a Flutter app with WebSocket real-time communication before? Describe one example. 4. How do you handle secure token storage in Flutter? What package do you use? 5. How do you ensure an Android app stays running in the background without being killed by the system? 6. This project requires 30-50 hours of pure analysis before any code is written. Do you agree to this approach? (Yes/No) 7. Can you sign a mutual NDA before I share the target platform name? (Yes/No) 8. What is your hourly rate? Do you confirm the 150-hour maximum for this project? --- WHAT HAPPENS AFTER YOU APPLY 1. I will review proposals and select candidates who answered the questions correctly 2. I will request a mutual NDA to be signed 3. After the NDA is signed, I will share the target platform name and test account 4. We activate the contract and begin Phase 1 Thank you for reading carefully. I look forward to working with the right developer.

Skills

Fuente original: freelancer

Análisis JobHunter