CareerNest
A production-hardened refactor of a legacy university project built without frameworks. Features a custom Resource-Oriented Architecture, dynamic schema drift detection, and rigorous RBAC using native Procedural PHP and MySQL.

Product UI Preview
Project Overview
CareerNest is a deliberate exercise in software architecture, bypassing modern abstractions to engineer a scalable application with native tools. Originally a collaborative MVP developed by a team of five at SLIIT, I forked and performed a comprehensive refactor of the legacy codebase. The project focuses on mitigating technical debt, decoupling views from logic, and implementing a Resource-Oriented Architecture that manages the HTTP lifecycle and state without external framework dependencies.
Key Features
5 itemsFeature 01
Custom Authorization Gate: A centralized middleware that intercepts HTTP requests and validates Session payloads against Seeker, Employer, and Admin privileges.
Feature 02
Dynamic Schema Adaptation: A runtime introspection engine that detects database structure (Schema Drift) and adjusts SQL queries automatically to prevent fatal errors if columns are missing.
Feature 03
Security-First Engineering: Implementation of OWASP best practices, including strict MySQLi prepared statements for user input and whitelisting for dynamic schema logic.
Feature 04
Secure File I/O: a hardened resume upload module with MIME-type verification (PDF only) and file renaming strategies to prevent path traversal attacks.
Feature 05
Optimized 3NF Database: A normalized relational schema designed to reduce redundancy and maintain data integrity across complex user flows.
Tech Stack
Focus: Native PHPArchitecture
Resource-Oriented, Procedural PHP
Database
Native MySQL, 3NF Normalization
Security
RBAC, OWASP Mitigation, Session Management
Tooling
Windsurf (AI-Enhanced IDE), Git
Deployment
LAMP Stack, InfinityFree, Linux File Permissions
Challenges & Solutions
Problem / SolutionChallenge
The primary challenge was resolving 'Integration Hell' from the original MVP—specifically, tight coupling between views and logic and a lack of unified version control.
Solution
I addressed this by enforcing Separation of Concerns (SoC) and refactoring the monolithic structure into a Resource-Oriented pattern. Additionally, deploying to a restrictive Shared Hosting (InfinityFree) environment required manual configuration of Linux permissions (chmod) and custom error handling to prevent stack trace leaks.