
UniClub
Marketplace for booking children’s classes with iOS app and Django backend.
Quick facts
• Role: iOS Developer + Backend Developer (mobile stack). Also supported the main website booking flow.
• Timeframe: Not specified
• Platform: iOS + Web + Backend APIs
• Status: Discontinued (app removed from the App Store)
• Team: Solo for iOS + mobile backend (supported a separate web team/product)
Summary
Two-sided marketplace for kids’ study and sports activities in Nur-Sultan: discovery, filtering, class details, schedule selection, and request-based booking. I built the iOS app and mobile backend from scratch and supported the website booking experience. The product covered both parent-facing browsing/booking and partner onboarding and operations through admin tooling.
Key highlights:
• iOS app: filter-first discovery, schedule picker, cart, and booking request forms
• Mobile backend: DRF + Celery, plus Telegram bot for collecting course reviews
• Web backend: phone auth, subscriptions, lesson generation, booking, and partner workflows
Problem
• Needed a complete marketplace flow: discovery → schedule → booking request, plus partner acquisition.
• Required strong filter dimensions (age, activity type, location, time of day) with fast UX on mobile.
• Had to support operational constraints: capacity, schedules, verified reviews, and async notifications.
Solution
I delivered an end-to-end mobile stack: a UIKit iOS client with reactive bindings and a Django REST backend for filters, courses, and application submissions. The backend also integrated a Telegram bot for collecting reviews and shipped Swagger/Redoc docs for API consumers. The broader platform included a separate web backend with partner dashboards, scheduling, subscriptions, and attendance tracking, which I supported for booking-related needs.
• Focused on a predictable booking pipeline and clean admin-driven content management
Architecture
• iOS: UIKit + SnapKit UI, RxSwift bindings, shared cart/filters state propagated via subjects
• iOS networking: router-based API layer with Codable decoding and paginated lists
• Mobile backend: Django REST Framework apps (filters, courses, applications), Celery + RabbitMQ jobs
• Telegram bot: webhook endpoint → TeleBot flow → persisted reviews in DB
• Web backend: modular Django apps for clubs/courses/lessons/subscriptions/bookings with JWT auth
• API docs: Swagger + Redoc for backend endpoints and partner/client workflows
Hard problems solved
• Designed a filter model that supports many dimensions without breaking list pagination and UX
• Built schedule selection that maps weekday/time picks into stable booking payloads
• Implemented request-based checkout (not instant payment) with reliable success states and tracking IDs
• Kept cross-screen state consistent (filters, cart, selected lesson times) via reactive streams
• Shipped a Telegram bot review flow that enforces structure and persists results via webhook processing
• Orchestrated async tasks (emails/notifications) safely with Celery and transaction boundaries
Impact / Results
• Delivered iOS app + mobile backend from scratch with a complete discovery-to-request flow
• Enabled lead capture and partner onboarding via dedicated forms and admin-managed content
• Provided backend documentation and operational tooling to support iteration and support workflows
Tech stack
• iOS: Swift, UIKit, RxSwift, SnapKit
• Architecture: MVVM-lite with shared state, Router-based networking, Codable models
• Backend/Infra: Django, DRF, Celery, RabbitMQ, PostgreSQL
• Tooling: Docker, Swagger/Redoc (drf-yasg), Firebase, Kingfisher, Lottie




