Skip to main content

Web App Overview

The FindU web app is a React-based dashboard that enables schools, partners, and admissions teams to manage their presence, view analytics, and communicate with prospective students.
Tech Stack: React 19 + TypeScript + Vite + Tailwind CSS + shadcn/ui Features: Partner management, team collaboration, real-time analytics, messaging center

Architecture

The web app follows a modern React architecture with these key principles:

Component Structure

State Management

We use a combination of:
  • React Context for global state:
    • AuthContext: Authentication and user data
    • TeamContext: Multi-team/organization support
  • Local state for component-specific data
  • Supabase real-time for live updates (messages, analytics)
  • Custom hooks for shared logic:
    • useAuth(): Authentication state
    • usePermissions(): Role-based access
    • useTeamContext(): Current team/entity

Data Flow

Key Features

Partner Dashboard

  • Real-time Analytics: Student interactions, engagement metrics
  • Campaign Management: Track and filter prospective students
  • Geographic Visualization: Interactive state map of reach
  • Insights Panel: Top concerns, popular features

Team Management

  • Multi-Organization Support: Universities, companies, nonprofits
  • Entity Management: Departments, programs, offices
  • Role-Based Access: Admin, Staff, Counselor roles
  • Invitation System: Email-based team invitations

Messaging Center

  • Real-time Chat: Direct communication with students
  • Bulk Messaging: Reach multiple students at once
  • Message Templates: Quick responses to common questions
  • Conversation History: Full chat records

Profile Builder

  • Dynamic Sections: Drag-and-drop content blocks
  • Live Preview: Mobile-optimized preview
  • Media Management: Images, statistics, highlights
  • Partner Tags: Categorization and discovery

Scholarship Management

  • Create & Edit: Full scholarship lifecycle
  • Tracking: Impressions, saves, applications
  • Requirements: Eligibility criteria
  • Deadlines: Open/close date management

Authentication Flow

  1. User logs in via Supabase Auth
  2. Auth state managed by context
  3. Protected routes check permissions
  4. Role-based UI rendering

Real-time Updates

The app uses Supabase subscriptions for:
  • New messages
  • Student interactions
  • Analytics updates
  • Team member changes

Development Patterns

Component Patterns

Team Context Usage

Error Handling

  • Global error boundary for crashes
  • Toast notifications for user feedback
  • Graceful degradation for missing data

Performance Considerations

Code Splitting

  • Route-based splitting with React.lazy
  • Component lazy loading for heavy features
  • Dynamic imports for optional features

Optimization Techniques

  • React.memo for expensive components
  • useMemo/useCallback for computations
  • Virtual scrolling for large lists
  • Image lazy loading

Caching Strategy

  • SWR pattern for data fetching
  • Local storage for user preferences
  • Session storage for temporary data

Deployment Architecture

The web app follows a dev/main deployment pattern:

Development Environment

  • Branch: dev
  • URL: findu-web-dev.up.railway.app
  • Auto-deploy: On merge to dev
  • Purpose: Testing new features

Production Environment

  • Branch: main
  • URL: findu-web-production.up.railway.app
  • Auto-deploy: On merge to main
  • Requirements: PR from dev branch

Build Configuration

Next Steps