Project 03 / 06

Upsolve.io

A knowledge-management system for competitive programmers, built by a four-person team in CMPT 276 — I led the front end and ran the Git workflow that kept us shipping together.

Year
Jan — Apr 2026
Context
CMPT 276 · Team project
Role
Front-end lead
Stack
JS · Spring Boot · Git
feature/tagging-ui feature/api-client
Fig. 03 — Branching strategy · Feature → Review → Merge
Main — Protected · PR review required

Overview

Competitive programmers solve thousands of problems but rarely revisit the ones that beat them. Upsolve.io gives them a place to tag, track and revisit problems — a dashboard for deliberate practice. Four of us built it end-to-end in a semester, front end to Spring Boot back end.

What I built

01

The full front end

Designed and implemented the complete HTML/CSS/JavaScript front end — the problem-tagging UI, the user dashboard, and the solution submission flow.

02

API contracts with the back end

Coordinated request/response contracts with teammates building the Spring Boot REST service — agreeing on endpoints and payloads up front so front and back integrated without surprises.

Working as a team

The hardest part of a team project isn't the code — it's four people changing the same codebase without stepping on each other. I set up the workflow that made that safe.

Branching strategy

Established feature-branch workflow with a protected main — every change landed through a branch, never a direct push.

Pull-request reviews

Reviewed teammates' PRs and had mine reviewed — catching integration bugs before merge and spreading knowledge of the whole codebase.

Code standards

Enforced shared conventions across the team so four people's code read like one person wrote it.

Stack

HTML / CSS JavaScript Spring Boot REST Git · PR workflow Agile / SDLC