Mobile · Web · Team of 7 · Fall 2025 – Present

Tutle

A research-validated student-tutor marketplace including a mobile app, landing page, and admin portal built by a team of 7 at MacEwan University.

Booking Flow
Browsing Tutors

What is it and why it exists

Tutle is a student-tutor marketplace built for MacEwan University students. It connects students who need help with courses to qualified tutors, handling discovery, scheduling, messaging, and payment in a single app.

It evolved directly from MentorMatch, a previous semester project that the team took further than the brief required. Tutle started differently: with surveys, research, and user validation before a single line of code was written.

Platform

iOS & Android mobile app, marketing landing page, web-based admin portal

Status

In active development. tutle.ca currently offline for updates — video demo below. App in TestFlight.

My Role

Full-Stack Developer · Web, Mobile & Infrastructure

Built with

Mobile

  • React Native
  • Expo
  • TypeScript
  • Expo Router

Backend & APIs

  • Supabase
  • Stripe
  • Sendbird
  • Sign in with Apple

Web

  • Next.js
  • React
  • TypeScript
  • Tailwind CSS

Tools

  • Xcode/Android Studio
  • Aikido Security
  • Confluence
  • Git / GitHub
  • GitHub Actions (CI/CD)
  • Figma

Before we built anything

Before writing any code, the team surveyed both students and tutors to validate the core assumptions behind the product: whether a mobile app was the right format, what features actually mattered, and where existing solutions were falling short.

2

separate surveys
one for students, one for tutors

mobile app format validated over web-only alternatives

in-app messaging and scheduling confirmed as must-haves

competitor analysis identified gaps in existing tutoring platforms

From a tutor survey respondent

"An app that connects people is enough."

What I built across the project

I joined the mobile codebase midway through development and worked across all three product surfaces: picking up infrastructure gaps, unblocking teammates, and shipping multiple features.

iOS Provisioning & Sign in with Apple

Navigated Apple's provisioning system to get the app building on physical iOS devices: certificates, entitlements, and bundle identifiers. Enabled Sign in with Apple support through configuring the App ID capability, adding the Xcode entitlement, and wiring the identity token exchange with Supabase auth.

Apple & Google Calendar Webcal Integration

Built a full iCal/webcal feed system backed by a Supabase Edge Function that generates a personalized calendar feed from a user's appointments. Created the UI layer with the subscription settings, platform-specific instructions, and a quick-subscribe button. iOS opens Apple Calendar directly; Android walks through Google Calendar's web interface.

Admin Chat Support (Sendbird)

Added a floating action button to the chat screen that lets any user open a dedicated support channel with an admin via Sendbird. Built the backend logic to either create a new admin support channel or retrieve an existing one, plus an admin queue utility to handle routing when multiple admins are available. Admin user IDs were wired into both dev and prod configurations.

Admin Portal Redesign

Inherited a broken admin portal prototype with hardcoded data and non-functional auth. Rebuilt it into a working product in a week: wired live Supabase data throughout, built API routes, implemented sortable and filterable tables, overhauled the UI to align with the mobile app's design system, and restructured the information architecture. Added a reviews page and reports page with live data in a later sprint, plus performance and caching improvements.

Landing Page: tutle.ca

Built the public-facing marketing site for Tutle solo in plain HTML, CSS, and JavaScript. Implemented a full CSS custom property design token system, CSS-only animations (layered cloud drift, floating elements, pure CSS wood grain texture), and an accessible video modal with ARIA state toggling, focus return, and Escape key handling. Device-aware download routing, QR code generation, and app store CTAs are fully implemented in the codebase but toggled off pending the app's release.

Infrastructure & Git

Handled multiple git crises via reflog recovery, resolved CI/CD pipeline breakages, and set up Aikido Security for supply chain protection. Also debugged Android emulator issues for teammates who couldn't run on macOS/iOS hardware, which unblocked the entire team's ability to test cross-platform.

Documentation

Wrote the complete developer documentation in Confluence for the admin portal and landing page: setup, architecture, design systems, and deployment. Structured so a new contributor can clone the repo, understand the codebase and git patterns, and start shipping features quickly.

Booking Flow
Admin Chat Support
Admin Portal — Tutor & Booking Management
Landing Page — tutle.ca

What came out of it

Seeing the Whole Stack

Working across the entire development stack using real industry tools and best practices gave me a broader sense of what goes into building an actual application. CI/CD, backend work, testing on emulators and physical devices, and UI development all feed into each other; knowing real people would rely on this changed how I approached security, accessibility, and reliability in a way a class assignment doesn't require.

React Under Pressure

Gained significant React and Next.js experience by working in a production codebase under a real deadline. The context-switching between data architecture, API design, UI work, and bug fixes in a single sprint forced a much faster understanding than a guided course would.

Accessibility Without a Framework

Built accessibility into the landing page from scratch in plain HTML, CSS, and JavaScript: ARIA states, keyboard navigation, and focus management throughout. Building accessibility in from the start rather than retrofitting it is how I prefer to work, and this project was a chance to do exactly that.

Learning on the Job

Over the course of a single semester, I learnt React Native + Expo, React + Next.js + Tailwind CSS, and HTML/CSS/JS well enough to help ship three separate projects within the same product ecosystem. I can pick up a new framework and ship something real with it faster than I expected.

← View All Projects