β¨ Feature Demonstrations
Multi-Step Booking Flow
Booking Flow
- Client selects service type (massage, personal training, life coaching)
- System filters therapists by location and service area (geofencing)
- Client picks therapist, adjusts duration, and selects add-on enhancements
- Available time slots displayed with real-time availability
- Booking confirmation with therapist info and appointment summary
Rewards & Loyalty System
Client Rewards Flow
- Points earned automatically upon completed appointment
- Daily check-in available with streak multiplier bonuses
- Client browses reward catalog (credits, discounts, products)
- Redemption generates a unique voucher code
- Full redemption history and current point balance visible on dashboard
Admin Dashboard & Business Management
Admin Capabilities
- Dashboard overview of upcoming bookings and revenue metrics
- Therapist availability management β block time, set unavailability
- Service catalog management β durations, pricing, add-on enhancements
- Client management β full client list with appointment history
- Therapist profiles β bio, photos, specialties, service areas
- Reviews moderation β view and remove inappropriate reviews
- Push notification broadcasting to clients or therapists
Geofencing & Location-Based Availability
Location Flow
- App requests location permission on first booking attempt
- Client coordinates sent to API for service area matching
- Only in-range therapists appear in the booking flow
- Admins configure service zones per therapist in the admin panel
Push Notifications
Notification Flow
- Push token registered on login and stored server-side per user
- Appointment lifecycle events trigger automatic notifications
- Admin can broadcast custom messages from the admin dashboard
- Clients can opt in/out of notification categories in profile settings
Multi-Profession Theme Customization
Theme Flow
- Admin selects profession and primary brand colors in settings
- Theme config stored server-side and synced to all active clients on launch
- ThemeContext distributes color tokens throughout the component tree
- All UI components consume theme tokens β no hardcoded colors
π Professional Summary
The platform was architected with white-label reusability in mind β a ThemeContext-driven design system, configurable profession types, and a server-driven business config make it deployable across wellness businesses without code changes. Core engineering challenges included multi-step booking state management across Expo Router screens, geofence-based therapist availability filtering, a full loyalty ledger with streak mechanics, and Expo push notification delivery for real-time appointment lifecycle events.
The entire codebase is TypeScript with Zod-validated API boundaries, JWT authentication with secure token storage via expo-secure-store, and React Context for global Auth, Theme, Business, and Toast state. The result is a cohesive, production-ready platform demonstrating depth in mobile architecture, business logic design, and full-stack engineering.
π― Most Marketable Skills
Mobile Development
- React Native 0.81 with Expo 54
- Expo Router (file-based routing)
- Tab and stack navigation patterns
- TypeScript 5.9 throughout
- Responsive layouts with StyleSheet
Auth & Security
- JWT token-based authentication
- expo-secure-store for token persistence
- Zod schema validation on all API boundaries
- RBAC role gating (client / therapist / admin)
- Secure account deletion flow
Business Logic
- Multi-step booking state machine
- Loyalty points ledger with streak mechanics
- Geofence-based availability filtering
- Reward catalog and voucher generation
- Service area management (radius + center)
UX & Architecture
- White-label ThemeContext design system
- Server-driven business config
- Multi-profession branding (no code changes)
- AsyncStorage for offline persistence
- Toast/notification UX patterns
ποΈ Architecture
Client App
- React Native / Expo 54
- Expo Router (file-based)
- TypeScript 5.9
- Tab + stack navigation
- StyleSheet theme tokens
State & Context
- AuthContext (JWT + user role)
- ThemeContext (brand config)
- BusinessContext (biz info)
- ToastContext (global alerts)
- AsyncStorage persistence
API & Validation
- REST API via fetch
- Zod schema validation
- JWT auth headers
- date-fns for date handling
- Server-driven availability
Device Services
- expo-notifications (push)
- expo-location (geofencing)
- expo-secure-store (tokens)
- expo-image-picker (profiles)
- AsyncStorage (cache)
Admin Portal
- Separate Expo Router group
- RBAC role-gated routes
- Service & availability mgmt
- Push notification broadcast
- Theme & business config
π Key Achievements
Full Booking Engine
Multi-step flow with service selection, therapist matching, duration, add-ons, and geofenced availability β all in a single cohesive UX.
Loyalty & Rewards System
Complete points ledger, streak check-ins, redeemable catalog, voucher codes, and full redemption history β driving repeat bookings.
Geofence Scheduling
Location-based therapist availability using expo-location and server-side Haversine matching β clients only see in-range therapists.
White-Label Theming
Server-driven ThemeContext architecture makes the app deployable for any wellness business with no UI code changes β just a new config.
Secure Auth & RBAC
JWT tokens with expo-secure-store, Zod-validated boundaries, and role-based routing across client, therapist, and admin experiences.
Push Notifications
Full lifecycle notifications via Expo Push API β confirmations, reminders, cancellations, and admin broadcasts with per-user opt-out.