Upgraded Enigma
Organizer and productivity tools mono-repository.
Workflows
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 the similarities with 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;
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.
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)
yarn workspace:help
Committing changes to 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 deployment
Application deployments and autogenerated engineering documentation.
Workspace generators
Generate a library
feature
library
feature
librarynpx nx generate client-feature client-<feature-name> --tags=scope:client-<feature-name>,type:feature
ui
library
ui
librarynpx nx generate client-ui client-ui-<feature-name> --tags=scope:client-ui-<feature-name>,type:ui
data-access
library
data-access
librarynpx nx generate client-store client-store-<feature-name> --tags=scope:client-store-<feature-name>,type:data-access
util
library
util
librarynpx nx generate client-util client-util-<feature-name> --tags=scope:client-util-<feature-name>,type:util
Audit module boundaries
npx nx generate module-boundaries
General Tooling
This project was generated using Nx.

🔎 Nx is a set of Angular CLI power-ups for modern development.
Quick Start & Documentation
Workspace capabilities
Nx supports many plugins which add capabilities for developing different types of applications and different tools.
These capabilities include generating applications, libraries, .etc as well as the devtools to test, and build projects as well.
Below are plugins which are added to the workspace:
Generating an application
To generate an application run:
npx nx g @nx/angular:app my-app
You can use any of the plugins above to generate applications as well.
When using Nx, you can create multiple applications and libraries in the same workspace.
Generating a library
To generate a library run:
npx nx g @nx/angular:lib my-lib
You can also use any of the plugins above to generate libraries as well.
Libraries are sharable across libraries and applications.
It can be imported from @upgraded-enigma/mylib
.
Running a development server
To start a dev server run:
npx nx serve my-app
Navigate to http://localhost:4200/.
The app will automatically reload if you change any of the source files.
Code scaffolding
To generate a new component run:
npx nx g @nx/angular:component my-component --project=my-app
Building applications
To build the project run:
npx nx build my-app
The build artifacts will be stored in the dist/
directory.
Use the --prod
flag for a production build.
Unit testing with Jest
To execute the unit tests run:
npx nx test my-app
To execute the unit tests affected by a change run:
npx nx affected:test
End-to-end testing with Cypress
To execute the end-to-end tests run:
npx nx e2e my-app
To execute the end-to-end tests affected by a change run:
npx nx affected:e2e
Understanding the workspace
To see a diagram of the dependencies of the projects run:
npx nx dep-graph
Generating a storybook for a feature or ui library
npx nx g @nx/angular:storybook-configuration project-name
Tools help
npx nx run tools:help
Further help
Visit the Nx Documentation to learn more.
Technology Reference
Workspace
Client
Server
Testing
Documentation
CI
Development methodology
Last updated
Was this helpful?