Skip to content

Repository files navigation

FacultyPulse

Automated monitoring tool for tracking recent activities and achievements of faculty members at Northeastern University's Institute for Experiential Robotics (IER).

Overview

FacultyPulse searches for and verifies recent faculty activities including:

  • Publications
  • Patents
  • Awards & Grants
  • News mentions
  • Conference presentations
  • Seminars

The tool uses Tavily for web search and OpenAI GPT for intelligent filtering and verification. It consists of:

  • Backend API (Flask) - Python-based search and filtering engine
  • Frontend UI (React + TypeScript) - Interactive dashboard for viewing results

Architecture

FacultyPulse/
├── api.py              # Flask REST API backend
├── search.py           # Standalone CLI scanner
├── faculty.json        # Faculty member names
├── .env               # API keys (not in git)
├── frontend/          # React TypeScript UI
│   ├── src/
│   └── package.json
└── requirements.txt   # Python dependencies

Setup

Backend Setup

  1. Install Python dependencies

    pip install -r requirements.txt
  2. Configure API keys

    • Copy .env.example to .env
    • Add your API keys:
      TAVILY_API_KEY=your-tavily-api-key
      OPENAI_API_KEY=your-openai-api-key
      
  3. Start the API server

    python3 api.py

    The API will run on http://localhost:5001

Frontend Setup

  1. Navigate to frontend directory

    cd frontend
  2. Install dependencies

    npm install
  3. Start development server

    npm run dev

    The UI will open at http://localhost:5173

Usage

Using the Web Interface (Recommended)

  1. Start the backend API (python3 api.py)
  2. Start the frontend (cd frontend && npm run dev)
  3. Open the UI in your browser
  4. Click "Run Scan" to search all 40 faculty members
  5. View, filter, and export results

Using the CLI

Run the standalone scanner:

python3 search.py

Results are saved to results.json

API Endpoints

  • GET /api/health - Check API status
  • GET /api/faculty - Get list of faculty names
  • POST /api/scan - Run full scan of all faculty
  • GET /api/results - Get most recent scan results
  • POST /api/scan/<name> - Scan single faculty member

Configuration

  • faculty.json: List of faculty names to monitor
  • Time window: Currently set to 30 days (configurable in api.py and search.py)
  • Search depth: Advanced mode with max 5 results per query

Output

Results are saved to results.json with:

  • Metadata (scan date, time window, counts)
  • Per-faculty results with verified activities
  • Categorized entries (publication, award, grant, etc.)

Requirements

Backend

  • Python 3.7+
  • openai
  • tavily-python
  • python-dotenv
  • flask
  • flask-cors

Frontend

  • Node.js 16+
  • React 18
  • TypeScript
  • Vite

Development

Backend: The Flask API (api.py) provides REST endpoints that the frontend calls. It handles all search and filtering logic.

Frontend: React TypeScript app with Material UI components. Uses Context API for state management.

Standalone: search.py can be run independently for CLI-based scanning.

About

Faculty research activity scanner for IER

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages