Back to Projects
GearOne - Smart Automobile Service Platform
CompletedReact NativeExpoNode.js+7 more

GearOne - Smart Automobile Service Platform

Production-ready automobile service ecosystem built with React Native, backend infrastructure, admin systems, payment integrations, and cross-platform deployments

6 min read
Timeline

4 months

Role

Full Stack & Mobile App Developer

Team

Startup Team

Status
Completed

Technology Stack

React Native
Expo
Node.js
Express
Supabase
PostgreSQL
TypeScript
Next.js
Razorpay
NativeWind

Key Challenges

  • Building a scalable end-to-end app ecosystem across mobile, admin, and backend simultaneously
  • Cross-platform deployment and release management for Android and iOS
  • Payment integration and transactional workflow handling with Razorpay webhooks
  • Real-time booking tracking and order management via Supabase Realtime
  • Backend architecture and admin panel system design for internal operational teams

Key Learnings

  • Production mobile app deployment workflows for Android Play Store and Apple App Store
  • React Native and Expo architecture with Expo Router file-based routing
  • Payment gateway integration and webhook verification in a production environment
  • Backend scaling, API design, and Row Level Security policies with Supabase
  • Admin dashboard design and operational tooling for internal business workflows

GearOne - Smart Automobile Service Platform

Overview

GearOne is a production-grade automobile service platform built to digitize and streamline vehicle servicing, bookings, real-time tracking, and customer management through a mobile-first experience. The platform serves customers, vendors, and internal operations teams through three interconnected systems built and deployed simultaneously.

The project covered everything: a React Native mobile app for customers, a Next.js admin panel for internal operations, a Node.js/Express backend API, Razorpay payment integration, Supabase database with Row Level Security, and complete production deployment pipelines for both Android and iOS.

Live on Google Play Store · Admin panel at gearon-admin.vercel.app

Problem Statement

Automobile service businesses in India operate on phone calls, paper records, and manual coordination between customers, service staff, and management. There was no centralized platform that let customers book services, track status in real time, pay digitally, and receive notifications — while giving internal teams a dashboard to manage the entire workflow from one place.

System Architecture

GearOne is three production systems that share a single Supabase (PostgreSQL) database:

Customer (Mobile App)  →  Node.js/Express API  →  Supabase PostgreSQL
Admin Team (Next.js)   →  Node.js/Express API  →  Supabase PostgreSQL
Push Notifications     →  Expo Push Network
Payments               →  Razorpay → Webhook → Backend verification

Key Features

Cross-Platform Mobile Application

  • React Native 0.81.5 + Expo 54 for Android and iOS from a single codebase
  • Expo Router 6 for file-based screen routing (matching Next.js conventions)
  • NativeWind 4 — Tailwind CSS utility classes in React Native UI
  • Real-time booking status updates via Supabase Realtime subscriptions
  • Authentication: email/password, Google Sign-In, and Apple Sign-In
  • Multi-language support: English, Hindi, Tamil, Telugu via i18n-js
  • Push notifications via Expo Push Network (expo-notifications)
  • In-app update delivery via sp-react-native-in-app-updates
  • State management: Zustand 5 + Tanstack React Query 5 with Axios retry

Backend & API Infrastructure

  • Node.js 18 + Express 4 — modular REST API organized by domain
  • Routes: bookings/, vehicles/, vendor/, payments/, notifications/
  • Supabase JS for database access with Row Level Security on all tables
  • Redis (Upstash) for optional caching layer on frequently accessed endpoints
  • expo-server-sdk for reliable Expo Push notification delivery
  • Nodemailer for transactional email (booking confirmation, receipts)
  • Swagger/OpenAPI documentation with swagger-ui-express
  • Winston logging and structured error handling
  • Helmet + CORS + CSRF for production security middleware
  • Deployed on Render with auto-deploy from main branch

Admin Dashboard & Operations

  • Next.js 15.5.9 admin panel with App Router — deployed on Vercel
  • Full management interfaces for: bookings, vehicles, vendors, users, offers, events
  • Recharts analytics dashboard for operational metrics
  • Tanstack Table 8 for sortable, filterable data grids
  • Role-based access control via Supabase Row Level Security policies
  • shadcn/ui + Radix UI component system — full suite of primitives
  • Zustand + React Query for client-side state and server sync
  • Real-time booking approval/rejection workflow

Payment & Transaction Systems

  • Razorpay payment gateway integrated in the React Native app via react-native-razorpay
  • Backend webhook endpoint verifies Razorpay signature for every transaction
  • Booking and payment states synced atomically — no orphaned bookings on payment failure
  • Custom Expo plugin (plugins/) to fix Razorpay native module compatibility with Expo 54
  • Transactional validation ensures reliable checkout even on network interruption

Production Deployment

  • Android: EAS Build → AAB (gradlew bundleRelease) → Google Play Console
  • iOS: EAS Build + EAS Submit → App Store (no Mac required)
  • Backend: Render with auto-deploy, health check at /api/health
  • Admin: Vercel with GitHub integration and preview deployments on PRs
  • App version: 2.1.1 (managed in app.config.js)
  • Environment configuration separated per development / production profiles

Tech Stack

| Layer | Technology | Version | |-------|-----------|---------| | Mobile | React Native + Expo | 0.81.5 / 54.0.33 | | Routing | Expo Router | 6.0.23 | | Mobile UI | NativeWind | 4.1.23 | | State | Zustand + React Query | 5.0.1 / 5.59 | | Backend | Node.js + Express | 18+ / 4.18.2 | | Database | Supabase (PostgreSQL) | 2.39.7 | | Payments | Razorpay | 2.9.2 | | Admin Panel | Next.js | 15.5.9 | | Admin UI | shadcn/ui + Radix | — | | TypeScript | All codebases | 5.x | | Push | Expo Push Network | expo-notifications 0.32 |

Database Schema

Key tables managed in Supabase PostgreSQL with Row Level Security:

profiles       -- User accounts with admin flag and push tokens
vendors        -- Service partners and their operational profiles
vehicles       -- Available vehicles with pricing and availability
bookings       -- Rental transactions linking customers, vehicles, vendors
offers         -- Promotional offers with validity and discount rules
events         -- Events and campaigns for the mobile app
notifications  -- In-app notification records per user
push_tokens    -- FCM/Expo push tokens per device

All tables have RLS policies: customers see only their own data; admin role bypasses RLS for full operational access.

What I Learned

Building GearOne taught me:

  • Managing a complete startup product ecosystem end-to-end — mobile, backend, and admin simultaneously
  • Shipping and maintaining production mobile applications on the Play Store and App Store
  • Structuring scalable backend systems with Node.js and modular domain-based API organization
  • Handling Razorpay payment gateway integration including webhook signature verification in production
  • Managing EAS Build and EAS Submit deployment pipelines for Android and iOS without a Mac
  • Designing Row Level Security policies in Supabase for multi-role data access control
  • Multi-language mobile app architecture with runtime locale switching across four languages

Impact

GearOne digitized and centralized automobile service workflows for a startup, replacing phone-based operations with a real-time platform.

  • Live on Play Store – Production deployment serving real customers in Jaipur
  • 3 Systems in 4 months – Mobile app, backend API, and admin panel shipped simultaneously
  • Real-time operations – Supabase Realtime enables instant booking status across all actors
  • Razorpay in production – Complete payment lifecycle from checkout to webhook verification
  • Multi-language – 4 Indian languages (EN, HI, TA, TE) from day one
  • Cross-platform – Single React Native codebase for Android and iOS

Architecture Highlights

  • Domain-driven backend: api/bookings, api/vehicles, api/vendor — each domain owns its routes, controllers, and business logic
  • RLS everywhere: No data access logic in the app layer — all authorization enforced at the database level via Supabase Row Level Security
  • Atomic payments: booking state and payment state are updated in the same database transaction to prevent inconsistency on network failure
  • Expo plugin layer: custom native module patches in plugins/ solve Razorpay + Expo 54 compatibility without ejecting
  • Shared database: all three systems (mobile, backend, admin) connect to the same Supabase project — no sync needed between them

Design & Developed by Abhiman Panwar
© 2026. All rights reserved.