Skip to content
Merged

Dev #29

Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
49 commits
Select commit Hold shift + click to select a range
cac4427
Merge pull request #22 from Matheusfrej/dev
Matheusfrej Feb 18, 2025
142a1ba
🗃️ Adiciona novas tabelas no esquema do banco de dados
Matheusfrej Mar 29, 2025
603e3cc
♻️ Refatora caso de uso de buscar checklist
Matheusfrej Mar 29, 2025
61bc7f7
✨ Modifica caso de uso de criar checklist com novas tabelas
Matheusfrej Mar 29, 2025
aa05553
🐛 Comenta códigos que estão dando erro por enquanto
Matheusfrej Apr 1, 2025
6f23d69
Merge pull request #24 from Matheusfrej/dev
Matheusfrej Apr 1, 2025
22daecb
💡 Comenta testes integrados de checklist (por enquanto)
Matheusfrej Apr 5, 2025
a0ae301
♻️ Implementa Abstract Factory nos repositórios
Matheusfrej Apr 5, 2025
d051e0b
🐛 Conserta bug do bind do middleware
Matheusfrej Apr 6, 2025
098394d
🎨 Cria Router comum
Matheusfrej Apr 6, 2025
7759a29
♻️ Troca classe pra tipo no ucio
Matheusfrej Apr 6, 2025
34ab86b
♻️ Troca classe para tipo dos exports que faltavam
cesaryuri Apr 9, 2025
62d1a2f
🚨 Corrige erros de lint
Matheusfrej Apr 11, 2025
e6ef09e
♻️ Adapta caso de uso de listar checklists por usuário
Matheusfrej Apr 13, 2025
6e3d64d
♻️ Adapta caso de uso de listar checklists por sistema
Matheusfrej Apr 13, 2025
7dc7ee6
♻️ Ajusta o código para comportar o caso de uso de atualizar checklist
Matheusfrej Apr 13, 2025
08a9d3c
♻️ Move acessos ao prisma para o repositório do prisma
Matheusfrej Apr 13, 2025
e03b7a9
🎨 Cria Repositório comum do prisma
Matheusfrej Apr 13, 2025
fe75004
✨ Implementa transação nos repositorys
Matheusfrej Apr 14, 2025
46a90f6
♻️ Refatora requisições e respostas dos casos de uso do sistema para …
cesaryuri Apr 21, 2025
ca7d785
♻️ Refatora respostas dos casos de uso do sistema para utilizar BaseR…
cesaryuri Apr 21, 2025
fa47df4
♻️ Refatora tipos de requisição para incluir UserAuthenticated e remo…
cesaryuri Apr 21, 2025
ba14734
♻️ Refatora requisições e respostas dos casos de uso do sistema para …
cesaryuri Apr 21, 2025
35716cf
♻️ corrige espaços
cesaryuri Apr 21, 2025
e660a81
✅ Atualiza testes unitários do caso de uso de atualizar checklist
Matheusfrej May 1, 2025
a0f3c14
🗃️ Cria relacionamento entre checklists e laws/devices
Matheusfrej May 2, 2025
1706b01
✨ Adapta caso de uso get checklist para relacionamento com laws e dev…
Matheusfrej May 2, 2025
ef60fdf
✨ Implement checklist integration with laws and devices, including re…
Matheusfrej May 2, 2025
0c0b4f6
♻️ Refactor CreateItemUseCaseRequest to use type alias instead of class
Matheusfrej May 2, 2025
e053cdb
✨ Enhance UpdateChecklistUseCase to manage laws and devices, includin…
Matheusfrej May 2, 2025
3f54b38
✨ Update checklist validation to allow empty devices array and modify…
Matheusfrej May 2, 2025
61b0801
✨ Implement List Laws feature with controller, use case, and reposito…
Matheusfrej May 4, 2025
f6f1db3
⚰️ Remove código não utilizado
Matheusfrej May 4, 2025
6a80cdf
✨ Add architecture tests and fix architecture problems found with the…
Matheusfrej May 6, 2025
35a59fd
✨ Refactor architecture tests to use mapFolderName for forbidden imports
Matheusfrej May 6, 2025
6a6020b
✨ Conserta testes e2e de checklists
Matheusfrej May 9, 2025
6ada03f
Merge pull request #26 from Matheusfrej/dev
Matheusfrej May 11, 2025
2c03c81
✨ Update README and package.json to include architecture tests
Matheusfrej May 11, 2025
f93d6e8
✨ Update README to include project structure and contribution guidelines
Matheusfrej May 11, 2025
e85adc3
✨ Update README to specify opening Pull Requests to the "dev" branch
Matheusfrej May 11, 2025
7115a1f
✨ Implement List Devices use case and tests
cesaryuri May 13, 2025
ef8da60
Merge branch 'feat-checklist-in-database' of https://github.com/Mathe…
cesaryuri May 13, 2025
87019de
✨ Implement List Items use case, controller, and tests
Matheusfrej May 18, 2025
ddda778
✨ Add Sections table and adapt current code to it, including relation…
Matheusfrej May 29, 2025
f7656c1
✨ Pequenos ajustes
Matheusfrej Jun 19, 2025
c5c4fad
✨ Update Items model to use section_id instead of sectionId
Matheusfrej Jun 29, 2025
cfce867
✨ Adiciona scripts para dados de teste
cesaryuri Jun 30, 2025
7bd5590
🔨 Configura variáveis nos scripts de povoamento e cria script de povo…
Matheusfrej Jun 30, 2025
684fb82
Merge pull request #28 from Matheusfrej/feat-checklist-in-database
Matheusfrej Mar 24, 2026
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
20 changes: 20 additions & 0 deletions .github/workflows/run-arch-tests.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,20 @@
name: Run Archtecture Tests

on: [push]

jobs:
run-arch-tests:
name: Run Archtecture Tests
runs-on: ubuntu-latest

steps:
- uses: actions/checkout@v4

- uses: actions/setup-node@v4
with:
node-version: 20
cache: 'npm'

- run: npm ci

- run: npm run test:arch
45 changes: 41 additions & 4 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -83,11 +83,21 @@ O npm já vem por padrão na instalação do Node.

**Acessando o PGAdmin:** Com o Docker em execução, você pode acessar o PGAdmin localmente. No seu navegador, vá até http://localhost:7070. A página pedirá um e-mail e senha, que estão configurados no arquivo .env do seu projeto.

**Configurando o Banco no PGAdmin:** Após fazer login, será necessário adicionar um novo servidor no PGAdmin. No campo "Connection" da nova configuração de servidor, no campo Host name/address, insira o nome do serviço do PostgreSQL definido no docker-compose.yml, que neste caso é db. Use as demais informações de conexão (usuário, senha, etc.) conforme descritas no arquivo .env.
**Configurando o Banco no PGAdmin:** Após fazer login, será necessário adicionar um novo servidor no PGAdmin. Na aba "Connection" da nova configuração de servidor, no campo Host name/address, insira o nome do serviço do PostgreSQL definido no docker-compose.yml, que neste caso é db. Use as demais informações de conexão (usuário, senha, etc.) conforme descritas no arquivo .env.

## Estrutura do Projeto

O projeto segue uma arquitetura limpa (Clean Architecture), dividindo responsabilidades em camadas bem definidas:

- **Domain**: Contém as regras de negócio, entidades principais e casos de uso.
- **Delivery**: Responsável pela interface com o mundo externo (ex.: APIs REST).
- **Infrastructure**: Contém implementações específicas de banco de dados, serviços externos, etc.

## Testes automatizados

A aplicação possui testes automatizados de unidade e de integração para ter uma maior segurança no código e adequação aos requisitos.
A aplicação possui testes automatizados de unidade, integração e arquitetura para garantir maior segurança no código e adequação aos requisitos.

### Testes de unidade

Para executar os testes de unidade, rode:
```sh
Expand All @@ -102,6 +112,7 @@ npm run test:watch

Assim, sempre que houver uma atualização no código, os testes de unidade vão ser rodados novamente de forma automática.

### Testes de integração (e2e)

Se quiser rodar os testes integrados (e2e), pode rodar:

Expand All @@ -115,8 +126,34 @@ Da mesma forma, para rodar eles de forma automática sempre que houver alteraç
npm run test:e2e:watch
```

Pra finalizar, se quiser rodar todos os testes (unitários e de integração), rode:
### Testes de arquitetura

Os testes de arquitetura verificam se o código segue os padrões e boas práticas definidos para o projeto. Para rodar esses testes, execute:

```sh
npm run test:arch
```

Se quiser rodar os testes de arquitetura de forma contínua enquanto desenvolve, use:

```sh
npm run test:arch:watch
```

### Rodando todos os testes

Para rodar todos os testes (unitários, de integração e de arquitetura), execute:

```sh
npm run test:all
```
```

## Contribuindo

Contribuições são bem-vindas! Siga os passos abaixo para contribuir:

1. Crie uma issue ou escolha uma issue existente do projeto.
1. Crie uma branch para sua feature ou correção de bug, baseado na issue.
2. Faça commit das suas alterações.
3. Envie para o repositório remoto.
4. Abra um Pull Request para branch "dev".
28 changes: 28 additions & 0 deletions dev-scripts/EXESQL.bat
Original file line number Diff line number Diff line change
@@ -0,0 +1,28 @@
@echo off
:: ===== CONFIGURAÇÃO =====
set "PGUSER=postgres"
set "PGPASSWORD=alterar_para_senha_do_bd"
set "PGDB=bdchecklist"
set "PGHOST=localhost"
set "SQLFILE=InserirDadosTeste.sql"

:: ===== VARIÁVEIS DE AMBIENTE =====
set PGCLIENTENCODING=UTF8

echo.
echo ===================================================
echo INICIANDO SCRIPT DE POPULACAO DE BANCO DE DADOS
echo ===================================================
echo.
echo Inserindo dados de teste no banco '%PGDB%'...

:: Executa o arquivo .sql usando psql
psql -U %PGUSER% -h %PGHOST% -d %PGDB% -f %SQLFILE%

echo.
echo ===================================================
echo SCRIPT FINALIZADO
echo ===================================================
echo.
echo Pressione qualquer tecla para sair...
pause >nul
31 changes: 31 additions & 0 deletions dev-scripts/EXESQL.sh
Original file line number Diff line number Diff line change
@@ -0,0 +1,31 @@
#!/bin/bash

# ===== CONFIGURAÇÃO =====
PGUSER="postgres"
PGPASSWORD="postgres"
PGDB="lgpd_checklist_local"
PGHOST="localhost"
SQLFILE="InserirDadosTeste.sql"

# ===== VARIÁVEIS DE AMBIENTE =====
export PGPASSWORD
export PGCLIENTENCODING=UTF8

# ===== EXECUÇÃO =====
echo
echo "==================================================="
echo " INICIANDO SCRIPT DE POPULACAO DE BANCO DE DADOS"
echo "==================================================="
echo
echo "Inserindo dados de teste no banco '$PGDB'..."

psql -U "$PGUSER" -h "$PGHOST" -d "$PGDB" -f "$SQLFILE"

echo
echo "==================================================="
echo " SCRIPT FINALIZADO"
echo "==================================================="
echo

read -n 1 -s -r -p "Pressione qualquer tecla para sair..."
echo
Loading
Loading