/First-App-Angular

Este é um projeto full-stack empolgante que foi desenvolvido com o objetivo de fornecer uma plataforma intuitiva para criar e gerenciar listas de pessoas.

Primary LanguageTypeScript

Bem-vindo ao Projeto Lista de Pessoas

Este é um projeto full-stack desenvolvido com o objetivo de fornecer uma plataforma intuitiva para criar e gerenciar listas de pessoas. A aplicação contempla as nescessidades fornecidas neste estudo de caso Teste técnico.

Requisitos

Para o funcionamento da aplicação, será necessário ter a versão 20 do Node.js ou superior, a versão 17 do Angular e o Docker instalados.

  • O processo de versionamento do node pode ser realizado atraves deste tutorial Pacote de versionamento Node
  • Angular CLI ferramenta de interface de linha de comando que você usa para inicializar, desenvolvimento. angular-cli
  • Documentação do Docker para a instalação em diversas plataformas. Docker
Back end

Sumário

Bem-vindo ao Back-end

Esta aplicação back-end foi desenvolvida para oferecer uma solução para manipular uma lista de pessoas. Utilizando Node.js, Express e MySQL, juntamente com a flexibilidade proporcionada pelo Docker.

Contexto

O Projeto Lista de Pessoas é uma ferramenta que acessa a bases de dados, é permite aos usuários:

  • Listar todas as pessoas;
  • Adicionar novas pessoas;
  • Deleta um pessoa;

Tecnologias e Ferramentas Utilizadas

Este projeto utiliza as seguintes tecnologias e ferramentas:

  • NodeJS | Plataforma de execução runtime baseda em javascript.
  • Express | Framework para nodejs
  • Mysql | Banco de dados SQL relacional.
  • Sequelize | ORM Object-Ralational-Mapping.

O Node.js foi utilizado com o intuito de obter os benefícios da escalabilidade e eficiência, pois ele é capaz de lidar com vários tráfegos sem bloqueio e lida com solicitações com baixo consumo de recursos. O Express é um framework para o Node.js que permite construir aplicações web robustas e escaláveis de forma mais fácil e rápida. O MySQL é um banco de dados amplamente utilizado devido a várias razões. Ele oferece desempenho eficiente e rápido, é altamente escalável e possui uma comunidade ativa que fornece suporte e recursos adicionais. Além disso, o MySQL é flexível, seguro e possui integração com tecnologias populares. O Sequelize é uma biblioteca de mapeamento objeto-relacional (ORM) para Node.js, que simplifica a interação com bancos de dados relacionais, incluindo o MySQL. Com o Sequelize, é possível mapear objetos JavaScript para tabelas e colunas no banco de dados, escrever consultas em JavaScript e gerenciar relacionamentos entre tabelas de forma fácil.

Entities

entidades

Arquivo env

  • Dentro da pasta Projeto/Backend, existe o arquivo .env. O arquivo .env contém as informações de credenciais necessárias para a conexão da API com o banco de dados. As informações declaradas no .env são de vital importância para o funcionamento do Docker Compose. Caso não seja feito o uso do Docker e opte-se por utilizar o banco de dados MySQL na máquina local, as propriedades das variáveis deverão ser personalizadas conforme os critérios de autenticação do banco de dados da máquina local.

Docker

  • O tempo de execução do docker-compose terá um acrecimo de cerca de 30 segundos devido as checagens de disponibilidade, os "Health-checks". Este recurso garantirá que tanto o banco de dados quanto a API estejam diponíveis para a execução.
  • Quando executar a aplicação usando o docker-compose up, as dependências necessárias serão instaladas. Além disso, o banco de dados será criado e as migrações serão executadas. Logo após, a aplicação será disponibilizada através do ts-node na porta 3001.
cd Projeto/Backend
- Caso queira acompanhar o progresso de criação dos conteiners.
docker-compose up

- Caso queira oculta toda a pilha de informação de inicialização.
docker-compose up -d

Iniciar a aplicação sem o uso do Docker

- Reforçando, esta opção e para executar a aplicação sem o Docker, será necessário configurar o arquivo .env conforme os dados de autenticação da máquina local.

cd Projeto/Backend
npm install
npm run create
npm run dev

Tests

cd Projeto/Backend
npm test
ou 
npm run test:coverage
Front end

Sumário

Contexto

No lado do Frontend, o usuário é capaz de:

  • Interagir com os inputs para cadastrar uma pessoa na lista após o clique no botão 'enviar'.
  • Interagir com os botões na tabela para deletar os dados da pessoa da lista e da fonte de dados.

Preview

tela principal

Tecnologias e Ferramentas Utilizadas

O Frontend foi desenvolvido com o uso das seguintes tecnologias e ferramentas:

  • Angular: Utilizei o Angular, um framework JavaScript robusto e amplamente adotado para a criação de aplicações. O Angular oferece um ecossistema completo, incluindo ferramentas para roteamento, formulários, testes unitários e end-to-end, entre outras funcionalidades.
  • Angular Material: O Angular Material foi utilizado para fornecer estilos CSS pré-construídos e componentes de interface do usuário reutilizáveis. Isso ajudou a acelerar o processo de desenvolvimento e garantir a consistência visual em toda a aplicação. Além disso, Angular Material adere aos princípios de design do Material Design da Google, garantindo uma experiência do usuário de alta qualidade.

Instalar dependências

Em seguida, navegue até o diretório Frontend e instale as dependências necessárias com os seguintes comandos:

cd Projeto/Frontend
npm install

Esses comandos instalam todas as dependências listadas no arquivo package.json, que são necessárias para a execução do projeto.

Executando

Para executar o projeto utilize o seguinte comando:

cd Projeto/Frontend
ng serve

Este comando inicia o servidor de desenvolvimento e o site ficará disponível na porta 4200, geralmente acessível através do endereço http://localhost:4200 no navegador.