Índices
- Esse repositório representa minha solução ao desafio técnico, para desenvolvedores full-stack, da Cubo Network, iniciativa da Itaú, postado, em 2016, no repositório: https://github.com/cubonetwork/fullstack-challenge.
- O Docker foi utilizado nesse projeto para encapsular os diferentes serviços — dashboard, api, database —, da aplicação, tal como as dependências necessárias para bom funcionamento.
Instalação de arquivos:
git clone https://github.com/ribmarciojr/itau-full-stack-challenger.git
Execução do projeto:
docker-compose up
Observação
O comando acima deve ser executado na raiz do projeto.
Agora o projeto pode ser acessado no browser através do endereço:
http://localhost:3000
Lista de requisitos necessários para executar o projeto. Isso pode incluir software, hardware, bibliotecas específicas, etc.
- Node.js: 18.17.0+
- Python: 3.11.0+
Passos para configurar o ambiente de desenvolvimento. Isso pode incluir a instalação de dependências, configuração de variáveis de ambiente, etc.
# Em ./api/v1
pip install -r requirements.txt
# Execução
flask --app run.py run --host=0.0.0.0
# Em ./dashboard
npm install
#Execução
npm run dev
Observação
O banco de dados PostgresSQL deve ser criado separadamente com as descrições do arquivo docker-compose.yaml
Como especificado no desafio, o front-end segue a implementação dinâmica da tabela, gráfico de pizza e formulário para adição de novos membros.
A URL base para todas as requisições à API é: https://localhost:5000
Descrição: Insere um novo participante no banco de dados, caso válido.
Parâmetros esperados:
first_name
: Deve conter apenas somente letras. Mínimo três.last_name
: Deve conter apenas somente letras. Mínimo trêsparticipation
: Deve conter números decimais.
Exemplo de Requisição:
POST /participant/create
{
"first_name": "Jhon",
"last_name": "Dow",
"participation": "30.00"
}
Descrição: Obtém uma lista de todos os participantes.
Exemplo de Requisição:
GET /participants/all
Descrição: Deleta um participante do banco de dados.
Parâmetros esperados:
first_name
: Deve conter apenas somente letras. Mínimo três.
Exemplo de Requisição:
DELETE /participant/delete
{
"first_name": "Jhon"
}
Esse projeto foi construído com:
- NextJS
- Flask
- PostgresSQL
- Docker/Docker-compose
- Typescript
- Python
- HTML
- CSS
Email: [email protected]
Linkedin: https://www.linkedin.com/in/ribmarciojunior/
Copyright (c) 2024 Ribmarciojr