Skip to content

rfprod/nx-ng-starter

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Nx Angular NestJS Starter: A Scalable Monorepo Template for Angular and NestJS Applications

Commitizen friendly

Description

Nx Angular NestJS Starter is a powerful template designed for building scalable Angular and NestJS applications using Nx. It leverages modern development practices to enhance productivity and maintainability.

Key Features

  • Monorepo Support: Manage multiple Angular applications and libraries in a single repository.
  • Optimized Build Process: Leverage Nx's caching and task running capabilities for faster builds.
  • Integrated Testing: Built-in support for unit and end-to-end testing.
  • Customizable Configuration: Easily adjust settings to fit your project's needs.

Workflows

Trigger Badge
ℹ️ Manual, Scheduled (weekly) codeql-analysis
ℹ️ Manual build-docker
ℹ️ PR merge event (destination: trunk) publish-packages
ℹ️ Manual test-e2e
ℹ️ PR merge event (destination: trunk) trunk
ℹ️ Scheduled (weekly) validate-codeowners
ℹ️ PR open event (destination: trunk) validate-pr

Requirements

In order to run own copy of the project one must fulfill the following requirements.

Supported operating systems

  • 🏆 Debian based Linux - recommended
    • check out this dev setup instructions to facilitate setting up the dev environment;
    • given that the dev environment is set up, the command yarn install:all:linux should install everything needed to work with the project;
  • 🆗 OSX - should work due to similarity to Linux
    • one will have to figure out oneself how to set up the dev environment;
    • given that the dev environment is set up, the command yarn install:all:osx should install everything needed to work with the project;
    • the automation scripts support the OS with relatively high probability, but it has not been tested;
  • 🤷 Windows - should work, but no guarantees
    • one will have to figure out oneself how to set up the dev environment;
    • one will have to figure out oneself how to install protolint, see available installation options;
    • given that the dev environment is set up, the following commands should be used to install shellcheck via PowerShell;
      iwr -useb get.scoop.sh | iex
      scoop install shellcheck
    • recommended shell: Git for Windows > Git BASH;
    • configure Git to use LF as a carriage return
      git config --global core.autocrlf false
      git config --global core.eol lf

Core dependencies

Preferred package manager

  • Yarn - preferred package manager for dependencies installation in the project root.
  • npm - preferred package manager for dependencies installation in the functions folder.

Getting started

  1. Clone the repository:
git clone https://github.com/rfprod/nx-ng-starter.git
  1. Navigate to the project directory:
cd ./nx-ng-starter
  1. Install dependencies:
yarn install --frozen-lockfile
  1. Run the application:
yarn start

Package scripts reference

The 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)

npx nx run tools:help

Committing changes to the repo

Using commitizen cli is mandatory.

Provided all dependencies are installed, and commitizen cli is installed as a global dependency, this command must be used.

git cz

GitBook documentation

The GitBook documentation is generated based on this GitHub repo.

Firebase deployments

Application deployments and autogenerated engineering documentation.

Workspace generators

Library generators

feature library

npx nx generate client-feature client-<feature-name> --tags=scope:client-<feature-name>,type:feature

ui library

npx nx generate client-ui client-<feature-name> --tags=scope:client-<feature-name>,type:ui

data-access library

npx nx generate client-store client-store-<feature-name> --tags=scope:client-store-<feature-name>,type:data-access

util library

npx nx generate client-util client-util-<feature-name> --tags=scope:client-util-<feature-name>,type:util

Audit module boundaries

npx nx generate module-boundaries

Build the dependency graph

npx nx dep-graph

General Tooling

This project was generated using Nx.

Quick Start & Documentation

Frequently Asked Questions

How do I contribute to this project?

Refer to the CONTRIBUTING.md file for guidelines.

What technologies are used in this project?

Workspace

Client

Server

Testing

Documentation

CI

Development methodology