Skip to content

Commit

Permalink
feat: presentation comments and likes
Browse files Browse the repository at this point in the history
  • Loading branch information
guiseek committed Sep 6, 2024
1 parent 4afd2be commit 80719fc
Show file tree
Hide file tree
Showing 109 changed files with 19,115 additions and 231 deletions.
60 changes: 58 additions & 2 deletions .eslintrc.json
Original file line number Diff line number Diff line change
Expand Up @@ -13,8 +13,64 @@
"allow": [],
"depConstraints": [
{
"sourceTag": "*",
"onlyDependOnLibsWithTags": ["*"]
"sourceTag": "type:util",
"onlyDependOnLibsWithTags": ["type:util"]
},
{
"sourceTag": "type:domain",
"onlyDependOnLibsWithTags": ["type:util", "type:api"]
},
{
"sourceTag": "type:data-source",
"onlyDependOnLibsWithTags": [
"type:util",
"type:domain",
"type:api"
]
},
{
"sourceTag": "type:data-access",
"onlyDependOnLibsWithTags": [
"type:util",
"type:domain",
"type:api"
]
},
{
"sourceTag": "type:resource",
"onlyDependOnLibsWithTags": [
"type:util",
"type:data-source",
"type:resource"
]
},
{
"sourceTag": "type:feature",
"onlyDependOnLibsWithTags": [
"type:util",
"type:data-access",
"type:feature"
]
},
{
"sourceTag": "type:app",
"onlyDependOnLibsWithTags": [
"type:util",
"type:data-source",
"type:resource",
"type:feature"
]
},
{
"sourceTag": "type:api",
"onlyDependOnLibsWithTags": [
"type:util",
"type:domain",
"type:data-source",
"type:resource",
"type:feature",
"type:api"
]
}
]
}
Expand Down
2 changes: 2 additions & 0 deletions .gitignore
Original file line number Diff line number Diff line change
Expand Up @@ -41,3 +41,5 @@ Thumbs.db
.nx/cache
.nx/workspace-data
.env

.angular
3 changes: 2 additions & 1 deletion .prettierignore
Original file line number Diff line number Diff line change
Expand Up @@ -2,4 +2,5 @@
/dist
/coverage
/.nx/cache
/.nx/workspace-data
/.nx/workspace-data
.angular
87 changes: 31 additions & 56 deletions README.md
Original file line number Diff line number Diff line change
@@ -1,77 +1,52 @@
# Platform

<a alt="Nx logo" href="https://nx.dev" target="_blank" rel="noreferrer"><img src="https://raw.githubusercontent.com/nrwl/nx/master/images/nx-logo.png" width="45"></a>
Plataforma da comunidade DevParaná que além de cumprir sua missão como software, também ensina sobre software.

✨ Your new, shiny [Nx workspace](https://nx.dev) is almost ready ✨.
Encontraremos conceitos essenciais para desenvolver software de qualidade, fazendo conexões entre conceitos teóricos e aplicações práticas.

[Learn more about this workspace setup and its capabilities](https://nx.dev/getting-started/intro#learn-nx?utm_source=nx_project&amp;utm_medium=readme&amp;utm_campaign=nx_projects) or run `npx nx graph` to visually explore what was created. Now, let's get you up to speed!
## Responsabilidades e relacionamentos

## Finish your CI setup
Trata-se de responsabilidade e relacionamentos, ou seja, qual a responsabilidade de cada camada e quais camadas podem depender diretamente uma das outras. Na tabela a seguir vemos que camadas do tipo `util` podem depender apenas de camadas que também sejam do tipo `util`, camadas do tipo `domain` podem depender apenas de camadas do tipo `util`, camadas do tipo `data-source` podem depender apenas dos tipos `util` e `domain` e assim por diante.

[Click here to finish setting up your workspace!](https://cloud.nx.app/connect/8GO6xKrjst)
Caso tenha interesse em aprofundar neste assunto e descobrir os motivos, recomendo que leia um conteúdo que escrevi ano passado, você pode fazer download através do link a seguir. [Arquitetura em camadas, uma abordagem sobre responsabilidades e relacionamentos](https://conteudode.dev/pdf/nx)

| | util | domain | data-source | data-access | resource | feature | app | api |
| ------------: | :--: | :----: | :---------: | :---------: | :------: | :-----: | :-: | :-: |
| `util` |||||||||
| `domain` | 𝗫 | 𝗫 ||| 𝗫 | 𝗫 | 𝗫 ||
| `data-source` | 𝗫 | 𝗫 | 𝗫 | 𝗫 || 𝗫 |||
| `data-access` | 𝗫 | 𝗫 | 𝗫 | 𝗫 | 𝗫 ||||
| `resource` | 𝗫 | 𝗫 | 𝗫 | 𝗫 || 𝗫 |||
| `feature` | 𝗫 | 𝗫 | 𝗫 | 𝗫 | 𝗫 ||||
| `app` | 𝗫 | 𝗫 | 𝗫 | 𝗫 | 𝗫 | 𝗫 | 𝗫 | 𝗫 |
| `api` | 𝗫 | 𝗫 ||| 𝗫 ||||

## Run tasks
## Conceitos

To run tasks with Nx use:
### SOLID

```sh
npx nx <target> <project-name>
```
1. **Single Responsibility Principle** ou Princípio da Responsabilidade Única diz que uma classe deve ter apenas uma única responsabilidade e assim, um único motivo para mudar.

For example:
1. **Open-Closed Principle** ou Princípio do Aberto-Fechado diz que uma classe deve estar aberta para novos cenários, mas fechada para modificação.

```sh
npx nx build myproject
```
1. **Liskov Substitution Principle** ou Princípio da Substituição de Liskov diz que os objetos de uma classe derivada devem ser substituíveis por objetos de sua classe base sem alterar o comportamento do software.

These targets are either [inferred automatically](https://nx.dev/concepts/inferred-tasks?utm_source=nx_project&utm_medium=readme&utm_campaign=nx_projects) or defined in the `project.json` or `package.json` files.
1. **Interface Segregation Principle** ou Princípio da Segregação de Interface diz que interfaces devem ser separadas para que classes possam depender apenas dos métodos que utilizam.

[More about running tasks in the docs &raquo;](https://nx.dev/features/run-tasks?utm_source=nx_project&utm_medium=readme&utm_campaign=nx_projects)
1. **Dependency Inversion Principle** ou Princípio da Inversão de Dependência diz que módulos de alto nível não devem depender de módulos de baixo nível. Ambos devem depender de abstrações.

## Add new projects
### Conceitos aplicados

While you could add new projects to your workspace manually, you might want to leverage [Nx plugins](https://nx.dev/concepts/nx-plugins?utm_source=nx_project&utm_medium=readme&utm_campaign=nx_projects) and their [code generation](https://nx.dev/features/generate-code?utm_source=nx_project&utm_medium=readme&utm_campaign=nx_projects) feature.
#### Liskov Substitution Principle

To install a new plugin you can use the `nx add` command. Here's an example of adding the React plugin:
```sh
npx nx add @nx/react
```
- A função [`provideCryptoService`](packages/data-source-account/src/lib/providers/crypto.ts) aplica este princípio permitindo a possibilidade de substituição da classe abstrata [`CryptoService`](packages/data-source-account/src/lib/providers/crypto.ts) por outra, no nosso caso, está sendo substituída pela classe [`CryptoServiceImpl`](packages/data-source-account/src/lib/services/crypto.ts), do arquivo [`providers.ts`](packages/data-source-account/src/lib/providers.ts)

Use the plugin's generator to create new projects. For example, to create a new React app or library:
```ts
const dataSourceAccountProviders: Provider[] = [
// ...

```sh
# Genenerate an app
npx nx g @nx/react:app demo
provideCryptoService(CryptoServiceImpl),

# Generate a library
npx nx g @nx/react:lib some-lib
// ...
];
```

You can use `npx nx list` to get a list of installed plugins. Then, run `npx nx list <plugin-name>` to learn about more specific capabilities of a particular plugin. Alternatively, [install Nx Console](https://nx.dev/getting-started/editor-setup?utm_source=nx_project&utm_medium=readme&utm_campaign=nx_projects) to browse plugins and generators in your IDE.

[Learn more about Nx plugins &raquo;](https://nx.dev/concepts/nx-plugins?utm_source=nx_project&utm_medium=readme&utm_campaign=nx_projects) | [Browse the plugin registry &raquo;](https://nx.dev/plugin-registry?utm_source=nx_project&utm_medium=readme&utm_campaign=nx_projects)


[Learn more about Nx on CI](https://nx.dev/ci/intro/ci-with-nx#ready-get-started-with-your-provider?utm_source=nx_project&utm_medium=readme&utm_campaign=nx_projects)

## Install Nx Console

Nx Console is an editor extension that enriches your developer experience. It lets you run tasks, generate code, and improves code autocompletion in your IDE. It is available for VSCode and IntelliJ.

[Install Nx Console &raquo;](https://nx.dev/getting-started/editor-setup?utm_source=nx_project&utm_medium=readme&utm_campaign=nx_projects)

## Useful links

Learn more:

- [Learn more about this workspace setup](https://nx.dev/getting-started/intro#learn-nx?utm_source=nx_project&amp;utm_medium=readme&amp;utm_campaign=nx_projects)
- [Learn about Nx on CI](https://nx.dev/ci/intro/ci-with-nx?utm_source=nx_project&utm_medium=readme&utm_campaign=nx_projects)
- [Releasing Packages with Nx release](https://nx.dev/features/manage-releases?utm_source=nx_project&utm_medium=readme&utm_campaign=nx_projects)
- [What are Nx plugins?](https://nx.dev/concepts/nx-plugins?utm_source=nx_project&utm_medium=readme&utm_campaign=nx_projects)

And join the Nx community:
- [Discord](https://go.nx.dev/community)
- [Follow us on X](https://twitter.com/nxdevtools) or [LinkedIn](https://www.linkedin.com/company/nrwl)
- [Our Youtube channel](https://www.youtube.com/@nxdevtools)
- [Our blog](https://nx.dev/blog?utm_source=nx_project&utm_medium=readme&utm_campaign=nx_projects)
36 changes: 36 additions & 0 deletions apps/platform/.eslintrc.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,36 @@
{
"extends": ["../../.eslintrc.json"],
"ignorePatterns": ["!**/*"],
"overrides": [
{
"files": ["*.ts"],
"extends": [
"plugin:@nx/angular",
"plugin:@angular-eslint/template/process-inline-templates"
],
"rules": {
"@angular-eslint/directive-selector": [
"error",
{
"type": "attribute",
"prefix": "devpr",
"style": "camelCase"
}
],
"@angular-eslint/component-selector": [
"error",
{
"type": "element",
"prefix": "devpr",
"style": "kebab-case"
}
]
}
},
{
"files": ["*.html"],
"extends": ["plugin:@nx/angular-template"],
"rules": {}
}
]
}
22 changes: 22 additions & 0 deletions apps/platform/jest.config.ts
Original file line number Diff line number Diff line change
@@ -0,0 +1,22 @@
/* eslint-disable */
export default {
displayName: 'platform',
preset: '../../jest.preset.js',
setupFilesAfterEnv: ['<rootDir>/src/test-setup.ts'],
coverageDirectory: '../../coverage/apps/platform',
transform: {
'^.+\\.(ts|mjs|js|html)$': [
'jest-preset-angular',
{
tsconfig: '<rootDir>/tsconfig.spec.json',
stringifyContentPathRegex: '\\.(html|svg)$',
},
],
},
transformIgnorePatterns: ['node_modules/(?!.*\\.mjs$)'],
snapshotSerializers: [
'jest-preset-angular/build/serializers/no-ng-attributes',
'jest-preset-angular/build/serializers/ng-snapshot',
'jest-preset-angular/build/serializers/html-comment',
],
};
93 changes: 93 additions & 0 deletions apps/platform/project.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,93 @@
{
"name": "platform",
"$schema": "../../node_modules/nx/schemas/project-schema.json",
"projectType": "application",
"prefix": "devpr",
"sourceRoot": "apps/platform/src",
"tags": ["type:app"],
"targets": {
"build": {
"executor": "@angular-devkit/build-angular:application",
"outputs": ["{options.outputPath}"],
"options": {
"outputPath": "dist/apps/platform",
"index": "apps/platform/src/index.html",
"browser": "apps/platform/src/main.ts",
"polyfills": ["zone.js"],
"tsConfig": "apps/platform/tsconfig.app.json",
"inlineStyleLanguage": "scss",
"assets": [
{
"glob": "**/*",
"input": "apps/platform/public"
}
],
"styles": ["apps/platform/src/styles.scss"],
"scripts": []
},
"configurations": {
"production": {
"budgets": [
{
"type": "initial",
"maximumWarning": "500kb",
"maximumError": "1mb"
},
{
"type": "anyComponentStyle",
"maximumWarning": "2kb",
"maximumError": "4kb"
}
],
"outputHashing": "all"
},
"development": {
"optimization": false,
"extractLicenses": false,
"sourceMap": true
}
},
"defaultConfiguration": "production"
},
"serve": {
"executor": "@angular-devkit/build-angular:dev-server",
"configurations": {
"production": {
"buildTarget": "platform:build:production"
},
"development": {
"buildTarget": "platform:build:development"
}
},
"defaultConfiguration": "development",
"options": {
"proxyConfig": "apps/platform/proxy.conf.json"
}
},
"extract-i18n": {
"executor": "@angular-devkit/build-angular:extract-i18n",
"options": {
"buildTarget": "platform:build"
}
},
"lint": {
"executor": "@nx/eslint:lint"
},
"test": {
"executor": "@nx/jest:jest",
"outputs": ["{workspaceRoot}/coverage/{projectRoot}"],
"options": {
"jestConfig": "apps/platform/jest.config.ts"
}
},
"serve-static": {
"executor": "@nx/web:file-server",
"options": {
"buildTarget": "platform:build",
"port": 4200,
"staticFilePath": "dist/apps/platform/browser",
"spa": true
}
}
}
}
6 changes: 6 additions & 0 deletions apps/platform/proxy.conf.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,6 @@
{
"/server": {
"target": "http://localhost:3333",
"secure": false
}
}
Loading

0 comments on commit 80719fc

Please sign in to comment.