{"id":21213879,"url":"https://github.com/rfprod/nx-ng-starter","last_synced_at":"2025-04-12T20:45:11.426Z","repository":{"id":38413485,"uuid":"191049513","full_name":"rfprod/nx-ng-starter","owner":"rfprod","description":"Monorepo starter with workflow automation: Nx, Angular, Angular Elements, Electron, NodeJS, NestJS, Firebase.","archived":false,"fork":false,"pushed_at":"2025-02-07T09:00:58.000Z","size":43689,"stargazers_count":132,"open_issues_count":1,"forks_count":18,"subscribers_count":6,"default_branch":"main","last_synced_at":"2025-04-04T05:07:19.817Z","etag":null,"topics":["angular","angular-elements","capacitor","compodoc-documentation","cypress-tests","d3js-charts","electron","eslint-configs","express-graphql","firebase","firebase-functions","firebase-hosting","github-actions-ci","grpc","jest-tests","monorepo","nestjs","nx-workspace","sentry-integration","typescript"],"latest_commit_sha":null,"homepage":"https://nx-ng-starter.web.app/","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/rfprod.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":"CONTRIBUTING.md","funding":null,"license":"LICENSE","code_of_conduct":"CODE_OF_CONDUCT.md","threat_model":null,"audit":null,"citation":null,"codeowners":".github/CODEOWNERS","security":"SECURITY.md","support":"SUPPORT.md","governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2019-06-09T19:56:58.000Z","updated_at":"2025-03-12T15:08:01.000Z","dependencies_parsed_at":"2023-11-19T00:20:37.439Z","dependency_job_id":"92844131-5be1-4c7b-ac15-af1f77fc0301","html_url":"https://github.com/rfprod/nx-ng-starter","commit_stats":{"total_commits":1047,"total_committers":5,"mean_commits":209.4,"dds":0.3887297039159503,"last_synced_commit":"6658d16c92c749253d43743a5a9cc615e4855ecc"},"previous_names":[],"tags_count":0,"template":true,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rfprod%2Fnx-ng-starter","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rfprod%2Fnx-ng-starter/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rfprod%2Fnx-ng-starter/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rfprod%2Fnx-ng-starter/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/rfprod","download_url":"https://codeload.github.com/rfprod/nx-ng-starter/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":248217145,"owners_count":21066633,"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":["angular","angular-elements","capacitor","compodoc-documentation","cypress-tests","d3js-charts","electron","eslint-configs","express-graphql","firebase","firebase-functions","firebase-hosting","github-actions-ci","grpc","jest-tests","monorepo","nestjs","nx-workspace","sentry-integration","typescript"],"created_at":"2024-11-20T21:24:32.591Z","updated_at":"2025-04-12T20:45:11.406Z","avatar_url":"https://github.com/rfprod.png","language":"TypeScript","funding_links":[],"categories":["Site Templates"],"sub_categories":["Free Templates"],"readme":"# Nx Ng Starter\n\n[Nx](https://nx.dev/) + [Angular](https://angular.io/) + [NestJS](https://nestjs.com/) mono-repository starter with workflow automation.\n\n[![Commitizen friendly](https://img.shields.io/badge/commitizen-friendly-brightgreen.svg)](http://commitizen.github.io/cz-cli/)\n\n## Workflows\n\n|                                                                              | Trigger                             | Badge                                                                                                                                                                                                    |\n| ---------------------------------------------------------------------------- | ----------------------------------- | -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |\n| [:information_source:](# 'Source code security scanning.')                   | Manual, Scheduled (weekly)          | [![codeql-analysis](https://github.com/rfprod/nx-ng-starter/actions/workflows/codeql-analysis.yml/badge.svg)](https://github.com/rfprod/nx-ng-starter/actions/workflows/codeql-analysis.yml)             |\n| [:information_source:](# 'Containerization.')                                | Manual                              | [![build-docker](https://github.com/rfprod/nx-ng-starter/actions/workflows/build-docker.yml/badge.svg)](https://github.com/rfprod/nx-ng-starter/actions/workflows/build-docker.yml)                      |\n| [:information_source:](# 'Publish npm packages.')                            | PR merge event (destination: trunk) | [![publish-packages](https://github.com/rfprod/nx-ng-starter/actions/workflows/publish-packages.yml/badge.svg)](https://github.com/rfprod/nx-ng-starter/actions/workflows/publish-packages.yml)          |\n| [:information_source:](# 'User acceptance testing.')                         | Manual                              | [![test-e2e](https://github.com/rfprod/nx-ng-starter/actions/workflows/test-e2e.yml/badge.svg)](https://github.com/rfprod/nx-ng-starter/actions/workflows/test-e2e.yml)                                  |\n| [:information_source:](# 'Full testing, deliverables build and deployment.') | PR merge event (destination: trunk) | [![trunk](https://github.com/rfprod/nx-ng-starter/actions/workflows/trunk.yml/badge.svg)](https://github.com/rfprod/nx-ng-starter/actions/workflows/trunk.yml)                                           |\n| [:information_source:](# 'Code ownership validation.')                       | Scheduled (weekly)                  | [![validate-codeowners](https://github.com/rfprod/nx-ng-starter/actions/workflows/validate-codeowners.yml/badge.svg)](https://github.com/rfprod/nx-ng-starter/actions/workflows/validate-codeowners.yml) |\n| [:information_source:](# 'Quality gates: pull request validation.')          | PR open event (destination: trunk)  | [![validate-pr](https://github.com/rfprod/nx-ng-starter/actions/workflows/validate-pr.yml/badge.svg)](https://github.com/rfprod/nx-ng-starter/actions/workflows/validate-pr.yml)                         |\n\n## Requirements\n\nIn order to run own copy of the project one must fulfill the following requirements.\n\n### Supported operating systems\n\n- :trophy: [Debian based Linux](https://en.wikipedia.org/wiki/List_of_Linux_distributions#Debian-based) - `recommended`\n  - check out [this dev setup instructions](https://github.com/rfprod/wdsdu) to facilitate setting up the dev environment;\n  - given that the dev environment is set up, the command `yarn install:all:linux` should install everything needed to work with the project;\n- :ok: [OSX](https://en.wikipedia.org/wiki/MacOS) - `should work due to similarity to Linux`\n  - one will have to figure out oneself how to set up the dev environment;\n  - given that the dev environment is set up, the command `yarn install:all:osx` should install everything needed to work with the project;\n  - the automation scripts support the OS with relatively high probability, but it has not been tested;\n- 🤷 [Windows](https://en.wikipedia.org/wiki/Microsoft_Windows) - `should work, but no guarantees`\n  - one will have to figure out oneself how to set up the dev environment;\n  - one will have to figure out oneself how to install `protolint`, [see available installation options](https://github.com/yoheimuta/protolint#installation);\n  - given that the dev environment is set up, the following commands should be used to install `shellcheck` via PowerShell;\n    ```powershell\n    iwr -useb get.scoop.sh | iex\n    scoop install shellcheck\n    ```\n  - recommended shell: [Git for Windows](https://gitforwindows.org/) \u003e `Git BASH`;\n  - configure Git to use LF as a carriage return\n    ```bash\n    git config --global core.autocrlf false\n    git config --global core.eol lf\n    ```\n\n### Core dependencies\n\n- [Bash 5](https://www.gnu.org/software/bash/)\n- [Node.js](https://nodejs.org/)\n- [Yarn](https://yarnpkg.com/)\n- [Git](https://git-scm.com/)\n\n### Preferred package manager\n\n- [Yarn](https://www.npmjs.com/package/yarn) - preferred package manager for dependencies installation in the project root.\n- [npm](https://www.npmjs.com/package/npm) - preferred package manager for dependencies installation in the `functions` folder.\n\n## Package scripts reference\n\nThe project has lots of package scripts, check it in the `package.json` located in the project root, or use the following command (see terminal output for usage tips)\n\n```bash\nnpx nx run tools:help\n```\n\n## Committing changes to the repo\n\nUsing [commitizen cli](https://github.com/commitizen/cz-cli) is mandatory.\n\nProvided all dependencies are installed, and [commitizen cli is installed as a global dependency](https://github.com/commitizen/cz-cli#conventional-commit-messages-as-a-global-utility), this command must be used.\n\n```bash\ngit cz\n```\n\n## GitBook documentation\n\nThe GitBook documentation is generated based on this GitHub repo.\n\n- [GitBook documentation](https://rfprod.gitbook.io/nx-ng-starter/)\n\n## Firebase deployments\n\nApplication deployments and autogenerated engineering documentation.\n\n- [Client](https://nx-ng-starter.web.app)\n- [Elements](https://nx-ng-starter-elements.web.app)\n- [Documentation](https://nx-ng-starter-documentation.web.app)\n  - [Compodoc](https://nx-ng-starter-documentation.web.app/assets/compodoc/index.html)\n  - [Storybook](https://nx-ng-starter-documentation.web.app/assets/storybook/index.html)\n  - [Unit test reports](https://nx-ng-starter-documentation.web.app/assets/coverage/index.html)\n  - [E2E test reports](https://nx-ng-starter-documentation.web.app/assets/cypress/index.html)\n  - [Changelogs](https://nx-ng-starter-documentation.web.app/assets/changelog/index.html)\n\n## Workspace generators\n\n### Library generators\n\n#### `feature` library\n\n```bash\nnpx nx generate client-feature client-\u003cfeature-name\u003e --tags=scope:client-\u003cfeature-name\u003e,type:feature\n```\n\n#### `ui` library\n\n```bash\nnpx nx generate client-ui client-\u003cfeature-name\u003e --tags=scope:client-\u003cfeature-name\u003e,type:ui\n```\n\n#### `data-access` library\n\n```bash\nnpx nx generate client-store client-store-\u003cfeature-name\u003e --tags=scope:client-store-\u003cfeature-name\u003e,type:data-access\n```\n\n#### `util` library\n\n```bash\nnpx nx generate client-util client-util-\u003cfeature-name\u003e --tags=scope:client-util-\u003cfeature-name\u003e,type:util\n```\n\n### Audit module boundaries\n\n```bash\nnpx nx generate module-boundaries\n```\n\n## General Tooling\n\nThis project was generated using [Nx](https://nx.dev).\n\n\u003cp align=\"center\"\u003e\u003cimg src=\"https://raw.githubusercontent.com/nrwl/nx/master/nx-logo.png\" width=\"350\"\u003e\u003c/p\u003e\n\n🔎 **Nx is a set of Angular CLI power-ups for modern development.**\n\n### Quick Start \u0026 Documentation\n\n- [Nx Documentation](https://nx.dev)\n- [30-minute video showing all Nx features](https://nx.dev/getting-started/what-is-nx)\n- [Interactive Tutorial](https://nx.dev/tutorial/01-create-application)\n\n### Workspace capabilities\n\nNx supports many plugins which add capabilities for developing different types of applications and different tools.\n\nThese capabilities include generating applications, libraries, .etc as well as the devtools to test, and build projects as well.\n\nBelow are plugins which are added to the workspace:\n\n| Application type                       | Command                | Domain       |\n| -------------------------------------- | ---------------------- | ------------ |\n| [Angular](https://angular.io)          | `nx add @nx/angular`   | Web client   |\n| [Nest](https://nestjs.com)             | `nx add @nx/nest`      | API          |\n| [Node](https://nodejs.org)             | `nx add @nx/node`      | Automation   |\n| [Storybook](https://storybook.js.org/) | `nx add @nx/storybook` | UI testing   |\n| [Cypress](https://www.cypress.io/)     | `nx add @nx/cypress`   | E2E testing  |\n| [Jest](https://jestjs.io/)             | `nx add @nx/jest`      | Unit testing |\n\n### Generating an application\n\nTo generate an application run:\n\n```bash\nnpx nx g @nx/angular:app my-app\n```\n\n\u003e You can use any of the plugins above to generate applications as well.\n\nWhen using Nx, you can create multiple applications and libraries in the same workspace.\n\n### Generating a library\n\nTo generate a library run:\n\n```bash\nnpx nx g @nx/angular:lib my-lib\n```\n\n\u003e You can also use any of the plugins above to generate libraries as well.\n\nLibraries are sharable across libraries and applications.\n\nIt can be imported from `@nx-ng-starter/mylib`.\n\n### Running a development server\n\nTo start a dev server run:\n\n```bash\nnpx nx serve my-app\n```\n\nNavigate to http://localhost:4200/.\n\nThe app will automatically reload if you change any of the source files.\n\n### Code scaffolding\n\nTo generate a new component run:\n\n```bash\nnpx nx g @nx/angular:component my-component --project=my-app\n```\n\n### Building applications\n\nTo build the project run:\n\n```bash\nnpx nx build my-app\n```\n\nThe build artifacts will be stored in the `dist/` directory.\n\nUse the `--prod` flag for a production build.\n\n### Unit testing with [Jest](https://jestjs.io)\n\nTo execute the unit tests run:\n\n```bash\nnpx nx test my-app\n```\n\nTo execute the unit tests affected by a change run:\n\n```bash\nnpx nx affected:test\n```\n\n### End-to-end testing with [Cypress](https://www.cypress.io)\n\nTo execute the end-to-end tests run:\n\n```bash\nnpx nx e2e my-app\n```\n\nTo execute the end-to-end tests affected by a change run:\n\n```bash\nnpx nx affected:e2e\n```\n\n### Understanding the workspace\n\nTo see a diagram of the dependencies of the projects run:\n\n```bash\nnpx nx dep-graph\n```\n\n### Generating a storybook for a feature library or UI library\n\n```bash\nnpx nx g @nx/angular:storybook-configuration project-name\n```\n\n### Tools help\n\nPrint supported workspace commands\n\n```bash\nnpx nx run tools:help\n```\n\n### Further help\n\nVisit the [Nx Documentation](https://nx.dev) to learn more.\n\n## Technology reference\n\n### Workspace\n\n- [Nrwl Nx](https://nx.dev)\n\n### Client\n\n- [Angular](https://angular.io)\n- [Angular CLI](https://cli.angular.io/)\n- [Angular Material](https://material.angular.io/)\n- [Apollo Angular](https://github.com/apollographql/apollo-angular)\n- [Material Design Guidelines](https://material.io)\n- [NgRx](https://ngrx.io/)\n\n### Server\n\n- [NestJS](https://nestjs.com/)\n- [Firebase JS Reference](https://firebase.google.com/docs/reference/js/)\n- [Express GraphQL Server](https://graphql.org/graphql-js/running-an-express-graphql-server/)\n- [Angular Firebase: Apollo Server](https://angularfirebase.com/lessons/graphql-apollo-2-tutorial-node/#Apollo-Server)\n- [GRPC](https://grpc.io/)\n\n### Testing\n\n- [Cypress](https://www.cypress.io/)\n- [Jest](https://jestjs.io/)\n\n### Documentation\n\n- [Compodoc](https://compodoc.github.io/compodoc/)\n\n### CI\n\n- [GitHub Actions](https://github.com/features/actions)\n\n### Development methodology\n\n- [Trunk based development](https://trunkbaseddevelopment.com/)\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Frfprod%2Fnx-ng-starter","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Frfprod%2Fnx-ng-starter","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Frfprod%2Fnx-ng-starter/lists"}