{"id":23720936,"url":"https://github.com/munirverse/pokemonorepo","last_synced_at":"2025-06-14T07:37:37.810Z","repository":{"id":259638266,"uuid":"807045626","full_name":"munirverse/pokemonorepo","owner":"munirverse","description":"A full-stack pokedex project using Nx, NestJS, and Next.js","archived":false,"fork":false,"pushed_at":"2025-04-21T23:48:33.000Z","size":12432,"stargazers_count":4,"open_issues_count":0,"forks_count":0,"subscribers_count":1,"default_branch":"main","last_synced_at":"2025-05-30T14:14:35.142Z","etag":null,"topics":["backend","devops","docker","frontend","fullstack","monorepo","nest","nestjs","nextjs","nextjs14","nx","redux"],"latest_commit_sha":null,"homepage":"https://pokemonorepo.munirverse.com","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/munirverse.png","metadata":{"files":{"readme":"README.md","changelog":"CHANGELOG.md","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}},"created_at":"2024-05-28T11:35:52.000Z","updated_at":"2025-04-21T23:48:31.000Z","dependencies_parsed_at":null,"dependency_job_id":"bbcc1623-f3f9-4909-9162-e4b6f8d3e60e","html_url":"https://github.com/munirverse/pokemonorepo","commit_stats":{"total_commits":49,"total_committers":2,"mean_commits":24.5,"dds":"0.10204081632653061","last_synced_commit":"8e0040d30e57c547d7eb4ef913c6aded15317083"},"previous_names":["munirapp/pokemonorepo","munirverse/pokemonorepo"],"tags_count":22,"template":false,"template_full_name":null,"purl":"pkg:github/munirverse/pokemonorepo","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/munirverse%2Fpokemonorepo","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/munirverse%2Fpokemonorepo/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/munirverse%2Fpokemonorepo/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/munirverse%2Fpokemonorepo/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/munirverse","download_url":"https://codeload.github.com/munirverse/pokemonorepo/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/munirverse%2Fpokemonorepo/sbom","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":259777546,"owners_count":22909685,"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":["backend","devops","docker","frontend","fullstack","monorepo","nest","nestjs","nextjs","nextjs14","nx","redux"],"created_at":"2024-12-30T22:15:44.426Z","updated_at":"2025-06-14T07:37:37.738Z","avatar_url":"https://github.com/munirverse.png","language":"TypeScript","funding_links":[],"categories":[],"sub_categories":[],"readme":"\u003cp align=\"center\"\u003e\n    \u003cimg src=\"https://raw.githubusercontent.com/munirverse/pokemonorepo/refs/heads/main/apps/pokemon-fe/public/logo.png\" width=\"300\"\u003e\n\u003c/p\u003e\n\u003cp align=\"center\"\u003e\n    \u003cimg src=\"https://github.com/munirverse/pokemonorepo/blob/main/assets/pokemonorepo-screenshoot.gif?raw=true\" width=\"500\"\u003e\n\u003c/p\u003e\nA full-stack pokédex project using Nx, NestJS, and Next.js\n\n- Web Demo: [https://pokemonorepo.munirverse.com](https://pokemonorepo.munirverse.com)\n- Storybook: [https://pokemonorepo.munirverse.com/docs/storybook](https://pokemonorepo.munirverse.com/docs/storybook)\n- API Specs: [https://pokemonorepo.munirverse.com/docs/api-specs](https://pokemonorepo.munirverse.com/docs/api-specs)\n\n## Table of Contents\n- [Background Stories](#background-stories)\n- [Installation](#installation)\n  - [Manual Installation](#manual-installation)\n  - [With Docker](#with-docker)\n  - [Running Tests](#running-tests)\n- [Technology Highlights](#technology-highlights)\n  - [Techstack](#techstack)\n  - [Backend](#backend)\n  - [Frontend](#frontend)\n  - [DevOps](#devops)\n  - [Others](#others)\n  - [Features](#features)\n- [License](#license)\n\n## Background Stories\n**Pokemonorepo** is created as a mini portfolio project as well as a learning medium for myself and others who are starting to learn about full-stack web development.\n\n### Why a mini portfolio project? \nBecause through this project, I can showcase a miniature representation of my technical skills in tackling full-stack web development challenges with source code that I write and organize openly. This is something I cannot fully demonstrate through the projects at my previous companies. \n\n### Why a learning medium? \nBecause with open source code, anyone can analyze how my code works and provide corrections if there are areas that can still be improved, offering valuable insights for everyone.\n\n### Why choose a Pokédex?\nA project theme like Pokédex offers a more enjoyable experience while providing space for exploration with various technical features, such as search functionality, data filtering, pagination, and other features that challenge me to be creative.\n\n## Installation\n### Manual Installation\nClone the pokemonorepo's repository\n```bash\ngit clone https://github.com/munirverse/pokemonorepo.git \u0026\u0026 cd pokemonorepo\n```\nInstall npm dependencies\n```bash\nnpm install\n```\nCopy and distribute env file configuration\n```bash\ncp .env.example .env\ncp .env.example ./apps/pokemon-fe/.env\ncp .env.example ./apps/pokemon-be/.env\n```\nAdjust the env files to match with your local environment (especially the db connections). Afterward, run this command to migrate tables and seeds the requirement data\n```bash\nnpx nx run pokemon-be:migrate\nnpx nx run pokemon-be:pokemons \u0026\u0026 npx nx run pokemon-be:details \u0026\u0026 npx nx run pokemon-be:shapes\n```\nRun this command below to start both frontend and backend service pararelly (Notes: frontend instance need to take several times to up because build process)\n```bash\nnpx nx run-many -t start\n```\nOr run each instance separately in dev mode\n```bash\n# backend\nnpx nx run pokemon-be:serve\n# frontend\nnpx nx run pokemon-fe:dev \n```\n### With Docker \nClone the pokemonorepo's repository\n```bash\ngit clone https://github.com/munirverse/pokemonorepo.git \u0026\u0026 cd pokemonorepo\n```\nCopy env file\n```bash\ncp .env.example .env\n```\nRun this command to migrate tables and seeds the requirement data\n```bash\nnpx nx run pokemon-be:migrate\nnpx nx run pokemon-be:pokemons \u0026\u0026 npx nx run pokemon-be:details \u0026\u0026 npx nx run pokemon-be:shapes\n```\nRun docker-compose command\n```bash\ndocker-compose build \u0026\u0026 docker-compose up -d\n```\n### Running Tests\nrunning backend unit test \n```bash\nnpx nx run pokemon-be:test\n```\nrunning sharing package unit test\n```bash\nnpx nx run shared:test\n```\nrunning e2e test \n```bash\nnpx nx run pokemon-be-e2e:e2e # backend e2e test\nnpx nx run pokemon-fe-e2e:e2e # frontend e2e test \n```\n\n\n## Technology Highlights\n### Techstack\n- Nest.js\n- Next.js\n- Nx\n- Docker\n- PostgreSQL\n- Prisma\n- Jest\n- Playwright\n- Storybook\n### Backend \n- Nest.js Best practices\n- Prisma Integration with Migration and Seeder\n- Nest.js Validation with Class transformer\n- Nest.js Swagger API Documentation\n- Unit testing with Jest\n- Backend End to End (e2e) Testing Integration\n### Frontend\n- Next.js Best practices\n- Web components with Mantine\n- Redux design patterns\n- Storybook Documentations\n- Frontend End to End (e2e) Testing with Playwright\n### DevOps\n- Containerization with Docker\n- Github Actions CI/CD \n### Others\n- Manage monorepo project with Nx\n- Precommit management with Husky\n### Features\n- Filtering \u0026 pagination\n- Search \n- Infinite scroll\n## License\nThis project is licensed under the MIT License. See the [LICENSE](./license) file for more details.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fmunirverse%2Fpokemonorepo","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fmunirverse%2Fpokemonorepo","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fmunirverse%2Fpokemonorepo/lists"}