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.
- 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
- 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
- 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
- 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
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
- 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
- Node.js 18+ and npm
- Clone the repository
git clone https://github.com/yourusername/terminal-resume.git
cd terminal-resume- Install dependencies
npm install- Start development server
npm run dev- Open in browser
Navigate to
http://localhost:5173
npm run buildThe optimized files will be in the dist/ directory.
npm run preview- Update configuration
Edit vite.config.js - change base to your repository name:
base: "/your-repo-name/";- Update personal information
Edit src/config/resume.js with your:
- Resume content
- Contact details
- Projects
- Skills
- Social links
- Update meta tags
Edit index.html with your:
- Site title and description
- Open Graph image URL
- Social media URLs
- Deploy
npm run deploy- 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/
| 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) |
Tab- Autocomplete commands and filenamesβ/β- Navigate command historyCtrl+C- Cancel current inputCtrl+L- Clear screen (alternative toclear)
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 themeThemes are automatically saved and restored on your next visit!
Try these commands for fun surprises:
sudo,rm -rf /,hackmatrix,portal,coffee,beervim,emacs,fortune
...and there are more hidden throughout! π₯
- Add command to
COMMANDSarray insrc/commands/handlers.js - Add handler in the
switchstatement - (Optional) Add help text to
commandHelpinsrc/config/resume.js - (Optional) Add autocomplete logic in
src/commands/autocomplete.js
- Add theme object to
themesinsrc/utils/themes.js - Define colors and effects
- Theme will automatically appear in
theme list
Edit src/config/resume.js:
resumeText- Main resume contentneofetchData- Personal info for neofetchcontact- Contact detailsskills- Technical and soft skillsprojects- Project showcasefileSystem- Virtual file system content
- β Chrome/Edge 90+
- β Firefox 88+
- β Safari 14+
- β Mobile browsers (iOS Safari, Chrome Mobile)
- Lighthouse Score: 95+ (Performance, Accessibility, Best Practices, SEO)
- First Contentful Paint: <1s
- Time to Interactive: <1.5s
- Bundle Size: <200KB (gzipped)
Contributions are welcome! Feel free to:
- Report bugs
- Suggest new features
- Submit pull requests
- Improve documentation
This project is licensed under the MIT License - see the LICENSE file for details.
- xterm.js - Amazing terminal emulator
- Vite - Lightning-fast build tool
- Inspired by terminal-style portfolios across the web
Tora Sifa
- Email: mochammadtora@gmail.com
- LinkedIn: linkedin.com/in/tora-sifa
- GitHub: github.com/squishydal
If you found this useful, consider giving it a β!
