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.
| Link | |
|---|---|
| ๐ Frontend | https://student-placement-tracker-navy.vercel.app |
Dashboard ยท Students ยท Analytics ยท Profile ยท Landing Page
| Module | What it does |
|---|---|
| ๐ Landing Page | Animated public page with live ticker, stat counters, company showcase, dark/light mode |
| ๐ Dashboard | KPI cards, placement rate banner, branch-wise chart, donut chart, top companies table |
| ๐ฅ Students | Full list with search, branch/batch/status filters, pagination, clickable profiles |
| ๐ข Companies | Card grid with package range, roles offered, eligibility criteria, hired count |
| ๐ Placements | Offer records with auto status update, package highlights, offer type badges |
| ๐ Analytics | 7+ charts โ bar, line, doughnut, radar, dual-axis trend, company breakdown |
| ๐ฏ Eligibility Engine | Auto-filters eligible students by CGPA, backlogs, branch when company is added |
| ๐ค AI ATS Scorer | Upload resume + paste JD โ match %, missing keywords, improvement tips (Gemini AI) |
| ๐ค AI Mock Interview | Company + role specific questions โ real-time evaluation โ score + ideal answers |
| ๐ Real-time Notifications | Socket.IO powered โ instant alerts for drives, results, eligibility |
| ๐ง Email Automation | Beautiful HTML emails via Nodemailer โ eligibility alerts + congratulations on placement |
| ๐ค Profile | Student tabs โ Academic, Resume upload, ATS Scorer, Mock Interview, Placement status |
| ๐ Auth | JWT login, Google OAuth, role-based access (Admin / Student / Viewer) |
| ๐ Dark Mode | Full dark/light mode toggle with persistence |
| ๐๏ธ Drive Calendar | Upcoming company visits with date tracking |
| ๐ฌ Interview Experiences | Placed students share rounds, questions & tips for juniors |
| ๐ฑ Seed Script | 120 students, 12 companies, ~78 placement records auto-generated |
| Layer | Technology |
|---|---|
| Frontend | React 18, Bootstrap 5, Chart.js, Framer Motion |
| Backend | Node.js, Express.js |
| Database | MongoDB + Mongoose |
| Real-time | Socket.IO (WebSockets) |
| AI | Google Gemini API (ATS Scoring + Mock Interview) |
| Nodemailer + Gmail SMTP | |
| Auth | JWT + Google OAuth (Passport.js) |
| File Upload | Multer (Resume PDF) |
| Charts | Chart.js / react-chartjs-2 |
| Styling | Bootstrap 5 + Custom CSS |
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
- Node.js v18+
- MongoDB (local or Atlas)
- Gmail account with App Password
- Google Gemini API key
git clone https://github.com/anoopcodehack/placement-tracker.git
cd placement-trackercd backend
npm installCreate .env:
PORT=5000
MONGO_URI=mongodb+srv://youruser:yourpassword@cluster0.xxxxx.mongodb.net/placement_tracker
JWT_SECRET=your_jwt_secret_here
CLIENT_URL=http://localhost:3000
NODE_ENV=development
# Email (Gmail App Password)
EMAIL_USER=your_gmail@gmail.com
EMAIL_PASS=your_16_digit_app_password
# AI
GEMINI_API_KEY=your_gemini_api_key_hereSeed demo data:
npm run seedStart backend:
npm run devcd ../client
npm install
npm start๐ Frontend:
http://localhost:3000ยท Backend:http://localhost:5000
| Role | Password | Access | |
|---|---|---|---|
| ๐ก๏ธ Admin | admin@college.edu | admin123 | Full access |
| ๐๏ธ Viewer | viewer@college.edu | viewer123 | Read only |
| ๐ Student | Sign up with Roll No | โ | Own profile + AI tools |
POST /api/auth/register
POST /api/auth/login
GET /api/auth/me
GET /api/auth/google
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
GET /api/companies โ Filters: search, industry
POST /api/companies โ Triggers eligibility + email + socket notify
DELETE /api/companies/:id
GET /api/placements
POST /api/placements โ Auto updates student + sends congrats email
DELETE /api/placements/:id
GET /api/eligibility/:companyId โ Get eligible students
POST /api/eligibility/:companyId/notify โ Notify all eligible
POST /api/eligibility/check โ Check one student
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
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
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 โ
โ
โ
- โ 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
Student uploads PDF resume
โ
Paste job description
โ
Gemini AI analyzes both
โ
Returns: Match % ยท Matched keywords
Missing keywords ยท Strengths
Improvement suggestions
Select Company + Role + Round
โ
Gemini generates 5 real questions
โ
Student answers each one
โ
AI evaluates โ Score/10 + Ideal answer
โ
Final result + Tips to improve
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
| SDG | Mapping |
|---|---|
| ๐ SDG 4 โ Quality Education | Improves placement transparency in institutions |
| ๐ผ SDG 8 โ Decent Work | Connects students to employment efficiently |
| ๐๏ธ SDG 9 โ Innovation | Promotes digital infrastructure in colleges |
- 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
Anoop A โ Full Stack Developer ยท GFG Campus Mantri ยท Sahyadri College
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