Skip to content

Repository files navigation

College Placement Portal

Note

This project was created for college students when I was working as a freelancer. This is not purposed for commercial use or production. It is maintained for educational and portfolio purposes only.

Overview

The College Placement Portal is a web-based platform designed to streamline and automate the campus recruitment and placement process. It acts as a central hub connecting college administrators (superadmins), students, and recruiters. The system handles job postings, student profile registration, job applications, student invitations, and automated email notifications.

Features

  • Dual Roles: Dedicated dashboards for college administration (superadmin) and students.
  • Student Invitation & Authentication: Superadmins can invite students to register. The system generates secure random passwords and notifies students via automated emails.
  • Profile Management: Students can build structured profiles, complete with education history, skills, languages, and certificates.
  • Job Board: Superadmins can create and manage full-time, part-time, contract, or internship job listings. Students can view job listings and apply.
  • Application Tracking: Seamless flow from job application to acceptance or rejection, with automatic email notifications sent to students when decisions are made.
  • Helpdesk AI Chatbot: Built-in placement helpdesk chat leveraging TF-IDF and NLTK to answer student queries regarding placement events, policies, and preparation.

Workflow Flowchart

Below is the sequence graph of the core workflow (student invitation, onboarding, and job application):

sequenceDiagram
    actor Admin as Superadmin
    actor Student
    participant DB as System Database
    participant Mail as Celery & SMTP

    Admin->>DB: Create Student Account
    DB-->>Mail: Trigger Email Invitation Task
    Mail-->>Student: Send Email with Temp Password
    Student->>Student: Login & Reset Password
    Student->>DB: Complete Profile (Education, Skills, Certificates)
    Admin->>DB: Post Job Openings
    Student->>DB: Apply for Job
    Admin->>DB: Accept/Reject Application
    DB-->>Mail: Trigger Status Update Email
    Mail-->>Student: Receive Application Decision Email
Loading

Architecture

The application follows a traditional Model-View-Template (MVT) architecture powered by Django, with a background task processing layer powered by Celery & RabbitMQ.

graph TD
    Client[Web Browser]
    Django[Django Application]
    SQLite[(SQLite Database)]
    Celery[Celery Worker]
    RabbitMQ[RabbitMQ Broker]
    Redis[Redis Cache]
    
    Client -->|HTTP Requests| Django
    Django -->|Queries/Updates| SQLite
    Django -->|Cache Reads/Writes| Redis
    Django -->|Enqueue Mail Task| RabbitMQ
    RabbitMQ -->|Consume Task| Celery
    Celery -->|Send Email| SMTP[SMTP Server]
Loading

Folder Structure

  • CollagePlacementPortal/ - Main Django project configuration, settings, routing, wsgi/asgi entry points, and custom middleware.
  • authentication/ - User authentication logic, login/logout, password reset, and forms.
  • collage/ - Superadmin features (student management, job creation, application reviews, and helpdesk backend).
  • student/ - Student portal features (profile setup, job listings view, job applications).
  • main/ - Shared models, serializers, and asynchronous Celery tasks.
  • templates/ - Global HTML templates.
  • static/ - CSS, JS, images, and external libraries.
  • media/ - User-uploaded files and media resources.

Technologies

  • Backend: Django 4.1.7, Django REST Framework (DRF)
  • Frontend: HTML5, Vanilla CSS, Bootstrap 4/5
  • Database: SQLite3 (Default development)
  • Caching: Redis
  • Task Queue: Celery, RabbitMQ
  • AI/NLP: NLTK, Scikit-learn (TF-IDF vectorization for the Helpdesk Chatbot)

Configuration

The application relies on environment variables for database, email server (SMTP), and security configurations. Make sure to define these in a .env file inside the project root (refer to .env.example).

Variable Name Description Default / Example
EMAIL_HOST SMTP server host smtp.gmail.com
EMAIL_PORT SMTP port 587
EMAIL_HOST_USER Email username your_email@example.com
EMAIL_HOST_PASSWORD App-specific email password your_app_password
EMAIL_USE_TLS Use TLS encryption True
MAIL_PROTOCOL Web app protocol http
NLTK_DISABLE_IMPORT_SECURITY Disables NLTK's security sandbox hook (required inside local venvs) 1

Installation

Local Setup

  1. Clone the Repository:

    git clone https://github.com/harshidkoladara/collage-placement-portal.git
    cd collage-placement-portal
  2. Set up Virtual Environment:

    python -m venv .venv
    # Windows:
    .venv\Scripts\activate
    # macOS/Linux:
    source .venv/bin/activate
  3. Install Dependencies:

    pip install -r requirements.txt
  4. Configure Environment Variables: Copy .env.example to CollagePlacementPortal/.env and edit with your settings:

    cp .env.example CollagePlacementPortal/.env
  5. Run Migrations & Start Server:

    python manage.py migrate
    python manage.py runserver

Docker Setup

To run the complete system (including Redis, RabbitMQ, and Celery workers) easily:

  1. Build and Run Containers:

    docker-compose up --build
  2. Access the App: The web portal will be running at http://localhost:8000/.


API Documentation

The application features a self-documenting API using Swagger / OpenAPI:

  • Interactive Swagger UI: http://localhost:8000/swagger/ (if enabled in routes)

Key Endpoints

  • GET /api/utils/label: Fetch UI localization labels. Accepts optional date_time query param.

Development Guide

  • Run Django Check: python manage.py check
  • Create Migrations: python manage.py makemigrations
  • Apply Migrations: python manage.py migrate
  • Create Superuser: python manage.py createsuperuser

Troubleshooting

  • NLTK Blocked Import Error: If you see ImportError: Blocked import of regex from current working directory, ensure you set NLTK_DISABLE_IMPORT_SECURITY=1 in your .env file or environment.
  • Celery Connection Failures: Ensure RabbitMQ is running (docker-compose up rabbitmq or check your local rabbitmq status).

About

comprehensive Django-based College Placement Portal featuring dual-role dashboards, automated application tracking, and an NLP-powered helpdesk chatbot.

Topics

Resources

Stars

0 stars

Watchers

1 watching

Forks

Releases

Packages

Contributors

Languages