SupTech Apps
My role as an App Developer
Overview
During my time at SupTech, I took on the challenge of building two large-scale mobile applications in Flutter—the SupTech Consumer App (C-end) and SupTech Technician App (T-end). I was not only responsible for designing and coding these apps but also took on roles typically divided among multiple teams in larger companies.
Throughout the process, I specialized in:
- Full-cycle App Development: from requirement gathering, system architecture, responsive UI design, to final deployment on both iOS and Android.
- Cross-platform Flutter: building robust, fluid interfaces supporting multiple languages (English, Simplified Chinese, Traditional Chinese).
- Backend Integration: initially leveraging Firebase-based serverless functions (Node.js) for rapid prototyping, then moving to a MySQL/Java architecture to ensure stable data synchronization, authentication, push notifications, and real-time location tracking.
- Stripe Payment Integration: implementing secure payment flows, creating and attaching payment methods, and enabling technicians to bind their bank accounts for receiving payouts.
- Team Coordination & Leadership: bridging communication between stakeholders, gathering app requirements, leading daily stand-ups, and guiding new hires. I also assumed responsibilities like a Project Manager, documenting tasks, drawing mind maps, making swimlane diagrams, and clarifying business logic with the in-house or external tech teams.
Below is a more detailed breakdown of my work.
Downloads
Project Highlights
1. The SupTech Consumer App (C-end)
Purpose: Provide consumers with an easy way to request installation/repair services, track order statuses, chat with assigned technicians, and leverage AI Repair for self-diagnosis.
- Built with Flutter: Ensuring a consistent UI/UX across iOS and Android.
- User-Centric Flows:
- Account creation & login
- Order creation & management (brand/SKU selection, photo upload, location pin)
- Secure online payment (integrating with Stripe)
- Chat system (real-time messaging & photo exchange)
- Rating and feedback
- Internationalization (i18n): English, Simplified Chinese, Traditional Chinese.
2. The SupTech Technician App (T-end)
Purpose: Empower field technicians to view and accept nearby orders, manage scheduling, provide real-time service updates, and handle payments.
- Location-Based Task Allocation:
- Built real-time location services with geofencing logic (50mi radius) for relevant orders.
- In-app Communication:
- Integrated chat with consumers
- Provided custom action buttons (e.g., “Depart Now,” “Begin Service,” “Complete Service”).
- Stripe Connect:
- Technicians can link their bank account for direct payouts.
- Work Dashboard & Performance:
- Real-time income stats, upcoming tasks, and completed tasks counter.
3. AI Repair Integration
I implemented a custom AI chatbot (powered by Chat GPT 4.0) within both apps—C-end and T-end—for fault diagnosis:
- Prompt engineering: to ensure the AI’s language is user-friendly and robust enough to guide users (even novices) through potential troubleshooting steps.
- Conversation flow: multiple-step guidance from hypothesizing the fault cause to deciding whether to do self-repair or request a technician’s visit.
4. Cross-Platform + Real-time Features
- Hybrid Backend:
- Legacy Firebase-based serverless functions (Node.js)
- New MySQL/Java-based API for production scale.
- Real-time Bidding: Technicians see instantly updated order info as location or status changes.
- Push Notifications: Firebase Cloud Messaging for timely updates (e.g., new tasks assigned, new messages).
- Payment Workflow:
- Customer -> Stripe -> SupTech -> Technician
- Delayed payout scheduling and partial refunds via custom logic.
My Additional Responsibilities
Besides solely focusing on app coding, I played multiple roles:
- Project Manager:
- Held requirement-gathering meetings, created mind maps and swimlane diagrams, documented all changes, and aligned them with the dev tasks.
- Handled stakeholder requests, bridging business logic with technical feasibility.
- Ad Hoc Tasks:
- Assisted with HR tasks: from screening candidates to orienting new hires.
- Built the company’s basic web presence and fixed design issues on official website.
- Occasionally performed office errands (e.g., shipping packages, setting up coworker computers, supporting system admin tasks).
- Engaged in cross-team communication, from clarifying B-end system queries to instructing business partners on how to utilize the new AI chat modules.
- Release & Store Management:
- Single-handedly managed app submissions to Apple’s App Store and Google Play.
- Coordinated store listing, test flight/beta testing cycles, and official rollout.
Technical Contributions
Flutter Architecture
- Implemented Provider & Riverpod for state management in different modules.
- Optimized performance with asynchronous data streams (StreamBuilders) + caching (SharedPreferences).
Multi-Language & Internationalization
- Organized translations in
.arb/.jsonfiles, ensuring easy expansions to new languages. - Dynamically switched UI texts based on system language or user preference.
Stripe Payment & Connect
- Built robust flow for PaymentMethod creation, ephemeral keys handling, PaymentIntents, and Connect-based payouts to technicians.
- RSA encryption for sensitive data, ephemeral token usage for web hooks.
Location & Map Integrations
- Deployed Google Maps SDK for in-app location display, technician route mapping, and geo-based filtering of tasks.
- Handling iOS & Android location permission differences, background location updates, and UI refresh cycles.
AI Chat & Prompt Engineering
- Built Chat GPT 4.0 conversation flows, ensuring clear step-by-step troubleshooting guides, brand/SKU/fault code recognition, and user-linguistic style adaptation.
Project Outcomes
- Faster Customer-Provider Matching: By building a robust cross-platform solution with real-time location-based order dispatch, the company drastically reduced manual dispatch overhead.
- Reduced Support Overhead: The integrated chat system & AI assistance lowered the number of repeated phone calls and manual troubleshooting queries.
- Scalable Infrastructure: Transition from Firebase-based quick prototypes to a more scalable MySQL/Java environment. Performance under high concurrency improved significantly.
- Business Value: Enhanced brand image with modern, user-friendly apps. Gained potential to expand the service across wider regions and device platforms.
Personal Growth & Reflection
Technical Mastery:
- Deepened my expertise in Flutter, including advanced state management, custom animations, and platform-specific integrations.
- Gained hands-on experience with Node.js serverless functions and MySQL-based microservices.
Project Management & Communication:
- Learned to swiftly re-assess scope when business logic changed.
- Strengthened stakeholder communication, from clarifying ambiguous requirements to training end-users.
Adaptability & Tenacity:
- Faced tight deadlines and frequently shifting requirements.
- Wore multiple hats—developer, coordinator, occasional HR or admin tasks—demonstrating resilience and a can-do attitude.
Final Thoughts
My experience at SupTech was both demanding and rewarding. I took pride in shipping two fully functional Flutter apps—from scratch to production—and integrating them with dynamic, AI-powered features. Though the path was challenging, I honed my full-stack understanding, sharpened my project management skills, and grew more confident as an App Developer ready for new frontiers.
I believe these experiences and the robust code I wrote can significantly contribute to any team seeking a passionate developer with multi-faceted problem-solving skills and an eye for quality software that truly serves its end users.
Office Gallery
Additional Resources
- SupTech Official Website: https://suptech.pro
- B-end System (merchants): https://admin.app.suptech.pro
- Consumer App Manual (PDF): View here
- Technician App Manual (PDF): View here
- Consumer App Video Tutorial: Step-by-Step Guide (for orders created by businesses)
- Technician App Video Tutorial: YouTube Demo