UBCMA Membership Portal
Role: Development Lead
UBCMA stands as UBC's only marketing focused club. Each year, the club sells membership to students and hosts events through Showpass, which offers limited features to suit the club's needs. Our team built a centralized web application to replace this process, ultimately decreasing costs, streamlining workflows, and fostering community

React

PostgreSQL

Drizzle

Railway

Stripe

Redis

Linear

PROJECT OVERVIEW

The UBCMA Membership Portal is a centralized platform designed to manage the lifecycle of a student’s membership in the club. From event registration and ticketing to alumni networking and job listings, the portal empowers both members and club executives with intuitive, role-based tools.

CORE OBJECTIVES

Our primary goal was to provide a seamless experience for students to feel like a member of a community, and to help our internal exec team make data-driven decisions. We facilitated this by offering exclusive access to events, opportunities, and perks such as discounts and private job postings. We built out an admin dashboard that ran queries on our database and displayed insightful revenue and demographic data for our execs on a dashboard.
Header

APP ARCHITECTURE

Railway proved to be a user friendly and cost-effective solution to manage our express backend, Postgres database, and Redis instance all in one place. We used Stripe SDK for secure payment infrastructure, Better auth for a simple authentication solution compatible with TypeScript and Express, and GitHub for version control. Our frontend is a Next.js + React application styled with Tailwind + ShadCN and deployed on vercel.

UBCMA Membership Portal Infrastructure Diagram
Project Management

Streamlining Workflows with Linear

To build our Membership Portal, I led development using Linear to manage sprints, coordinate tasks across teams, and track implementation progress in real time. Linear gave us the visibility and structure to move from idea to implementation with speed and confidence. As an engineer and team lead, it was a powerful way to drive cross-functional collaboration, scope clarity, and shippable outcomes.

Task Management & Documentation

Our issue board tracked work across all of our devs in a traditional kanban board style. We used tags for frontend/backend, features, and infrastructure to filter issues by area of responsibility. Set up status-based workflows to visualize progress Used custom labels for ownership and tech stack Implemented PR-linked automation to reduce manual tracking This allowed us to move fast while keeping overhead low—every engineer knew exactly what to work on next.

Linear Board

Timeline & Project Forecasting

We used Linear’s timeline view to define clear development phases—starting with onboarding and authentication, and progressing through Stripe integration, email automation, and the alumni network. This gave our team a shared mental model of what needed to ship, when, and why. It helped align engineering, design, and product goals into a single roadmap. Defined key epics and dependencies Prioritized tasks based on launch impact Maintained a clear execution timeline

Linear Project Timelines

Integration & Workflows

We integrated GitHub, Slack, and Notion with Linear to keep discussions, documentation, and code reviews in sync. Synced comments and context from Slack threads into Linear issues Linked Linear tickets to pull requests for accountability Used a Documentation Archive board to centralize product decisions and architecture references By consolidating these tools, we reduced handoff friction and kept the whole team aligned asynchronously.

Linear Slack Integration
BACK TO TOP

© JULY 2025