CST 499 - Computer Science Capstone

SUMMER 2026 · SHIPPED TO PRODUCTION AT COMICSEEN.COM

Course Overview

CST 499 is the build half of the capstone. Teams take the proposal approved in CST 489 and deliver it: requirements specification, solution plan, design, implementation, testing, and a final demonstration. The course runs like a work environment, with faculty acting as project manager and students expected to be self directed, make measurable progress each week, and raise blockers rather than sit on them.

My team built into ComicSeen, a live commercial booking platform for the stand-up comedy scene, mentored by founder Justin Greenberg. All four proposed features were completed, merged, and deployed. The platform is in production and used by working comedy producers and comedians.

Spring Boot 3.2.4 Java 22 React MySQL WebSocket / STOMP Docker Kubernetes GitHub Actions

Course Outcomes

The Live Platform

ComicSeen is a working product used by comedians and producers. All four features described below shipped into it.

Visit ComicSeen →

The source is a private, client-owned codebase. Under our Student Software Development Agreement the repository and company IP remain the property of ComicSeen, so it isn't published here.

What the Team Shipped

Four features, one codebase. They share the same authentication layer, user model, and database, so they are integrated parts of one product rather than four separate add-ons. Messaging, signups, and the show and booking flows all publish into the same notification pipeline, so a new message, a signup, or a cancellation travels one shared path.

My contribution: the event-driven notification system

I replaced a tightly coupled notification model, where email was sent inline inside transactional business methods, with an event-driven system built on Spring application events. Business services now publish a domain event and know nothing about email. A listener resolves the recipient, checks that user's notification preference, and only then sends.

Scope changes during the build

The core objectives held, but scope moved with the mentor. Notifications expanded to include show cancellation and lineup change emails. Messaging grew to cover producer to producer conversations. Availability moved to phased delivery: the dashboard calendar shipped to production while the booking workflow, though feature complete, waits behind an upcoming paid subscription tier, a sequencing decision by the platform owner. Testing also grew well beyond the unit tests we originally proposed.

Testing and Evaluation Report

We ran moderated usability sessions with four testers matched to the platform's two personas. Abdullah tested the producer workflow. Aline, Sabrina, and Steven acted as comedian-persona testers. Each tester thought aloud while a team observer took notes, exercising the workflows on the live production platform, with the availability booking workflow tested on a development build. I coordinated the sessions and assembled the report, with each member authoring the results for their own feature area.

Results

Changes driven by testing

Before the festival: route the Sign Up button directly to registration, and surface bookings on the comedian dashboard. Longer term: introduce the EPK term with a plain explanation, add an in-app notification center and settings, deploy the booking workflow with the subscription tier, and pursue the EPK interface refinements, which need the platform owner's approval since they change a live product.

Full Testing and Evaluation Report:

Download PDF

Project Archive and Source Code

The ComicSeen repository is private and owned by our industry mentor, who runs ComicSeen as an active commercial business. The codebase is his intellectual property and handles real user data, so it cannot be redistributed outside his ownership. We confirmed this constraint with him directly.

Rather than excerpt fragments of proprietary source, the team documented the work through three forms of evidence that can be verified without repository access: the deployed product itself at comicseen.com, pull request records for each team member showing every change they made across the semester, and the testing and evaluation report above.

Read the full project archive notes

What I Took From This Course

Shipping into a production codebase with real users changed what "done" meant. A refactor that works on my machine is not the deliverable. The deliverable is a change that cannot send a confirmation email for a signup that failed, cannot block a user's response on a third party API, and does not break the five other things touching the same pipeline. Most of my engineering judgment this semester went into transaction boundaries and failure modes rather than features.

The usability sessions were the other lesson. Every tester finished every task, which could easily have been read as a clean result, but watching three of them click the wrong Sign Up button in a row surfaced a real defect that no test suite would have caught. Working with a client who owns the product also meant accepting that some completed work ships on his schedule rather than mine, which is closer to how engineering actually works than any previous course.

← Back to Courses