Skip to content

Projeto desenvolvido em ReactJS para desafio técnico do processo seletivo da Dígitro onde foi criado uma aplicação para controle de chamadas de chat.

Notifications You must be signed in to change notification settings

flaviojoaofelix/dt-frontend-digitro

Repository files navigation

Dígitro

Desafio Técnico Front-end

Call Control

Projeto proposto pela Dígitro para o Desafio Técnico referente ao processo seletivo, onde foi solicitado a criação de uma aplicação de conversas de chat utilizando ReactJS e Socket.io.

Tecnologias Utilizadas

  1. ViteJS1
  • Ferramenta para criação do ambiente de desenvolvimento.
  1. ReactJS2
  • Biblioteca JavaScript para criação de interfaces de usuário.
  1. React Router Dom3
  • Biblioteca JavaScript para trabalhar com rotas no React.
  1. Socket.io4
  • Biblioteca JavaScript para trabalhar com WebSockets.
  1. ESLint5
  • Ferramenta para padronização do código.
  1. Prettier6
  • Ferramenta para formatação do código.
  1. Bootstrap7
  • Biblioteca para estilização CSS do layout.

Preview da Aplicação

Rodando a Aplicação

Requisitos

  1. Para rodar locamente:
  • NodeJS: v16+8
  • NPM: v8+9
  1. Para rodar com Docker
  • Docker: v20+10
  • Docker Compose: v2+11

Passo a Passo

Para Rodar Localmente
  1. Faça o clone do repositório:
git clone git@github.com:flaviojoaofelix/dt-frontend-digitro.git
  1. Acesse o diretório do projeto
cd dt-frontend-digitro
  1. Instale as dependências:
npm install
  1. Inicie a aplicação:
Para Rodar com Docker
  1. Faça o clone do repositório:
git clone git@github.com:flaviojoaofelix/dt-frontend-digitro.git
  1. Acesse o diretório do projeto
cd dt-frontend-digitro
  1. Mude para o Branch 'docker':
git checkout docker
  1. Inicie o container Docker:
  docker-compose up -d
  ou
  docker compose up -d
  1. Acesse a aplicação pelo URL: http://127.0.0.1:5173/

  2. Para parar o container Docker:

  docker-compose down
  ou
  docker compose down

Requisitos do Desafio

Funcionalidades da Aplicação
  1. Permitir informar um nome de usuário e a quantidade de chats simultâneos que serão atendidos.
  2. Exibir a lista de conversas em andamento com a identificação de cada uma delas,
  3. Exibir os dados da conversa ao clicar sobre uma conversa em andamento.
Funcionalidades do Usuário
  1. Poderá conectar e desconectar o usuário. - No momento da conexão informará o nome de usuário e o número máximo de chats simultâneos que o servidor poderá enviar para o usuário. - Quando estiver desconectado não vai receber chats;
  2. Poderá alternar entre os chats em andamento;
  3. Poderá finalizar uma chamada;
Informações Técnicas
  1. A interface se comunicará com o servidor via websocket (socket.io) que está hospedado em um domínio da Dígitro: http://dev.digitro.com/callcontrol
  2. Documentação da API disponível no arquivo API.md
  3. Uma vez o usuário conectado, o servidor começará a enviar eventos de nova chamada para ele até atingir o máximo simultâneo pré-definido na conexão do usuário. - O servidor enviará um evento USER_CONNECTED caso a conexão tenha sido feita com sucesso. - Estas chamadas serão enviadas em intervalos de tempo aleatórios entre 0 e 15 segundos. ⚠Portanto, se na conexão informar o máximo de 1 chamada, fique atento que poderá levar até 15 segundos para o evento com esta chamada ser enviado.⚠
Entrega
  1. O candidato deverá disponibilizar o link do seu projeto no GitHub com a documentação de como configurar e colocar o projeto para rodar.

Deploy

  1. Digitar o seguinte comando para gerar a build:
npm run build
  1. Se desejar ver o preview, digitar o seguinte comando:
npm run preview

Passos utilizados no desenvolvimento para configuração do ambiente

Comandos utilizados para iniciar a aplicação
  1. npm create vite@latest
Instalação do ViteJS com React JavaScript
  1. npm install
Instalação e configuração inicial das dependências do Vite
  1. npm install eslint
Instalação do ESLint utilizado afim de padronizar o código desenvolvido.
  1. npm install prettier
Instalação do Prettier para formatação do código.
  1. npm install eslint-config-prettier
Instalação da biblioteca que integra o ESLint com o Prettier.
  1. npm install eslint-plugin-import
Plugin que aponta ao ESLint como resolver as importações
  1. npm install eslint-plugin-jsx-a11y
Plugin que verifica problemas de acessibilidade do JSX com ESLint
  1. npm install eslint-plugin-react
Regras específicas de React para ESLint
  1. npm install socket.io-client
Biblioteca websocket para trabalhar com a API
  1. npm install react-router-dom
Biblioteca para trabalhar com rotas no React
  1. npm install gh-pages --save-dev
Ferramenta para publicar o projeto no GitHub Pages
Comandos utilizados para configuração da aplicação
  1. Criar o arquivo .eslintrc.js na raiz do projeto
Configuração do ESLint
  1. Criar o arquivo .eslintignore na raiz do projeto
Configuração do ESLint para ignorar arquivos
  1. Adicionar o comando "lint" ao package.json
Configuração do ESLint para rodar o comando lint através do NPM
  1. Criar o arquivo .prettierrc na raiz do projeto
Configuração do Prettier
  1. Criar o arquivo .prettierignore na raiz do projeto
Configuração do Prettier para ignorar arquivos

Referências

Footnotes

  1. ViteJS

  2. ReactJS

  3. React Router Dom

  4. Socket.io

  5. ESLint

  6. Prettier

  7. Bootstrap

  8. NodeJS

  9. NPM

  10. Docker

  11. Docker Compose

About

Projeto desenvolvido em ReactJS para desafio técnico do processo seletivo da Dígitro onde foi criado uma aplicação para controle de chamadas de chat.

Topics

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published