A web-based Placement Portal built for the Modern Application Development I course at IIT Madras. The application allows an Admin (Institute Placement Cell), Companies, and Students to interact through a role-based system to manage campus recruitment activities.
| Layer | Technology |
|---|---|
| Backend | Python, Flask |
| Frontend | Jinja2, HTML, CSS, Bootstrap 5 |
| Database | SQLite (via Flask-SQLAlchemy) |
| Auth | Flask-Login |
| File Uploads | Werkzeug |
- Admin — Pre-existing superuser. Approves/rejects companies and drives, manages all users, can blacklist accounts.
- Company — Registers and waits for admin approval. Can post placement drives, view applicants, and update application statuses.
- Student — Self-registers. Can browse approved drives, apply, upload resume, and track application history.
- Role-based login (Admin / Company / Student)
- Company registration approval workflow
- Placement drive creation and admin approval
- Student application system with duplicate prevention
- Application status tracking (Applied → Shortlisted → Selected / Rejected)
- Resume upload for students
- Admin search for students and companies
- Blacklist / deactivate accounts
- Full application history per student
24f2006233/
├── app.py — all routes and logic
├── models.py — 5 database models
├── requirements.txt
├── static/uploads/ — student resumes
├── instance/ — placement.db
└── templates/
├── base.html
├── auth/ — login, register
├── admin/ — dashboard
├── company/ — dashboard, drives, review
└── student/ — dashboard, apply, history
Admin— pre-seeded superuser, no registrationCompany— registered by companies, approved by adminStudent— self-registeredPlacementDrive— created by companies, approved by adminApplication— links student to drive, tracks status
# 1. Clone the repo
git clone <your-repo-url>
cd placement_portal
# 2. Create and activate virtual environment
python -m venv venv
venv\Scripts\activate # Windows
# source venv/bin/activate # Mac/Linux
# 3. Install dependencies
pip install -r requirements.txt
# 4. Run the app (also creates DB and seeds admin)
python app.pyThen open http://127.0.0.1:5000 in your browser.
Default admin credentials:
- Email:
admin@placement.com - Password:
admin123