My Projects

Central Management of Puppet Agents with a Script (IPA)

This project automates the management of Puppet Agents on RHEL systems and integrates LDAP, Icinga2, and scheduling systems to streamline administrative tasks.

  • Automates enabling/disabling Puppet Agents on RHEL systems via a Python script.
  • Synchronizes LDAP maintenance flags with Icinga2 downtimes using a Perl script.
  • Logs actions for auditing and troubleshooting across both scripts.
  • Integrates with LDAP, Icinga2 API, and MySQL for seamless system state management.
  • Modular design supports extensibility and error handling.

Note

Due to data security and confidentiality, the source code and detailed documentation for this project cannot be shared.

Project 1 Image 1Project 1 Image 2

Personal Portfolio Website (This website)

A fully responsive personal portfolio website built using Next.js, Tailwind CSS, and Netlify hosting.

  • Dynamic animations and smooth transitions for an engaging user interface.
  • Custom components like rotating text effects, skill bars, and project cards.
  • Integrated contact form with email-sending functionality via SendGrid.
  • Responsive design optimized for various screen sizes and devices.
Project 2 Image 1Project 2 Image 2

Further development of the IPA

This project builds upon the original Final Exam Project, introducing additional functionality and optimizations to improve scalability, performance, and user experience.

  • Introduced modular methods for LDAP modifications, checks, and job handling.
  • Integrated RESTful API calls for LDAP data retrieval, improving scalability.
  • Enhanced Puppet Agent management with more rigorous attribute checks.
  • Improved error handling and logging for better traceability.
  • Implemented a refined downtime extension process with date/time validation and user input validation.
  • Simplified task scheduling through modular helper functions.

Enhancements

  • Refactored core logic into modular methods imported as modules (e.g., check and ldap).
  • Replaced synchronous LDAP queries with REST API calls for greater flexibility.
  • Enhanced user input validation and error handling through check.reason and syslog logging.
  • Improved 'at job' scheduling with methods like at.find and at.calculate to ensure accurate timing.
  • Encapsulated main logic in a structured main() function, improving readability and maintainability.

Note

Due to data security and confidentiality, the source code and detailed documentation for this project cannot be shared.