Skip to content

code-with-idrees/CS-Universities-Admission

Folders and files

NameName
Last commit message
Last commit date

Latest commit

Β 

History

20 Commits
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 

Repository files navigation

πŸŽ“ CS Universities Admission Portal

Your AI-Powered Gateway to Graduate School

React Vite Gemini AI License PRs Welcome


Explore 500+ universities Β· 10,000+ professors Β· 20+ research areas Β· 60+ countries

An intelligently designed, beautifully crafted platform that aggregates global Computer Science graduate program data from CSRankings.org and supercharges it with a built-in Google Gemini AI advisor β€” so you can find your dream university, the perfect professor, and get personalized admission insights, all in one place.


πŸš€ Get Started Β· ✨ Features Β· πŸ“Έ Screenshots Β· πŸ—οΈ Architecture Β· 🀝 Contributing



πŸ”₯ Why This Project?

Applying to grad school is overwhelming. You're juggling hundreds of university pages, sifting through faculty lists, comparing GRE/TOEFL requirements, and trying to match your research interests to the right professors β€” all while wondering if you're even a good fit.

This portal solves that. It puts every piece of information you need in a single, gorgeous interface β€” and backs it up with an AI advisor that actually understands your profile.


✨ Features

πŸ” Intelligent Search & Discovery

Search across universities, professors, countries, and regions β€” all in real time with instant results.

  • Global Coverage β€” Browse universities across 60+ countries spanning North America, Europe, Asia, Australasia, South America, and Africa.
  • Instant Fuzzy Search β€” Type a university name, professor, or country and see results filter in real time.
  • Geographic Filtering β€” Narrow down by region and country with cascading dropdown filters.

🎯 Research Interest Matching

Select your research interests and instantly see which universities and professors align with your goals.

  • 22 Research Areas β€” From Machine Learning and Computer Vision to Cryptography, Robotics, HCI, and Bioinformatics.
  • Color-Coded Tags β€” Each research area has a unique, vibrant color for instant visual recognition.
  • Professor-Level Matching β€” When you select interests, each university card shows exactly how many professors match, and expanding the card reveals which professors and which of their publication venues triggered the match.
  • Multi-Interest Support β€” Select multiple interests simultaneously to find interdisciplinary programs.

πŸ€– Gemini AI Admissions Advisor

A conversational AI chatbot powered by Google Gemini 2.5 Flash, always one click away.

  • Floating Action Button β€” The "✨ AI Advisor" button is always accessible in the bottom-right corner.
  • Contextual Chat β€” Ask questions like "Best universities for NLP research?", "Compare ML programs in USA vs Europe", or "What are the GRE requirements for MIT?"
  • Resume/CV Analysis β€” Upload your PDF resume or transcript directly into the chat. The AI parses it client-side using pdfjs-dist and recommends specific universities and professors tailored to your background.
  • Conversation Memory β€” The chatbot maintains context across your conversation for follow-up questions.
  • Quick Suggestion Chips β€” Pre-built prompts to help you get started instantly.

πŸ“Š Deep University & Faculty Insights

Expand any university card to reveal a wealth of information.

  • AI-Generated Admission Requirements β€” Click "Ask Gemini" on any university to dynamically fetch real-time data on degree programs, GRE requirements, TOEFL/IELTS minimums, and GPA expectations.
  • Full Faculty Directory β€” Scrollable grid of every professor with their name, research venues, and a direct link to their homepage.
  • Research Area Tags β€” See all research interests covered by a university at a glance.

πŸŒ“ Premium Design & Theming

A UI that feels as good as it looks.

  • Glassmorphism Design β€” Frosted glass card surfaces with subtle blur effects and soft shadows.
  • Dark & Light Mode β€” Toggle between a sleek dark theme and a clean light theme with a single click. Your preference is saved to localStorage.
  • Smooth Micro-Animations β€” Hover effects, card lift transitions, pulsing match badges, and animated typing indicators.
  • Fully Responsive β€” Pixel-perfect on mobile, tablet, and desktop.


πŸ“Έ Screenshots

πŸ€– Gemini AI Advisor β€” Live Chat

The Gemini AI Advisor panel open alongside the main dashboard, recommending top NLP universities with specific professors and research justifications.

Dashboard with AI Advisor Chat

πŸ“– University Card β€” Research Tags & AI Insights

An expanded university card showing color-coded research interest tags, the "Hide Details" toggle, and Gemini-powered admission insights including degree programs, GRE policy, and TOEFL/IELTS requirements.

University Card Expanded with Research Tags and AI Insights

πŸŽ“ Faculty Directory & Ask Gemini

The full faculty grid with professor names and publication venues, plus the "Ask Gemini for Specifics" button to dynamically fetch real admission requirements for any university.

Faculty Directory and Ask Gemini Button

πŸ“Š AI-Generated Admission Requirements

Detailed AI-generated admission data β€” degree programs offered, GRE requirements, English proficiency minimums (TOEFL/IELTS), and GPA expectations β€” alongside the full faculty directory below.

AI-Generated Admission Requirements

🧠 AI Profile Recommendations

Upload your resume and the AI recommends specific universities and professors tailored to your background β€” with detailed explanations of why each is a great fit.

AI Profile Recommendations


πŸ—οΈ Architecture

β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”
β”‚                        Browser (Client)                     β”‚
β”‚                                                             β”‚
β”‚  β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”  β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”  β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”  β”‚
β”‚  β”‚ React 18 β”‚  β”‚ pdfjs-dist   β”‚  β”‚  CSS Glassmorphism    β”‚  β”‚
β”‚  β”‚ App.jsx  β”‚  β”‚ (PDF parser) β”‚  β”‚  Dark/Light Themes    β”‚  β”‚
β”‚  β””β”€β”€β”€β”€β”¬β”€β”€β”€β”€β”€β”˜  β””β”€β”€β”€β”€β”€β”€β”¬β”€β”€β”€β”€β”€β”€β”€β”˜  β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜  β”‚
β”‚       β”‚               β”‚                                     β”‚
β”‚       β”‚  POST /generate, /chat, /recommend-profile          β”‚
β”‚       └───────────────┼──────────────────────────────────────
β”‚                       β”‚                                     β”‚
β”œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€
β”‚                Vite Dev Server (Middleware)                  β”‚
β”‚                       β”‚                                     β”‚
β”‚         β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β–Όβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”                      β”‚
β”‚         β”‚  aiApiPlugin (vite.config)  β”‚                      β”‚
β”‚         β”‚  β€’ /generate  β†’ Gemini API β”‚                      β”‚
β”‚         β”‚  β€’ /chat      β†’ Gemini API β”‚                      β”‚
β”‚         β”‚  β€’ /recommend β†’ Gemini API β”‚                      β”‚
β”‚         β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”¬β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜                      β”‚
β”‚                       β”‚                                     β”‚
β”œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€
β”‚                       β–Ό                                     β”‚
β”‚          Google Gemini API (v1beta)                          β”‚
β”‚          Models: 2.5-flash β†’ 2.5-flash-lite β†’ 2.0-flash    β”‚
β”‚          (automatic fallback chain)                         β”‚
β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜
Layer Technology Purpose
Frontend React 18 + Vite Component-based UI with hot module replacement
Styling Vanilla CSS Glassmorphism, CSS variables, responsive design
AI Proxy Vite Plugin (Custom Middleware) Securely proxies Gemini API calls β€” API key never reaches the browser
AI Engine Google Gemini 2.5 Flash Admission insights, chat, and profile recommendation
PDF Parsing pdfjs-dist Client-side resume text extraction β€” no data sent to third parties
Data Source CSRankings.org (Pre-processed JSON) 500+ universities, 10,000+ faculty, 20+ research areas
Icons Lucide React Lightweight, consistent icon set


πŸš€ Quick Start

Prerequisites

Requirement Version
Node.js v16+
Google Gemini API Key Free tier works

Installation

# 1. Clone the repository
git clone https://github.com/code-with-idrees/CS-Universities-Admission.git
cd CS-Universities-Admission

# 2. Install dependencies
npm install

# 3. Fetch and build the database locally
npm run update-data

# 4. Set up your environment
cp .env.example .env
# Then edit .env and add your Gemini API key:
#   VITE_GEMINI_API_KEY=your_key_here

# 5. Start the dev server
npm run dev

Open http://localhost:3000 in your browser. That's it β€” you're in! πŸŽ‰

Available Scripts

Command Description
npm run dev Start development server with AI middleware
npm run build Build for production
npm run preview Preview the production build locally
npm run update-data Re-fetch and process latest data from CSRankings


πŸ“ Project Structure

CS-Universities-Admission/
β”œβ”€β”€ public/
β”‚   └── data/
β”‚       └── processed-universities.json   # Pre-processed university data (8MB)
β”œβ”€β”€ src/
β”‚   β”œβ”€β”€ components/
β”‚   β”‚   β”œβ”€β”€ GeminiChat.jsx                # AI chatbot drawer with PDF upload
β”‚   β”‚   β”œβ”€β”€ UniversityList.jsx            # University card grid with expansion
β”‚   β”‚   β”œβ”€β”€ InterestFilter.jsx            # Research interest pill selector
β”‚   β”‚   β”œβ”€β”€ FilterBar.jsx                 # Region & country dropdowns
β”‚   β”‚   β”œβ”€β”€ ProfileUploader.jsx           # Resume upload + AI recommendations
β”‚   β”‚   β”œβ”€β”€ SearchBar.jsx                 # Global search component
β”‚   β”‚   └── Sidebar.jsx                   # Sidebar navigation
β”‚   β”œβ”€β”€ services/
β”‚   β”‚   └── groqService.js               # API service with fallback logic
β”‚   β”œβ”€β”€ data/
β”‚   β”‚   └── programs.js                   # Research areas, country maps, colors
β”‚   β”œβ”€β”€ App.jsx                           # Root component with state management
β”‚   β”œβ”€β”€ main.jsx                          # React entry point
β”‚   └── index.css                         # Full design system (800+ lines)
β”œβ”€β”€ vite.config.js                        # Vite config + Gemini AI proxy plugin
β”œβ”€β”€ .env.example                          # Environment variable template
└── package.json


πŸ›‘οΈ Security

  • API Key Protection β€” The Gemini API key lives exclusively in .env and is proxied through a server-side Vite middleware plugin. It is never exposed to the client-side bundle.
  • Client-Side PDF Parsing β€” Resume/CV files are parsed entirely in the browser using pdfjs-dist. No file data is ever sent to external servers β€” only the extracted text is passed to the AI.
  • .env is gitignored β€” Your API keys will never be committed to version control.


🀝 Contributing

Contributions, issues, and feature requests are welcome! Feel free to check the issues page.

# Fork β†’ Clone β†’ Branch β†’ Code β†’ Push β†’ PR
git checkout -b feature/amazing-feature
git commit -m "feat: add amazing feature"
git push origin feature/amazing-feature


πŸ“œ License

This project is licensed under the MIT License β€” see the LICENSE file for details.



Built with ❀️ by Muhammad Idrees

University and faculty data sourced from CSRankings.org under the CC BY-NC-ND 4.0 license. Β· AI powered by Google Gemini


⭐ If this project helped you, give it a star! ⭐

About

An AI-powered graduate admissions portal aggregating CSRankings data with a built-in Gemini advisor for personalized CS program and faculty insights.

Topics

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors

Languages