Automatically create and update a dynamic GitHub portfolio using an intelligent agent.
This project helps developers showcase their work effortlessly. An agent fetches your GitHub projects, stats, and contributions, then generates an interactive, customizable portfolio website.
No manual updates requiredโjust connect your GitHub account and let the agent do the work.
- ๐ค Agent-Based Automation: Periodically pulls your latest projects, commits, and stats from GitHub
- ๐จ Customizable Portfolio: Choose which projects to feature, edit descriptions, and hide certain repos
- ๐ Interactive Visualizations: See your language usage, commit history, and contributions via dynamic charts
- ๐ Easy Deployment: One-click deploy to GitHub Pages or Vercel
- ๐ Social Integration: Display contact info and social profile links
- ๐ฑ Responsive Design: Mobile-optimized UI with dark/light theme support
- โก Real-time Updates: Live refresh of portfolio data with automatic agent synchronization
- Frontend: Next.js 14, React 18, Tailwind CSS
- Charts: Chart.js, React Chart.js 2
- Agent Backend: Node.js with GitHub API integration
- Hosting: GitHub Pages, Vercel, Netlify support
- Icons: Lucide React
git clone https://github.com/iamunknownsjs/Interactive-Portfolio-Generator.git
cd Interactive-Portfolio-Generatornpm install
# or
yarn installcp .env.example .envEdit the .env file with your GitHub credentials:
GITHUB_TOKEN=your_github_personal_access_token_here
GITHUB_USERNAME=your_github_username๐ Getting a GitHub Token:
- Go to GitHub Settings โ Developer settings โ Personal access tokens
- Generate a new token with
public_reposcope - Copy the token to your
.envfile
npm run agentThis will fetch your GitHub data and create a portfolio-data.json file.
npm run devVisit http://localhost:3000 to see your portfolio!
npm run build- Push your code to GitHub
- Enable GitHub Pages in repository settings
- The included GitHub Action will automatically build and deploy your portfolio
- Your portfolio will be available at
https://yourusername.github.io/Interactive-Portfolio-Generator
- Connect your GitHub repository to Vercel
- Add environment variables in Vercel dashboard
- Deploy automatically on every push
npm run build
npm run exportDeploy the out/ directory to any static hosting service.
- Settings Panel: Click the settings button to change GitHub username
- Project Management: Use Hide/Show buttons to manage which projects appear
- Filters: Filter projects by language, stars, or update date
- Export Data: Download your portfolio data as JSON
The portfolio agent automatically:
- Fetches repository information and statistics
- Tracks contribution activity
- Updates language usage statistics
- Maintains fresh data with scheduled runs
- Dynamic Charts: Language usage pie chart and contribution activity graph
- Project Filtering: Sort and filter repositories by various criteria
- Contact Form: Built-in contact form for portfolio visitors
- Responsive Design: Works seamlessly on desktop and mobile
Edit lib/agent.js to modify:
- Update frequency (default: 30 minutes)
- Data collection methods
- Storage location
- Tailwind CSS configuration in
tailwind.config.js - Global styles in
styles/globals.css - GitHub-themed color palette included
The portfolio uses GitHub's REST API to fetch:
- User profile information
- Repository data and statistics
- Public activity events
- Language statistics
Interactive-Portfolio-Generator/
โโโ components/ # React components
โ โโโ ProfileHeader.js # User profile display
โ โโโ ProjectsGrid.js # Repository grid with filtering
โ โโโ StatsCharts.js # Interactive charts
โ โโโ ContactForm.js # Contact form component
โโโ lib/ # Utilities and API integration
โ โโโ github.js # GitHub API wrapper
โ โโโ agent.js # Portfolio update agent
โโโ pages/ # Next.js pages
โ โโโ _app.js # App configuration
โ โโโ index.js # Main portfolio page
โโโ public/ # Static assets
โโโ styles/ # Global styles
โโโ .github/workflows/ # GitHub Actions for deployment
โโโ package.json # Dependencies and scripts
Contributions are welcome! Please see our contributing guidelines:
- Fork the repository
- Create a feature branch:
git checkout -b feature/your-feature - Commit your changes:
git commit -m 'Add some feature' - Push to the branch:
git push origin feature/your-feature - Open a pull request
Agent fails to start:
- Ensure
GITHUB_TOKENis set in your environment - Check token permissions (needs
public_reposcope)
Portfolio shows "No data":
- Run the agent manually:
npm run agent - Check if
public/portfolio-data.jsonexists - Verify GitHub username is correct
Build fails:
- Run
npm installto ensure all dependencies are installed - Check for any TypeScript/ESLint errors
The GitHub API has rate limits:
- Unauthenticated: 60 requests per hour
- Authenticated: 5,000 requests per hour
The agent is designed to work within these limits.
- GitHub OAuth for user login
- Project selection UI
- Dynamic chart visualizations
- Easy deployment options
- Agent scheduling & notifications
- Support for GitLab and Bitbucket
- Blog post integration
- Advanced theming options
- Portfolio templates
- Analytics dashboard
MIT License - see the LICENSE file for details.
- GitHub API for providing comprehensive developer data
- Next.js team for the excellent React framework
- Chart.js for beautiful, interactive charts
- Tailwind CSS for rapid UI development
๐ฏ Ready to showcase your GitHub journey? Get started now and let your code speak for itself!
