Github
Intro
Built a mobile-first app service that helps university students explore grade distributions, share course reviews, and connect with peers through real-time chat.
- Designed the mobile client in React Native (Expo EAS), focusing on accessibility and real-time interaction.
- Implemented the backend in Next.js (Node.js, Express-style API) with PostgreSQL for persistent data management.
- Integrated the Madgrades API to provide official UW–Madison grade distributions.
- Enabled real-time course-based chatrooms using Firebase Realtime Database for lightweight scalability.
Tech Stack
- Languages: TypeScript
- Mobile Client: React Native (Expo EAS), Tailwind CSS (responsive UI)
- Backend / API: Next.js (App Router, file-based API routes), structured in an Express-style REST pattern
- Database: PostgreSQL (Neon DB), managed with Prisma ORM & migrations
- Authentication: Firebase Authentication (JWT, custom claims)
- Real-time Communication: Firebase Realtime Database (auto-generated course chatrooms, 1:1 & group chat)
- External Data Integration: Madgrades API (official UW–Madison grade distributions)
- Deployment / Infra: Vercel (Next.js API backend), Expo EAS (mobile builds), Docker (local dev)
Key Contribution
- Built backend APIs in Next.js (App Router) with an Express-style REST structure, covering courses, reviews, instructors, and stats.
- Integrated the Madgrades API and aggregated 900k+ course, section, grade, and review records into a normalized PostgreSQL schema through resilient ingestion pipelines (batching, bounded parallelism, exponential backoff), ensuring reliability and consistency at scale.