Skip to content

Latest commit

Β 

History

10 Commits

Folders and files

NameName
Last commit message
Last commit date
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 

Repository files navigation

πŸš€ Placify

Full-Stack MERN-Based Campus Recruitment & Placement Management Platform

React Node.js MongoDB JWT Render License

Placify is a full-stack MERN application designed to streamline campus recruitment by connecting Students, Training & Placement Officers (TPOs), and Administrators on a single platform.

The platform automates the complete placement lifecycleβ€”from student registration and profile verification to job applications, recruitment stages, selection tracking, email notifications, and placement analytics.


🌐 Live Demo

πŸ”— Live Application:
https://placify-f81j.onrender.com

πŸ’» GitHub Repository:
https://github.com/siribhargavi-t/Placify


⭐ Key Highlights

  • πŸš€ Full MERN Stack Application
  • πŸ” JWT Authentication
  • πŸ‘₯ Role-Based Access Control (RBAC)
  • πŸ“§ Automated Email Notifications using Nodemailer
  • 🏒 Placement Drive Management
  • πŸ“Š Placement Analytics Dashboard
  • πŸ“„ Resume Upload & Profile Verification
  • 🎯 Eligibility Calculator
  • πŸ•’ Student Activity Timeline
  • ☁️ MongoDB Atlas Integration
  • 🌐 Live Deployment on Render
  • πŸ“± Responsive User Interface

πŸ“Œ Table of Contents


✨ Features

πŸ” Authentication & Security

  • JWT Authentication
  • Secure Password Hashing using bcrypt
  • Role-Based Access Control (RBAC)
  • Protected Frontend Routes
  • Protected Backend APIs
  • Session Restoration
  • Student Verification Workflow
  • Account Suspension / Activation
  • Secure REST APIs

πŸ‘¨β€πŸŽ“ Student Features

  • Student Dashboard
  • Placement Readiness Indicator
  • Academic Eligibility Calculator
  • Browse Placement Drives
  • Search & Filter Drives
  • One-Click Job Applications
  • Resume Upload
  • GitHub & LinkedIn Portfolio Links
  • Activity Timeline
  • Application History
  • Verification Status Banner
  • Notification Center

πŸ“Œ Placement Rules

  • Profile must be verified before applying
  • Resume upload is mandatory
  • Maximum 3 active applications
  • Dream Upgrade Policy
  • Automatic eligibility checking based on:
    • Department
    • CGPA
    • Attendance
    • Backlogs

πŸ‘¨β€πŸ’Ό Training & Placement Officer (TPO)

  • Dashboard Analytics
  • Placement Drive CRUD Operations
  • Student Verification
  • Applicant Management
  • Recruitment Stage Progression
  • Bulk Candidate Updates
  • CSV Export
  • Search & Filtering
  • Feedback Management

πŸ‘¨β€πŸ’Ό Admin Features

  • Overall Placement Statistics
  • Department-wise Reports
  • User Management
  • Account Suspension
  • Placement Analytics Dashboard
  • Reports Generation

πŸ“§ Email Notifications

Automatic emails are sent whenever a student's application status changes.

Supported email templates include:

  • πŸ“ Aptitude Test
  • πŸ’» Technical Interview
  • πŸ‘€ HR Interview
  • πŸŽ‰ Selected
  • ❌ Rejected

Powered by Nodemailer using responsive HTML email templates.


πŸ”” Notification System

  • Student Notifications
  • TPO Notifications
  • Admin Notifications
  • Broadcast Notifications
  • Toast Alerts
  • Real-Time Status Updates

πŸ›  Tech Stack

🎨 Frontend

  • React.js
  • Vite
  • React Router DOM
  • Context API
  • CSS
  • Responsive UI

βš™οΈ Backend

  • Node.js
  • Express.js
  • REST APIs
  • JWT Authentication
  • bcrypt Password Hashing
  • Nodemailer

πŸ—„ Database

  • MongoDB Atlas
  • Mongoose ODM

πŸš€ Deployment & Tools

  • Git
  • GitHub
  • Render
  • Postman
  • VS Code

πŸ— System Architecture

                        Browser
                           β”‚
                           β–Ό
                  React Frontend (Vite)
                           β”‚
                  REST API Requests
                           β”‚
                           β–Ό
               Express.js + Node.js Server
                           β”‚
          β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”
          β”‚                β”‚                β”‚
          β–Ό                β–Ό                β–Ό
   JWT Authentication   Business Logic   Email Service
      Middleware                           (Nodemailer)
          β”‚
          β–Ό
      MongoDB Atlas

πŸ“‚ Project Structure

Placify
β”‚
β”œβ”€β”€ backend
β”‚   β”œβ”€β”€ middleware/
β”‚   β”‚   β”œβ”€β”€ authMiddleware.js
β”‚   β”‚   └── roleMiddleware.js
β”‚   β”‚
β”‚   β”œβ”€β”€ models/
β”‚   β”‚   β”œβ”€β”€ User.js
β”‚   β”‚   β”œβ”€β”€ Drive.js
β”‚   β”‚   β”œβ”€β”€ Application.js
β”‚   β”‚   └── Notification.js
β”‚   β”‚
β”‚   β”œβ”€β”€ routes/
β”‚   β”‚   β”œβ”€β”€ auth.js
β”‚   β”‚   β”œβ”€β”€ users.js
β”‚   β”‚   β”œβ”€β”€ drives.js
β”‚   β”‚   β”œβ”€β”€ applications.js
β”‚   β”‚   └── notifications.js
β”‚   β”‚
β”‚   β”œβ”€β”€ utils/
β”‚   β”‚   └── mailer.js
β”‚   β”‚
β”‚   β”œβ”€β”€ server.js
β”‚   └── package.json
β”‚
β”œβ”€β”€ frontend
β”‚   β”œβ”€β”€ src/
β”‚   β”‚   β”œβ”€β”€ components/
β”‚   β”‚   β”œβ”€β”€ layouts/
β”‚   β”‚   β”œβ”€β”€ pages/
β”‚   β”‚   β”‚   β”œβ”€β”€ student/
β”‚   β”‚   β”‚   β”œβ”€β”€ tpo/
β”‚   β”‚   β”‚   β”œβ”€β”€ admin/
β”‚   β”‚   β”‚   └── public/
β”‚   β”‚   β”‚
β”‚   β”‚   β”œβ”€β”€ routes/
β”‚   β”‚   β”œβ”€β”€ services/
β”‚   β”‚   β”œβ”€β”€ App.jsx
β”‚   β”‚   └── main.jsx
β”‚   β”‚
β”‚   β”œβ”€β”€ vite.config.js
β”‚   └── package.json
β”‚
β”œβ”€β”€ README.md
└── .gitignore

πŸ‘₯ User Roles

πŸ‘¨β€πŸŽ“ Student

Students can:

  • Register
  • Login
  • Update Profile
  • Upload Resume
  • Add Skills
  • Add GitHub & LinkedIn Links
  • View Placement Drives
  • Apply for Eligible Drives
  • Track Application Status
  • View Activity Timeline
  • Receive Notifications

πŸ‘¨β€πŸ’Ό Training & Placement Officer (TPO)

TPOs can:

  • Verify Student Profiles
  • Create Placement Drives
  • Edit Placement Drives
  • Delete Placement Drives
  • View Applicants
  • Advance Students through Recruitment Stages
  • Reject Applications
  • Send Feedback
  • Export Applicant Data
  • Monitor Placement Statistics

πŸ‘¨β€πŸ’Ό Administrator

Administrators can:

  • View Overall Placement Statistics
  • Manage Students
  • Manage TPO Accounts
  • Suspend User Accounts
  • Activate User Accounts
  • Generate Reports
  • Monitor Department-wise Performance

πŸ”„ Application Workflow

Student Registration
        β”‚
        β–Ό
Login using JWT Authentication
        β”‚
        β–Ό
Student Completes Profile
        β”‚
        β–Ό
TPO Verifies Profile
        β”‚
        β–Ό
Placement Drive Published
        β”‚
        β–Ό
Eligibility Calculator Runs
        β”‚
        β–Ό
Eligible Student Applies
        β”‚
        β–Ό
Application Stored in MongoDB
        β”‚
        β–Ό
TPO Reviews Applicant
        β”‚
        β–Ό
Aptitude Test
        β”‚
        β–Ό
Technical Interview
        β”‚
        β–Ό
HR Interview
        β”‚
        β–Ό
Selected / Rejected
        β”‚
        β–Ό
Email Notification Sent
        β”‚
        β–Ό
Activity Timeline Updated

πŸ“‘ REST API Overview

Authentication

Method Endpoint Description
POST /api/auth/register Register a new user
POST /api/auth/login User login
GET /api/auth/me Fetch logged-in user
PUT /api/auth/profile Update profile

Placement Drives

Method Endpoint Description
GET /api/drives Get all drives
POST /api/drives Create drive
PUT /api/drives/:id Update drive
DELETE /api/drives/:id Delete drive

Applications

Method Endpoint Description
GET /api/applications Get applications
POST /api/applications Apply for drive
PUT /api/applications/:id Update application status

Users

Method Endpoint Description
GET /api/users Get users
PUT /api/users/:id Update user
PUT /api/users/:id/status Suspend / Activate

Notifications

Method Endpoint Description
GET /api/notifications Fetch notifications
POST /api/notifications Create notification

πŸ—„ Database Models

Placify uses MongoDB Atlas as its cloud database. The application consists of four primary collections.


πŸ‘€ User Collection

Stores information about Students, TPOs, and Admins.

Field Description
name Full Name
email Unique Email Address
password Bcrypt Hashed Password
role student / tpo / admin
department Student Department
cgpa Academic CGPA
attendance Attendance Percentage
backlogs Number of Active Backlogs
phone Contact Number
skills Technical Skills
githubUrl GitHub Profile
linkedinUrl LinkedIn Profile
resumeUrl Resume File
verificationStatus Verified / Pending / Rejected
verificationRemarks Remarks by TPO
status Active / Suspended

πŸ’Ό Drive Collection

Stores placement drive information.

Field Description
company Company Name
role Job Role
package Salary Package
cgpa Minimum Required CGPA
departments Eligible Branches
location Job Location
deadline Last Date to Apply
status Open / Closed / Upcoming

πŸ“ Application Collection

Stores every application submitted by students.

Field Description
student Student Reference
drive Drive Reference
company Company Name
role Job Role
package Salary
status Pending / Aptitude / Technical / HR / Selected / Rejected
feedback TPO Feedback
appliedDate Application Date

πŸ”” Notification Collection

Stores system notifications.

Field Description
message Notification Content
type success / warning / info
target Student / TPO / Admin
read Read Status
createdAt Timestamp

πŸš€ Installation

Clone the repository

git clone https://github.com/siribhargavi-t/Placify.git

Go inside the project

cd Placify

Install dependencies

npm run install:all

Run the development server

npm run dev

Build the frontend

npm run build

Start production server

npm start

πŸ”‘ Environment Variables

Create a .env file inside the backend directory.

PORT=5000

NODE_ENV=production

MONGO_URI=your_mongodb_connection_string

JWT_SECRET=your_jwt_secret

EMAIL_SERVICE=gmail

EMAIL_USER=your_project_email@gmail.com

EMAIL_PASS=your_google_app_password

πŸ‘¨β€πŸ’» Demo Credentials

The application automatically seeds demo users when the database is empty.

πŸ‘¨β€πŸŽ“ Student

Email:
student@placify.com

Password:
password123

πŸ‘¨β€πŸ’Ό TPO

Email:
tpo@placify.com

Password:
password123

πŸ‘¨β€πŸ’Ό Admin

Email:
admin@placify.com

Password:
password123

πŸ“Έ Screenshots

🏠 Login Page

Home


πŸ‘¨β€πŸŽ“ Student Dashboard

Student Dashboard


πŸ‘¨β€πŸ’Ό TPO Dashboard

TPO Dashboard


πŸ‘¨β€πŸ’Ό Admin Dashboard

Admin Dashboard


πŸ“ˆ Future Enhancements

  • πŸ€– AI Resume Screening
  • πŸ“… Interview Scheduling
  • πŸ“Š Advanced Placement Analytics
  • πŸ“± Mobile Application
  • πŸ’¬ Real-Time Chat
  • πŸŽ₯ Video Interview Integration
  • πŸ“„ Resume Parsing
  • πŸ“ˆ Placement Prediction using Machine Learning
  • πŸ† Company Recommendation Engine
  • πŸ” Resume Keyword Matching

⚠️ Disclaimer

This project is developed for educational and portfolio purposes.

The live application uses demo accounts and sample data. No real student information is intentionally exposed in the public deployment.


πŸ‘©β€πŸ’» Author

T. Siri Bhargavi

πŸŽ“ Computer Science Engineering Student

🌐 Live Demo

https://placify-f81j.onrender.com

πŸ’» GitHub

https://github.com/siribhargavi-t

πŸ“‚ Repository

https://github.com/siribhargavi-t/Placify


⭐ If you found this project helpful

Please consider giving it a ⭐ on GitHub.

About

Full-Stack Campus Recruitment & Placement Management Platform built using the MERN Stack.

Topics

Resources

Stars

1 star

Watchers

1 watching

Forks

Releases

Packages

Contributors

Languages