ResearchBridge is a platform that connects high-school students with professor-led research opportunities. It helps students find professors whose research interests align with their skills and interests, and enables them to reach out with personalized emails.
- AI-Powered Resume Parsing: Extracts skills, interests, and background to find perfect professor matches
- Professor Matching: Algorithm matches students with professors based on research interests alignment
- Email Generation: Creates customized outreach emails for professors
- Dashboard: Tracks matches, emails, and referrals
- Referral System: Allows users to earn credits by referring friends
- Frontend: React 18, TypeScript, Tailwind CSS
- UI Components: shadcn/ui
- Routing: react-router-dom
- State Management: Zustand
- Forms & Validation: react-hook-form + zod
- Icons: lucide-react
- Animations: framer-motion
- Clone the repository
git clone <repository-url>
cd research-bridge- Install dependencies
npm install- Run the development server
npm run devThe current implementation uses mock data and simulated API calls. To connect to a real back-end:
-
Resume Parsing API:
- Replace the
useResumeParsehook insrc/lib/store.tswith actual API calls to your resume parsing service. - Ensure your API returns data in a format compatible with the
Resumeinterface.
- Replace the
-
User Authentication:
- Set up Firebase Authentication or your preferred auth service.
- Replace the mock authentication in the
Signup.tsxcomponent with real auth calls.
-
Professor Database:
- Replace the
mockProfessorsarray insrc/lib/store.tswith API calls to fetch professors from your database. - The API should return data compatible with the
Professorinterface.
- Replace the
-
Email Generation:
- Connect the email generation functionality in
ProfessorCard.tsxto your actual email generation service. - Ensure your API returns email content that can be displayed in the dialog.
- Connect the email generation functionality in
-
Subscription Management:
- Implement a payment gateway (Stripe, PayPal, etc.) to handle subscription payments.
- Update the subscription logic in the
Pricing.tsxcomponent.
/src/components: UI components organized by feature/ui: shadcn UI components/landing: Components for the landing page/dashboard: Components for the dashboard/shared: Shared components (NavBar, Footer, etc.)
/src/pages: Page components for each route/src/lib: Shared utility functions and store/src/hooks: Custom React hooks
Run tests with:
npm test