From 05c843bab908780561d49a2d336b0e51e4d679bf Mon Sep 17 00:00:00 2001 From: Zen Software Date: Mon, 16 May 2022 22:27:46 -0600 Subject: [PATCH] chore(readme): readme update --- README.md | 17 ++++++++++------- 1 file changed, 10 insertions(+), 7 deletions(-) diff --git a/README.md b/README.md index 43d8fa072..d4d6ba5e4 100644 --- a/README.md +++ b/README.md @@ -54,7 +54,7 @@ npm start - [x] [Nest GraphQL](https://docs.nestjs.com/graphql/resolvers) resolvers as a gateway to [Prisma Client](https://www.prisma.io). - [x] [Apollo GraphQL SDL bindings to Prisma](https://paljs.com/generator/sdl) generated via [Pal.js CLI](https://paljs.com/cli/generator)! Thank you [**@AhmedElywa**](https://github.com/paljs) 🎎 -- [x] [PrismaSelect](https://paljs.com/plugins/select/) to solve the N+1 problem for all queries for free. +- [x] [PrismaSelect](https://paljs.com/plugins/select/) to solve the GraphQL N+1 problem for all queries for free. - [x] Custom npm scripts to code generate the Nest GraphQL gateway on Prisma schema changes. - [x] [Code generation](https://graphql-code-generator.com/docs/plugins/typescript-apollo-angular) of [apollo-angular](https://www.apollographql.com/docs/angular/) services to enable simple, type safe access to the GraphQL API within Angular. 🎀 Modern dev tooling configured for the project, allowing for [Apollo extension for VS Code](https://www.apollographql.com/docs/devtools/editor-plugins/) to provide auto-completion within `gql` tags for all `.ts` files. - [x] An Angular `GraphQLModule` to simplify the configuration of the `ApolloClient` to enable/disable the varying `ApolloLink` features. @@ -66,11 +66,12 @@ npm start ## 🍱 API Authentication, Performance & Scaling -- [x] [Nest authentication](https://docs.nestjs.com/techniques/authentication), user registration, and login system designed specifically to work for an [Angular SPA (single page application)](https://angular.io/). This project will provide responsive, "mobile first" interfaces for the standard set of authentication features. +- [x] [Nest authentication](https://docs.nestjs.com/techniques/authentication), user registration, and login system designed specifically to work for an [Angular SPA (single page application)](https://angular.io/). This project provides responsive, "mobile first" interfaces for the standard set of authentication features. - [x] `New account component` -- [x] `Login component` with remember me option +- [x] `Login component` with remember me option. +- [x] `Sign in with Google` via OpenID connect. - [x] `Forgot password component` and full password reset flow. -- [x] `Password change component` for user dashboards +- [x] `Password change component` for user dashboards. - [x] `Angular route guards` and `Angular directives` to show/hide content depending on user's roles. - [x] [Nest authorization directives](https://docs.nestjs.com/techniques/authentication#extending-guards) for server side [role-based access control](https://en.wikipedia.org/wiki/Role-based_access_control?oldformat=true) to allow for declarative, fine grained security control over all GraphQL queries and mutations. - [x] 100% stateless web server authentication via [JWT (Javascript Web Tokens)](https://docs.nestjs.com/techniques/authentication#jwt-functionality). Keeping the API stateless enables horizontal scaling of container replicas in production. @@ -79,20 +80,22 @@ npm start ## 🍵 Modern Web Components and Responsive UIs -- [x] SASS chosen as the CSS transpiler of choice +- [x] SASS chosen as the CSS transpiler of choice. - [x] [Angular Material](https://material.angular.io/) components & theme. - [x] Mobile first approach to build the framework's core components (login form, etc). - [x] Directly import [Bootstrap reset, utilities, & grid](https://www.amadousall.com/the-good-parts-of-bootstrap-4-you-are-missing-in-your-angular-material-projects/) features through SCSS imports, and exclude the Bootstrap theme and conflicting component styles. These features are missing from Angular Material, and greatly simplify the creation of responsive, mobile first applications. +- [x] [Bootswatch](https://bootswatch.com/) SCSS variables integrated for a large assortment of high quality color themes to choose from. --- -## 🍡 Project & Dev Tools +## 🍡 Developer Operations - [x] [Nx for project management](https://nx.dev/angular) to allow for the use of [Nx Console extensions for VSCode](https://marketplace.visualstudio.com/items?itemName=nrwl.angular-console). Nx Console is a GUI interface for monorepos that adds a lot of modern developer conveniences. It also helps to simplify the use of the various Angular & Nest code generation schematics available in the ecosystem. - [x] Strict typings with Typescript for everything. Even the code generation tools are written in Typescript. - [x] [Angular Language Service for VSCode](https://marketplace.visualstudio.com/items?itemName=Angular.ng-template) for modern IDE tooling. - [x] NPM scripts for versioned releases of the Nest **api** server as a containerized Docker image. [node:16-alpine](https://hub.docker.com/_/node?tab=description&ref=hackernoon.com) is used as the Docker container base image, and the appropriate `tsconfig.app.json` configurations are being applied for the Nest app. -- [x] Example [Kubernetes](https://kubernetes.io/) deployment scripts +- [x] Example [Kubernetes](https://kubernetes.io/) deployment scripts. - [x] Enforced code formatting via [Prettier](https://prettier.io/) & [import-sort](https://www.npmjs.com/package/prettier-plugin-import-sort), guaranteeing all contributions to the project are standardized with predictable structure, and clear legibility. +- [x] [Angular Conventional Commits](https://www.conventionalcommits.org/) for standardizing git commits. - [x] [@nest-modules/mailer](https://www.npmjs.com/package/@nest-modules/mailer) for automated emailing, and pre-configured [Handlebars e-mail templates](https://handlebarsjs.com/guide/#what-is-handlebars) for the various web portal's emailing needs. Handlebars has similar double bracket `{{contextField}}` template interpolation, akin to Angular templates. Custom HTML e-mail triggers within Nest are made very simple by simply passing a `JSON context` and the template's `file name` as parameters to the class injectable `MailService`. The [apps/api/src/app/mail/templates](https://github.com/ZenSoftware/Zen/tree/main/apps/api/src/app/mail/templates) directory is a **conventions first approach**. - [x] [Compodoc](https://compodoc.app/) to generate Nest & Angular documentation.