Apollo — iOS Tutoring Marketplace Platform
Apollo is a full-stack iOS tutoring marketplace platform designed to connect students with tutors through a map-centric interface. Built natively in Swift and backed by a Node.js/TypeScript infrastructure, the project integrates real-world payment processing via Stripe and is maintained under a production-grade CI/CD pipeline.
This is an active commercial venture — covering everything from technical architecture to business structuring, equity agreements, and operational coordination.
The Problem Being Solved
Existing tutoring platforms are predominantly web-first, list-based, and lack spatial context. For students seeking in-person tutoring, proximity and availability are the most important factors — yet current platforms bury this information in filters and text search.
Apollo reimagines this by placing the map at the centre of the product. Open the app and the first thing you see is a live view of available tutors near you, filterable by subject, availability, and rating.
Technical Architecture
Frontend — Native iOS (Swift / Xcode)
The entire frontend is built natively in Swift using the Xcode environment. Native development was chosen over cross-platform frameworks to ensure the smoothest possible iOS experience — particularly for the real-time map interface, which benefits significantly from direct access to MapKit and CoreLocation.
Key frontend features:
- Map-centric interface: MapKit integration with live tutor pin rendering and clustering
- Real-time availability: WebSocket-driven status updates for tutor availability
- Booking flow: Multi-step booking UI with session scheduling and payment confirmation
- User profiles: Student and tutor profile management with rating systems
Backend — Node.js + TypeScript
The backend runs on a Node.js runtime with TypeScript enforcing strict type safety across the entire codebase. This combination provides the flexibility of JavaScript's ecosystem with the reliability of a strongly typed language at scale.
Backend architecture includes:
- RESTful API: Clean endpoint design for user management, booking lifecycle, and geographical querying
- Database schemas: Complex relational structures handling user state, session booking lifecycle, payments, and review systems
- Geographical querying: Location-based filtering to power the map view with low-latency tutor retrieval
- Authentication: Secure user authentication and session management
Payment Infrastructure — Stripe API
Full Stripe API integration handles all financial transactions within the platform. The payment architecture is designed for a marketplace model, which is considerably more complex than a standard payment flow.
Implementation details:
- Split payments: Stripe Connect for direct platform-to-tutor fund routing, retaining a platform equity percentage
- Escrow logic: Funds held during active sessions and released on completion
- Refund handling: Automated dispute and refund flows
- Compliance: Australian consumer law requirements built into the refund and dispute policies
DevOps & Quality Assurance
From the outset, the project has been built with production standards in mind — not retrofitted later.
CI/CD Pipeline:
- Automated build and test pipelines triggered on every pull request
- Prevents broken code from reaching the main branch
- Deployment automation for backend services
Testing:
- Jest testing framework for comprehensive backend unit and integration tests
- Test coverage requirements enforced as part of the CI pipeline
Code Quality:
- Strict ESLint and TypeScript linting rulesets
- Consistent code style enforced across all contributors
Business Structure
Apollo operates as a formal business venture. Key structural elements include:
- Equity split: Formally documented equity arrangement between co-founders
- Operational meetings: Regular coordination sessions to align technical and business priorities
- Strategic planning: Market positioning, pricing model, and go-to-market strategy development
The intersection of technical development and business operation has been one of the most valuable aspects of this project — building something real forces a different kind of thinking compared to personal projects.
Technical Challenges
Real-Time Map Scalability
Displaying live tutor locations on a map requires careful thought about query frequency, data freshness, and server load. The current implementation uses geographical bounding box queries to return only tutors within the visible map region, with debouncing on pan/zoom events to prevent query flooding.
Stripe Marketplace Complexity
Standard Stripe integrations are straightforward — marketplace payments are not. Implementing Connect accounts for tutors, managing onboarding verification, handling split payments, and building compliant refund logic required deep engagement with Stripe's documentation and a significant amount of testing against the sandbox environment.
Swift/TypeScript Integration
Keeping the iOS client and Node.js backend in sync — particularly around data models and API contracts — requires discipline. TypeScript's type system is leveraged to generate shared interface definitions that reduce the risk of client/server mismatches.
Technology Stack
Frontend:
- Swift (native iOS)
- Xcode development environment
- MapKit, CoreLocation
- WebSockets for real-time updates
Backend:
- Node.js runtime
- TypeScript (strict mode)
- RESTful API design
- Relational database with complex schemas
Payments:
- Stripe API
- Stripe Connect (marketplace split payments)
- Automated refund and dispute handling
DevOps:
- CI/CD pipelines (automated build, test, deploy)
- Jest testing framework
- ESLint + TypeScript linting
Current Status
Apollo is in active development. The core booking flow, map interface, and payment infrastructure are functional. Current focus is on refining the tutor onboarding experience and preparing for a limited beta release.
This project represents the most technically ambitious work I've undertaken — combining mobile development, backend engineering, FinTech integration, and real business operation into a single product.