Skip to content

Latest commit

 

History

127 Commits

Folders and files

NameName
Last commit message
Last commit date
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Antigravity Research Match

A smart research professor matching platform that helps students find and connect with professors based on research interests, using AI-powered semantic matching.

Features

  • 🔍 Intelligent Professor Discovery - AI-powered search across multiple academic databases
  • 🎯 Research Matching - Semantic matching between student interests and professor research
  • 📧 Email Outreach - Integrated email drafting and management
  • 💬 AI Chatbot - Dual-mode chatbot (basic RAG + deep mining)
  • 📊 Pipeline Management - Track and manage professor outreach status

Tech Stack

  • Frontend: Next.js 14, React, TypeScript, Tailwind CSS
  • Backend: FastAPI, Python
  • Database: Supabase (PostgreSQL)
  • AI/LLM: Google Vertex AI / Gemini
  • APIs: OpenAlex, Tavily, Brave Search

Getting Started

Prerequisites

  • Node.js 18+ (see .nvmrc)
  • Python 3.10+
  • Supabase account (or local Supabase CLI)

Installation

  1. Clone the repository

    git clone https://github.com/yourusername/antigravity_research_match.git
    cd antigravity_research_match
  2. Set up environment variables

    # Root directory (frontend)
    cp .env.example .env.local
    
    # Backend
    cp backend/.env.example backend/.env

    Fill in your API keys and Supabase credentials in both files.

  3. Install frontend dependencies

    npm install
  4. Install backend dependencies

    cd backend
    python -m venv .venv
    .venv/Scripts/activate  # Windows
    # source .venv/bin/activate  # macOS/Linux
    pip install -r requirements.txt
  5. Set up Supabase

    # If using local Supabase
    supabase start
    
    # Apply migrations
    supabase db push

Running the Application

Start the backend:

# Windows
.\start_backend.ps1

# macOS/Linux
./start_backend.sh

Start the frontend:

npm run dev

Open http://localhost:3000 in your browser.

Environment Variables

See .env.example for a complete list of required environment variables.

Required API Keys

Variable Description Get it from
NEXT_PUBLIC_SUPABASE_URL Supabase project URL Supabase Dashboard
NEXT_PUBLIC_SUPABASE_ANON_KEY Supabase anon key Supabase Dashboard
SUPABASE_SERVICE_ROLE_KEY Supabase service role key Supabase Dashboard
GEMINI_API_KEY or VERTEX_AI_* Google AI credentials Google AI Studio
OPENALEX_API_KEY OpenAlex API key OpenAlex

Project Structure

antigravity_research_match/
├── src/                    # Next.js frontend source
│   ├── app/               # App router pages
│   ├── components/        # React components
│   └── lib/               # Utilities and API clients
├── backend/               # FastAPI backend
│   ├── api/              # API endpoints
│   ├── services/         # Business logic
│   └── tests/            # Backend tests
├── supabase/              # Supabase configuration
│   ├── functions/        # Edge functions
│   └── migrations/       # Database migrations
└── public/                # Static assets

Deployment

Railway (Backend)

See Dockerfile.backend for container configuration.

Vercel (Frontend)

The frontend can be deployed directly to Vercel.

Supabase

Database and edge functions are managed through Supabase Cloud.

Contributing

  1. Fork the repository
  2. Create a feature branch (git checkout -b feature/amazing-feature)
  3. Commit your changes (git commit -m 'Add amazing feature')
  4. Push to the branch (git push origin feature/amazing-feature)
  5. Open a Pull Request

Security

  • Never commit .env, .env.local, or credentials.json files
  • All secrets should be managed via environment variables
  • See .gitignore for excluded files

License

This project is private. All rights reserved.

About

MVP project

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages