Skip to content

emixor/inVision-selector

Repository files navigation

inVision Selector — University Admissions Edition

⚠️ SUPPORT TOOL ONLY — This system assists admissions committee decision-making. All final decisions must be made by the committee.

What It Does

inVision Selector is an AI-powered student application evaluation support system for university admissions. It helps admissions committees make more informed decisions by:

  • Importing student data from any format — PDFs, DOCX, XLSX, images, audio, video, ZIP archives
  • Analyzing applications across 6 dimensions: Academic Merit, Motivation, Extracurriculars, Growth Trajectory, Essay Authenticity, and Recommendations
  • Detecting AI-generated essays using stylometric analysis and LLM evaluation
  • Scoring candidates on a 0-100 scale with full explainability
  • Identifying strengths and weaknesses for each applicant
  • Mitigating bias by explicitly checking for demographic/socio-economic proxy scoring
  • Managing committee decisions (admit, waitlist, deny, defer, conditional)

Key Features

📁 Universal File Import

Upload any file type for student applications:

  • Documents: PDF, DOCX, DOC, TXT, RTF, ODT, TEX
  • Spreadsheets: XLSX, XLS, CSV, ODS
  • Images: JPG, PNG, GIF, BMP, TIFF, WEBP, HEIC
  • Presentations: PPTX, PPT, ODP
  • Audio/Video: MP3, WAV, MP4, MOV, etc. (Whisper transcription)
  • Archives: ZIP, RAR, 7Z (bundled submissions)

Text is automatically extracted from supported formats. Missing data displays as N/A — never penalized.

⚙️ Configurable LLM Model

Change the AI model from the UI settings panel. Defaults to Qwen 2.5 3B (fast, efficient):

  • Qwen 2.5 3B (recommended default)
  • Phi-3 Mini, Llama 3.2 3B, Gemma 2 2B
  • Mistral 7B, Llama 3.1 8B, Qwen 2.5 7B
  • Custom model names

📊 Six Evaluation Dimensions

Dimension Weight What It Measures
Academic Merit 25% GPA, test scores, course rigor, achievements
Motivation 20% Program fit, genuine interest, career vision
Extracurriculars 20% Activities, leadership, community involvement
Growth Trajectory 15% Path traveled, resilience, learning from setbacks
Essay Authenticity 10% Human-written vs. AI-generated detection
Recommendations 10% Quality and specificity of recommendation letters

Quick Start

Prerequisites

  1. Python 3.10+
  2. Ollama installed and running
    # Install Ollama from https://ollama.ai
    # Pull a small model (default):
    ollama pull qwen2.5:3b

Installation & Run

cd invision-selector
pip install -r requirements.txt

# Optional: install document extraction support
pip install PyPDF2 python-docx openpyxl

# Start the server
uvicorn src.main:app --reload --host 0.0.0.0 --port 8000

Windows: Run run.bat

Open http://localhost:8000 — 6 demo students auto-generated on first run.

API Endpoints

Endpoint Method Description
/ GET Dashboard
/api/health GET Health check + model info
/api/students GET/POST List / create student applications
/api/students/{id} GET/PUT Get / update student application
/api/students/{id}/documents POST Upload a document
/api/students/{id}/documents/batch POST Upload multiple documents
/api/documents/{id}/download GET Download a document
/api/students/{id}/analyze POST Trigger AI analysis
/api/students/{id}/notes PUT Update committee notes
/api/students/{id}/decision PUT Record committee decision
/api/ranking GET Ranked student list
/api/settings/model GET/PUT Get / change LLM model
/api/demo/reset POST Reset demo data

Dependencies

  • fastapi — Web framework
  • uvicorn — ASGI server
  • aiosqlite — Async SQLite
  • httpx — Async HTTP client (for Ollama)
  • openai — Whisper API (optional)
  • pydantic — Data validation

Optional (for document extraction)

  • PyPDF2 or pdfplumber — PDF text extraction
  • python-docx — DOCX text extraction
  • openpyxl — XLSX text extraction
  • python-pptx — PPTX text extraction

License

Hackathon prototype — for demonstration purposes.

About

No description, website, or topics provided.

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors