Skip to content

pattygcoding/PG-Website

Folders and files

NameName
Last commit message
Last commit date

Latest commit

Β 

History

61 Commits
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 

Repository files navigation

JavaScript Python React Bootstrap WebAssembly Three.js License: MIT

A modern, multilingual React.js portfolio website showcasing full-stack development skills, innovative projects, and multilingual accessibility across 100+ languages.

πŸ”— Live Website: www.pattygcoding.com


πŸ“– About

This is the personal portfolio website of Patrick Goodwin, a passionate full-stack software engineer, web developer, game developer, and content creator. Built entirely from scratch using modern React.js, this website demonstrates advanced web development techniques, innovative features, and a commitment to accessibility and internationalization.

πŸ‘¨β€πŸ’» About the Developer

Patrick Goodwin is an experienced full-stack software engineer with a demonstrated history of successfully leading development projects, from creating Java modifications for Minecraft to enhancing user experience in React.js and implementing secure REST APIs. He consistently employs agile methodologies and effective team collaboration. Additionally, Patrick is a geography content creator who has successfully leveraged social media algorithms across Instagram, YouTube, and TikTok to build an engaging follower base.


✨ Key Features

🌍 Multilingual Support (100+ Languages)

  • Comprehensive Translation System: Supports over 100 languages using Google Translate API
  • Automated Translation Pipeline: Python script with intelligent caching and progress tracking
  • Smart Language Detection: Fallback system with English as default
  • Real-time Language Switching: Seamless user experience across all supported languages

πŸš€ Advanced Projects Showcase

  • Tiger Language Interpreter: Custom programming language with WebAssembly implementations in both Go and Rust
  • 3D Rubik's Cube Solver: Interactive 3D cube solver using Three.js with painting and algorithm features
  • JSON & YAML Formatter: WebAssembly-powered formatter with real-time validation

🎨 Modern UI/UX

  • Responsive Design: Mobile-first approach with Bootstrap 5
  • Interactive Animations: Typewriter effects, smooth transitions, and hover animations
  • Accessible Design: ARIA compliant with keyboard navigation support
  • Professional Theming: Clean, modern interface with consistent branding

πŸ› οΈ Technology Stack

Frontend

  • React 18.2.0 - Modern React with hooks and context
  • React Router 6 - Client-side routing with language-aware links
  • Bootstrap 5.2.3 - Responsive CSS framework
  • Three.js - 3D graphics and WebGL rendering
  • PrismJS - Syntax highlighting for code blocks

Backend & Build Tools

  • WebAssembly (WASM) - High-performance compiled modules
  • Go & Rust - WebAssembly implementations for Tiger language
  • Python 3 - Translation automation scripts
  • Node.js 18 - Development environment

APIs & Services

  • Google Translate API - Automated translation service
  • EmailJS - Contact form functionality
  • GitHub Pages - Static site hosting

Development Tools

  • Yarn - Package management
  • React App Rewired - Custom webpack configuration
  • ESLint - Code linting and formatting

🎯 Featured Projects

1. πŸ… Tiger Language Interpreter

A custom programming language implementation with dual WebAssembly backends:

  • Go Implementation: Fast execution with goroutines support
  • Rust Implementation: Memory-safe compilation with zero-cost abstractions
  • Interactive Editor: Real-time code execution and syntax highlighting
  • WebAssembly Integration: Seamless browser-based execution

2. 🧩 3D Rubik's Cube Solver

An interactive 3D Rubik's cube solver built with Three.js:

  • 3D Visualization: Realistic cube rendering with smooth animations
  • Interactive Painting: Click-to-color interface for cube configuration
  • Advanced Algorithms: Multiple solving algorithms implementation
  • Real-time Validation: State validation and move tracking

3. πŸ”§ JSON & YAML Formatter

A high-performance formatter with WebAssembly backend:

  • Real-time Formatting: Instant JSON/YAML formatting and validation
  • Error Detection: Comprehensive error reporting and suggestions
  • WebAssembly Performance: Native-speed parsing and formatting
  • Multi-format Support: JSON, YAML, and automatic format detection

πŸš€ Getting Started

Prerequisites

  • Node.js (v18 or higher)
  • Yarn package manager
  • Python 3 (for translation features)

Installation

  1. Clone the repository

    git clone https://github.com/pattygcoding/PG-Website.git
    cd PG-Website
  2. Install dependencies

    yarn install
  3. Start the development server

    yarn start

    The application will be available at http://localhost:3000

Building for Production

yarn build

Deployment

yarn deploy

This will build the project and deploy it to GitHub Pages.


🌐 Translation System

The website features an advanced multilingual system supporting 100+ languages:

Running Translations

# Translate all content to all supported languages
python src/assets/lang/lang.py

# Skip already translated content (recommended for updates)
python src/assets/lang/lang.py -skip

Translation Features

  • Intelligent Caching: Avoids re-translating unchanged content
  • Progress Tracking: Real-time translation progress with threading
  • Error Handling: Robust error handling with fallback mechanisms
  • Pretty JSON Output: Formatted, readable translation files

Supported Languages

The system supports 100+ languages including but not limited to:

  • Major world languages (English, Spanish, French, German, Chinese, Japanese, etc.)
  • Regional variants and dialects
  • Less common languages for maximum accessibility
  • Right-to-left (RTL) language support

πŸ“ Project Structure

src/
β”œβ”€β”€ app/                 # Main app configuration
β”œβ”€β”€ assets/
β”‚   β”œβ”€β”€ lang/           # Translation files (100+ languages)
β”‚   β”‚   β”œβ”€β”€ lang.py     # Translation automation script
β”‚   β”‚   └── *.json      # Individual language files
β”‚   └── links/          # External links configuration
β”œβ”€β”€ components/         # Reusable React components
β”œβ”€β”€ cursor/            # Custom cursor implementation
β”œβ”€β”€ hooks/             # Custom React hooks
β”œβ”€β”€ lang/              # Language context and utilities
β”œβ”€β”€ menu/              # Navigation components
β”œβ”€β”€ pages/             # Main page components
β”‚   β”œβ”€β”€ about/         # About page
β”‚   β”œβ”€β”€ contact/       # Contact form
β”‚   β”œβ”€β”€ home/          # Landing page
β”‚   β”œβ”€β”€ portfolio/     # Portfolio showcase
β”‚   └── projects/      # Interactive projects
β”‚       β”œβ”€β”€ cube-solver/
β”‚       β”œβ”€β”€ formatter/
β”‚       └── tiger/
└── routes/            # Application routing

🀝 Contributing

While this is a personal portfolio project, suggestions and feedback are welcome! Please feel free to:

  1. Report Issues: Open an issue for any bugs or suggestions
  2. Feature Requests: Suggest new features or improvements
  3. Translation Improvements: Help improve translation accuracy

πŸ“œ License

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


πŸ“ž Contact

Patrick Goodwin

  • 🌐 Website: www.pattygcoding.com
  • πŸ“§ Email: Contact Form
  • πŸ’Ό LinkedIn: Connect through the website
  • πŸ“± Social Media: Follow @pattygcoding

πŸ™ Acknowledgments

  • React Community for the amazing ecosystem
  • Google Translate API for enabling multilingual support
  • WebAssembly Community for high-performance web applications
  • Three.js Contributors for incredible 3D capabilities
  • Open Source Community for inspiration and tools

⭐ If you found this project interesting, please consider giving it a star!

Built with ❀️ by Patrick Goodwin

About

No description, website, or topics provided.

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors