02
Sigma Nu Rush & Member Portal
- 2025 —
- Sole engineer · chapter CTO
- 1,000+ USERS · IN PRODUCTION
- Live (opens in new tab)
- Problem
- Rush ran on spreadsheets, group chats and a legacy site. Attendance, applicant tracking and chapter information lived in five places and turned over with every officer.
- My role
- Designed and built the frontend and backend, migrated the legacy site's content, and now run it as the chapter's Chief Technician Officer.
- Stack
- React · TypeScript · Vite · Python · FastAPI · Vercel
- Outcome
- In production since 2025 with 1,000+ active users across rushees, brothers, alumni and parents; the legacy site was retired.

Problem
Sigma Nu at ASU runs a multi-week rush every semester. Before this, who showed up to which event was a clipboard, applicant status was a shared spreadsheet, and chapter history, officer lists, FAQs and event calendars were scattered across a legacy website nobody could edit.
Every spring the officers turn over, so anything that depends on one person knowing where the spreadsheet lives breaks within a year.
What I built
The platform does two jobs. For rush, prospective members register, get a profile and move through the process while the rush committee tracks them; attendance at events is checked in with geofencing, so a sign-in only counts if you are actually there; and an admin dashboard shows the committee who is engaged and where the funnel leaks.
For the chapter, it is the portal: the information library carried over from the legacy site (LEAD program, creed, history, officers), newsletters and events, the brotherhood roster, apparel orders for pickup, alumni and parent hubs, and a news archive. The old site was retired once everything lived here.
- React + TypeScript SPA (Vite) on Vercel
- Rush flows, portal and admin dashboard
- Python FastAPI backend
- Registration, attendance, applicant state, content and order endpoints
- Geofenced check-in
- Browser geolocation validated server-side against each event's coordinates and radius
- Role-based views
- Rushee, brother, rush committee and admin see different surfaces of the same app
- Content migration
- Every legacy page mapped into the new information architecture: About, Recruitment, Philanthropy, Parents & Alumni
Technical decisions
- 01
Geofence attendance instead of trusting a sign-in link.
Rush attendance drives bid decisions, so a link anyone can forward is worthless. A check-in only counts if the device's location is inside the event's radius, validated on the server, which made attendance data the committee could rely on.
Trade-offLocation permission prompts add friction on first use.
- 02
Build for operators who leave every year.
Officers turn over annually, so every recurring task — opening a rush cycle, adding an event, publishing a newsletter, updating officers — is a form in the admin dashboard, not a code change or a spreadsheet someone has to find.
- 03
Replace the legacy site completely rather than link to it.
Two homes means stale information in one of them. Mapping every legacy page into the new structure was tedious, but it means there is one place for a parent, an alum or a rushee to look.
- 04
Give the rush committee analytics, not just a list.
Attendance by event and where applicants drop off is what the committee needs to decide who to follow up with, which is the point of collecting the data.
Outcome
- 1,000+ active users across prospective members, brothers, alumni and parents.
- Rush attendance, applicant tracking and chapter communications run through the platform; the legacy website was retired.
- Elected Chief Technician Officer of the chapter in 2026, so I now own the roadmap as well as the code.
Stack
- TypeScript
- Frontend types shared across rushee, brother and admin views
- Python
- Backend language
- React
- SPA for rush flows, portal and admin dashboard
- Vite
- Build tooling and dev server
- FastAPI
- Registration, attendance, applicant state, content and order endpoints
- REST API design
- Resource-oriented endpoints consumed by the SPA
- Vercel
- Static hosting for the SPA