Projects

( project )

7,000+ users, 1,000+ new users every year

ACM AI Site

users
7,000+
new users a year
1,000+

Problem

ACM AI is an inclusive community of students at UC San Diego interested in artificial intelligence. Workshops, competitions, socials, and projects only work if people can find them, join them, and come back next year.

A Discord and a quarterly flyer do not scale to thousands of students. The org needed a public site that is also a membership surface.

What I built

ai.acmucsd.com is the official ACM AI site. I lead the org as president, and I treat this site as the product people actually touch: about, events, competitions, projects, and account login and registration.

The frontend is React and TypeScript with Ant Design and React Router, talking to a separate API over Axios. Chart.js shows competition and community stats. Local development wires to an Express API and a MongoDB container.

The repo is maintained by ACM AI's development team. New pages have to land as routes in App.tsx so the site stays one app as board members turn over.

How it works

Public pages cover the org, events, competitions, and projects. Auth pages handle login, registration, and password reset so members have a durable account instead of a one-off form.

Workshop material lives in the ACM AI wiki, linked from the site, so talks from AI School (data preprocessing, computer vision, deep learning) stay reachable after the quarter ends.

Challenges

This is a long-lived Create React App codebase with rewired webpack, Less, and Ant Design. Shipping a feature means respecting an architecture that predates the current board.

The site and the API are separate. Local setup needs a Mongo container and a director-gated backend, which is the right split for student credentials, yet it makes onboarding slower than a single repo.

Student orgs rotate. If routing, content, and contribution rules are implicit, the site rots between presidents. Making the path to a new page obvious was part of keeping it alive.

Impact

The site serves 7,000+ users, with 1,000+ new users every year. That is the funnel into workshops, competitions, and projects for the org.

As president I also run the board and events side (25+ board members, 30+ events, 10,000+ students a year). The site is how that scale stays legible to someone who has never heard of ACM AI.

What I learned

Org software is a maintenance problem. The useful work is often a route, a copy pass, or an API contract that the next developer can find.

Reach is the metric that matters here, not novelty in the stack. 7,000+ accounts means broken auth or a missing events page is a community failure, not a side project bug.

Leading the org and owning the site are the same job from the reader's side. They do not care which repo shipped the button. They care that the event exists and they can join.

React · TypeScript · Ant Design · React Router · Express · Chart.js · Axios