Skip to main content
Tayyab Manan
Home
Alt+H
Projects
Alt+P
Blog
Alt+B
About
Alt+A
Contact
Alt+C
Resume
Tayyab Manan
HomeProjectsBlogAboutContactResume
  1. Home
  2. Projects
  3. Web Application

TeacherRank

Student-Driven Teacher Review Platform

A teacher rating and review platform that lets students share structured feedback about educators across multiple dimensions, helping others make more informed decisions during course registration. Built with React, TypeScript, and Supabase.

January 2025
ReactTypeScriptSupabaseTanStack QueryReact RouterTailwind CSSDaisyUIViteReact Hook FormZod
Live DemoSource Code
Previous projectEV Suitability AnalysisNext project WaterTrace Pakistan
Back to all projects
HomeProjectsBlogAboutContactResume
 

Islamabad, Pakistan · UTC+5

Tayyab Manan

©

    Overview

    TeacherRank is a web app that lets students rate and review their teachers across multiple dimensions instead of reducing them to a single number. The platform supports ratings for teaching quality, communication, helpfulness, and course difficulty, with real-time data sync and a responsive interface. The goal is to help students make better decisions during course registration while giving institutions useful feedback.

    Read the full technical deep-dive →

    the live index · 377 teachers, 59 reviews, ranked
    the live index · 377 teachers, 59 reviews, ranked

    Key Features

    • Multi-Dimensional Ratings: Separate scores for teaching quality, communication, helpfulness, and course difficulty
    • Search & Filtering: Find teachers by name, subject, institution, or rating with real-time results
    • User Authentication: Login with email verification and password recovery via Supabase
    • Teacher Profiles: Detailed pages with ratings breakdown, student reviews, and teaching statistics
    • Institution Management: Browse teachers organized by educational institution
    • Admin Dashboard: Admin panel for managing teachers, reviews, and user reports
    • Real-time Updates: Live data sync using Supabase subscriptions with TanStack Query cache invalidation
    • Mobile-First Design: Responsive interface that works on phones first, desktops second

    Technical Architecture

    Built with React 18 and TypeScript, using Vite for fast builds and hot module replacement. Supabase handles the backend: authentication, real-time database, and row-level security at the PostgreSQL level. TanStack Query manages server state with stale-while-revalidate caching. The UI uses Tailwind CSS and DaisyUI components.

    Performance Optimizations

    OptimizationImpact
    Code SplittingRoute-based lazy loading cuts initial bundle size by 60%
    Virtual ScrollingRenders only visible teacher cards using @tanstack/react-virtual
    Image OptimizationLazy loading with WebP support and responsive sizing
    Caching StrategyStale-while-revalidate pattern via TanStack Query
    Bundle CompressionBrotli compression reducing asset sizes by up to 80%
    PWA FeaturesService worker for offline functionality

    User Experience

    FeatureDescription
    Protected RoutesAuth-gated access for review submission and admin features
    Form ValidationReact Hook Form with Zod schemas for type-safe validation
    Error BoundariesFriendly error states with retry options instead of white screens
    SEODynamic meta tags with React Helmet
    AccessibilityWCAG 2.1 compliant with keyboard navigation and screen reader support
    Dark ModeRespects OS theme preference by default

    Database Design

    TablePurpose
    TeachersEducator profiles with department and contact info
    ReviewsStudent feedback with four-dimensional ratings and timestamps
    InstitutionsEducational organizations with hierarchical structure
    UsersProfiles with role-based access (student vs admin)
    Row-Level SecurityPostgreSQL policies enforcing permissions at the data layer

    Security

    FeatureDescription
    AuthenticationJWT tokens with refresh token rotation (1hr access, 30-day refresh)
    Input SanitizationDOMPurify for XSS protection, Zod for schema validation
    Rate LimitingMax 5 reviews/hour, 20/day per user
    HTTPS + HSTSEnforced encrypted connections
    Content Security PolicyStrict CSP headers for script execution control

    Monitoring

    ToolPurpose
    Vercel AnalyticsTraffic and performance metrics
    Speed InsightsCore Web Vitals monitoring
    SentryError tracking and performance monitoring in production

    Future Enhancements

    Planned additions include sentiment analysis on review text to surface patterns that numeric ratings miss, collaborative filtering to recommend professors based on similar students' preferences, and anomaly detection to flag suspicious review clusters. I'd also like to add automatic topic classification (teaching style, grading, workload) so students can filter reviews by what they care about, and eventually a natural language query interface using RAG so students can ask questions like "Which Data Structures professors have high ratings with manageable workload?"