Available
Ask me anything

Ask anything about Anu —
his work, skills, or experience.

Ask me anything

Nexus Portal

Full-stack SaaS platform for academic mentorship — built and shipped in 11 days with 31,900+ lines of production code

Nexus Premedical Advising·Sole Developer·2025

Situation

Nexus Premedical Advising connects pre-med students with mentors who guide them through the college admissions process. The founder, James Ramos, was managing his growing mentorship business across scattered tools: Google Sheets for tracking students, manual invoicing, email threads for scheduling, and GoHighLevel as a CRM.

As the business grew, this workflow broke down. New students and parents had no self-service onboarding. Scheduling required back-and-forth emails. Billing was manual and error-prone with no support for package pricing. There was no visibility into business metrics like churn, revenue, or mentor costs. And there was no way for parents to see their child's progress or provide feedback.

He needed a unified platform that every stakeholder — admins, mentors, students, and parents — could use from a single login.

Task

I was the sole developer — responsible for architecture, database design, API development, frontend, integrations, testing, and deployment. The goal was to build and ship a production-ready multi-tenant SaaS platform with four distinct role-based portals, real-time billing automation, CRM integration, and a full analytics suite.

The tech stack: Next.js 16 with React 19 and App Router, Supabase (PostgreSQL with Row Level Security), Stripe for payments, GoHighLevel for two-way CRM sync, Google Calendar + Meet for session scheduling, Resend for transactional emails, and Recharts for KPI visualisations. 49 API endpoints, 22 database migrations, 206 tests.

Action

Role-based dashboards

Each user type gets a tailored experience. The admin dashboard provides full control over users, billing, pricing, sessions, payouts, CRM sync, handbook content, and KPIs. Mentors manage their availability, track sessions, view their student roster and earnings. Students book sessions and view upcoming appointments. Parents manage payments, view billing history, and submit feedback.

Unified pricing system

One of the more complex features. James wanted a single pricing plan per tier that handles both monthly subscriptions and one-time package payments. The admin creates a plan with just the monthly price and a discount percentage. The package price auto-calculates based on the student's grade level and months remaining until their next academic phase transition (August 1st).

Formula: Monthly Price × Months Remaining × (1 − Discount%). Parents choose monthly or pay-in-full at checkout. Package students see a green "Paid in Full" status instead of monthly billing.

Session management with calendar integration

Mentors set weekly availability windows and date-specific overrides. Students browse open slots and book sessions, which automatically create Google Calendar events with Meet links, send email confirmations to all parties, enforce booking cutoffs, and trigger 1-hour reminder emails. A 24-hour cancellation policy with forfeiture notice keeps things fair.

GoHighLevel CRM integration

Two-way sync between the portal and GoHighLevel. Inbound: when James tags a student or parent in GHL, a webhook fires and creates their portal account, links student-parent pairs, and triggers onboarding. Outbound: profile changes, pricing data, and session data push back to GHL as custom contact fields. Smart onboarding ensures parents don't receive their payment email until both the student and parent are tagged AND a plan is assigned — order of tagging doesn't matter.

KPI dashboard

Real-time business analytics: MRR, Gross Profit, Lifetime Gross Profit per student, CAC, LTV, ROAS with manual adspend input, churn rate, sales velocity, cost of service, average retention time, and effective bill rate. Each KPI card is clickable, expanding to show a monthly trend chart. A summary table breaks down all metrics by month.

Feedback system

Three feedback channels: app feedback visible only to admins, anonymous mentor feedback visible only to admins, and direct mentor feedback visible to both the mentor and admins. This gives James full visibility into program quality while keeping anonymity where it matters.

Billing and access control

Students can't access their dashboard until their parent completes payment. Package parents see "Paid in Full"; monthly parents see upcoming charges. 30-day renewal banners before package expiration. Automatic lockout when overdue. Mentor pay auto-updates when students change plans. A grade promotion cron runs August 1st, advancing every student's grade level.

Admin tools

User management with role-based filters and a pending mentor assignment section. A consolidated modal for assigning both mentor and plan in one step. Handbook content editor with per-role targeting and video embed support. Mentor payroll tracking with custom rates and bonuses. Google Drive auto-folder creation for each student from a template.

Technical Highlights

  • Row Level Security on every Supabase table — no data leaks between roles
  • CSRF protection, rate limiting, webhook signature verification for Stripe and GHL
  • All input validated with Zod schemas at API boundaries
  • Server Components for initial data fetching, parallel Supabase queries on dashboard pages
  • Loading skeletons for every page transition, mobile-responsive tables with column hiding
  • 206 tests across 27 test files running in under 1 second via Vitest
  • 22 database migrations managing schema evolution across 6 milestones

Timeline

M1
Auth, roles, database schema, dashboard shellsDay 1
M2
Billing, Stripe integration, access control, pricingDay 2–3
M3
Sessions, Google Calendar integration, availabilityDay 4–5
M4
GHL webhooks, notifications, admin tools, handbookDay 6–7
M5
12 quick fixes from client reviewDay 8–9
M6
Unified pricing, KPI dashboard, onboarding, two-way CRM syncDay 10–11

Result

  • 83 commits, 31,900+ lines of code, 221 files, 49 API endpoints, 38 pages
  • Built and deployed in 11 days from first commit to final delivery
  • Zero critical bugs reported across 6 milestones of iterative client review
  • Client approved all milestones on first or second review
  • Platform handles the full business lifecycle: lead capture to onboarding to payment to session delivery to analytics

Tech Stack

Next.js 16React 19TypeScriptSupabasePostgreSQLStripeGoHighLevelGoogle CalendarGoogle MeetGoogle DriveResendRechartsTailwind CSS v4VitestVercelZod