https://github.com/subhayu99/subhayu99.github.io
Create your own interactive terminal-style portfolio in minutesβno coding required!
https://github.com/subhayu99/subhayu99.github.io
github-pages portfolio pwa react rendercv template terminal typescript zero-code
Last synced: 2 months ago
JSON representation
Create your own interactive terminal-style portfolio in minutesβno coding required!
- Host: GitHub
- URL: https://github.com/subhayu99/subhayu99.github.io
- Owner: subhayu99
- License: mit
- Created: 2021-06-12T09:04:12.000Z (almost 5 years ago)
- Default Branch: main
- Last Pushed: 2025-12-11T21:04:53.000Z (4 months ago)
- Last Synced: 2025-12-13T01:47:13.223Z (3 months ago)
- Topics: github-pages, portfolio, pwa, react, rendercv, template, terminal, typescript, zero-code
- Language: TypeScript
- Homepage: https://subhayu99.github.io/?cmd=replicate
- Size: 11.3 MB
- Stars: 5
- Watchers: 1
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
- Contributing: CONTRIBUTING.md
- License: LICENSE
Awesome Lists containing this project
README
# π₯οΈ Terminal Portfolio Template
> Create your own interactive terminal-style portfolio in minutesβno coding required!
**Live Demo:** [subhayu99.github.io](https://subhayu99.github.io)

---
## πΏ Note: Two-Branch Setup
This repository uses a **dual-branch strategy**:
- **`main` branch** (you are here) β Clean template with .example files only
- **`personal` branch** β Maintainer's actual portfolio (deployed to subhayu99.github.io)
**For template users:** You're in the right place! When you click "Use this template", you'll get this clean main branch.
**For maintainers:** See [MAINTAINER_GUIDE.md](./MAINTAINER_GUIDE.md) for how to work with both branches.
---
## β¨ Features
- π¨ **Beautiful Terminal UI** - Retro-style terminal interface with multiple themes
- π± **Fully Responsive** - Works perfectly on desktop, tablet, and mobile
- π **Zero-Code Setup** - Use visual resume builder, no programming needed
- π€ **AI Resume Converter** - Convert existing resumes to YAML with AI (built-in!)
- β‘ **Lightning Fast** - Built with React and Vite for optimal performance
- π **Auto-Generated PDF** - Your resume automatically converts to downloadable PDF
- π **Multiple Themes** - Matrix, Blue, Purple, Amber, Red, and more
- π **Smart Search** - Search across all your content instantly
- π **Interactive Commands** - Explore your portfolio through terminal commands
- πΎ **PWA Support** - Installable as a progressive web app with offline capabilities
- π **Secure** - Built-in XSS protection and Content Security Policy
- βΏ **Accessible** - ARIA labels and keyboard navigation support
- π **Auto-Deploy** - Push changes to GitHub, site updates automatically
- π¨ **Custom Fields Support** - Add any custom fields to personalize your resume beyond the standard schema
- π **Dynamic Sections** - Create custom sections (certifications, awards, etc.) that become terminal commands automatically
## π Easy Mode - Get Started in 10 Minutes
Perfect for non-technical users! No installation of npm, Python, or any tools required.
### Step 1: Create Your Resume
Visit **[app.rendercv.com](https://app.rendercv.com)** and create your resume using the visual builder:
1. Fill in your information (name, email, experience, education, etc.)
2. Add your skills, projects, and achievements
3. Customize sections to match your background
4. Download the YAML file when done
**Time:** ~5 minutes
#### π‘ Pro Tip: Use AI to Convert Your Existing Resume (Even Faster!)
Already have a resume? Skip the manual entry and let AI do the work!
**π€ Method 1: Built-in AI Resume Converter (Recommended)**
After deploying your portfolio (Steps 2-4), you can use the built-in converter:
1. Visit your live portfolio at `https://yourusername.github.io`
2. Type `replicate` in the terminal
3. Click **"Get AI Conversion Prompt"** button
4. Copy the comprehensive prompt to your clipboard
5. Paste it into ChatGPT, Claude, or Gemini along with your resume
6. Get perfectly formatted `resume.yaml` output
7. Upload it to your repository to update your portfolio
**Time:** ~2 minutes | **Benefit:** Always uses the latest schema format!
**π Method 2: Manual AI Conversion (Before Deployment)**
If you want to prepare your resume before deploying:
1. Open [`resume.yaml.example`](./resume.yaml.example) in the template repository
2. Copy its contents
3. Use this prompt with ChatGPT, Claude, or Gemini:
```
I have my resume below. Please convert it to this YAML format:
[Paste resume.yaml.example contents]
Here's my resume:
[Paste your resume text, PDF content, or LinkedIn profile]
Please maintain all my information but structure it exactly like the example.
```
4. Copy the AI-generated YAML and save it as `resume.yaml`
**Why this works:** AI excels at reformatting structured data. You get perfect YAML syntax without learning the format!
### Step 2: Create Your Portfolio Repository
1. Click the **"Use this template"** button at the top of this page
2. Name your repository: `yourusername.github.io`
- Replace `yourusername` with your GitHub username
- This naming is important for GitHub Pages!
3. Choose **Public** visibility
4. Click **"Create repository"**
**Time:** ~1 minute
### Step 3: Enable GitHub Actions & Pages
**Important:** Do this BEFORE uploading your resume to avoid workflow errors!
1. Go to **Settings** β **Pages** (in left sidebar)
2. Under **"Source"**, select **"GitHub Actions"**
3. Go to **Settings** β **Actions** β **General**
4. Under **"Actions permissions"**, ensure actions are enabled
**Time:** ~1 minute
### Step 4: Upload Your Resume
1. In your new repository, click **"Add file"** β **"Upload files"**
2. Drag and drop your `resume.yaml` file from Step 1
3. Commit the file (click "Commit changes")
4. The deployment will start automatically! Wait 2-5 minutes
**Time:** ~3 minutes (mostly waiting for deployment)
### π Done!
Your portfolio is now live at: `https://yourusername.github.io`
## π Updating Your Portfolio
To update your information:
1. **Option A:** Edit on GitHub
- Go to your repository
- Click on `resume.yaml`
- Click the pencil icon to edit
- Make changes and commit
2. **Option B:** Use RenderCV again
- Update your resume at [app.rendercv.com](https://app.rendercv.com)
- Download new YAML file
- Upload to replace old `resume.yaml`
Your site will automatically rebuild and update within 2-5 minutes!
## π¨ Customization (Optional)
### Change Theme
Visit your portfolio and use these commands in the terminal:
```bash
theme matrix # Green Matrix-style (default)
theme blue # Blue terminal
theme purple # Purple hacker theme
theme amber # Vintage amber monitor
theme red # Red alert theme
```
The theme is saved in your browser, so it persists across visits!
### Custom ASCII Art Name
Create a custom ASCII art version of your name:
1. Go to [patorjk.com/software/taag](https://patorjk.com/software/taag/)
2. Type your name and choose a font
3. Copy the ASCII art
4. Create `client/public/data/styled_name.txt` in your repo
5. Paste the ASCII art and commit
### Custom Profile Banner
Customize the `neofetch` output (the welcome banner):
1. Create `client/public/data/neofetch.txt` in your repo
2. Add your custom ASCII art and info
3. See `client/public/data/neofetch.txt.example` for inspiration
### Progressive Web App Settings
Customize the PWA (installable app) settings:
1. Copy `client/public/manifest.json.example` to `client/public/manifest.json`
2. Edit the file:
```json
{
"name": "Your Name - Terminal Portfolio",
"short_name": "Your Portfolio",
"description": "Your description here"
}
```
3. Commit the changes
### Custom Fields & Dynamic Sections Support
Want to add extra information beyond the standard resume fields? You can add **any custom fields** AND **any custom sections** you want!
**Examples of custom fields you can add:**
```yaml
social_networks:
- network: "LinkedIn"
username: "yourname"
profile_url: "https://linkedin.com/in/yourname" # β¨ Custom field!
verified: true # β¨ Custom field!
technologies:
- label: "Languages"
details: "JavaScript, TypeScript, Python"
proficiency_level: "Expert" # β¨ Custom field!
years_experience: 5 # β¨ Custom field!
experience:
- company: "Tech Company"
position: "Senior Engineer"
github_team: "tech-company/platform" # β¨ Custom field!
tech_stack: ["React", "Node.js", "AWS"] # β¨ Custom field!
team_size: 8 # β¨ Custom field!
education:
- institution: "University"
degree: "B.S. Computer Science"
gpa: 3.8 # β¨ Custom field!
honors: "Magna Cum Laude" # β¨ Custom field!
projects:
- name: "Cool Project"
date: "2024"
github_repo: "https://github.com/you/project" # β¨ Custom field!
live_url: "https://project.com" # β¨ Custom field!
tech_stack: ["React", "TypeScript"] # β¨ Custom field!
# π Dynamic Sections! Add ANY section you need:
certifications:
- name: "AWS Certified Solutions Architect"
date: "2024-03"
highlights:
- "Demonstrated expertise in designing distributed systems"
issuer: "Amazon Web Services" # β¨ Custom field!
certification_id: "AWS-PSA-12345" # β¨ Custom field!
awards:
- name: "Engineering Excellence Award"
date: "2024-01"
highlights:
- "Recognized for outstanding technical contribution"
awarded_by: "Tech Corp" # β¨ Custom field!
# Simple text entries also work!
languages:
- "English (Native)"
- "Spanish (Professional)"
```
**How it works:**
- β
**Custom Fields:** Add any extra fields to standard sections - they appear in your portfolio automatically
- β
**Dynamic Sections:** Create new sections (like certifications, awards, languages) - they become terminal commands!
- β
**Web Interface:** Custom fields and sections are fully accessible in your terminal portfolio
- β
**PDF Generation:** Custom fields are automatically stripped for RenderCV compatibility
- β
**Zero Errors:** No manual management needed - it just works!
- β
**Fully Backward Compatible:** All existing resumes continue to work
**Examples of dynamic sections you can add:**
- `certifications` - Professional certifications
- `awards` - Awards and recognitions
- `languages` - Language proficiencies
- `volunteer_work` - Volunteer experience
- `speaking` - Speaking engagements
- `courses` - Online courses or training
- Any section name you want!
**See [`resume.yaml.example`](./resume.yaml.example) for more examples and inspiration!**
## π§ Advanced Mode (For Developers)
Want full control? Clone the repository and customize everything!
### Prerequisites
- Node.js 18+ ([download](https://nodejs.org/))
- npm or yarn
- Git
### Local Development
```bash
# Clone your repository
git clone https://github.com/yourusername/yourusername.github.io.git
cd yourusername.github.io
# Install dependencies
npm install
# Copy configuration files
cp template.config.yaml.example template.config.yaml
cp .env.example .env
cp client/public/manifest.json.example client/public/manifest.json
# Add your resume
# (Create resume.yaml using RenderCV or copy from examples/)
# Generate resume data
npm run generate-resume
# Start development server
npm run dev
```
Visit `http://localhost:5173` to see your portfolio!
### Build for Production
```bash
# Build the application
npm run build
# Preview production build
npm run preview
```
### Advanced Customization
See the [Advanced Guide](./docs/ADVANCED.md) for:
- Custom themes and colors
- Adding new terminal commands
- Modifying UI components
- API integrations
- Custom features
## π Documentation
- **[Deployment Guide](./docs/DEPLOYMENT.md)** - How GitHub Actions deploys your site
- **[Advanced Guide](./docs/ADVANCED.md)** - Full customization options
- **[Troubleshooting](./docs/TROUBLESHOOTING.md)** - Common issues and solutions
- **[RenderCV Docs](https://docs.rendercv.com/)** - Resume YAML format reference
## π― Available Commands
Once your portfolio is live, try these commands in the terminal:
| Command | Description |
|---------|-------------|
| `help` | Show all available commands |
| `about` | Display introduction and quick links |
| `skills` | List technical skills and technologies |
| `experience` | Show work experience and roles |
| `education` | Display educational background |
| `projects` | Show professional projects |
| `personal` | Show personal projects |
| `publications` | Display publications (if available) |
| `timeline` | Show chronological timeline of all events |
| `contact` | Display contact information and social links |
| `resume` | Download resume PDF |
| `theme [name]` | Change terminal color theme |
| `replicate` | AI Resume Converter & portfolio setup guide |
| `neofetch` | Display system information |
| `search [query]` | Search across all portfolio content |
| `whoami` | Display your name and title |
| `ls` | List available commands (alias for help) |
| `pwd` | Print working directory |
| `cat [file]` | Display file contents |
| `clear` | Clear the terminal screen |
## ποΈ Project Structure
```
subhayu99.github.io/
βββ client/ # Frontend React application
β βββ src/
β β βββ components/ # React components
β β βββ hooks/ # Custom hooks (terminal logic)
β β βββ lib/ # Utilities and themes
β β βββ config/ # Configuration files
β βββ public/
β βββ data/ # Generated resume data
β βββ icons/ # PWA icons
βββ scripts/ # Build scripts
β βββ generate-resume.js # Resume generation script
β βββ generate-ai-prompt.js # AI conversion prompt generator
β βββ build.js # Smart build script
βββ docs/ # Documentation
βββ examples/ # Example resume files
βββ .github/workflows/ # GitHub Actions workflows
βββ resume.yaml # Your resume (create this!)
βββ resume.config.yaml # Resume generation config
```
## π€ Contributing
Found a bug? Have a feature idea? Contributions 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 open source and available under the [MIT License](./LICENSE).
## π Acknowledgments
- Built with [React](https://react.dev/) and [Vite](https://vitejs.dev/)
- Resume generation powered by [RenderCV](https://rendercv.com/)
- Inspired by classic terminal interfaces and retro computing
- ASCII art from [patorjk.com](https://patorjk.com/software/taag/)
## β Show Your Support
If you found this template helpful, please consider:
- β Starring this repository
- π¦ Sharing it on social media
- π Adding a link back to the template in your portfolio
- π¬ Spreading the word to friends and colleagues
## π Support
Need help? Have questions?
- π Check the [Documentation](./docs/)
- π Open an [Issue](https://github.com/subhayu99/subhayu99.github.io/issues)
- π¬ Start a [Discussion](https://github.com/subhayu99/subhayu99.github.io/discussions)
- π§ Contact the maintainer
---
**Made with β€οΈ by developers, for developers**
[View Demo](https://subhayu99.github.io) Β· [Report Bug](https://github.com/subhayu99/subhayu99.github.io/issues) Β· [Request Feature](https://github.com/subhayu99/subhayu99.github.io/issues)