{"id":34870663,"url":"https://github.com/imads608/pokehub-app","last_synced_at":"2026-07-05T03:00:51.162Z","repository":{"id":39658086,"uuid":"391494331","full_name":"Imads608/PokeHub-App","owner":"Imads608","description":"A modern take on Pokemon Showdown built with Nextjs","archived":false,"fork":false,"pushed_at":"2026-06-29T05:42:47.000Z","size":84656,"stargazers_count":1,"open_issues_count":3,"forks_count":0,"subscribers_count":1,"default_branch":"main","last_synced_at":"2026-06-29T06:09:12.358Z","etag":null,"topics":["docker","monorepo","nestjs","nextjs","nodejs","postgresql","react","react-query","typescript","websockets"],"latest_commit_sha":null,"homepage":"https://www.pokehub.space","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/Imads608.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,"zenodo":null,"notice":null,"maintainers":null,"copyright":null,"agents":null,"dco":null,"cla":null}},"created_at":"2021-08-01T01:17:02.000Z","updated_at":"2026-02-08T08:27:38.000Z","dependencies_parsed_at":"2025-01-28T06:22:18.726Z","dependency_job_id":"1c3c60f3-1be0-4c5b-b2c4-e74603d60608","html_url":"https://github.com/Imads608/PokeHub-App","commit_stats":null,"previous_names":[],"tags_count":15,"template":false,"template_full_name":null,"purl":"pkg:github/Imads608/PokeHub-App","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Imads608%2FPokeHub-App","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Imads608%2FPokeHub-App/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Imads608%2FPokeHub-App/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Imads608%2FPokeHub-App/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/Imads608","download_url":"https://codeload.github.com/Imads608/PokeHub-App/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Imads608%2FPokeHub-App/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":35141966,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-05-26T15:22:16.424Z","status":"online","status_checked_at":"2026-07-05T02:00:06.290Z","response_time":100,"last_error":null,"robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":true,"can_crawl_api":true,"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":["docker","monorepo","nestjs","nextjs","nodejs","postgresql","react","react-query","typescript","websockets"],"created_at":"2025-12-25T23:43:33.155Z","updated_at":"2026-07-05T03:00:51.149Z","avatar_url":"https://github.com/Imads608.png","language":"TypeScript","funding_links":[],"categories":[],"sub_categories":[],"readme":"# PokeHub\n\n\u003cp align=\"center\"\u003e\n  \u003cimg src=\"apps/pokehub-app/public/images/logo.svg\" alt=\"PokeHub Logo\" width=\"300\" /\u003e\n\u003c/p\u003e\n\n**A modern, full-stack Pokemon Showdown clone built with cutting-edge web technologies**\n\nPokeHub is an ambitious recreation of Pokemon Showdown, delivering competitive Pokemon battling and team building experiences with a sleek, modern interface. Built from the ground up using enterprise-grade technologies in an Nx monorepo architecture, this project showcases best practices in full-stack TypeScript development.\n\n## 🚀 Features\n\n- **Team Builder** - Craft competitive Pokemon teams with an intuitive interface\n- **Pokemon Explorer** - Browse and discover Pokemon with comprehensive data\n- **User Profiles** - Personalized user accounts with OAuth authentication\n- **Battle Simulator** - (In Development) Experience strategic Pokemon battles\n- **Responsive Design** - Seamless experience across desktop and mobile devices\n\n## 🛠️ Tech Stack\n\n### Frontend\n\n- **Next.js 14** with App Router for modern React development\n- **TypeScript** for type-safe code\n- **Tailwind CSS** for utility-first styling\n- **Radix UI** for accessible component primitives\n- **TanStack Query** for powerful data synchronization\n- **NextAuth.js v5** for authentication with Google OAuth\n- **React Hook Form + Zod** for type-safe form validation\n\n### Backend\n\n- **NestJS** for scalable Node.js server architecture\n- **PostgreSQL** with **Drizzle ORM** for type-safe database operations\n- **Redis** for real-time battle state, pub/sub, and matchmaking\n- **Socket.io** for WebSocket communication\n- **@pkmn/sim** for Pokemon Showdown-compatible battle simulation\n- **Passport.js** with JWT authentication strategies\n- **Winston** for structured logging\n- **Azure Blob Storage** for file uploads\n\n### Data Sources\n\n- **@pkmn/dex** \u0026 **@pkmn/data** for comprehensive Pokemon information\n- **PokeAPI** integration for additional Pokemon data\n- **Pokemon Showdown** data for competitive moves and abilities\n\n### Development \u0026 Infrastructure\n\n- **Nx** monorepo for efficient build orchestration\n- **Jest** \u0026 **React Testing Library** for testing\n- **Playwright** for end-to-end testing\n- **Docker** \u0026 **Kubernetes** ready deployment\n- **Helm Charts** for container orchestration\n\n## 🏗️ Monorepo Architecture\n\nThis project is organized as an Nx monorepo with clear separation of concerns:\n\n- `apps/pokehub-app` - Next.js frontend application\n- `apps/pokehub-api` - NestJS backend API\n- `packages/frontend/*` - Reusable React/Next.js components and utilities\n- `packages/backend/*` - Shared NestJS modules and services\n- `packages/shared/*` - Cross-platform models and types\n\nFor a comprehensive overview of the system architecture, data flows, and design decisions, see the **[Architecture Documentation](./docs/ARCHITECTURE.md)**.\n\n## 🚦 Quick Start\n\n### Prerequisites\n\n- Node.js 18+\n- PostgreSQL database\n- Redis (for battle system)\n- Google OAuth credentials (for authentication)\n\n### Installation\n\n```bash\nnpm install\n```\n\n### Development\n\nStart Redis (required for battle system):\n\n```bash\ndocker compose -f docker-compose.dev.yaml up -d redis\n```\n\nStart the frontend:\n\n```bash\nnx serve pokehub-app\n```\n\nStart the backend:\n\n```bash\nnx serve pokehub-api\n```\n\nStart both together:\n\n```bash\nnx serve pokehub-app pokehub-api\n```\n\nNavigate to \u003chttp://localhost:4200/\u003e to see the app in action!\n\n## 🧪 Testing\n\nRun all tests:\n\n```bash\nnx run-many -t test\n```\n\nTest specific projects:\n\n```bash\nnx test pokehub-app\nnx test pokehub-api\nnx test frontend-shared-ui-components\n```\n\n## 🏗️ Building\n\nBuild for production:\n\n```bash\nnx build pokehub-app\nnx build pokehub-api\n```\n\nBuild all projects:\n\n```bash\nnx run-many -t build\n```\n\n## 📊 Database\n\nPush schema changes:\n\n```bash\nnpx drizzle-kit push\n```\n\nGenerate migrations:\n\n```bash\nnpx drizzle-kit generate\n```\n\nFor detailed database setup instructions, see [docs/deployment/database.md](./docs/deployment/database.md).\n\n## 📚 Documentation\n\nComprehensive documentation is available in the `docs/` directory:\n\n- **[Deployment Guide](./docs/deployment/README.md)** - Azure Container Apps deployment\n  - [Container Apps Setup](./docs/deployment/container-apps/setup.md)\n  - [Operations Guide](./docs/deployment/container-apps/operations.md)\n  - [Troubleshooting](./docs/deployment/container-apps/troubleshooting.md)\n  - [Database Configuration](./docs/deployment/database.md)\n- **[Development Setup](./docs/development/environment-setup.md)** - Environment configuration\n- **[Testing](./docs/development/testing/README.md)** - Testing documentation\n  - [Unit \u0026 Integration Testing](./docs/development/unit-integration-testing.md)\n  - [Frontend E2E Testing](./docs/development/testing/frontend-e2e-testing.md)\n  - [Backend E2E Testing](./docs/development/testing/backend-e2e-testing.md)\n  - [E2E Test Reliability Fixes](./docs/development/testing/e2e-test-reliability-fixes.md) - CI/CD reliability improvements\n- **[Features](./docs/features/)** - Feature documentation\n  - [Authentication](./docs/features/authentication.md)\n  - [Pokedex](./docs/features/pokedex.md)\n  - [Team Builder](./docs/features/team-builder.md)\n  - [Battle System](./docs/features/battle-system.md) - Real-time battles, matchmaking, WebSocket API\n\n## 🎯 Project Goals\n\nPokeHub aims to:\n\n- Provide a modern alternative to Pokemon Showdown with improved UX\n- Demonstrate best practices in monorepo architecture\n- Showcase type-safe full-stack development\n- Create a highly performant and scalable Pokemon battle platform\n- Build a community-driven competitive Pokemon experience\n\n## 🤝 Contributing\n\nContributions are welcome! This project is actively under development. Please feel free to submit issues and pull requests.\n\n## 📝 License\n\nThe source code is licensed under the [MIT License](LICENSE).\n\n**Assets** (including but not limited to logos, images, and graphics in `apps/pokehub-app/public/images/`) are proprietary and may not be used, modified, or distributed for commercial purposes without explicit permission.\n\nPokemon and related assets are property of Nintendo, Game Freak, and The Pokemon Company.\n\n---\n\nBuilt with ❤️ using [Nx](https://nx.dev)\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fimads608%2Fpokehub-app","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fimads608%2Fpokehub-app","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fimads608%2Fpokehub-app/lists"}