Back to list
UniReview - University Rating Platform

UniReview - University Rating Platform

2025
Next.jsReactTypeScriptPostgreSQLDrizzle ORMSupabase AuthSupabase StorageTailwind CSSZodBiomePlausible AnalyticsRailwayGoogle OAuth

About the Project

Complete web platform for rating and comparing Brazilian universities, functioning as a Glassdoor for higher education. The system allows verified students to rate their institutions across 5 dimensions (Faculty, Infrastructure, Employment, Cost, and Social), with automatic overall score calculation.

Features robust authentication via Google OAuth and email/password through Supabase Auth, with automatic institutional domain verification (.edu.br). Users without institutional email can submit supporting documents for manual admin verification. Multi-step onboarding flow collects university, course, enrollment year, state, academic tag, and residency type.

Core features include a review system with administrative moderation, aggregated rankings with filters by state and institution type (public/private), side-by-side comparator for up to 3 universities, and a forum with threads, nested comments, and upvote/downvote system with denormalized counts.

Complete admin panel with moderation queue for reviews and posts, user management with ban functionality, university and course CRUD with merge capability, verification request review with signed Supabase Storage URLs, and dashboard with aggregate statistics.

Architecture uses Next.js 15 with App Router, combining Server Components for data fetching via Drizzle ORM with Client Components for interactivity. Middleware implements a 3-step gate (onboarding, verification, mandatory review). In-memory rate limiting with sliding window, rankings cache with 5-minute TTL, and soft delete across all main entities.

Custom brutalist design system with Tailwind CSS v4. Privacy-friendly analytics via self-hosted Plausible on Railway, with custom event tracking for signups, reviews, forum posts, and searches.

UniReview - University Rating Platform - Guilherme Torres