Skip to content

Latest commit

History

57 Commits

Folders and files

NameName
Last commit message
Last commit date

Repository files navigation

🎓 PlaceTrack — AI-Powered Student Placement Tracker

A full-stack MERN web application that completely digitizes campus placement management — featuring real-time Socket.IO notifications, AI Resume ATS Scoring, AI Mock Interview Bot, Eligibility Engine, Email Automation, JWT + Google OAuth, role-based access control, and a 7-chart analytics dashboard built on MongoDB aggregation pipelines.


🚀 Live Demo

Link
🔗 Frontendhttps://student-placement-tracker-navy.vercel.app

📸 Screenshots

Dashboard · Students · Analytics · Profile · Landing Page

image

🔄 System Flow

flow pic

✨ Features

ModuleWhat it does
🌐 Landing PageAnimated public page with live ticker, stat counters, company showcase, dark/light mode
📊 DashboardKPI cards, placement rate banner, branch-wise chart, donut chart, top companies table
👥 StudentsFull list with search, branch/batch/status filters, pagination, clickable profiles
🏢 CompaniesCard grid with package range, roles offered, eligibility criteria, hired count
🏆 PlacementsOffer records with auto status update, package highlights, offer type badges
📈 Analytics7+ charts — bar, line, doughnut, radar, dual-axis trend, company breakdown
🎯 Eligibility EngineAuto-filters eligible students by CGPA, backlogs, branch when company is added
🤖 AI ATS ScorerUpload resume + paste JD → match %, missing keywords, improvement tips (Gemini AI)
🎤 AI Mock InterviewCompany + role specific questions → real-time evaluation → score + ideal answers
🔔 Real-time NotificationsSocket.IO powered — instant alerts for drives, results, eligibility
📧 Email AutomationBeautiful HTML emails via Nodemailer — eligibility alerts + congratulations on placement
👤 ProfileStudent tabs — Academic, Resume upload, ATS Scorer, Mock Interview, Placement status
🔐 AuthJWT login, Google OAuth, role-based access (Admin / Student / Viewer)
🌙 Dark ModeFull dark/light mode toggle with persistence
🗓️ Drive CalendarUpcoming company visits with date tracking
💬 Interview ExperiencesPlaced students share rounds, questions & tips for juniors
🌱 Seed Script120 students, 12 companies, ~78 placement records auto-generated

⚙️ Tech Stack

LayerTechnology
FrontendReact 18, Bootstrap 5, Chart.js, Framer Motion
BackendNode.js, Express.js
DatabaseMongoDB + Mongoose
Real-timeSocket.IO (WebSockets)
AIGoogle Gemini API (ATS Scoring + Mock Interview)
EmailNodemailer + Gmail SMTP
AuthJWT + Google OAuth (Passport.js)
File UploadMulter (Resume PDF)
ChartsChart.js / react-chartjs-2
StylingBootstrap 5 + Custom CSS

📁 Project Structure

placement-tracker/
├── backend/
│ ├── models/
│ │ ├── User.js
│ │ ├── Student.js
│ │ ├── Company.js
│ │ └── Placement.js
│ ├── routes/
│ │ ├── auth.js
│ │ ├── students.js
│ │ ├── companies.js ← Eligibility Engine + Email
│ │ ├── placements.js ← Congratulations Email
│ │ ├── eligibility.js ← Eligibility check + notify
│ │ ├── ats.js ← AI Resume ATS Scorer
│ │ ├── mockInterview.js ← AI Mock Interview
│ │ ├── stats.js
│ │ └── profile.js
│ ├── socket/
│ │ └── socketHandler.js ← Socket.IO notification helper
│ ├── utils/
│ │ └── emailService.js ← Nodemailer HTML emails
│ ├── middleware/
│ │ └── auth.js
│ ├── seed/
│ │ └── seed.js
│ ├── uploads/
│ └── server.js ← Express + Socket.IO setup
│
└── client/
└── src/
├── pages/
│ ├── LandingPage.js ← Public animated landing
│ ├── Dashboard.js
│ ├── Students.js
│ ├── Companies.js
│ ├── Placements.js
│ ├── Analytics.js
│ ├── Profile.js
│ ├── Notifications.js
│ └── ...
├── components/
│ ├── Layout.js
│ ├── ATSScorer.js ← AI Resume Scorer
│ ├── MockInterview.js ← AI Mock Interview
│ ├── EligibilityChecker.js ← Eligibility Engine UI
│ ├── NotificationBell.js
│ └── ...
├── context/
│ ├── AuthContext.js
│ ├── ThemeContext.js
│ └── NotificationProvider.js ← Socket.IO context
└── socket.js ← Socket.IO client

🛠️ Setup & Run

Prerequisites

  • Node.js v18+
  • MongoDB (local or Atlas)
  • Gmail account with App Password
  • Google Gemini API key

1️⃣ Clone the repo

git clone https://github.com/anoopcodehack/placement-tracker.git
cd placement-tracker

2️⃣ Backend Setup

cd backend
npm install

Create .env:

PORT=5000MONGO_URI=mongodb+srv://youruser:yourpassword@cluster0.xxxxx.mongodb.net/placement_trackerJWT_SECRET=your_jwt_secret_hereCLIENT_URL=http://localhost:3000NODE_ENV=development# Email (Gmail App Password)EMAIL_USER=your_gmail@gmail.comEMAIL_PASS=your_16_digit_app_password# AIGEMINI_API_KEY=your_gemini_api_key_here

Seed demo data:

npm run seed

Start backend:

npm run dev

3️⃣ Frontend Setup

cd ../client
npm install
npm start

🌐 Frontend: http://localhost:3000 · Backend: http://localhost:5000


🔐 Demo Login

RoleEmailPasswordAccess
🛡️ Adminadmin@college.eduadmin123Full access
👁️ Viewerviewer@college.eduviewer123Read only
🎓 StudentSign up with Roll NoOwn profile + AI tools

🌐 API Endpoints

Auth

POST /api/auth/register
POST /api/auth/login
GET /api/auth/me
GET /api/auth/google

Students

GET /api/students ← Filters: search, branch, batch, isPlaced, page
POST /api/students ← Admin only
PUT /api/students/:id ← Admin only
DELETE /api/students/:id ← Admin only

Companies

GET /api/companies ← Filters: search, industry
POST /api/companies ← Triggers eligibility + email + socket notify
DELETE /api/companies/:id

Placements

GET /api/placements
POST /api/placements ← Auto updates student + sends congrats email
DELETE /api/placements/:id

Eligibility Engine

GET /api/eligibility/:companyId ← Get eligible students
POST /api/eligibility/:companyId/notify ← Notify all eligible
POST /api/eligibility/check ← Check one student

AI

POST /api/ats ← Resume ATS Scorer (PDF + JD)
POST /api/mock-interview/questions ← Generate 5 questions
POST /api/mock-interview/evaluate ← Evaluate one answer
POST /api/mock-interview/result ← Final score + tips

Analytics

GET /api/stats/overview
GET /api/stats/branch-wise
GET /api/stats/package-distribution
GET /api/stats/monthly-trend
GET /api/stats/company-wise
GET /api/stats/batches

🎯 Role Access Matrix

Feature Admin Student Viewer
─────────────────────────────────────────────────────
View Dashboard ✅ ✅ ✅
View Analytics ✅ ✅ ✅
Add/Delete Students ✅ ❌ ❌
Add/Delete Companies ✅ ❌ ❌
Record Placements ✅ ❌ ❌
Eligibility Engine ✅ ❌ ❌
AI ATS Resume Scorer ❌ ✅ ❌
AI Mock Interview ❌ ✅ ❌
Upload Resume ❌ ✅ ❌
View Own Profile ❌ ✅ ✅
Real-time Notifications ✅ ✅ ❌

📊 Analytics Dashboard

  • ✅ Overall placement rate banner with progress bar
  • ✅ Branch-wise placement bar chart
  • ✅ Placed vs Unplaced doughnut chart
  • ✅ Package distribution bar chart
  • ✅ Monthly offer trend line chart (dual axis)
  • ✅ Top companies by offers bar chart
  • ✅ Avg CGPA by branch radar chart
  • ✅ Company-wise breakdown table with share %
  • ✅ Export to Excel / PDF

🤖 AI Features

Resume ATS Scorer

Student uploads PDF resume
↓
Paste job description
↓
Gemini AI analyzes both
↓
Returns: Match % · Matched keywords
Missing keywords · Strengths
Improvement suggestions

Mock Interview Bot

Select Company + Role + Round
↓
Gemini generates 5 real questions
↓
Student answers each one
↓
AI evaluates → Score/10 + Ideal answer
↓
Final result + Tips to improve

🔔 Notification System

Admin adds company
↓
Eligibility Engine runs
↓
┌─────────────────────────┐
│ Eligible Students │
│ 🎯 "You are eligible!" │ ← Socket.IO popup
│ 📧 Detailed HTML email │ ← Nodemailer
│ 🔔 Dashboard bell │ ← Notifications page
└─────────────────────────┘
┌─────────────────────────┐
│ Other Students │
│ 🏢 "New company added" │ ← Socket.IO only
└─────────────────────────┘
Admin records placement
↓
🎉 Congratulations email → Student

🌍 Societal Impact

SDGMapping
🎓 SDG 4 — Quality EducationImproves placement transparency in institutions
💼 SDG 8 — Decent WorkConnects students to employment efficiently
🏗️ SDG 9 — InnovationPromotes digital infrastructure in colleges

🔮 Roadmap

  • Placement prediction using ML scoring
  • Mobile app (React Native)
  • Admin bulk import via CSV
  • QR-code based student check-in for drives
  • Multi-college support

👨‍💻 Author

Anoop A — Full Stack Developer · GFG Campus Mantri · Sahyadri College

GitHubLinkedIn


📄 License

MIT License — open source and free to use.


⭐ Star this repo if you found it helpful!

Made with ❤️ to solve a real problem at Sahyadri College

About

🎓PlaceTrack , A full-stack MERN web application that completely digitizes campus placement management — featuring real-time Socket.IO notifications, AI Resume ATS Scoring, AI Mock Interview Bot, Eligibility Engine, Email Automation, JWT + Google OAuth, role-based access control & a 7-chart analytics dashboard on MongoDB aggregation pipelines.

Topics

Resources

Stars

1 star

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages