BUILD A PRODUCTION-QUALITY ANDROID APPLICATION CALLED:
FATAKSERIDE
TAGLINE:
"Ride Faster. Work Smarter."
Act as a senior Flutter + Android Kotlin developer, UI/UX designer, accessibility engineer, performance engineer, and QA engineer.
I will provide screenshots/reference UI separately. Use them as behavioral and visual references. Do not build a generic taxi app or a simple mockup.
1. CORE PURPOSE
FatakSeRide is a driver-focused ride-request filtering and assistance application. The driver selects a supported ride platform, configures filters, uses the target ride app, and FatakSeRide detects relevant ride requests, evaluates them locally, and assists with the appropriate platform-specific action.
2. TECHNOLOGY
Use Flutter/Dart for FatakSeRide's UI and native Android Kotlin for performance-critical functionality. Use AccessibilityService, AccessibilityEvent, AccessibilityNodeInfo, GestureDescription, dispatchGesture(), Room, and Flutter Platform Channels or Pigeon.
3. ARCHITECTURE
Use:
Flutter UI
↓
Platform Channel
↓
Native Kotlin
↓
AccessibilityService
↓
Event Processor
↓
Platform Adapter
↓
Ride Parser
↓
Filter Engine
↓
Decision Engine
↓
Action Engine
↓
Verification
4. LOW LATENCY
Optimize the complete detection-to-action pipeline. Keep critical processing in Kotlin. Do not send ride information to a server before making a filter decision. Measure actual latency instead of claiming guaranteed one-second performance.
5. EVENT-DRIVEN PROCESSING
Use AccessibilityEvent-driven processing. Do not continuously screenshot, OCR, or poll the screen every few milliseconds. Process only relevant events and use debouncing/deduplication.
6. PLATFORM ADAPTERS
Create separate adapters:
UberAdapter
OlaAdapter
RapidoAdapter
PorterAdapter
Never use one universal implementation for every platform.
7. PACKAGE DETECTION
Identify the active Android package and route it to the correct adapter. Unknown packages must be ignored. If the active package changes while an action is pending, cancel the action.
8. REQUEST DETECTION
Detect only genuine active ride/order requests. Do not trigger on home screens, profiles, settings, maps, navigation, completed trips, login, OTP, messages, or unrelated popups.
9. ACCESSIBILITY TREE
Use getRootInActiveWindow() and AccessibilityNodeInfo to inspect relevant UI information including text, contentDescription, resourceName, className, clickable state, enabled state, visibility, bounds, and available actions.
10. FRAMEWORK INDEPENDENCE
Do not assume the target app is Flutter. It may use native Android, Flutter, React Native, custom rendering, or another framework. FatakSeRide must interact through legitimate Android accessibility/UI mechanisms.
11. ACTION DETECTION
Support:
NONE
TAP_ACCEPT
SWIPE_ACCEPT
MATCH
TAP_MATCH
DISMISS
CUSTOM_GESTURE
Never blindly assume that Accept and Match are the same action.
12. MULTILINGUAL SUPPORT
Support English and Hindi action text. Examples:
Accept
Accept Ride
Accept Order
Match
Confirm
स्वीकार
स्वीकार करें
मैच
मिलान
Also inspect contentDescription, accessibility labels, resource IDs, and accessibility actions.
13. DYNAMIC SWIPE
For swipe-to-accept controls, dynamically locate the current control and obtain its bounds. Calculate start/end points from those bounds and use GestureDescription + dispatchGesture(). Never rely on permanent coordinates such as x=500,y=1800.
14. GESTURE ENGINE
Create a GestureActionEngine supporting:
TAP
SWIPE_LEFT
SWIPE_RIGHT
SWIPE_UP
SWIPE_DOWN
CUSTOM
Each action should contain target bounds, coordinates, duration, action type, and confidence.
15. UBER ADAPTER
Implement Uber-specific request detection. Distinguish request types such as Exclusive requests and Trip Radar where the current UI provides sufficient evidence. If the current UI requires Accept, find Accept. If it requires Match, find Match. Never blindly press the wrong action.
16. RAPIDO ADAPTER
Create an independent Rapido adapter. Detect, where available:
fare
pickup distance
trip distance
pickup
destination
ride type
request state
accept control
dismiss control
Determine dynamically whether the correct action is tap or swipe.
17. OLA ADAPTER
Create an independent Ola adapter. Detect the current request UI and identify fare, pickup, destination, distance, ride type, request type, request state, and action control. Do not reuse hardcoded coordinates from another platform.
18. PORTER ADAPTER
Create an independent Porter adapter supporting platform-specific order information such as amount, pickup, drop, distance, vehicle/order type, request state, and accept action.
19. RIDE DATA MODEL
Create RideRequest with:
id
platform
requestType
fare
pickupDistance
tripDistance
pickupAddress
destinationAddress
rideType
rating
actionType
timestamp
actionBounds
confidence
Use nullable fields where information is unavailable. Never fabricate missing data.
20. FILTER ENGINE
Create a fast local FilterEngine. Example:
Minimum Fare = ₹200
₹199 → IGNORE
₹200 → MATCH
₹201 → MATCH
₹500 → MATCH
The comparison MUST be:
fare >= minimumFare
₹200 means ₹200 and above, not exact ₹200.
21. ADVANCED FILTERS
Support:
Minimum Fare
Maximum Fare
Minimum Trip Distance
Maximum Trip Distance
Maximum Pickup Distance
Minimum Fare/KM
Maximum Fare/KM
Ride Type
Platform
Request Type
All enabled filters must be evaluated using AND logic.
22. FARE/KM
Calculate:
farePerKm = fare / tripDistance
Example:
₹900 / 30 km = ₹30/km
If trip distance is zero or unavailable, fare/km is unavailable. If the fare/km filter is enabled and the required value is unavailable, do not accept.
23. FILTER PRIORITY
Optimize filtering by evaluating cheap conditions first:
Platform
Request validity
Fare
Pickup distance
Trip distance
Fare/KM
Ride type
Request type
If an early condition fails, stop processing immediately.
24. NO GUESSING
If a required filter value is unavailable, do not guess it.
Example:
Minimum Fare = ₹200
Maximum Pickup = 5 km
Fare = ₹300
Pickup = unavailable
Result:
NO ACTION
Reason:
Pickup distance unavailable.
25. ACTION CONFIDENCE
Before executing an action, calculate confidence based on platform, request, data, and action detection. If the correct action cannot be confidently identified, do nothing.
26. FINAL VALIDATION
Immediately before executing:
FatakSeRide must be ON
correct package must be active
request must still exist
request must still be active
filter must still match
action control must still exist
action control must be enabled
bounds must still be valid
confidence must be sufficient
emergency stop must not be active.
27. POST-ACTION VERIFICATION
After tap/swipe/match, verify that the action actually succeeded.
Possible signals:
request disappears
accepted screen appears
matched screen appears
request card changes
confirmation appears
new trip screen appears
If verification fails, record ACTION_UNCONFIRMED and do not blindly repeat the action.
28. DUPLICATE PROTECTION
Create a request fingerprint using relevant information such as:
platform
fare
pickupDistance
tripDistance
destination
rideType
requestType
Use a short deduplication window so multiple accessibility events do not process the same request repeatedly.
29. FLUTTER UI
Create a premium driver-focused UI containing:
Home
Live Rides
Filters
History
Analytics
Settings
Permissions
Subscription
Account
Test Mode
Developer Mode
Home should show:
FATAKSERIDE
"Ride Faster. Work Smarter."
Assist ON/OFF
Selected platform
Current filters
Matched today
Accepted today
Ignored today
Average processing time
STOP ASSIST
30. TESTING + DEVELOPER MODE
Create a Filter Tester and Developer Diagnostics screen.
Test examples:
₹199 + minimum ₹200 → IGNORE
₹200 + minimum ₹200 → MATCH
₹300 + pickup 7 km + maximum pickup 5 km → IGNORE
₹900 / 30 km → ₹30/km
missing required data → NO ACTION
unknown package → IGNORE
package changes → CANCEL
duplicate event → PROCESS ONCE
emergency stop → CANCEL
Developer screen should show current package, service status, last event, parsed RideRequest, filter result, action type, confidence, bounds, errors, and real latency.
31. PERMISSIONS, STORAGE, SAFETY
Create a Permission Center showing only permissions actually required, such as Accessibility Service, Notification Access, Overlay, Foreground Service, and Notifications.
Use Room for local history/settings.
Do not collect passwords, OTPs, unrelated messages, or unnecessary personal information.
When uncertain:
DO NOTHING.
Never randomly tap, swipe, or guess missing ride information.
32. PRODUCTION REQUIREMENTS
This must be a REAL Android application, not a screenshot mockup or fake demo.
Implement:
Flutter UI
Native Kotlin AccessibilityService
Platform adapters
Ride parser
Local filter engine
Dynamic action detection
Gesture engine
Action validation
Post-action verification
Room database
History
Analytics
Test Mode
Developer Mode
Permission Center
Flutter/Kotlin bridge
Unit tests
Integration tests
Android tests
Latency monitoring
Error handling
Responsive UI
Release-ready Gradle configuration.
Do not leave core functionality as fake APIs, simulated acceptance, fake latency, hardcoded success, or placeholder methods.
Do not hardcode screen coordinates as the primary interaction method.
Build the project, run tests, fix compilation/runtime errors, and verify the Flutter/Kotlin integration before declaring the application complete.
PRIORITIES:
1. Correctness
2. Safety
3. Reliability
4. Low latency
5. Maintainability
6. Professional UI/UX
When the UI or target application behavior is uncertain, use the provided screenshots/reference material and official Android capabilities. Do not invent behavior.
FINAL PRODUCT:
FATAKSERIDE
"Ride Faster. Work Smarter."
No preview
Comments (0)
No comments yet. Be the first!
Sign in to leave a comment
Project Tasks
34 planning tasks
#1
Generate system requirement document
0m 59s0.1 cr used
Done
#2
Generate personas & user flows
0m 12s0.1 cr used
Done
#7
Create flow for Ride-Hailing Driver (Fatak Se Ride operator)
0m 10sCredits in parent
Done
#8
Create flow for Driver using Test Mode / Filter Tester
0m 10sCredits in parent
Done
#9
Create flow for Developer / Diagnostics operator
0m 10sCredits in parent
Done
#10
Landing
10m 58sCredits in subtasks
AI In Progress
#36
Repair Landing JSX
1m 8s0.2 cr used
Done
#35
Repair Landing JSX
1m 14s0.2 cr used
Done
#31
Landing / Navigation
0m 18s0.8 cr used
Done
#27
Landing / Wordmark
0m 42s0.8 cr used
Done
#28
Landing / Pipeline Diagram
0m 41s0.8 cr used
Done
#29
Landing / Local Evaluation
0m 40s0.8 cr used
Done
#30
Landing / Entry Controls
0m 40s0.8 cr used
Done
#32
Landing / Footer
0m 17s0.8 cr used
Done
#33
Navigation
0m 18sCredits in parent
Done
#34
Footer
0m 17sCredits in parent
Done
#11
Login
Credits in subtasks
Backlog
#12
Sign Up
Credits in subtasks
Backlog
#13
Home
Credits in subtasks
Backlog
#14
Live Rides
Credits in subtasks
Backlog
#15
Filters
Credits in subtasks
Backlog
#16
History
Credits in subtasks
Backlog
#17
Analytics
Credits in subtasks
Backlog
#18
Settings
Credits in subtasks
Backlog
#19
Permissions
Credits in subtasks
Backlog
#20
Subscription
Credits in subtasks
Backlog
#21
Account
Credits in subtasks
Backlog
#22
Test Mode
Credits in subtasks
Backlog
#23
Developer Mode
Credits in subtasks
Backlog
#24
Filter Tester
Credits in subtasks
Backlog
#25
Developer Diagnostics
Credits in subtasks
Backlog
#26
Permission Center
Credits in subtasks
Backlog
#5
Architecture
0.1 cr needed
Backlog
#6
Workspace task plan
0.1 cr needed
Backlog
No completed page designs yet.
Completed design pages will appear here when they are ready to preview.
No completed page designs yet.
Completed design pages will appear here when they are ready to preview.
No comments yet. Be the first!