Skip to content

Commit 866d783

Browse files
authored
contributing (#3)
* refactor: font-size headings * chore: add seeds * docs: contributing guide
1 parent b41d99f commit 866d783

File tree

12 files changed

+5764
-89336
lines changed

12 files changed

+5764
-89336
lines changed

CONTRIBUTING.md

+163
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,163 @@
1+
# Da hora ter você por aqui!
2+
3+
Quer contribuir com código? Nice 🤘
4+
5+
Aqui vão alguns passos pra executar o projeto em desenvolvimento.
6+
7+
## Requisitos
8+
9+
1. [node.js](https://nodejs.org/pt/download) v20+
10+
1. [pnpm](https://pnpm.io/installation) instalado
11+
1. [docker](https://docs.docker.com/engine/install) instalado
12+
13+
## Clone o projeto
14+
15+
```sh
16+
git clone https://github.com/DeveloperParana/devmx
17+
```
18+
19+
## Variáveis de ambiente
20+
21+
Configure a senha do banco e segredo jwt como quiser para uso local.
22+
23+
Para isso, renomeie o arquivo [`.env-example`](./.env-example) para `.env`
24+
25+
```sh
26+
mv .env-example .env
27+
```
28+
29+
## Docker
30+
31+
Essas variáveis são usadas no arquivo [docker-compose.yml](./docker-compose.yml).
32+
33+
> [!IMPORTANT]
34+
> Primeiro preencha os valores para `DB_USER`, `DB_PASS`, `JWT_SECRET` no arquivo [.env](./.env), salve e só depois disso execute o docker.
35+
36+
37+
```sh
38+
docker compose up -d
39+
```
40+
41+
## Instalação
42+
43+
Instale as dependências do projeto
44+
45+
```sh
46+
pnpm install
47+
```
48+
49+
## Execução
50+
51+
Execute o back-end para criar as collections no banco
52+
53+
```sh
54+
pnpm dev:server
55+
```
56+
57+
Assim que conluir, você já pode finalizar o processo (`Ctrl` + `C` / `Cmd` + `C`), pois você não quer criar dados úteis manualmente, certo?
58+
59+
## Seeds
60+
61+
Preparei alguns seeds pra você importar na base de dados, mas primeiro verifique se você tem o comando `mongoimport`, caso não tenha, acesse [este link](https://www.mongodb.com/pt-br/docs/database-tools/installation/installation/#installing-the-database-tools) para saber como instalar.
62+
63+
> [!NOTE]
64+
> Ele é necessário apenas para importar dados iniciais não obrigatórios, como dados de login com permissões distintas e todas as cidades do brasil com latitude e longitude.
65+
66+
67+
Para importar execute, não se esqueça de colocar seu usuário no `--username=seu-user` configurado no [`.env`](./.env). Ao executar, ele irá solicitar a senha que foi configurada no mesmo arquivo.
68+
69+
### Cidades
70+
71+
```sh
72+
mongoimport --host=localhost --port=27017 --username= --authenticationDatabase=admin --db=devparana --collection=citycollections --file=assets/seeds/city-collection.json
73+
```
74+
75+
### Usuários
76+
77+
```sh
78+
mongoimport --host=localhost --port=27017 --username= --authenticationDatabase=admin --db=devparana --collection=accountcollections --file=assets/seeds/account-collection.json
79+
```
80+
81+
## Agora sim!
82+
83+
Agora tudo está configurado pra você executar em desenvolvimento, configurei a execução do back-end e front-end no mesmo comando a seguir.
84+
85+
```sh
86+
pnpm dev
87+
```
88+
89+
## Convenção usada em commits
90+
91+
> [!WARNING]
92+
> Antes de escrever seu commit, execute `lint`, `test` e `build` dos projetos afetados pela sua alteração com o comando `pnpm affected`.
93+
94+
Os commits podem ser feitos em português, mas use inglês para termos técnicos, não tente traduzi-los quando eles são conhecidos e usados em inglês, por gentileza.
95+
96+
> [!TIP]
97+
> Use o comando `pnpm commit`, e apenas responda as perguntas, assim seu commit seguirá a convenção utilizada.
98+
99+
100+
## Arquitetura
101+
102+
Trata-se de responsabilidade e relacionamentos, ou seja, qual a responsabilidade de cada camada e quais camadas podem depender diretamente uma das outras. Esta é uma convenção chamada [enforce module boundaries](https://nx.dev/features/enforce-module-boundaries#enforce-module-boundaries) e quem permite que as regras sejam aplicadas é o [nx](https://nx.dev).
103+
104+
### Responsabilidades e relacionamentos entre tipos de bibliotecas
105+
106+
107+
A tabela a seguir representa a configuração no arquivo [`.eslintrc.json`](.eslintrc.json).
108+
109+
| | api | util | domain | data | ui | feature | resource | app |
110+
| ---------: | :-: | :--: | :----: | :--: | :-: | :-----: | :------: | :-: |
111+
| `api` || 𝗫 | 𝗫 | 𝗫 | 𝗫 | 𝗫 | 𝗫 | 𝗫 |
112+
| `util` ||| 𝗫 | 𝗫 | 𝗫 | 𝗫 | 𝗫 | 𝗫 |
113+
| `domain` |||| 𝗫 | 𝗫 | 𝗫 | 𝗫 | 𝗫 |
114+
| `data` ||||| 𝗫 | 𝗫 | 𝗫 | 𝗫 |
115+
| `ui` ||| 𝗫 | 𝗫 || 𝗫 | 𝗫 | 𝗫 |
116+
| `feature` ||| 𝗫 |||| 𝗫 | 𝗫 |
117+
| `resource` ||| 𝗫 || 𝗫 | 𝗫 || 𝗫 |
118+
| `app` ||| 𝗫 ||||| 𝗫 |
119+
120+
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 [Arquitetura em camadas, uma abordagem sobre responsabilidades e relacionamentos](https://conteudode.dev/pdf/nx).
121+
122+
123+
---
124+
125+
126+
```
127+
..........
128+
..............
129+
..................
130+
........................
131+
............................
132+
................................
133+
....................................
134+
........................................
135+
.................. ...................
136+
............ ..... ...... ....................
137+
............ ... ... ...... ......................
138+
.............. .... ... .... ..............
139+
........ ..... ..... ..... .... ...............
140+
........ ...... ....... ..... . .... .........
141+
......... .... ...... ....... ....... .... ... .........
142+
............. ...... .... ........ ..... ... ............
143+
................ ........... ........ ...... ...............
144+
................ ................. ..... ........ ................
145+
................ ................ ......... ................
146+
................. .............. ............... ................
147+
.................. .... ................. ...............
148+
.................... ................. ............
149+
........................... ............... ...........
150+
............................ ....... ..........
151+
.......................... . ............
152+
........................ ....................
153+
...................... ......................
154+
................... ...................
155+
................. .................
156+
............... ...............
157+
............. .............
158+
........... ...........
159+
:........ .........
160+
...... ......
161+
.... ....
162+
.. ..
163+
```

README.md

+1-73
Original file line numberDiff line numberDiff line change
@@ -8,76 +8,4 @@
88

99
# dev member experience
1010

11-
## Para executar em dev
12-
13-
### Requisitos
14-
15-
1. [pnpm](https://pnpm.io/installation) instalado
16-
1. [docker](https://docs.docker.com/engine/install) instalado
17-
18-
### Configurações
19-
20-
Clone o projeto
21-
22-
```sh
23-
git clone https://github.com/DeveloperParana/devmx
24-
```
25-
26-
Configure a senha do banco e segredo jwt como quiser para uso local
27-
28-
```sh
29-
mv .env-example .env
30-
```
31-
32-
Preencha os valores para `DB_USER`, `DB_PASS`, `JWT_SECRET` e salve antes de executar o docker.
33-
34-
```sh
35-
docker compose up -d
36-
```
37-
38-
Instale as dependências
39-
40-
```sh
41-
pnpm install
42-
```
43-
44-
Execute o back-end e front-end
45-
46-
```sh
47-
pnpm dev
48-
```
49-
50-
## Para commits
51-
52-
Antes de escrever seu commit, execute lint, test e build dos projetos afetados pela sua alteração.
53-
54-
```sh
55-
pnpm affected
56-
```
57-
58-
Os commits podem ser feitos em português, mas use inglês para termos técnicos, não tente traduzi-los quando eles são conhecidos e usados em inglês.
59-
60-
```sh
61-
pnpm cmt
62-
```
63-
64-
Responda as perguntas para fazer o commit.
65-
66-
## Responsabilidades e relacionamentos
67-
68-
Trata-se de responsabilidade e relacionamentos, ou seja, qual a responsabilidade de cada camada e quais camadas podem depender diretamente uma das outras. Esta é uma convenção chamada [enforce module boundaries](https://nx.dev/features/enforce-module-boundaries#enforce-module-boundaries) e quem permite que as regras sejam aplicadas é o [nx](https://nx.dev).
69-
70-
A tabela a seguir representa a configuração no arquivo [`.eslintrc.json`](.eslintrc.json).
71-
72-
| | api | util | domain | data | ui | feature | resource | app |
73-
| ---------: | :-: | :--: | :----: | :--: | :-: | :-----: | :------: | :-: |
74-
| `api` || 𝗫 | 𝗫 | 𝗫 | 𝗫 | 𝗫 | 𝗫 | 𝗫 |
75-
| `util` ||| 𝗫 | 𝗫 | 𝗫 | 𝗫 | 𝗫 | 𝗫 |
76-
| `domain` |||| 𝗫 | 𝗫 | 𝗫 | 𝗫 | 𝗫 |
77-
| `data` ||||| 𝗫 | 𝗫 | 𝗫 | 𝗫 |
78-
| `ui` ||| 𝗫 | 𝗫 || 𝗫 | 𝗫 | 𝗫 |
79-
| `feature` ||| 𝗫 |||| 𝗫 | 𝗫 |
80-
| `resource` ||| 𝗫 || 𝗫 | 𝗫 || 𝗫 |
81-
| `app` ||| 𝗫 ||||| 𝗫 |
82-
83-
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 [Arquitetura em camadas, uma abordagem sobre responsabilidades e relacionamentos](https://conteudode.dev/pdf/nx).
11+
Quer contribuir? Siga este guia 👉 [CONTRIBUTING](./CONTRIBUTING.md)

0 commit comments

Comments
 (0)