A comprehensive, full-stack relational database portal built for orchestrating automated university placement drives, managing student pipelines, handling company job postings, and enforcing administrative state-machine rules.
The Placement Management System (PMS) is a secure, role-based web application tailored exclusively to handle the lifecycle of standard university placement operations. It eliminates the standard paperwork errors by replacing them with an immutable, strict, state-machine backend.
It features dual-interface portals:
- 👨🎓 Student Portal: For students to build their active academic profiles, track live drive listings, securely execute job applications, monitor real-time placement status, and view standard global notifications.
- 🛡️ Administrator Portal: A highly protected management system allowing the university staff to control Student constraints, blacklist Companies, trigger application cascade rules, forcefully finalize placements, and view raw, immutable system audit logs.
- Authentication: Secure login tied explicitly to their immutable university Roll Numbers. Time-restricted session cookies.
- Live Job Dashboard: A dynamic UI board featuring active openings specifically filtered by eligibility and blacklisted companies.
- Application Tracker: Acts as a local Finite State Machine. Students can natively execute, withdraw, and track their applications (e.g.,
Applied➔Selected➔Offer Accepted). - Profile Engine: A secure form allowing basic detail modifications. Crucial variables like CGPA are strictly tracked; tampering automatically logs an alert into the global DB logic.
- Global Notice Board: Feeds all major placement events publicly across the campus in real-time.
- Super Admin Privilege: Dedicated locked portal with encrypted credentials.
- Entity Manipulation: Total CRUD capabilities over Student Records and Company details, including recursive "Soft Deletions" (archiving past statistics safely).
- Application Processing Engine: Admins selectively pass students through the hiring funnel. The FSM blocks illegal actions automatically (e.g., an admin cannot place a student whose initial application status isn't marked as
Selected). - Immutable Audit Ledger: Every state change, modification, or action across the tables generates an undeletable append-only JSON log storing the exact
Old_Value,New_Value, timestamp, and the actor's ID.
- Frontend: Pure HTML5 & Custom CSS3 Variables. No heavy Bootstrap frameworks. Utilizes responsive CSS Grid/Flexbox architecture mapping specifically to dynamic
@mediaconstraints. Icons rendered via FontAwesome. - Backend Core: Vanilla PHP 8+ executing strict Object-Oriented Logic wrappers (
PlacementLogic.php,AuditLogger.php). - Database Engine: Securely parameterized MySQL (PDO) defending against SQL Injections.
- Security Protocols: Standardized
password_hash(PASSWORD_BCRYPT)hashing across both student and root-admin tiers.
The database (pms_db) is heavily tailored inside 3rd Normal Form (3NF) relying heavily on advanced schema design features.
- Relational Mapping: Maps out complex 1:M and M:N constraints connecting the
Jobs,Students, andCompaniestables together without creating orphaned states. - ACID Transactions: Core state changes (like selecting an application that automatically kills all other active applications the student holds) are safely wrapped entirely inside
BEGIN ... COMMITSQL blocks. If a server disruption happens midway, the entire block undergoes an atomicROLLBACK. - Soft Deletions: Rather than executing destructive hard
DELETEqueries that would corrupt past placement metrics, records contain anis_activeboolean field. The application layer filters out standard views dynamically.
- XAMPP / MAMP / LAMP Stack running Apache and MySQL locally.
- PHP Version 7.4 or greater.
- Ensure your local MySQL module is running in XAMPP. You can test this opening
http://localhost/phpmyadmin. - Clone this GitHub repository natively inside your XAMPP installation's
htdocsfolder. Example path:C:/xampp/htdocs/PMS. - Open phpMyAdmin, hit the SQL tab, and run
CREATE DATABASE pms_db;. - Import the
database/schema.sqlfile first to officially provision all relations, tables, and keys. - Import the
database/data.sqlfile second to instantly populate your environment with functional mock student roll numbers, companies, jobs, and the default Super Admin credential. - Make sure
includes/Database.phphas the hostname set to127.0.0.1and the database set topms_db. - Navigate to
http://localhost/PMSto load the application portal!
- Student Logins: Refer to
data.sqlinside the DB for active test Student IDs. (Default test password matches the IDs). - Super Admin Login:
- ID:
UADM001 - Password:
NOT_GIVEN
- ID:
If you intend on transferring this repository directly onto a shared web host like InfinityFree, it comes inherently configured out of the box:
- Modify your
includes/Database.phpspecifically replacing SQL configurations with your newly provisioned web panel parameters (i.e.sqlxxx.infinityfree.comand your assigned vPanel password). - Import Note: Do not execute the generic
CREATE DATABASEqueries insideschema.sql. You must manually create the database using the remote Control Panel beforehand, select it in the remote phpMyAdmin, and directly import the files!
Developed specifically enforcing strict database engineering boundaries and state machine principles.