Skip to content

Latest commit

ย 

History

18 Commits

Folders and files

NameName
Last commit message
Last commit date
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 

Repository files navigation

GTA San Andreas Portfolio

A fully interactive portfolio website inspired by the iconic Grand Theft Auto: San Andreas game aesthetics. Built with modern web technologies and featuring immersive keyboard navigation, sound effects, and authentic GTA SA visual design.

๐ŸŒ Live Site: myxoceph.com

GTA SA Theme React Vite

๐ŸŽฎ Overview

This portfolio website recreates the nostalgic experience of navigating the Grand Theft Auto: San Andreas menu system. Every element, from the custom fonts to the sound effects and selection animations, has been carefully crafted to provide an authentic GTA SA experience while showcasing professional projects and skills.

โš ๏ธ Disclaimer: This website is not affiliated with or endorsed by Rockstar Games. It is a personal portfolio inspired by Grand Theft Auto: San Andreas.

โœจ Features

Visual & Audio Experience

  • Authentic GTA SA Fonts: Custom typography using Pricedown, Diploma, BankGthd, and Beckett fonts
  • Sound Effects: Navigation sounds (select.mp3) and selection confirmation (save.mp3)
  • Polygon Logo Containers: Signature GTA-style angular image frames
  • Smooth Animations: Fade-in, slide-down, slide-up, and shimmer effects
  • Color Palette: True-to-game colors (#ffaa00 accents, #00babc progress bars, #00ff00 labels)

Navigation & Interaction

  • Full Keyboard Support:
    • Arrow Keys (โ†‘โ†“โ†โ†’) for navigation
    • Enter for selection
    • Escape to return to main menu
    • Smart keyboard priority over mouse hover
  • Mouse Navigation: Hover and click support with visual feedback
  • Auto-scroll: Automatically scrolls to show selected elements
  • Selection States: Clear visual indicators for focused items

Pages & Content

  1. Main Menu: Welcome screen with 3 navigation options and animated logo containers
  2. Projects Page: Grid layout showcasing 6 major projects with descriptions and GitHub links
  3. About Page: GTA SA Stats-style biography with 4 categories:
    • WHO I AM: Personal information
    • MY STORY: Scrolling narrative
    • 42: Information about 42 School with image and link
    • SKILLS: Infinite-scrolling progress bars with shimmer animation
  4. Contact Page: Interactive cards for Email, GitHub, and LinkedIn

Technical Features

  • Mobile Responsive: Optimized breakpoints at 768px for all pages
  • Optimized Images: Compressed to 3.8MB total (reduced from 85MB)
  • SEO Friendly: Proper meta tags and semantic HTML
  • Fast Loading: Vite-powered build for optimal performance
  • Legal Footer: Disclaimer about Rockstar Games on every page

๐Ÿ› ๏ธ Technologies

Frontend

  • React 18.2.0: UI library for component-based architecture
  • React Router 6.20.0: Client-side routing for SPA navigation
  • Vite 5.0.8: Next-generation frontend build tool

Styling

  • Custom CSS: Hand-crafted styles matching GTA SA aesthetics
  • CSS Animations: keyframes for fadeIn, slideDown, scrollUp, shimmer effects
  • Responsive Design: Mobile-first approach with media queries

Audio

  • Web Audio API: Custom useSound hook for sound effect management
  • MP3 Files: select.mp3 (navigation), save.mp3 (selection)

Deployment

  • GitHub Actions: Automated CI/CD pipeline
  • FTP Deploy: SamKirkland/FTP-Deploy-Action@v4.3.4
  • CPanel Hosting: Deployed on HostingDunyam infrastructure
  • Custom Domain: Live at myxoceph.com

๐Ÿ“ Project Structure

Portfolio/
โ”œโ”€โ”€ .github/
โ”‚   โ””โ”€โ”€ workflows/
โ”‚       โ””โ”€โ”€ deploy.yml          # Automated deployment workflow
โ”œโ”€โ”€ srcs/
โ”‚   โ”œโ”€โ”€ public/
โ”‚   โ”‚   โ”œโ”€โ”€ sounds/
โ”‚   โ”‚   โ”‚   โ”œโ”€โ”€ select.mp3     # Navigation sound
โ”‚   โ”‚   โ”‚   โ””โ”€โ”€ save.mp3       # Selection sound
โ”‚   โ”‚   โ”œโ”€โ”€ fonts/
โ”‚   โ”‚   โ”‚   โ”œโ”€โ”€ pricedown.otf  # Body text font
โ”‚   โ”‚   โ”‚   โ”œโ”€โ”€ diploma.ttf    # Main titles font
โ”‚   โ”‚   โ”‚   โ”œโ”€โ”€ Beckett.ttf    # Subtitles font
โ”‚   โ”‚   โ”‚   โ””โ”€โ”€ BankGthd.ttf   # Menu items font
โ”‚   โ”‚   โ”œโ”€โ”€ IMG_6435.png       # Portfolio image 1 (optimized)
โ”‚   โ”‚   โ”œโ”€โ”€ IMG_6918.png       # Portfolio image 2 (optimized)
โ”‚   โ”‚   โ””โ”€โ”€ 42kocaeli.webp     # 42 School logo
โ”‚   โ”œโ”€โ”€ src/
โ”‚   โ”‚   โ”œโ”€โ”€ components/
โ”‚   โ”‚   โ”‚   โ”œโ”€โ”€ MainMenu.jsx   # Landing page component
โ”‚   โ”‚   โ”‚   โ”œโ”€โ”€ MainMenu.css
โ”‚   โ”‚   โ”‚   โ”œโ”€โ”€ Footer.jsx     # Disclaimer footer
โ”‚   โ”‚   โ”‚   โ””โ”€โ”€ Footer.css
โ”‚   โ”‚   โ”œโ”€โ”€ pages/
โ”‚   โ”‚   โ”‚   โ”œโ”€โ”€ Projects.jsx   # Projects showcase
โ”‚   โ”‚   โ”‚   โ”œโ”€โ”€ Projects.css
โ”‚   โ”‚   โ”‚   โ”œโ”€โ”€ About.jsx      # Biography stats page
โ”‚   โ”‚   โ”‚   โ”œโ”€โ”€ About.css
โ”‚   โ”‚   โ”‚   โ”œโ”€โ”€ Contact.jsx    # Contact information
โ”‚   โ”‚   โ”‚   โ””โ”€โ”€ Contact.css
โ”‚   โ”‚   โ”œโ”€โ”€ hooks/
โ”‚   โ”‚   โ”‚   โ””โ”€โ”€ useSound.js    # Sound effects hook
โ”‚   โ”‚   โ”œโ”€โ”€ App.jsx            # Main app router
โ”‚   โ”‚   โ”œโ”€โ”€ App.css
โ”‚   โ”‚   โ””โ”€โ”€ main.jsx           # React entry point
โ”‚   โ”œโ”€โ”€ package.json
โ”‚   โ””โ”€โ”€ vite.config.js
โ”œโ”€โ”€ README.md
โ””โ”€โ”€ LICENSE

๐Ÿš€ Getting Started

Prerequisites

  • Node.js (v18 or higher)
  • npm or yarn package manager

Installation

  1. Clone the repository

    git clone https://github.com/Myxoceph/Portfolio.git
    cd Portfolio/srcs
  2. Install dependencies

    npm install
  3. Run development server

    npm run dev

    Open http://localhost:5173 in your browser

  4. Build for production

    npm run build

    Production files will be in dist/ directory

๐Ÿ“ฆ Deployment

This project uses GitHub Actions for automated deployment to CPanel hosting.

Automated Deployment

Every push to the main or master branch triggers:

  1. Checkout code
  2. Setup Node.js environment
  3. Install dependencies (npm ci)
  4. Build production bundle (npm run build)
  5. Deploy to CPanel via FTP (with clean-slate enabled)

Required GitHub Secrets

Set these in your repository Settings โ†’ Secrets and variables โ†’ Actions:

  • FTP_SERVER: FTP server address
  • FTP_USERNAME: FTP username
  • FTP_PASSWORD: FTP password
  • DEPLOY_PATH: Target directory on server
  • SSH_PORT: SSH port (default: 22)

Manual Deployment

npm run build
# Upload contents of srcs/dist/ to your hosting provider

๐ŸŽจ Customization

Updating Projects

Edit srcs/src/pages/Projects.jsx:

const projects = [
  {
    title: 'Project Name',
    description: 'Project description',
    tech: 'Technologies used',
    emoji: '๐ŸŽฎ',
    githubUrl: 'https://github.com/username/repo'
  },
  // Add more projects...
]

Updating About Information

Edit srcs/src/pages/About.jsx:

  • Modify categories object for different sections
  • Add/remove skills in the SKILLS array
  • Update progress bar values

Changing Colors

All colors are defined in CSS files. Main color variables:

  • Background: #000000
  • Accent: #ffaa00
  • Progress bars: #00babc
  • Labels: #00ff00
  • Text: #ffffff, #cccccc, #888888

Adding Sounds

Place new MP3 files in srcs/public/sounds/ and update useSound.js hook

๐ŸŽฏ Key Features Implementation

Keyboard Priority System

The website implements a smart keyboard priority system that prevents mouse hover conflicts:

  • isUsingKeyboard state tracks input method
  • Arrow key presses set keyboard mode
  • Mouse movement resets to mouse mode
  • Mouse hover events are ignored during keyboard navigation

Auto-scroll Functionality

Selected elements automatically scroll into view:

useEffect(() => {
  if (isBackButtonSelected && backButtonRef.current) {
    backButtonRef.current.scrollIntoView({ 
      behavior: 'smooth', 
      block: 'center' 
    })
  }
}, [isBackButtonSelected])

Progress Bar Animation

Skills section features shimmer animation:

@keyframes shimmerBar {
  0% { background-position: -200% 0; }
  100% { background-position: 200% 0; }
}

๐Ÿ“ฑ Browser Support

  • Chrome (latest)
  • Firefox (latest)
  • Safari (latest)
  • Edge (latest)
  • Mobile browsers (iOS Safari, Chrome Mobile)

๐Ÿค Contributing

This is a personal portfolio project, but suggestions and feedback are welcome!

  1. Fork the repository
  2. Create a feature branch (git checkout -b feature/amazing-feature)
  3. Commit your changes (git commit -m 'Add amazing feature')
  4. Push to the branch (git push origin feature/amazing-feature)
  5. Open a Pull Request

๐Ÿ“„ License

This project is licensed under the MIT License - see the LICENSE file for details.

๐Ÿ‘ค Author

Ahmet BAKIRCAN

๐ŸŽ“ About 42 School

This portfolio represents my journey as a Level 6 student at 42 Kocaeli, where I've completed 20 projects through peer-to-peer learning and hands-on coding challenges.

๐Ÿ™ Acknowledgments

  • Rockstar Games for creating Grand Theft Auto: San Andreas, the inspiration for this design
  • 42 School for the education and project-based learning experience
  • React & Vite communities for excellent documentation and tools
  • Font creators for the authentic GTA SA typography

๐Ÿ“Š Performance

  • Total Size: ~4MB (including optimized images)
  • Load Time: <2 seconds on 3G
  • Lighthouse Score: 90+ across all metrics
  • Mobile Optimized: Fully responsive design

About

No description, website, or topics provided.

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages