YakinRubaiat/UniversityMatch

โ˜… 0Forks 0PythonGitHub โ†—Compare

README

๐ŸŽฏ CampusCompass: AI-Powered University Matching Platform

Python Django React AI Powered License

๐Ÿ† Hackathon Project: An intelligent university matching system that uses AI to crawl university websites in real-time, analyze admission requirements, and provide personalized university recommendations with explainable scoring.

๐ŸŒŸ What Makes This Special

CampusCompass revolutionizes the college application process by combining real-time web crawling, AI-powered content analysis, and intelligent matching algorithms to help students find their perfect university fit. Unlike static databases, our system crawls university websites live to ensure the most up-to-date information.

๐Ÿš€ Key Innovations

  • ๐Ÿค– AI-Powered Web Crawling: Uses Ollama LLM to intelligently analyze university web pages and extract relevant admission information
  • ๐Ÿ“Š Real-Time Analysis: Crawls university websites on-demand to get the latest requirements and program information
  • ๐ŸŽฏ Smart Matching Algorithm: Multi-factor scoring system considering academic fit, research alignment, and program availability
  • ๐Ÿ“ˆ Live Progress Tracking: Real-time updates during the matching process with detailed progress indicators
  • ๐Ÿ“„ Comprehensive Reports: Generates detailed PDF and CSV reports with explanations for each match

๐Ÿ—๏ธ Architecture Overview

โ”Œโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”    โ”Œโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”    โ”Œโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”
โ”‚   React Frontend โ”‚    โ”‚  Django Backend  โ”‚    โ”‚  Ollama AI      โ”‚
โ”‚   (Material UI)  โ”‚โ—„โ”€โ”€โ–บโ”‚  (REST API)      โ”‚โ—„โ”€โ”€โ–บโ”‚  (Local LLM)    โ”‚
โ””โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”˜    โ””โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”˜    โ””โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”˜
                              โ”‚
                              โ–ผ
                    โ”Œโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”
                    โ”‚  Enhanced        โ”‚
                    โ”‚  Web Crawler     โ”‚
                    โ”‚  (Multi-threaded)โ”‚
                    โ””โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”˜
                              โ”‚
                              โ–ผ
                    โ”Œโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”
                    โ”‚  University      โ”‚
                    โ”‚  Websites        โ”‚
                    โ”‚  (Live Data)     โ”‚
                    โ””โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”˜

โœจ Features

๐ŸŽ“ For Students

  • Smart Profile Creation: Upload resume and cover letter for enhanced matching
  • Personalized Matching: Get recommendations based on your academic background, interests, and goals
  • Real-Time Progress: Watch as the system analyzes universities in real-time
  • Detailed Explanations: Understand why each university was recommended
  • Export Options: Download results as PDF reports or CSV files

๐Ÿ” For Researchers & Developers

  • Advanced Crawling Engine: BFS-based crawler with intelligent link prioritization
  • AI Content Analysis: LLM-powered extraction of admission requirements and program details
  • Scalable Architecture: Designed to handle multiple concurrent matching requests
  • Extensible Scoring: Modular scoring system that can be easily customized
  • Rich API: RESTful API for integration with other systems

๐Ÿš€ Quick Start

Prerequisites

  • Python 3.8+
  • Node.js 16+
  • Ollama (recommended for AI features)

1. Backend Setup

# Clone and navigate to project
cd server

# Create virtual environment
python3 -m venv .venv
source .venv/bin/activate  # On Windows: .venv\Scripts\activate

# Install dependencies
pip install -r requirements.txt

# Setup database
python manage.py migrate

# Start Django server
python manage.py runserver 0.0.0.0:8000

2. Frontend Setup

# Navigate to frontend directory
cd frontend

# Install dependencies
npm install

# Start development server
npm run dev

# Open browser to http://localhost:5173

3. AI Setup (Optional but Recommended)

# Install Ollama from https://ollama.com/
# Pull a model (we recommend gpt-oss for best results)
ollama pull gpt-oss

# Ollama will automatically start on http://localhost:11434

๐ŸŽฏ How It Works

1. Profile Creation

Students create detailed profiles including:

  • Academic background (GPA, test scores, degree level)
  • Research interests and career goals
  • Resume and cover letter upload
  • Funding requirements and preferences

2. Intelligent Web Crawling

Our enhanced crawler:

  • Performs BFS traversal of university domains
  • Prioritizes admission and faculty pages
  • Uses AI to identify relevant content
  • Extracts key information like requirements, deadlines, and program details

3. AI-Powered Analysis

The system uses Ollama LLM to:

  • Analyze page content for relevance
  • Extract admission requirements
  • Identify faculty research areas
  • Score content based on student profile

4. Smart Scoring Algorithm

Multi-factor scoring considers:

  • Academic Fit: GPA requirements, test scores, degree level match
  • Research Alignment: Overlap between student interests and faculty research
  • Program Availability: Relevant programs and specializations
  • Content Quality: Depth and recency of information found

5. Comprehensive Reporting

Generate detailed reports with:

  • Ranked university list with scores
  • Explanation for each recommendation
  • Key requirements and deadlines
  • Faculty and research highlights

๐Ÿ”ง API Endpoints

Student Profiles

  • POST /api/profiles - Create/update student profile
  • GET /api/profiles/{id} - Get profile details
  • POST /api/profiles/{id}/resume - Upload resume
  • POST /api/profiles/{id}/cover_letter - Upload cover letter

University Matching

  • GET /api/universities - List available universities
  • POST /api/match - Start matching process
  • GET /api/match/{run_id} - Get matching status and results
  • GET /api/match/{run_id}/download/pdf - Download PDF report
  • GET /api/match/{run_id}/download/csv - Download CSV results

โš™๏ธ Configuration

Environment Variables

# Ollama Configuration
OLLAMA_URL=http://localhost:11434  # Default Ollama endpoint
OLLAMA_MODEL=gpt-oss              # AI model to use

# Crawling Settings
MAX_CRAWL_PAGES=100               # Maximum pages per university
CRAWL_TIMEOUT=5                   # Request timeout in seconds
CRAWL_DEPTH=3                     # Maximum crawl depth

Crawl Settings (Runtime)

{
  "mode": "limited",        // "limited" or "all"
  "max_links": 100,        // Maximum links to crawl
  "timeout": 5,            // Request timeout
  "depth": 3               // Maximum depth
}

๐Ÿง  AI Integration

The system integrates with Ollama for advanced AI capabilities:

  • Content Relevance Scoring: AI evaluates how relevant each page is to the student's profile
  • Information Extraction: Automatically extracts admission requirements, deadlines, and program details
  • Faculty Research Analysis: Identifies faculty members and their research areas
  • Intelligent Link Following: AI decides which links are most likely to contain useful information

If Ollama is not available, the system gracefully falls back to keyword-based analysis.

๐Ÿ“Š Scoring Algorithm

Our sophisticated scoring system uses multiple factors:

# Simplified scoring formula
university_score = (
    academic_fit_score * 0.4 +
    research_alignment_score * 0.3 +
    content_quality_score * 0.2 +
    program_availability_score * 0.1
)

Scoring Components:

  • Academic Fit: Compares student credentials with university requirements
  • Research Alignment: Matches student interests with faculty research
  • Content Quality: Rewards universities with comprehensive, up-to-date information
  • Program Availability: Considers availability of relevant programs and specializations

๐Ÿ› ๏ธ Development

Project Structure

UniversityMatch/
โ”œโ”€โ”€ frontend/                 # React frontend
โ”‚   โ”œโ”€โ”€ src/
โ”‚   โ”‚   โ”œโ”€โ”€ components/      # React components
โ”‚   โ”‚   โ”œโ”€โ”€ context/         # React context providers
โ”‚   โ”‚   โ””โ”€โ”€ assets/          # Static assets
โ”œโ”€โ”€ server/                  # Django backend
โ”‚   โ”œโ”€โ”€ matcher/             # Main application
โ”‚   โ”‚   โ”œโ”€โ”€ models.py        # Database models
โ”‚   โ”‚   โ”œโ”€โ”€ views.py         # API endpoints
โ”‚   โ”‚   โ”œโ”€โ”€ services/        # Business logic
โ”‚   โ”‚   โ”‚   โ”œโ”€โ”€ enhanced_crawler.py
โ”‚   โ”‚   โ”‚   โ”œโ”€โ”€ ollama_client.py
โ”‚   โ”‚   โ”‚   โ””โ”€โ”€ enhanced_university_matcher.py
โ”‚   โ””โ”€โ”€ student_profiles/    # Generated profiles
โ””โ”€โ”€ requirements.txt         # Python dependencies

Key Technologies

  • Backend: Django 4.2+, Django REST Framework
  • Frontend: React 18, Material-UI, Vite
  • AI: Ollama, Local LLM integration
  • Web Crawling: BeautifulSoup, Requests
  • Database: SQLite (development), PostgreSQL (production)

๐ŸŽฏ Hackathon Highlights

Innovation Points

  1. Real-Time Web Crawling: Unlike competitors using static data, we crawl live
  2. AI-Powered Analysis: Uses local LLM for intelligent content understanding
  3. Explainable Recommendations: Every match comes with detailed explanations
  4. Comprehensive Profiling: Supports resume/cover letter analysis
  5. Live Progress Tracking: Real-time updates during the matching process

Technical Achievements

  • Multi-threaded crawling with intelligent prioritization
  • Graceful fallback when AI services are unavailable
  • Responsive real-time UI with progress indicators
  • Comprehensive API with detailed documentation
  • Scalable architecture ready for production deployment

๐Ÿš€ Future Enhancements

  • Resume Parsing: Automatic extraction of skills and experience from resumes
  • Faculty Matching: Direct matching with specific faculty members
  • Application Tracking: Integration with application deadlines and requirements
  • Social Features: Student community and peer recommendations
  • Mobile App: Native mobile applications for iOS and Android

๐Ÿค Contributing

We welcome contributions! This project was built for a hackathon but is designed to be extensible and maintainable.

Development Setup

  1. Fork the repository
  2. Create a feature branch
  3. Make your changes
  4. Add tests if applicable
  5. Submit a pull request

๐Ÿ“„ License

This project is licensed under the MIT License - see the LICENSE file for details.

๐Ÿ™ Acknowledgments

  • Ollama Team for providing excellent local LLM capabilities
  • Django & React Communities for robust frameworks
  • University Websites for providing the data that makes this possible

Built with โค๏ธ for students seeking their perfect university match

This project demonstrates the power of combining AI, web crawling, and intelligent algorithms to solve real-world problems in education.

Contributors

YakinRubaiat

Issues