Live on Google Play · 10+ downloads · Updated Apr 2026
B-link is a mobile app for Brock University students — a unified campus platform built with React Native (Expo) and deployed to both the Google Play Store and iOS App Store.
The app combines end-to-end encrypted messaging, a campus marketplace, event management, tutoring, and student housing into a single mobile experience. It requires a valid @brocku.ca email for access, ensuring a verified Brock University community.
I served as the senior/architect engineer on a 3-person team — owning the initial project architecture, iOS App Store compliance and deployment, the trust & safety infrastructure, and the core tutoring marketplace backend.
Google Play: B-link on Google Play iOS App Store: B-link on App Store
React Native (Expo) Mobile App
|-- Auth (login, register, email verification via @brocku.ca)
|-- Events (create, browse, RSVP, co-host invitations)
|-- Tutoring Marketplace (apply, request, sessions, reviews)
|-- Listings / Marketplace (buy & sell textbooks, furniture, electronics)
|-- End-to-End Encrypted Messaging (conversations, push notifications)
|-- Profiles (user profiles, settings, data request handling)
|-- Trust & Safety (blocking, reporting, profanity filter)
v
FastAPI Backend
|-- auth, events, tutors, listings, blocking, reports
|-- profanity filter, content sanitization
|-- tutor subscription sync + webhook reconciliation
v
Supabase (PostgreSQL + Auth + Storage + Edge Functions)
|-- 35+ migrations (schema evolution)
|-- push notifications (Edge Functions)
Mobile: React Native, Expo SDK 54, TypeScript Backend: Python, FastAPI, Pydantic, Supabase Infrastructure: Supabase (DB + Auth + Storage + Edge Functions), EAS (Expo Application Services) Deployment: Google Play Store + iOS App Store (via EAS), OTA updates
Role: Architect Engineer Team: 3 engineers (me + 2 developers) Timeline: Dec 2025 – Apr 2026
I did not build every feature. My ownership concentrated on the architecture, the hardest infrastructure problems, and the systems where failure would mean real user harm.
I established the entire project from zero:
- Scaffolded the full React Native app across 30+ screens (auth, events, tutoring, listings, messaging, profiles)
- Set up the FastAPI backend with proper service/router separation
- Designed the Supabase schema with 15+ initial migrations
- Configured the Expo/EAS build pipeline
- Wrote the technical specification document
Initial commit: 58 files, ~22,000 lines establishing the project skeleton, all major feature areas, and the backend API surface.
Taking a React Native app from development to the iOS App Store requires navigating Apple's compliance requirements. I owned this end-to-end:
- Privacy manifests — declared all data collection, usage, and third-party SDKs per Apple requirements
- Blocking/reporting system — Apple requires user safety features for apps with user-generated content. Built cross-cutting blocking across all content types (events, listings, tutors, conversations) and reporting infrastructure
- Profanity/content filtering — server-side profanity detection and content sanitization across all user-generated inputs
- EAS build pipeline — configured Expo Application Services for iOS builds, code signing, and distribution
- OTA updates — over-the-air update infrastructure so fixes ship without App Store review cycles
A student app with messaging, marketplace transactions, and real identities needs real safety systems:
- User blocking — cross-cutting block system that propagates across events, listings, tutor interactions, and conversations
- Content reporting — report submission with categories, backend review routing
- Profanity detection — server-side filter with test coverage
- Content sanitization — input cleaning utilities shared across the backend
- Brock email verification — @brocku.ca required, ensuring verified campus community
I built the core tutoring system backend:
- Tutor applications — apply flow with course selection, qualifications, pricing
- Tutor relationships — student-tutor matching with invitations and status tracking
- Session logging — session records with metrics
- Review system — tutor reviews with ratings
- Course catalog — imported and structured Brock University's 4,796-course catalog
The backend involved 8 new database migrations and a service layer the other developers built the UI against.
With 3 developers in parallel (me on backend/architecture, another on Android frontend, another on UI):
- Merged Android and iOS branches with conflict resolution
- Maintained the shared API client that both platforms consumed
- Kept database migrations ordered and compatible across feature branches
B-link is not a toy app. It's live on Google Play with real users:
- Real Brock University students with @brocku.ca verification
- End-to-end encrypted messaging between users
- Campus marketplace with photo listings
- Event creation and co-hosting
- Push notifications via Supabase Edge Functions
- Cross-feature safety systems (blocking propagates everywhere)
- Production deployment on both app stores
Team: 3 engineers
- Mohamed (me): Project architecture, iOS deployment, trust & safety, tutoring backend
- Frontend developers (2): Android adaptation, UI polish, SEO/static site, subscription sync, day-to-day feature work
The source code is in a private repository. This public case study describes architecture and engineering approach without exposing source code, secrets, or deployment credentials. Screenshots are from the public Google Play Store listing.
