{"id":23140903,"url":"https://github.com/mtwn105/githubwrapped","last_synced_at":"2025-07-05T04:06:29.180Z","repository":{"id":268110299,"uuid":"903341657","full_name":"mtwn105/GitHubWrapped","owner":"mtwn105","description":"GitHub Wrapped - Your Year in Code","archived":false,"fork":false,"pushed_at":"2024-12-29T16:25:14.000Z","size":550,"stargazers_count":72,"open_issues_count":0,"forks_count":7,"subscribers_count":2,"default_branch":"main","last_synced_at":"2025-06-29T01:38:53.316Z","etag":null,"topics":["code","github","githubwrapped","next","nextjs","spring","spring-boot","wrapped"],"latest_commit_sha":null,"homepage":"https://githubwrapped.xyz","language":"TypeScript","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/mtwn105.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","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":"2024-12-14T11:03:54.000Z","updated_at":"2025-06-04T15:15:54.000Z","dependencies_parsed_at":"2024-12-14T12:23:21.186Z","dependency_job_id":"2fba0b9f-a5ae-4f9f-a815-e67f4c2ee926","html_url":"https://github.com/mtwn105/GitHubWrapped","commit_stats":null,"previous_names":["mtwn105/githubwrapped"],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/mtwn105/GitHubWrapped","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/mtwn105%2FGitHubWrapped","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/mtwn105%2FGitHubWrapped/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/mtwn105%2FGitHubWrapped/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/mtwn105%2FGitHubWrapped/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/mtwn105","download_url":"https://codeload.github.com/mtwn105/GitHubWrapped/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/mtwn105%2FGitHubWrapped/sbom","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":263679261,"owners_count":23495023,"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":["code","github","githubwrapped","next","nextjs","spring","spring-boot","wrapped"],"created_at":"2024-12-17T14:11:58.526Z","updated_at":"2025-07-05T04:06:29.166Z","avatar_url":"https://github.com/mtwn105.png","language":"TypeScript","readme":"# GitHub Wrapped 2024\n\nYour personalized year in review for GitHub contributions and coding activity. View your GitHub stats, contributions, and coding journey for 2024 in a beautiful, shareable format.\n\n![GitHub Wrapped 2024](https://githubwrapped.xyz/github-wrapped-og.png)\n\n## Live Demo - [Click here](https://githubwrapped.xyz)\n\n## Features\n\n- 📊 Comprehensive GitHub statistics for 2024\n- 📈 Contribution patterns visualization\n- 🔤 Most used programming languages\n- 🌟 Top repositories showcase\n- 📊 Contribution breakdown analysis\n- 🎯 Weekend activity tracking\n- 📱 Social sharing capabilities\n- 🖼️ Shareable OG images\n\n## Tech Stack\n\n### Frontend\n\n- Next.js 14\n- TypeScript\n- Tailwind CSS\n- Shadcn UI Components\n- OpenPanel for analytics\n- Server Actions for API calls\n\n### Backend\n\n- Spring Boot 3.3\n- Java 21\n- MongoDB\n- GitHub API Integration\n- Resilience4j for circuit breaking\n- Maven for dependency management\n\n## Getting Started\n\n### Prerequisites\n\n- Node.js (Latest LTS version)\n- Java 21\n- MongoDB\n- GitHub API Token\n- pnpm (recommended) or npm\n\n### Frontend Setup\n\n1. Clone the repository\n\n```bash\ngit clone https://github.com/mtwn105/GitHubWrapped.git\ncd frontend\n```\n\n2. Install dependencies\n\n```bash\npnpm install\n```\n\n3. Set up environment variables\n\n```bash\n# Create .env.local file\nBACKEND_URL=http://localhost:9009\nBACKEND_AUTH_TOKEN=your_auth_token\nNEXT_PUBLIC_APP_URL=http://localhost:3000\nNEXT_PUBLIC_OPENPANEL_CLIENTID=your_openpanel_client_id\nOPENPANEL_CLIENTID=your_openpanel_client_id\nOPENPANEL_CLIENT_SECRET=your_openpanel_client_secret\n```\n\n4. Run development server\n\n```bash\npnpm dev\n```\n\nThe frontend will be available at `http://localhost:3000`\n\n### Backend Setup\n\n1. Navigate to backend directory\n\n```bash\ncd backend\n```\n\n2. Configure application.yml\n\n```yaml\nserver:\n  port: 9009\n\nspring:\n  data:\n    mongodb:\n      uri: mongodb://localhost:27017/githubwrapped\n\nauth:\n  token: your_auth_token\n\ngithub:\n  graphql:\n    url: https://api.github.com/graphql\n  username: your_github_username\n  token: your_github_token\n```\n\n3. Run the application\n\n```bash\n./mvnw spring-boot:run\n```\n\nThe backend will be available at `http://localhost:9009`\n\n## Project Structure\n\n```\nproject-root/\n├── frontend/\n│   ├── app/\n│   │   ├── actions/\n│   │   ├── components/\n│   │   └── [username]/\n│   ├── components/\n│   ├── types/\n│   └── public/\n└── backend/\n    ├── src/\n    │   ├── main/\n    │   │   ├── java/\n    │   │   └── resources/\n    │   └── test/\n    └── pom.xml\n```\n\n## API Endpoints\n\n### Stats\n\n```\nGET /api/stats/{username} - Get user's GitHub stats\nPOST /api/stats/{username} - Generate user's GitHub stats\nGET /api/stats/top - Get top GitHub users\nGET /api/stats/all - Get all GitHub users\n```\n\n### Health\n\n```\nGET /api/health - Check API health status\n```\n\n## Deployment\n\n### Frontend\n\nThe application is optimized for deployment on Vercel:\n\n1. Connect your GitHub repository to Vercel\n2. Configure environment variables\n3. Deploy with `vercel deploy`\n\n### Backend\n\nThe backend includes Fly.io configuration:\n\n1. Install Fly.io CLI\n2. Configure secrets:\n\n```bash\nflyctl secrets set MONGODB_URI=your_mongodb_uri\nflyctl secrets set AUTH_TOKEN=your_auth_token\nflyctl secrets set GITHUB_TOKEN=your_github_token\n```\n\n3. Deploy:\n\n```bash\nflyctl deploy\n```\n\n## Contributing\n\nContributions are welcome! Please feel free to submit a Pull Request.\n\n1. Fork the repository\n2. Create your feature branch (`git checkout -b feature/AmazingFeature`)\n3. Commit your changes (`git commit -m 'Add some AmazingFeature'`)\n4. Push to the branch (`git push origin feature/AmazingFeature`)\n5. Open a Pull Request\n\n## License\n\nThis project is licensed under the MIT License - see the [LICENSE](LICENSE) file for details.\n\n## Author\n\nCreated by [Amit Wani](https://github.com/mtwn105)\n\n- Twitter: [@mtwn105](https://x.com/mtwn105)\n- GitHub: [@mtwn105](https://github.com/mtwn105)\n\n## Acknowledgments\n\n- Built with [Next.js](https://nextjs.org/) and [Spring Boot](https://spring.io/projects/spring-boot)\n- UI components from [shadcn/ui](https://ui.shadcn.com/)\n","funding_links":[],"categories":[],"sub_categories":[],"project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fmtwn105%2Fgithubwrapped","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fmtwn105%2Fgithubwrapped","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fmtwn105%2Fgithubwrapped/lists"}