Skip to content

suraj-savle/ITPO

Folders and files

NameName
Last commit message
Last commit date

Latest commit

Β 

History

84 Commits
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 

Repository files navigation

ITPO - Internship and Training Placement Office

A comprehensive web application for managing internship and training placements with AI-powered job recommendations, mentor approval workflows, and modern placement management system.

πŸš€ Project Overview

ITPO is a full-stack web application designed to streamline the internship and training placement process for educational institutions. It connects students, mentors, recruiters, and administrators in a unified platform with intelligent job matching and comprehensive workflow management.

✨ Key Features

🎯 AI-Powered Job Recommendations

  • Smart Matching Algorithm: 70% skills, 20% location, 10% academic performance
  • Personalized Recommendations: Top Match, Good Match, Near Miss categories
  • Skill Gap Analysis: Identifies missing skills for career development
  • Real-time Updates: Dynamic recommendations based on profile changes

πŸ‘₯ Multi-Role System

  • Students: Profile management, job applications, recommendation viewing
  • Mentors: Application approval, student monitoring, progress tracking
  • Recruiters: Job posting, application management, interview scheduling
  • Admins: System oversight, job approval, user management

πŸ“‹ Advanced Application Workflow

  • Three-Stage Process: Student Apply β†’ Mentor Approve β†’ Recruiter Review
  • Interview Scheduling: Comprehensive scheduling with online/offline/phone options
  • Status Tracking: Real-time application status updates
  • Placement Management: Automatic placement status updates

πŸ—οΈ Technical Architecture

Frontend Stack

  • React 18: Modern functional components with hooks
  • Vite: Fast build tool and development server
  • Tailwind CSS: Utility-first CSS framework
  • Lucide React: Modern icon library
  • Axios: HTTP client for API communication
  • React Router: Client-side routing
  • React Hot Toast: Notification system

Backend Stack

  • Node.js: JavaScript runtime environment
  • Express.js: Web application framework
  • MongoDB: NoSQL database with Mongoose ODM
  • JWT: JSON Web Token authentication
  • Bcrypt: Password hashing
  • Multer: File upload handling
  • CORS: Cross-origin resource sharing

AI/ML Components

  • Python Flask: Recommendation service
  • Scikit-learn: Machine learning algorithms
  • Pandas: Data manipulation and analysis
  • NumPy: Numerical computing

πŸ“ Project Structure

ITPO/
β”œβ”€β”€ frontend/                 # React frontend application
β”‚   β”œβ”€β”€ src/
β”‚   β”‚   β”œβ”€β”€ components/      # Reusable UI components
β”‚   β”‚   β”‚   └── shared/      # Shared components
β”‚   β”‚   β”œβ”€β”€ pages/           # Page components
β”‚   β”‚   β”‚   β”œβ”€β”€ admin/       # Admin dashboard pages
β”‚   β”‚   β”‚   β”œβ”€β”€ auth/        # Authentication pages
β”‚   β”‚   β”‚   β”œβ”€β”€ mentor/      # Mentor dashboard pages
β”‚   β”‚   β”‚   β”œβ”€β”€ recruiter/   # Recruiter dashboard pages
β”‚   β”‚   β”‚   └── student/     # Student dashboard pages
β”‚   β”‚   β”œβ”€β”€ services/        # API service functions
β”‚   β”‚   β”œβ”€β”€ utils/           # Utility functions
β”‚   β”‚   └── App.jsx          # Main application component
β”‚   β”œβ”€β”€ public/              # Static assets
β”‚   └── package.json         # Frontend dependencies
β”œβ”€β”€ backend/                 # Node.js backend application
β”‚   β”œβ”€β”€ controllers/         # Route controllers
β”‚   β”œβ”€β”€ models/              # Database models
β”‚   β”œβ”€β”€ routes/              # API routes
β”‚   β”œβ”€β”€ middleware/          # Custom middleware
β”‚   β”œβ”€β”€ config/              # Configuration files
β”‚   β”œβ”€β”€ uploads/             # File upload storage
β”‚   └── server.js            # Main server file
β”œβ”€β”€ recommendation_service/   # Python ML service
β”‚   β”œβ”€β”€ app.py              # Flask application
β”‚   └── requirements.txt    # Python dependencies
└── README.md               # Project documentation

πŸ—„οΈ Database Schema

User Model

{
  name: String,
  email: String (unique),
  password: String (hashed),
  role: ['student', 'mentor', 'recruiter', 'admin'],
  department: String,
  year: String,
  cgpa: Number,
  skills: [String],
  isPlaced: Boolean,
  placementDetails: {
    company: String,
    roleOffered: String,
    package: String,
    placedAt: Date
  },
  assignedMentor: ObjectId,
  activityLog: [ActivitySchema]
}

Job Model

{
  title: String,
  description: String,
  rolesResponsibilities: String,
  location: String,
  skillsRequired: [String],
  stipend: String,
  recruiter: ObjectId,
  isActive: Boolean,
  status: ['draft', 'pending_approval', 'approved', 'rejected'],
  applications: [ApplicationSchema]
}

Application Model

{
  student: ObjectId,
  job: ObjectId,
  mentor: ObjectId,
  recruiter: ObjectId,
  status: ['pending mentor approval', 'rejected by mentor', 
           'pending recruiter review', 'rejected by recruiter',
           'interview scheduled', 'hired'],
  interviewDate: Date,
  interviewTime: String,
  interviewMode: ['online', 'offline', 'phone'],
  interviewLocation: String,
  interviewMeetingLink: String,
  interviewNotes: String
}

Installation & Setup

Clone the Repository

git clone https://github.com/suraj-savle/ITPO.git

Backend Setup

cd backend
npm install

Create a .env file:

MONGO_URI=your_mongo_uri
JWT_SECRET=your_jwt_secret
PORT=5000

Important: Seed Admin Account (First Time Setup)

Before starting the backend server for the first time, you must create an admin user.

Open the file: backend/scripts/seedAdmin.js

Update the admin credentials inside the file:

Run the seed script from the backend/scripts folder:

node seedAdmin.js

This will create the admin account in the database.

Start the backend server:

npm start

Frontend Setup

cd ../frontend
npm install
npm run dev

Recommendation Service Setup

# Navigate to recommendation service
cd ../recommendation_service

# Create virtual environment
python -m venv venv
source venv/bin/activate  # On Windows: venv\Scripts\activate

# Install dependencies
pip install -r requirements.txt

# Start the service
python app.py

πŸ” Authentication & Authorization

Role-Based Access Control

  • JWT Authentication: Secure token-based authentication
  • Role Middleware: Route protection based on user roles
  • Session Management: Automatic token refresh and logout

Security Features

  • Password Hashing: Bcrypt with salt rounds
  • Input Validation: Comprehensive request validation
  • CORS Configuration: Secure cross-origin requests
  • File Upload Security: Type and size validation

πŸ€– AI Recommendation Engine

Algorithm Details

def calculate_job_match(student, job):
    weights = {'skills': 0.7, 'location': 0.2, 'cgpa': 0.1}
    
    # Skills matching (70% weight)
    matched_skills = intersection(student_skills, job_skills)
    skills_score = (matched_skills / total_job_skills) * 100
    
    # Location preference (20% weight)
    location_score = 100 if preferred_location_match else 50
    
    # CGPA factor (10% weight)
    cgpa_score = 100 if cgpa >= 6.0 else scaled_score
    
    return weighted_total_score

Recommendation Categories

  • Top Match (80%+): Excellent fit with high skill overlap
  • Good Match (60-79%): Good fit with moderate skill match
  • Near Miss (40-59%): Potential fit with skill development

πŸ“Š API Documentation

Authentication Endpoints

POST /api/auth/register    # User registration
POST /api/auth/login       # User login
GET  /api/auth/profile     # Get user profile
PUT  /api/auth/profile     # Update user profile

Job Management Endpoints

GET    /api/jobs                    # Get all active jobs
POST   /api/jobs                    # Create new job (recruiter)
GET    /api/jobs/recruiter          # Get recruiter's jobs
PUT    /api/jobs/:id/toggle         # Toggle job active status
DELETE /api/jobs/:id                # Delete job

Application Endpoints

POST /api/applications/:jobId       # Apply to job
GET  /api/applications/my           # Get my applications
PUT  /api/applications/:id/mentor   # Mentor decision
PUT  /api/applications/:id/recruiter # Recruiter decision

Recommendation Endpoints

GET /api/recommendations/jobs       # Get job recommendations
GET /api/recommendations/student/:id # Get recommendations for student

πŸ”„ Workflow Processes

Student Application Flow

  1. Browse Jobs: View AI-recommended and all available jobs
  2. Apply: Submit application with one click
  3. Mentor Review: Wait for mentor approval
  4. Recruiter Review: Application forwarded to recruiter
  5. Interview: Schedule and attend interview
  6. Placement: Receive hiring decision

Recruiter Hiring Flow

  1. Post Job: Create detailed job posting
  2. Admin Approval: Wait for job approval
  3. Receive Applications: View mentor-approved applications
  4. Schedule Interviews: Set up interviews with candidates
  5. Make Decisions: Hire or reject candidates
  6. Placement Tracking: Monitor hired students

Mentor Supervision Flow

  1. Review Applications: Evaluate student applications
  2. Approve/Reject: Make decisions with feedback
  3. Monitor Progress: Track student application status
  4. Placement Updates: Receive hiring notifications

🎯 Future Roadmap

Phase 1 (Current)

  • βœ… Core functionality implementation
  • βœ… AI-powered job recommendations
  • βœ… Multi-role authentication system
  • βœ… Modern UI/UX design

Phase 2 (Upcoming)

  • πŸ“§ Email notification system
  • πŸ“Š Advanced analytics dashboard
  • πŸ’¬ In-app messaging system
  • πŸ“± Mobile application

Phase 3 (Future)

  • πŸ€– Advanced AI features
  • πŸ”— Third-party integrations
  • πŸ“ˆ Performance optimization
  • 🌐 Multi-language support

AdminPanel

admin-panel

Login

login

RecruiterPanel

recruiter-1

MentorPanel

mentor-1

SudentPanel

student-4

About

A comprehensive web application for managing internship and training placements with AI-powered job recommendations, mentor approval workflows, and modern placement management system.

Resources

License

Contributing

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors

Languages