Skip to content

squishydal/portofolio

Folders and files

NameName
Last commit message
Last commit date

Latest commit

Β 

History

9 Commits
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 

Repository files navigation

πŸ–₯️ Terminal Resume

An interactive, feature-rich terminal-style resume built with modern web technologies. This project showcases my skills and experience in a unique, engaging way that developers and tech enthusiasts will appreciate.

Live Demo License: MIT

Terminal Resume Preview

✨ Features

🎯 Core Functionality

  • 15+ Interactive Commands - Explore my resume through familiar terminal commands
  • Tab Completion - Smart autocomplete for commands, files, and arguments
  • Command History - Navigate previous commands with ↑/↓ arrows
  • Persistent Storage - Command history and preferences saved locally
  • Mobile Optimized - Full touch support with virtual keyboard

🎨 Visual Features

  • 6 Themes - CRT (default), Matrix, Hacker, Light, Dracula, and Nord
  • CRT Effects - Authentic terminal feel with scanlines and glow
  • Smooth Animations - Typing effects and transitions
  • Responsive Design - Works flawlessly on all screen sizes

β™Ώ Accessibility

  • Screen Reader Support - ARIA labels and live regions
  • Keyboard Navigation - Full keyboard accessibility
  • High Contrast Mode - Respects system preferences
  • Reduced Motion - Honors prefers-reduced-motion

πŸš€ Advanced Features

  • Download Resume - Export as PDF or TXT
  • Neofetch Display - Nerdy system info showcase
  • Easter Eggs - Hidden surprises throughout
  • PWA Support - Install as a standalone app
  • Offline Mode - Works without internet connection
  • SEO Optimized - Full meta tags and Open Graph support

πŸ“‚ Project Structure

terminal-resume/
β”œβ”€β”€ public/
β”‚   β”œβ”€β”€ manifest.json         # PWA manifest
β”‚   β”œβ”€β”€ sw.js                 # Service worker for offline support
β”‚   └── [icons/screenshots]   # App icons and previews
β”œβ”€β”€ src/
β”‚   β”œβ”€β”€ commands/
β”‚   β”‚   β”œβ”€β”€ handlers.js       # All command implementations
β”‚   β”‚   └── autocomplete.js   # Tab completion logic
β”‚   β”œβ”€β”€ config/
β”‚   β”‚   └── resume.js         # Resume data, file system, content
β”‚   β”œβ”€β”€ terminal/
β”‚   β”‚   β”œβ”€β”€ setup.js          # Terminal initialization
β”‚   β”‚   └── inputHandler.js   # Keyboard/touch event handling
β”‚   β”œβ”€β”€ utils/
β”‚   β”‚   β”œβ”€β”€ storage.js        # LocalStorage utilities
β”‚   β”‚   β”œβ”€β”€ themes.js         # Theme management
β”‚   β”‚   β”œβ”€β”€ download.js       # PDF/TXT export
β”‚   β”‚   └── onboarding.js     # First-time user experience
β”‚   β”œβ”€β”€ main.js               # Application entry point
β”‚   └── style.css             # Global styles & effects
β”œβ”€β”€ index.html
β”œβ”€β”€ vite.config.js
β”œβ”€β”€ package.json
└── README.md

πŸ› οΈ Tech Stack

  • Build Tool: Vite 5
  • Terminal: xterm.js + xterm-addon-fit
  • PDF Generation: jsPDF
  • Storage: LocalStorage API
  • Styling: Pure CSS with custom effects
  • Deployment: GitHub Pages

πŸš€ Getting Started

Prerequisites

  • Node.js 18+ and npm

Installation

  1. Clone the repository
git clone https://github.com/yourusername/terminal-resume.git
cd terminal-resume
  1. Install dependencies
npm install
  1. Start development server
npm run dev
  1. Open in browser Navigate to http://localhost:5173

Building for Production

npm run build

The optimized files will be in the dist/ directory.

Preview Production Build

npm run preview

πŸ“¦ Deployment to GitHub Pages

  1. Update configuration

Edit vite.config.js - change base to your repository name:

base: "/your-repo-name/";
  1. Update personal information

Edit src/config/resume.js with your:

  • Resume content
  • Contact details
  • Projects
  • Skills
  • Social links
  1. Update meta tags

Edit index.html with your:

  • Site title and description
  • Open Graph image URL
  • Social media URLs
  1. Deploy
npm run deploy
  1. Enable GitHub Pages
  • Go to repository Settings β†’ Pages
  • Source: Deploy from branch
  • Branch: gh-pages / root
  • Save

Your site will be live at: https://yourusername.github.io/your-repo-name/

πŸ“– Available Commands

Command Description
help [command] Show available commands or detailed help
ls List files
cat <file> Display file contents
about Learn about me
contact View contact information
skills List technical and soft skills
projects [name] View projects (optionally specify one)
neofetch Display system information
whoami Show current user info
history View command history
download [pdf|txt] Download resume
theme [name|list] Change or list themes
fortune Random developer wisdom
date Show current date/time
echo <text> Print text
pwd Print working directory
clear Clear terminal screen
exit End session (shows stats)

Keyboard Shortcuts

  • Tab - Autocomplete commands and filenames
  • ↑ / ↓ - Navigate command history
  • Ctrl+C - Cancel current input
  • Ctrl+L - Clear screen (alternative to clear)

🎨 Themes

Switch between themes using the theme command:

theme matrix    # Green Matrix-style
theme hacker    # Green on black hacker aesthetic
theme light     # Light mode for daytime
theme dracula   # Popular Dracula theme
theme nord      # Nordic-inspired palette
theme crt       # Default CRT theme

Themes are automatically saved and restored on your next visit!

🎭 Easter Eggs

Try these commands for fun surprises:

  • sudo, rm -rf /, hack
  • matrix, portal, coffee, beer
  • vim, emacs, fortune

...and there are more hidden throughout! πŸ₯š

πŸ”§ Customization Guide

Adding New Commands

  1. Add command to COMMANDS array in src/commands/handlers.js
  2. Add handler in the switch statement
  3. (Optional) Add help text to commandHelp in src/config/resume.js
  4. (Optional) Add autocomplete logic in src/commands/autocomplete.js

Adding New Themes

  1. Add theme object to themes in src/utils/themes.js
  2. Define colors and effects
  3. Theme will automatically appear in theme list

Modifying Resume Content

Edit src/config/resume.js:

  • resumeText - Main resume content
  • neofetchData - Personal info for neofetch
  • contact - Contact details
  • skills - Technical and soft skills
  • projects - Project showcase
  • fileSystem - Virtual file system content

🌐 Browser Support

  • βœ… Chrome/Edge 90+
  • βœ… Firefox 88+
  • βœ… Safari 14+
  • βœ… Mobile browsers (iOS Safari, Chrome Mobile)

πŸ“Š Performance

  • Lighthouse Score: 95+ (Performance, Accessibility, Best Practices, SEO)
  • First Contentful Paint: <1s
  • Time to Interactive: <1.5s
  • Bundle Size: <200KB (gzipped)

🀝 Contributing

Contributions are welcome! Feel free to:

  • Report bugs
  • Suggest new features
  • Submit pull requests
  • Improve documentation

πŸ“„ License

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

πŸ™ Acknowledgments

  • xterm.js - Amazing terminal emulator
  • Vite - Lightning-fast build tool
  • Inspired by terminal-style portfolios across the web

πŸ“ž Contact

Tora Sifa


Built with ❀️ and β˜• by Tora Sifa
If you found this useful, consider giving it a ⭐!

About

No description, website, or topics provided.

Resources

License

Contributing

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors