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 dataTeamContext: 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 stateusePermissions(): Role-based accessuseTeamContext(): 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
- User logs in via Supabase Auth
- Auth state managed by context
- Protected routes check permissions
- 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