Skip to content

Krystropolis/Krystropolis.github.io

Folders and files

NameName
Last commit message
Last commit date

Latest commit

Β 

History

86 Commits
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 

Repository files navigation

Krystropolis.github.io

A modern, responsive personal portfolio website built with Next.js, TypeScript, and Tailwind CSS.

🌐 Live Site

View the live site (Coming Soon)

πŸ“‹ Project Overview

This is a complete redesign of a 2018-era personal portfolio website, transforming it from a dated Material Design Lite implementation into a modern, accessible, and data-driven web application. The site features a cohesive visual design that balances professionalism with personality.

Key Features

  • βœ… Responsive Design: Mobile-first approach with Tailwind CSS
  • βœ… Dark Mode: Theme toggle with localStorage persistence
  • βœ… Accessibility: WCAG AA compliant with semantic HTML and ARIA labels
  • βœ… Data-Driven: Content managed through JSON files for easy updates
  • βœ… Type Safety: Full TypeScript implementation
  • βœ… Print-Friendly: One-click resume PDF download
  • βœ… SEO Optimized: Next.js static export with meta tags
  • βœ… Interactive Animations: Typewriter effect for homepage text
  • βœ… Mobile-Optimized Layout: Image-first display on mobile devices

πŸ› οΈ Technology Stack

Technology Purpose
Next.js 14+ React framework with App Router for SEO and performance
React 18+ Component-based UI library with hooks
TypeScript Type safety and better developer experience
Tailwind CSS Modern utility-first CSS framework
JSON Data storage for easy content management

πŸ“ Project Structure

Krystropolis.github.io/
β”œβ”€β”€ app/                      # Next.js App Router
β”‚   β”œβ”€β”€ layout.tsx           # Root layout with Header/Footer
β”‚   β”œβ”€β”€ page.tsx             # Home page
β”‚   β”œβ”€β”€ resume/              # Resume section
β”‚   β”œβ”€β”€ portfolio/           # Portfolio section
β”‚   └── about/               # About section
β”œβ”€β”€ components/              # React components
β”‚   β”œβ”€β”€ Header.tsx           # Navigation header
β”‚   β”œβ”€β”€ Footer.tsx           # Footer component
β”‚   β”œβ”€β”€ PrintButton.tsx       # Print resume button
β”‚   β”œβ”€β”€ ContactForm.tsx       # Contact form with spam protection
β”‚   β”œβ”€β”€ TestimonialCarousel.tsx # Testimonial carousel component
β”‚   β”œβ”€β”€ ResumeNavigation.tsx   # Resume navigation component
β”‚   β”œβ”€β”€ ShareButton.tsx       # Share button component
β”‚   └── ScrollToTop.tsx      # Scroll to top button
β”œβ”€β”€ data/                    # JSON data files
β”‚   β”œβ”€β”€ resume.json          # Resume data
β”‚   β”œβ”€β”€ portfolio.json       # Portfolio projects
β”‚   β”œβ”€β”€ about.json           # About section content
β”‚   └── contact.json        # Contact page data
β”œβ”€β”€ lib/                     # Utility functions
β”‚   └── data.ts              # Data loading helpers
β”œβ”€β”€ types/                   # TypeScript types
β”‚   └── index.ts             # Type definitions
β”œβ”€β”€ public/                  # Static assets
β”‚   └── images/              # Images
β”œβ”€β”€ plans/                   # Project documentation
β”‚   β”œβ”€β”€ implementation-progress.md  # Progress tracking
β”‚   └── website-redesign-plan.md     # Original design plan
β”œβ”€β”€ next.config.mjs          # Next.js configuration
β”œβ”€β”€ tailwind.config.ts       # Tailwind configuration
β”œβ”€β”€ tsconfig.json            # TypeScript configuration
└── package.json             # Dependencies

πŸš€ Getting Started

Prerequisites

  • Node.js 18+ installed
  • Git installed

Installation

  1. Clone the repository

    git clone https://github.com/krystropolis/Krystropolis.github.io.git
    cd Krystropolis.github.io
  2. Install dependencies

    npm install
  3. Run the development server

    npm run dev
  4. Open your browser Navigate to http://localhost:3000

Available Scripts

Command Description
npm run dev Start development server
npm run build Build for production
npm start Start production server
npm run lint Run ESLint

πŸ“Š Implementation Status

Completed Phases βœ…

Phase Status Description
Phase 1: Project Setup βœ… Complete Next.js, TypeScript, Tailwind CSS configured
Phase 2: Data & Types βœ… Complete TypeScript interfaces, JSON data files
Phase 3: Core Components βœ… Complete Header, Footer, Layout with accessibility
Phase 4: Sections βœ… Complete Resume, Portfolio, and About pages
Phase 4.5: Contact Page βœ… Complete Contact form with spam protection
Phase 4.6: Homepage Enhancements βœ… Complete Typewriter animation, mobile layout optimization
Phase 5: Deployment Setup βœ… Complete Static export, GitHub Actions workflow

Remaining Phases πŸ”„

Phase Status Description
Phase 6: Content Refinement πŸ”΄ Not Started Update experience since 2018, refine copy
Phase 7: Testing & Optimization πŸ”΄ Not Started Cross-browser testing, accessibility audit
Phase 8: Deployment & Cleanup 🟑 Partial Deployment configured, old files not removed, unused images identified

For detailed progress tracking, see plans/implementation-progress.md.

πŸ“ Content Management

All site content is managed through JSON files in the data/ directory:

Updating Resume

Edit data/resume.json to add:

  • Work experience
  • Education history
  • Skills and technologies
  • Contact information

Updating Portfolio

Edit data/portfolio.json to add:

  • New projects
  • Project descriptions
  • Technology tags
  • Project images

Updating About

Edit data/about.json to modify:

  • Personal introduction
  • Interests and hobbies
  • Background information

Updating Contact

Edit data/contact.json to modify:

  • Contact information
  • Social links
  • Form configuration

🎨 Design System

Color Palette

  • Primary: Indigo (professional, trustworthy)
  • Accent: Coral/Pink (playful, energetic)
  • Background: Off-white/light gray (clean, readable)
  • Text: Dark gray (high contrast, professional)

Typography

  • Font Family: Inter (modern sans-serif)
  • Headings: Bold, with consistent hierarchy
  • Body: Clean with good line height (1.6)

Spacing

  • Consistent spacing scale (4px, 8px, 16px, 24px, 32px, 48px, 64px)
  • Max-width containers (1200px desktop, 640px mobile)

β™Ώ Accessibility Features

  • Semantic HTML elements (nav, main, footer, article, section)
  • ARIA labels on navigation and interactive elements
  • Focus indicators on all interactive elements
  • Skip link for keyboard navigation
  • Screen reader friendly structure
  • WCAG AA color contrast ratios

🚒 Deployment

The site is configured for automatic deployment to GitHub Pages via GitHub Actions.

Manual Deployment

  1. Build the site

    npm run build
  2. Commit and push

    git add .
    git commit -m "feat: update content"
    git push origin main
  3. GitHub Actions will automatically deploy to GitHub Pages

GitHub Pages Setup

  1. Go to repository Settings β†’ Pages
  2. Set Source to GitHub Actions
  3. The workflow will build and deploy automatically on push

πŸ“š Documentation

🀝 Contributing

This is a personal portfolio site, but suggestions and improvements are welcome!

πŸ“„ License

This project is open source and available under the MIT License.

πŸ”— Links


Last Updated: January 26, 2026

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Contributors 2

  •  
  •