Web Portfolio

A PHP-based web portfolio application for showcasing graphics, animations, and videos.

Features

  • Portfolio Management: Add, edit, and view portfolio items across different categories.
  • Database Backup: Built-in functionality for taking and restoring database backups.
  • Responsive Design: Built using Bootstrap v5 and SASS for a modern, responsive layout.

Setup Instructions

  1. Clone the repository

  2. Install dependencies (if modifying styles):

    npm install
    npm run compile:sass
  3. Database Configuration: The connect.php file is ignored by git because it contains sensitive credentials. Create a connect.php file in the root directory with the following structure:

    <?php
    $dbhost = 'localhost';
    $dbuser = 'your_database_user';
    $dbpass = 'your_database_password';
    $dbname = 'jayson_art';
    
    mysqli_report(MYSQLI_REPORT_OFF); // Required for PHP 8.1+ compatibility
    
    $link = mysqli_connect($dbhost, $dbuser, $dbpass, $dbname);
    
    $link->query("SET NAMES 'utf8'");
    $link->query("SET CHARACTER SET utf8");
    
    if($link === false){
        die("ERROR: Could not connect. " . mysqli_connect_error());
    }
    
    try{
        $pdo = new PDO("mysql:host=$dbhost;dbname=$dbname;charset=utf8", $dbuser, $dbpass, array(PDO::MYSQL_ATTR_INIT_COMMAND => "SET NAMES 'utf8'"));
    }catch(PDOException $error){
        echo $error->getmessage();
    }        
    
    session_start();
    error_reporting(0);
    date_default_timezone_set('Asia/Manila');
    ?>
  4. Backup Configuration: The backup.php script is also ignored as it contains hardcoded credentials. If you need the backup functionality, you should recreate it locally or use a secure environment configuration.

Requirements

  • PHP 7.4 or PHP 8+ (configured for backward compatibility)
  • MySQL / MariaDB
  • Node.js (for compiling SASS)