A modern, sleek Placement Management System built with Flask and SQLAlchemy, tailored for Nilgiri College.
Career Grid streamlines the placement process by providing distinct portals for students and recruiters. It features a robust Role-Based Access Control (RBAC) system to ensure secure interactions and academic-centric portfolio management.
- Premium Design: A high-end aesthetic matching the Nilgiri College brand.
- Role-Based Dashboards: Tailored experiences for Students and Admins based on their specific activities.
- Mobile First: Fully responsive layout optimized for all device sizes.
- Micro-interactions: Smooth transitions and hover effects for an engaging experience.
- Institutional Enrollment Only: Public signup is disabled; students are added via controlled administrative flows.
- Secure First Login: Mandatory password change for all initial student accounts to ensure individual security.
- Enhanced RBAC: Restricted page access using bespoke decorators (
@admin_required,@superadmin_required). - Secure Sessions: Powered by
Flask-Loginwith encrypted password hashing.
- Admin Management: Bulk student enrollment via Excel (.xlsx) upload.
- Job & Internship Board: Centralized repository for all career opportunities.
- Student Portfolio: Professional academic records including CGPA and skill tracking.
- Backend: Python, Flask, Jinja2
- Data Processing: Pandas, OpenPyxl (for Excel automation)
- Database: SQLite (Dev), SQLAlchemy (ORM)
- Frontend: Vanilla JavaScript, CSS3 (Modern Flexbox/Grid)
- Security: PBKDF2 Password Hashing
- Python 3.8 or higher
- pip (Python Package Installer)
-
Clone the Repository
git clone <repository-url> cd career_grid
-
Install Dependencies
py -m pip install flask flask-sqlalchemy flask-login requests pandas openpyxl
-
Initialize Database & Seed Content
py scripts/reseed_master.py
Note: This script initializes the schema, seeds the Super Admin, regular admins, and sample jobs.
-
Run the Application
py run.py
Visit
http://127.0.0.1:5000in your browser.
- Create a Web Service: Connect your GitHub repository to Render.
- Environment: Select
Pythonas the environment. - Build Command:
pip install -r requirements.txt
- Start Command:
gunicorn app:app
- Database: Render uses an ephemeral filesystem. For production, consider connecting to a Managed PostgreSQL instance or using a persistent disk if you want to keep the SQLite
instance/folder.
| Role | Password | Access Level | |
|---|---|---|---|
| Super Admin | superadmin@nilgiricollege.ac.in |
SuperAdmin@123 |
Full System Control & User Management |
| Placement Admin | admin1@nilgiricollege.ac.in |
password123 |
Student Enrollment & Job Posting |
- Admin uploads a student master list (Excel) via the Admin Dashboard.
- Students receive a temporary password (
password123). - On First Login, students are redirected to set a unique personal password.
career_grid/
├── app/ # Flask Application & Core Logic
│ ├── static/ # CSS, JS, and Images
│ └── templates/ # Jinja2 HTML Templates
├── scripts/ # Initialization, Seeding, and Optimizations
├── instance/ # Local database storage (SQLite)
├── .gitignore # Git exclusion rules
├── config.py # App configuration
├── login_credentials.txt # Registry of test accounts
├── README.md # Project Documentation
├── requirements.txt # Production dependencies
└── run.py # Application entry point (Local Dev)