Skip to content

Repository files navigation

PathFinder - Placement Portal Platform

A simple Flask recruitment platform connecting companies with students for placement drives. Integrated with AI Pipe OpenAI API for smart features like resume analysis, job enhancement, and application scoring.

What This App Does

For Students

  • Browse job openings (drives) from companies
  • Apply to jobs instantly
  • Upload your resume
  • Get AI feedback on how you fit a job
  • Manage all your applications

For Companies

  • Create job openings (drives)
  • Get AI help writing better job descriptions
  • Review student applications
  • Score applications using AI
  • Make hiring decisions

For Admins

  • Approve new companies joining the platform
  • Manage all students and companies
  • Oversee all job drives and applications
  • See platform statistics

Quick Start

1. Setup (First Time Only)

# Create virtual environment
python -m venv .venv

# Activate it
.\.venv\Scripts\activate        # Windows
source .venv/bin/activate       # Mac/Linux

# Install packages
pip install -r requirements.txt

2. Run the App

python app.py

Open http://127.0.0.1:5000

3. Test It Out

Admin Login:

  • Username: admin
  • Password: admin123

Create Test Accounts:

  • Go to Register page
  • Try as Student or Company

Using AI Features (Optional)

To use AI features (resume analysis, job enhancement, application scoring):

  1. Get token: https://aipipe.org
  2. Create .env file with:
    AIPIPE_TOKEN=your_token_here
    
  3. Restart app - AI features now active!

Without token, app runs but AI features show "token not configured" message.

How to Use

As a Student

  1. Login/Register as Student
  2. Go to Dashboard → Browse drives
  3. Click "Apply" on any job
  4. Upload resume in My Profile
  5. Use "AI Resume Analyzer" to check fit for a job

As a Company

  1. Register as Company (needs admin approval)
  2. Go to Dashboard → Create Placement Drive
  3. Fill in job title, description, deadline
  4. Option: Use "AI Enhance Description" to improve it
  5. Wait for admin approval
  6. Once approved, students can apply
  7. Review applications → Click "AI Score" to rate candidates

As an Admin

  1. Login with admin account
  2. Dashboard shows all stats
  3. Pending Companies: Approve or reject
  4. Pending Drives: Approve or reject
  5. Manage Students/Companies pages for oversight

File Structure

app.py              ← Main Flask app (all code is here now!)
models.py           ← Database tables
requirements.txt    ← Python libraries needed
.env.example        ← Template for tokens
README.md           ← This file

static/
  css/AIP_styles.css        ← Styling for AI components
  js/AIP_client.js          ← JavaScript for AI calls
  uploads/resumes/          ← Where resumes are saved

templates/
  base.html                 ← Header/footer for all pages
  login.html                ← Login page
  register.html             ← Sign up page
  admin/dashboard.html      ← Admin overview
  company/                  ← Company pages
  student/                  ← Student pages

Database

Everything is stored in database.sqlite3 (created automatically):

  • Users: Logins, roles (admin/company/student), approval status
  • Company Profiles: Company name, HR email, website
  • Student Profiles: Name, roll number, resume, department
  • Drives: Job postings with title, description, deadline
  • Applications: Student applications to drives

Troubleshooting

App won't start

# Make sure virtual environment is on
.\.venv\Scripts\activate

# Clear old database and restart
del database.sqlite3
python app.py

AI features say "token not configured"

  • Get token from https://aipipe.org
  • Create .env file with AIPIPE_TOKEN=your_token
  • Restart app

Can't login

  • Check username/password
  • Use admin/admin123 for admin account
  • New companies need admin approval

Port 5000 busy

Change in app.py last line:

app.run(debug=True, port=5001)  # or any other port

Code Notes (for Beginners)

  • All routes and logic in app.py (no separate files jumbled around)
  • AI functions: analyze_resume(), enhance_job_description(), score_application(), generate_interview_questions()
  • Database made easy with SQLAlchemy ORM
  • Templates use Bootstrap 5 for styling
  • JavaScript uses API calls for AI features
  • Passwords hashed with bcrypt (never stored plain)

Tech Used

  • Flask: Web framework (simple and fast)
  • SQLAlchemy: Database
  • SQLite: File-based database (no server needed)
  • Bcrypt: Password security
  • Bootstrap 5: Styling (responsive design)
  • JavaScript: Interactive features
  • AI Pipe: OpenAI API proxy
  • GPT-4o-mini: AI model for smart features

API Endpoints (For Developers)

GET /                               Home (redirects to dashboard)
POST /login, GET /logout            Authentication
POST /register                      Sign up

GET /admin                          Admin dashboard
GET /admin/std, /admin/co           Manage users
GET /admin/act_u/<id>/<action>     Approve/block users
GET /admin/act_d/<id>/<action>     Approve/reject drives

GET /company                        Company dashboard
POST /company/mk_drv                Create job posting
GET /company/drv/<id>/apps         View applications
POST /company/app/<id>/<status>    Change application status

GET /student                        Student dashboard
POST /student/app/<id>              Apply to job
GET /student/prof                   Profile page
POST /student/prof                  Update profile/resume

POST /ai/analyze-resume             AI resume analysis
POST /ai/enhance-job                AI job description improvement
POST /ai/score-app                  AI application scoring
POST /ai/generate-questions         AI interview question generation

GET /api/drives                     All approved drives (JSON)
GET /api/students                   All students (JSON)

Project Structure Simplified

The code is intentionally kept simple with:

  • Minimal variable names where context is clear (u for user, a for application, d for drive)
  • All AI functions in one file (app.py)
  • Combined database models (models.py)
  • Clear function names matching routes
  • Comments where logic might be unclear

Security

  • Passwords encrypted with bcrypt
  • AI tokens hidden in .env
  • SQL injection protection (SQLAlchemy)
  • User roles & permissions
  • CSRF protection on forms

For production: Change SECRET_KEY, use real database, add HTTPS

What's Included

  • Complete authentication system
  • Role-based access (Admin/Company/Student)
  • Database with relationships
  • Job posting workflow
  • Application management
  • Resume upload
  • AI-powered features (4 functions)
  • Admin approval system
  • Interactive UI with Bootstrap

All the Best!

About

AI-powered recruitment and placement portal facilitating smart resume analysis and application scoring.

Topics

Resources

Stars

0 stars

Watchers

0 watching

Forks

Contributors

Languages