Back Project September 2026 • 4 min read

Placement Portal Application

Campus Recruitment Management System


1. Description

The Placement Portal Application is a web-based platform designed to automate campus recruitment. It replaces manual spreadsheets by allowing companies and students to register, manage job drives, and track applications in one centralized location. The system is designed with a decoupled architecture, ensuring scalability and maintainability.

2. Technologies and Frameworks

  • Flask: Core backend framework to build the RESTful API.
  • VueJS: Frontend framework used to create a responsive and dynamic single-page user interface.
  • SQLite: Relational database to store user and drive information.
  • Redis: Message broker for Celery and for caching application data.
  • Celery: Handles background batch jobs like monthly reports and CSV exports.
  • Flask-SQLAlchemy: ORM to interact with the SQLite database programmatically.
  • JWT: Secure authentication and authorization for user login sessions.
  • CORS: Enables secure cross-origin requests between the frontend and backend APIs.
  • Bootstrap: UI components and clean layout styling.

3. Database Schema

The database consists of several interconnected tables to manage the recruitment workflow effectively.

User

Stores account details of all platform users. - id, email, password_hash, role, is_active, created_at

StudentProfile

Stores additional details for student accounts. - id, user_id, full_name, branch, year, cgpa, phone, resume_path, is_blacklisted

CompanyProfile

Stores details of companies participating in placements. - id, user_id, company_name, hr_contact, website, description, approval_status, is_blacklisted

PlacementDrive

Stores information about job/placement drives posted by companies. - id, company_id, drive_name, job_title, job_description, salary, location, eligibility_criteria, application_deadline, interview_type, status, created_at

Application

Stores records of student applications to placement drives. - id, student_id, drive_id, applied_at, status, remark

πŸ’‘ Database Relationships: The schema utilizes a robust relational design: - One-to-One: User β†’ StudentProfile | User β†’ CompanyProfile - One-to-Many: CompanyProfile β†’ PlacementDrive | StudentProfile β†’ Application | PlacementDrive β†’ Application

4. API Resource Endpoints

The backend exposes several RESTful endpoints to manage the application's core functionality:

  • UserRegistration (/): Handles new user signups (POST).
  • UserLogin (/login): Authenticates users and starts sessions via JWT (POST).
  • AdminDashboard (/admin/dashboard, /admin/dashboard/<int:id>): Allows Admin to view stats and manage users, company applications, and drives (GET, PUT).
  • CompanyDashboard (/company/dashboard, /company/dashboard/<int:id>): Allows companies to post drives, view applicants, and change students' application status (GET, POST, PUT).
  • StudentDashboard (/student/dashboard, /student/dashboard/<int:id>): Allows Students to view drives and apply for open positions (GET, POST).
  • CSVExport (/export/csv): Triggers a background job to export student or company data (POST).
  • Logout (/logout): Clears user sessions (POST).

5. Implemented Features

Core Functionality

  • Role-Based Access: Distinct functionalities and dashboards for Admin, Company, and Student roles.
  • Drive Management: Companies can create placement drives; Admins can approve or reject them.
  • Application Tracking: Students can apply for ongoing drives and track their status (Applied / Selected / Shortlisted / Waitlisted / Rejected).

Background & Async Jobs (Celery & Redis)

  • Scheduled Jobs:
  • Daily Reminders – Automated reminders for upcoming interviews via email.
  • Monthly Reports – Admin & Companies receive an HTML activity report via email on the 1st of every month.
  • Async Batch Jobs: Students and Companies can trigger an "Export to CSV" task that runs in the background and sends emails with the dashboard summary.
  • Caching: Implemented Redis caching on frequently accessed data like Admin and User Dashboards to improve overall application performance.