Skip to content

harshagarwalnyu/nyu-course-search

Repository files navigation

NYU Course Navigator 🎓

A production-grade semantic course search platform for NYU students (Feb 2026)

Docker Python 3.11+ React 19 License: MIT

A robust, full-stack application to scrape, index, and semantically search 19,000+ NYU courses. Built with FastAPI, React 19, PostgreSQL (pgvector), and Redis.


⚡ Quick Start (Windows, Mac, Linux)

1. Clone the repository:

git clone https://github.com/harshagarwalnyu/nyu-course-search.git
cd nyu-course-search

2. Setup Environment Variables: Copy .env.example to .env and fill in your API keys (see API Keys section).

cp .env.example .env

3. Start the application:

# Option 1: Start Core Stack (Backend, Frontend, DB, Redis) - Recommended
make dev

# Option 2: Start Full Stack (Includes Neo4j & Workers)
make dev-full

Access the application:


🚀 Features

  • 🧠 AI Semantic Search: Find courses by concept (e.g. "ethics in AI") using pgvector.
  • 🔐 NYU Auth Wall: Strict student-only access via @nyu.edu OTP verification.
  • 📊 Massive Index: Over 19,000 courses scraped from NYU Bulletin and Albert.
  • 🎨 Modern Dashboard: Responsive UI with dark mode, real-time filtering, and "Thinking UI" traces.
  • Optimized Dev: Docker profiles for fast startup and uv for lightning-fast Python installs.

🔑 API Keys

To enable AI features, add these keys to your .env:

Service Key Name Purpose Cost
Hugging Face HF_INFERENCE_API_KEY Vector Embeddings Free
Jina AI JINA_API_KEY Search Reranking Free Tier
Groq GROQ_API_KEY Llama 4 Reasoning Free Beta
OpenRouter OPENROUTER_API_KEY Graph Extraction Cheap

🛠️ Available Commands

Command Action
make setup Initial build and dependency pull
make dev Start Core stack in background (Fast)
make dev-full Start All services (Neo4j, Temporal, Workers)
make logs-core View live logs for the core application
make build Rebuild all containers in parallel
make clean Stop and wipe all data/containers
make migrate-embeddings Regenerate all 19k course vectors

🏗️ Architecture

  • Backend: FastAPI (Python 3.11) + Celery (Workers)
  • Frontend: React 19 + Vite + Tailwind CSS 4.0
  • Database: PostgreSQL 17 + pgvector
  • Cache: Redis 7.4
  • Intelligence: Neo4j (Knowledge Graph) + Temporal (Durable Workflows)

🧪 Testing

make test          # Run all tests
make test-backend  # Backend only
make test-frontend # Frontend only

🤝 Contributing

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

Built with ❤️ for the NYU community by Harsh Agarwal

About

No description, website, or topics provided.

Resources

Contributing

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors