Portfolio Documentation

Overview

This repository hosts the source code for my personal portfolio website, which is available at https://karimshaban01.github.io/portfolio. The portfolio showcases my skills, projects, and achievements, providing a platform for visitors to learn more about my work and get in touch with me.

The website is built using a combination of Hack, PHP, and HTML, ensuring a dynamic and visually appealing user experience.


Features

  • About Me Section: A brief introduction to who I am and my professional journey.
  • Projects Showcase: Highlights of my past and ongoing projects with descriptions and links.
  • Skills Section: A summary of the technical skills I possess.
  • Contact Form: A functional contact form for visitors to reach out to me.
  • Responsive Design: Optimized for viewing on desktops, tablets, and mobile devices.
  • Dynamic Content: Built with PHP and Hack for server-side dynamic rendering.
  • User-Friendly Interface: Designed to be intuitive and easy to navigate.

Tech Stack

The portfolio is developed using the following technologies:

  • Hack (42.9%): For server-side scripting and dynamic content generation.
  • PHP (28.6%): Backend functionality and integration.
  • HTML (28.5%): Structure and content of the web pages.

Prerequisites

To run this portfolio locally, you need:

  • Web Server: Apache or Nginx.
  • PHP Runtime: Version 7.4 or later.
  • Hack Runtime: HHVM (HipHop Virtual Machine) for executing Hack code.
  • A modern web browser for viewing the portfolio.

Installation and Setup

1. Clone the Repository

git clone https://github.com/karimshaban01/portfolio.git
cd portfolio

2. Configure the Web Server

  1. Place the repository in your web server's root directory. For example:
    • For Apache: /var/www/html/portfolio
    • For Nginx: /usr/share/nginx/html/portfolio
  2. Ensure that the web server is configured to handle PHP and Hack files:
    • For Apache, enable the PHP module: bash sudo a2enmod php sudo service apache2 restart
    • For Hack, install and configure HHVM.

3. Run Locally

  • Start your web server.
  • Open a browser and navigate to http://localhost/portfolio.

Deployment

This portfolio is deployed using GitHub Pages. To deploy updates:

  1. Push changes to the main branch of this repository.
  2. GitHub Pages will automatically rebuild and deploy the site to https://karimshaban01.github.io/portfolio.

File Structure

Below is an overview of the key files and directories in the repository:

portfolio/
├── index.html           # Main landing page
├── about.html           # About Me page
├── projects/            # Folder containing project pages
├── contact/             # Contact form and backend scripts
├── assets/              # Images, CSS, JavaScript, and other static files
│   ├── css/             # Stylesheets
│   ├── js/              # JavaScript files
│   └── images/          # Portfolio images
├── backend/             # Server-side scripts (Hack and PHP)
├── README.md            # Documentation
└── LICENSE              # License information

How to Contribute

Contributions are welcome! Here’s how you can contribute:

  1. Fork this repository.
  2. Create a new branch for your feature or bug fix: bash git checkout -b feature-name
  3. Commit your changes: bash git commit -m "Add feature description"
  4. Push your branch: bash git push origin feature-name
  5. Open a pull request to the main branch.

Known Issues

If you encounter any issues while running or viewing the portfolio, feel free to:

  • Open an issue in the GitHub Issues section.
  • Contact me via the contact form on the portfolio website.

License

This project is licensed under the MIT License.


Support

For questions, feedback, or support, you can:

  • Open an issue in this repository.
  • Use the contact form on the portfolio website.
  • Reach out to me directly via my social media or email (available on the portfolio).

Built With

Share this project:

Updates