{"id":26369851,"url":"https://github.com/msparihar/portfolio","last_synced_at":"2026-01-03T22:09:28.038Z","repository":{"id":280511984,"uuid":"942235596","full_name":"Msparihar/portfolio","owner":"Msparihar","description":null,"archived":false,"fork":false,"pushed_at":"2025-03-03T20:14:17.000Z","size":144,"stargazers_count":0,"open_issues_count":0,"forks_count":0,"subscribers_count":1,"default_branch":"main","last_synced_at":"2025-03-03T21:24:29.091Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":null,"language":"JavaScript","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/Msparihar.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":null,"code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2025-03-03T19:41:52.000Z","updated_at":"2025-03-03T20:14:20.000Z","dependencies_parsed_at":"2025-03-03T21:24:38.907Z","dependency_job_id":"7611ef17-8aaf-44a1-a74e-65b7e9fec2e9","html_url":"https://github.com/Msparihar/portfolio","commit_stats":null,"previous_names":["msparihar/portfolio"],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Msparihar%2Fportfolio","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Msparihar%2Fportfolio/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Msparihar%2Fportfolio/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Msparihar%2Fportfolio/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/Msparihar","download_url":"https://codeload.github.com/Msparihar/portfolio/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":243945592,"owners_count":20372897,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":[],"created_at":"2025-03-16T23:16:56.205Z","updated_at":"2026-01-03T22:09:28.025Z","avatar_url":"https://github.com/Msparihar.png","language":"JavaScript","funding_links":[],"categories":[],"sub_categories":[],"readme":"# Portfolio Website - Manish Singh\n\nA modern, terminal-themed portfolio website built with Next.js 15, showcasing projects, skills, and experience through an interactive command-line interface.\n\n🌐 **Live Site**: [manishsingh.tech](https://manishsingh.tech)\n\n## ✨ Features\n\n### 🖥️ Terminal UI Experience\n- **Interactive Terminal**: Navigate through portfolio sections using familiar command-line commands\n- **Command System**: Support for `help`, `ls`, `cd`, `cat`, and custom commands\n- **Compact Terminal**: Condensed terminal interface for specific sections\n- **Real-time Command Processing**: Dynamic content updates based on terminal navigation\n\n### 🎨 Modern Design \u0026 Animations\n- **Dark Theme**: Sleek terminal-inspired design with custom styling\n- **Smooth Animations**: Framer Motion powered transitions and interactions\n- **Expandable Project Cards**: Click to view detailed project information in animated modals\n- **Responsive Design**: Optimized for desktop, tablet, and mobile devices\n\n### 🚀 Performance Optimizations\n- **Dynamic Imports**: Code splitting for optimal loading\n- **Image Preloading**: Smart preloading system for faster navigation\n- **Skeleton Loaders**: Enhanced UX during content loading\n- **Server-side Caching**: GitHub API data caching for improved performance\n\n### 📱 Interactive Components\n- **Project Modals**: Detailed project views with tech stack categorization\n- **GitHub Contributions**: Live GitHub activity visualization\n- **Contact Forms**: Interactive contact section with social links\n- **Copy-to-Clipboard**: Easy sharing of project URLs and contact information\n\n## 🛠️ Tech Stack\n\n### Frontend\n- **Framework**: Next.js 15 with App Router\n- **Styling**: Tailwind CSS with custom terminal theme\n- **Animations**: Framer Motion\n- **UI Components**: Shadcn/ui, Radix UI primitives\n- **Icons**: FontAwesome, Lucide React, React Icons\n- **Theme**: next-themes with dark mode default\n\n### Backend \u0026 APIs\n- **GitHub API**: Real-time repository and contribution data\n- **Caching**: Custom GitHub API caching system\n- **Image Optimization**: Next.js built-in image optimization\n\n### Development Tools\n- **Package Manager**: pnpm\n- **Build Tool**: Turbopack (for faster development builds)\n- **Linting**: ESLint with Next.js configuration\n- **Environment**: Node.js with ES modules\n\n## 📁 Project Structure\n\n```\nsrc/\n├── app/                    # App Router pages\n├── components/             # Reusable components\n│   ├── ui/                # Shadcn/ui components\n│   ├── projects/          # Project-specific components\n│   ├── blog/              # Blog components\n│   └── contact/           # Contact components\n├── config/                # Configuration files\n│   └── portfolio.json     # Portfolio data\n├── lib/                   # Utility functions\n│   └── githubCache.js     # GitHub API caching\n└── contexts/              # React contexts\n    └── TerminalContext.jsx # Terminal state management\n\nscripts/\n└── sync-github-projects.js # GitHub repository sync script\n\npublic/                    # Static assets\n└── projects/             # Project images and assets\n```\n\n## 🚀 Getting Started\n\n### Prerequisites\n- Node.js 18+\n- pnpm (recommended) or npm\n\n### Installation\n\n1. **Clone the repository**\n   ```bash\n   git clone https://github.com/Msparihar/portfolio.git\n   cd portfolio\n   ```\n\n2. **Install dependencies**\n   ```bash\n   pnpm install\n   ```\n\n3. **Set up environment variables**\n   ```bash\n   cp .env.example .env\n   # Add your GitHub token for API access\n   ```\n\n4. **Run the development server**\n   ```bash\n   pnpm dev\n   ```\n\n5. **Open your browser**\n   Navigate to [http://localhost:3000](http://localhost:3000)\n\n## 📜 Available Scripts\n\n### Development\n- `pnpm dev` - Start development server with Turbopack\n- `pnpm build` - Build the application for production\n- `pnpm start` - Start the production server\n- `pnpm lint` - Run ESLint for code quality\n\n### GitHub Sync\n- `pnpm sync-projects` - Sync GitHub repositories (live mode)\n- `pnpm sync-projects:dry` - Preview sync changes (dry-run mode)\n\n## 🎮 Terminal Commands\n\nThe portfolio features an interactive terminal interface with the following commands:\n\n- `help` - Show available commands\n- `ls` - List available sections\n- `cd [section]` - Navigate to a section (projects, blog, contact)\n- `cat [file]` - Display section content\n- `clear` - Clear terminal output\n- `whoami` - Display developer information\n\n## 🔧 Configuration\n\n### Portfolio Data\nAll portfolio content is managed through `src/config/portfolio.json`:\n\n```json\n{\n  \"personal\": {\n    \"name\": \"Manish Singh\",\n    \"title\": \"Full Stack Developer\",\n    \"bio\": \"Passionate developer with expertise in modern web technologies...\"\n  },\n  \"projects\": [...],\n  \"skills\": [...],\n  \"experience\": [...]\n}\n```\n\n### GitHub Integration\nThe site includes a GitHub repository sync script that:\n- Fetches public repositories automatically\n- Downloads README files and assets\n- Manages local project cache\n- Handles cleanup of private/deleted repositories\n\n## 🎨 Customization\n\n### Styling\n- Tailwind CSS classes in components\n- Custom CSS variables for terminal theme\n- Responsive breakpoints and mobile-first design\n\n### Components\n- Modular component architecture\n- Reusable UI components with Shadcn/ui\n- Custom hooks for terminal functionality\n\n## 📈 Performance\n\n- **Lighthouse Score**: 95+ across all metrics\n- **Core Web Vitals**: Optimized for LCP, FID, and CLS\n- **Bundle Size**: Optimized with dynamic imports and code splitting\n- **Image Optimization**: Next.js Image component with lazy loading\n\n## 🔒 Environment Variables\n\n```env\nGITHUB_TOKEN=your_github_personal_access_token\nGITHUB_USERNAME=your_github_username\n```\n\n## 📝 License\n\nThis project is open source and available under the [MIT License](LICENSE).\n\n## 🤝 Contributing\n\n1. Fork the repository\n2. Create a feature branch (`git checkout -b feature/amazing-feature`)\n3. Commit your changes (`git commit -m 'Add amazing feature'`)\n4. Push to the branch (`git push origin feature/amazing-feature`)\n5. Open a Pull Request\n\n## 📧 Contact\n\n**Manish Singh**\n- Website: [manishsingh.tech](https://manishsingh.tech)\n- Email: [contact@manishsingh.tech](mailto:contact@manishsingh.tech)\n- GitHub: [@Msparihar](https://github.com/Msparihar)\n- LinkedIn: [Connect with me](https://linkedin.com/in/manish-singh)\n\n---\n\nBuilt with ❤️ using Next.js and modern web technologies.","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fmsparihar%2Fportfolio","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fmsparihar%2Fportfolio","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fmsparihar%2Fportfolio/lists"}