Flutter + Java Multi-User GPS Tracking Application Changes + Hosting

Customer: AI | Published: 01.12.2025

Here are the direct URLs for the single readymade solution that covers all three roles (User, Admin, Sub-Dealer) as discussed. 1. The Mobile App (Source Code) For: User / Customer & Sub-Dealer You download this code, change the logo/colors, and publish it. It works for both Users (Tracking) and Sub-Dealers (Adding Users) based on their login. Android Source Code: https://github.com/traccar/traccar-manager-android iOS Source Code: https://github.com/traccar/traccar-manager-ios Test it now (Play Store): https://play.google.com/store/apps/details?id=org.traccar.manager (Download this to see exactly what your customers will see, just imagine it with your logo). 2. The Admin Website (Server Software) For: Admin & Sub-Dealer (PC Access) This is the software you install on your VPS. It provides the web interface for you to manage the whole system and for Sub-Dealers to manage their stock/users from a PC. Server Source Code: https://github.com/traccar/traccar Web Interface Demo: https://demo.traccar.org/ (Click this link to see the "Admin Panel" immediately. You can register a user there to test the "User View" vs "Admin View".) Summary of Access Admin: Uses Web Interface (Link #2) on Laptop. Sub-Dealer: Uses Web Interface (Link #2) on Laptop OR Mobile App (Link #1) on Phone. End User: Uses Mobile App (Link #1) on Phone. One App Strategy (rebranding the official Traccar Manager), here is exactly what you need to change or configure for each user type to make it business-ready. CHina Import just like Navi Lap Inventory Fuse/ Cutting Power from website/app/as per geo fencing GPS: 1. Normal Speed : 2500 2. ⁠Engine: 6000 3. ⁠AC 4. ⁠Fuel Three Users 1. User / Customer on Mobile App Login Tracking Device Engine Exhaust Current location BoundaryGeoFencing Google Maps (North South, ) Speed KM Monthly Report AC: ON Auto Online Payment Customer Care Number All Vehicals On Maps Recharge notification advance for 3months plan expire 2. ⁠Admin on Web Create Customer:OwnerShip, Payments Notification, Recharge, All Customer Vehical List:Taxis, Exclude (Stock Marketing) QR Code: Update, 1200INR per year, Device Price: 2K inr Customer 3. ⁠Middle Man (SubDealer) on Mobile App Customer, Stock, Limit, AC, Create Customer Register/Login Problems Landing Page Elaboration: 1. SUB-DEALER (Middle Man) - "Mobile First" Setup Goal: They must manage stock and customers from the phone without a laptop. The App Experience: They log into the Track Fast App. The "Mobile First" Workflow (Training Required): Standard Traccar lands on the Map. You must teach them: "Click Settings > Users to manage your customers." To Add Stock: They click Settings > Devices > + > Scan QR Code. (This uses the phone camera to read the IMEI from the box). Additional Things You Must Do (Configuration): Set Limits (Crucial): By default, a Manager can create infinite users. You must set a Device Limit in their account (e.g., 50). This forces them to pay you to increase their limit (buying "stock"). Enable QR Scanning: Ensure the app permission for Camera is enabled by default in your Android Manifest code so the "Scan IMEI" button works instantly. Hide "Server" Settings: In the Server Attributes, enable ui.disableServer for Managers. This prevents them from breaking your server settings while trying to add a user. 2. USER / CUSTOMER - The Experience Goal: Simple tracking, Engine Cut, and AC Status. The App Experience: They log in and see only their car. Additional Things You Must Do (Development/Config): Google Maps API Key: You must buy a Google Maps API Key and put it in traccar.xml. Without this, the map might be blank or show "OpenStreetMap" (which looks cheap/slow). Firebase Notifications (FCM): You must set up a Firebase Console account. Download the google-services.json file and put it in the Android App code. Why? Without this, users won't get "Engine On" alerts when the app is closed. AC Status (The Code): Traccar doesn't show "AC" by default. You must go to Settings > Computed Attributes and add this exact logic (for GT06 devices): Description: AC Status Attribute: acStatus (String) Expression: acc ? "AC ON" : "AC OFF" Result: The app will now show a clean text status instead of a confusing code. Engine Cut (The Code): You must add a Saved Command in the server: Type: Custom String: RELAY,1# (For Stop) and RELAY,0# (For Resume). Note: Check your specific device manual; some use DYD#. 3. ADMIN (You) - The Backend Goal: Stability and Control. Additional Things You Must Do (Server Side): Open Ports: You must open Port 5023 (TCP/UDP) on your VPS firewall. This is the specific language (Protocol) that Navi Lap / China GT06 devices speak. Branding: Replace the logo.svg file in the modern folder of your server. This ensures that even if someone opens the web link, they see "Track Fast", not Traccar. Mail Server (SMTP): You want "Recharge Notifications". You must configure an Email Service (like Brevo/SendGrid - free tier) in traccar.xml. Why? Traccar sends "Device Expiring" alerts via email/SMS. It cannot guess your email password; you must provide SMTP credentials. Summary Checklist for Developer Component Task Why? Android Code Replace res/drawable/logo.png Rebranding Android Code Add google-services.json Push Notifications Android Code Hardcode Server URL (gps.trackfast.com) Easy Login Server Config Set gt06.port = 5023 Support China Devices Server UI Add Computed Attribute (AC Status) Show AC on App Server UI Create "Manager" User Role For Sub-Dealers How to add it to meet your requirements: 1. FUEL MONITORING (Missing in previous steps) Requirement: Client needs Fuel data. The Problem: Chinese GT06 devices usually send fuel data as raw "Voltage" or an "Analog Value" (ADC). It doesn't say "10 Liters"; it says "3400mV". The Fix (Server Side): You must add a Computed Attribute to convert that raw number into a percentage. Go to: Settings > Computed Attributes. Description: Fuel Level Attribute: fuel (Number) Expression: io123 * 0.05 (You must calibrate this math based on the specific sensor manual. io123 is a placeholder for the analog input pin). Why? Without this, the App will show nothing or a confusing number. 2. ONLINE PAYMENT & RECHARGE Requirement: "Online Payment" inside the app and "1200 INR/Year" logic. The Problem: Traccar is a GPS tool, not a bank. It has no payment gateway code. The Fix (App Source Code Modification): You must "Fake" the integration by adding a menu link that opens your payment page. Create a Payment Link: Go to Razorpay or Instamojo, create a "Payment Page" for 1200 INR, and copy the link (e.g., razorpay.me/trackfast1200). Edit Android Code: Open MainFragment.java (or the specific menu file in the source code). Add Menu Item: Add a button labeled "Recharge Plan". Action: Make that button open a WebView or Browser Intent loading your Razorpay Link. Result: User clicks "Recharge" -> Pays money -> You get an email -> You manually extend their date. 3. 3-MONTH EXPIRY NOTIFICATION Requirement: Notify users when their plan is expiring. The Fix (Server Configuration): Traccar has a built-in "User Expiration" field. Set Expiry: When you create a user, set the Expiration Date (e.g., Jan 1, 2026). Enable Notification: Go to Settings > Notifications. Enable "User Expiration". Configure Time: By default, it might notify only on the day of. To make it "Advance," you may need to edit the traccar.xml config file to check for expiration rules or simply use the Announcements feature to send a manual bulk message to users whose plans are ending. Checklist for Developer Component Task Why? Android Code Replace res/drawable/logo.png Rebranding Android Code Add google-services.json Push Notifications Android Code Hardcode Server URL (gps.trackfast.com) Easy Login Server Config Set gt06.port = 5023 Support China Devices Server UI Add Computed Attribute (AC Status) Show AC on App Server UI Create "Manager" User Role For Sub-Dealers How to add it to meet your requirements: 1. FUEL MONITORING (Missing in previous steps) Requirement: Client needs Fuel data. The Problem: Chinese GT06 devices usually send fuel data as raw "Voltage" or an "Analog Value" (ADC). It doesn't say "10 Liters"; it says "3400mV". The Fix (Server Side): You must add a Computed Attribute to convert that raw number into a percentage. Go to: Settings > Computed Attributes. Description: Fuel Level Attribute: fuel (Number) Expression: io123 * 0.05 (You must calibrate this math based on the specific sensor manual. io123 is a placeholder for the analog input pin). Why? Without this, the App will show nothing or a confusing number. 2. ONLINE PAYMENT & RECHARGE Requirement: "Online Payment" inside the app and "1200 INR/Year" logic. The Problem: Traccar is a GPS tool, not a bank. It has no payment gateway code. The Fix (App Source Code Modification): You must "Fake" the integration by adding a menu link that opens your payment page. Create a Payment Link: Go to Razorpay or Instamojo, create a "Payment Page" for 1200 INR, and copy the link (e.g., razorpay.me/trackfast1200). Edit Android Code: Open MainFragment.java (or the specific menu file in the source code). Add Menu Item: Add a button labeled "Recharge Plan". Action: Make that button open a WebView or Browser Intent loading your Razorpay Link. Result: User clicks "Recharge" -> Pays money -> You get an email -> You manually extend their date. 3. 3-MONTH EXPIRY NOTIFICATION Requirement: Notify users when their plan is expiring. The Fix (Server Configuration): Traccar has a built-in "User Expiration" field. Set Expiry: When you create a user, set the Expiration Date (e.g., Jan 1, 2026). Enable Notification: Go to Settings > Notifications. Enable "User Expiration".