carvalhoviniciusluiz / ayti-group-challenge

Technical test

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

## ayti-group-challenge

“Se você brincar um pouco com as palavras, consegue fazer qualquer coisa soar bem (ou mal).”!

challenge Made by Vinicius Carvalho License

Configurações   |    Sobre o projeto   |    API   |    Licença

Run in Insomnia

Este projeto foi construido utilizando alguns principios do Clean Architecture. Existem vários aspectos que podem ser melhorados no entanto ele consegue passar uma visão geral da arquitetura.

Configurações

Scripts (click to show)

Somente os principais scripts estão documentados nessa sessão, para executalos faça:

npm start

SCRIPTS

Nome Descrição
star Sobe o serviço com hot-reload
test Roda os testes
Docker 🐳 (click to show)

Na raiz do projeto existe um arquivo docker-compose.yml para subir o serviço de banco de dados, é necessário subir o container do docker para que a persistencia dos dados funcione.

# Subir os serviços e manter o term travado
docker-compose up

# Subir os serviços em segundo plano
# docker-compose up -d

Sobre o projeto

O QUE VAMOS ENCONTRAR (click to show)
  • Padrões de Projeto
    • Clean Arch
    • Hexagonal Arch
    • Repository
    • Strategy
    • Dependency Inversion
  • Boa Práticas
    • SOLID
    • DDD
  • Miscelânea
    • Express
    • TypeORM
    • Docker
  • Banco de Dados
    • Postgres
    • SQLite3

IMPORTANTE 1: O projeto apresenta um arquivo de importação para as suas APIs de modo a facilitar os testes, como requisito é necessário possuir o programa insomnia instalado no ambiente. A importação das rotas para o insomnia é feito usando o botão roxo Run In Insomnia presente no topo da página.

IMPORTANTE 2: O Suporte do docker contempla somente a parte de serviços necessários para o projeto funcionar isso por que se trata de configuração para desenvolvimento e não produção.

Requisitos:

Instalação:

No terminal faça:

npm install

Rodando o Projeto:

Suba os serviços auxiliares do projeto com docker:

docker-compose up

Execute os serviços principais do projeto:

npm run start

Tests:

É necessário que o docker esteja levantado, no terminal faça:

npm test

API:

Clients

  • #GET http://localhost:3333/clients - Devolve todos os clientes cadastrados.
  • #POST http://localhost:3333/clients - Rota de cadastro para novos clientes.
{
  "client": {
    "name": "vinicius",
    "birth": "02-19-1984"
  }
}

Travels

  • #GET http://localhost:3333/travels - Devolve todas as viagens cadastradas.
  • #POST http://localhost:3333/travels - Rota de cadastro para novas viagens.
{
	"travel": {
		"clientId": "d2122c9e-445e-4332-b673-cd38ba05075e",
		"destination": "amapa",
		"date": "01-01-2023"
	}
}

License

MIT

Copyright (c) 2023-present

About

Technical test

License:MIT License


Languages

Language:TypeScript 100.0%