Skip to content

Projeto Final utilizando todas as tecnologias que aprendemos no curso da Entra21 - Blusoft

License

Notifications You must be signed in to change notification settings

kaka-jaques/Project_TMS_Fullstack_Entra21

 
 

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

TMS PROJECT - ENTRA21 FULLSTACK DEV


📜SUMÁRIO

1. RESUMO

1.1 Da Licença, Disponibilidade e Finalidade

1.2 Das Tecnologias Utilizadas

2. ORGANIZAÇÃO DO PROJETO

2.1. Visão Geral

2.2. Fluxograma

2.3. Estrutura Macro

2.4. Futuras Features

2.5. Instalação

3. SOFTWARE

3.1. GOOGLE CLOUD

3.1.1. Google API

3.1.1.1. Directions API

3.1.1.2. Distance Matrix API

3.1.1.3. Compute Engine API

3.1.2. Instâncias Virtuais

3.1.2.1. Resumo

3.1.2.2. Instalação e Implementação

3.1.3. Cloud SQL

3.1.3.1. Resumo

3.1.3.2 Instalação e Implementação

3.2. FRONTEND

3.2.1. Componentes

3.2.1.1. Login

3.2.1.1.1. CanActivate

3.2.1.1.2. HttpClient

3.2.1.2. Home

3.2.1.3. Dashboard

3.2.1.3.1. Contador de Clientes e Visitantes

3.2.1.3.2. Registro de Pacotes

3.2.1.3.3. Bounce Rate

3.2.1.4. Users

3.2.1.5. Pacotes

3.2.1.5.1. Recent Quote

3.2.1.5.2. Register Quote

3.2.1.5.3. Tracking Package

3.2.2. Services

3.2.2.1. Login Service

3.2.2.2. Quote Service

3.2.3. Segurança (A analisar)

3.2.3.1. Dados do Login

3.2.3.2. Encriptação dos Dados

3.3. BACKEND

3.3.1. Spring Boot

3.3.1.1. Projeto

3.3.1.2. Dependências

3.3.2. Controllers

3.3.2.1. Login

3.3.2.2. Register

3.3.2.3. User

3.3.2.4. Visitantes

3.3.2.5. Packages

3.3.2.6. Google

3.3.2. Spring Login Security

3.3.2.1. Encriptação da Senha do Usuário

1 - RESUMO

1.1 - Da Licença, Disponibilidade e Finalidade

     Esse projeto foi desenvolvido pelo grupo Roxo da Turma Java Noturno de 2022, composto por Bruno Roberto, Cristian Schauffert, Kalil Fakhouri e Mateus Felipe com a mentoria do professor Oliota, visando apenas a demonstração dos conhecimentos técnicos adquiridos durante o curso e a apresentação da etapa final à empresas.

     A cópia do recurso está disponível a todos, podendo ser modificada e alterada. Fica proibida a venda, distribuição ou repasse da mesma.

     A maioria dos recurso e tecnologias são de código livre (open-source) ou teste de avaliação por tempo determinado (Google Cloud), afim de trazer a melhor experiência do uso de um software funcional. Devido ao nosso objetivo de comprovar os conhecimentos adquiridos, algumas partes do software são simulados (porém não "Mockados") devido ao tempo e resposta que levaria na realidade, acelerando, assim, o processo de entrega, por exemplo, para que possa ser vista em tempo real o processamento de dados, tanto localmente quanto em nuvem.


1.2 - Das Tecnologias Utilizadas

     Durante o curso foi utilizado diversas tecnologias, métodos ágeis e ferramentas de desenvolvimento tais como:

Linguagens:

  • kaka-JAVA Java
  • kaka-js JavaScript
  • kaka-ts TypeScript
  • kaka-CSS CSS
  • html HTML

Tecnologias:

  • kaka-vscode Spring Boot
  • kaka-Angular Angular
  • electron Electron
  • kaka-vscode MySQL

Ferramentas:

  • html Eclipse IDE
  • kaka-vscode Visual Studio Code
  • html Postman
  • kaka-vscode Google Cloud

Metodologia:

  • kaka-vscode Trello - Kanban

Versionamento:

  • git Github
  • git Git



2 - ORGANIZAÇÃO DO PROJETO

2.1 - Visão Geral

    



2.2 - Fluxograma



2.3 - Estruturamento Macro

     Começando pelo nosso Banco de Dados, sua organização foi detalhadamente pensada para os fins que queríamos, como por exemplo um método muito utilizado por nós, foi o relacionamento dos objetos um com os outros. Isso foi de extrema importância, pois o usuário terá todos os detalhes das transações, além de dificultar o acesso direto aos dados.

     Em nossa API RESTful, temos 4 pacotes que movem nossa API (Classe Principal, Controllers, Repositório e Models), dentro deles cada um tem sua função específica e dividida, como os controllers fornecerem as rotas e processamento de dados para nos fornecer o solicitado. A nossa Interface, que é utilizado como repositório, usa Anottations para comunicar diretamente com o nosso Banco de Dados na nuvem, utilizando as configurações definidas no arquivo "application.properties", mas também utilizamos a dependência do JPA Repository, tanto para a comunicação com o Banco de Dados quanto a consulta personalizada, utilizando argumentos como UPDATE, DELETE, EXTRACT, MONTH(), DAY(), BETWEEN e outros. Claro que para DELETE poderíamos utilizar apenas o repository.deleteById(), mas como em alguns casos o delete não pode ser geral, fizemos funções especificas como Deletar Relacionamento entre usuários e empresas (evitando excluir todos os dados relacionados aos dois).

     No nosso aplicativo em Angular, fizemos várias validações de resposta quanto de erros ocasionados por credenciais erradas ou falha na comunicação com o servidor. Nenhum dado sensível é armazenado no frontend devido ao pública visualização da mesma, como a API_KEY utilizada para acessar o Banco de Dados do Google Maps.



2.4 - Futuras Features

     Devido a nossa Deadline o projeto final teve sua versão 1.0.0 de acordo com o possível, deixando a maioria de suas funcionalidades operacionais, porém, há mais que queremos fazer e categorizar nosso projeto como um trabalho profissional!

São elas:

  • FEAT - Implementar Criptografia JWP ou AES256 no Frontend e Backend
  • STYLE - Melhorar Design dos Componentes
  • PERF - Utilizar WebSocket ao invés de um loop cronometrado
  • PERF - Melhorar cálculo de frete utilizando mais dados
  • FEAT - Utilizar o calendário para armazenar dados de contar a pagar, receber e outros
  • STYLE & PERF - Melhorar o componente "Finance", tanto graficamente quanto em funcionalidades
  • FIX - Melhorar validações de requisições, entrada e processamento de dados.



2.5 - Instalação

     Para utilização do nosso aplicativo há duas formas, em modo desenvolvedor ou como usuário final.

     1. Para utilizar como desenvolvedor, baixe o repositório do projeto colando o comando git clone https://github.com/Team-Roxo/Project_TMS_Fullstack_Entra21.git no seu terminal Git. Você precisará do framework instalado em sua máquina, você pode baixar ele clicando aqui e instalando de acordo com os passos solicitados.

    Após isso, vá na pasta criada quando você clonou o repositório e entre na subpasta frontend, abra o terminal nessa pasta clicando em Shift + <botão direito do mouse> e Abrir janela do PowerShell aqui ou o terminal referente ao seu Sistema Operacional.

     Com o Terminal aberto, cole o comando npm i e pressione Enter. Após o node finalizar a instalação de todas as dependências necessárias, cole o comando npm start ou ng serve e Enter novamente, ele iniciará o servidor do projeto localmente, para acessar e começar a utilizar o aplicativo, basta copiar a URL disponibilizada na penúltima linha de resposta e colar na aba de links do seu browser.

     OBS.: NÃO FECHE O TERMINAL ENQUANTO UTILIZA O APLICATIVO, POIS ELE É NECESSÁRIO PARA O FUNCIONAMENTO DO MESMO!

     2. Para utilizar como usuário final, você terá duas opções bem simples. A primeira você precisará do Git instalado em sua e baixar nosso repositório da branch compiled utilizando o comando git clone --branch compiled https://github.com/Team-Roxo/Project_TMS_Fullstack_Entra21.git, após isso entre na pasta raiz do projeto clonado, clique com o botão direito do mouse e selecione Abrir com Visual Code.

     Após abrir o Visual Studio Code, selecione



3 - SOFTWARE

3.1 - GOOGLE CLOUD

Clique aqui para aprender a configurar o Google Cloud

3.1.1 - Google API

3.1.1.1 - Directions API

         A API Directions é um serviço da Web que usa uma solicitação HTTP para retornar rotas no formato JSON ou XML entre os locais. As rotas estão disponíveis de várias maneiras:

  • como uma API independente.

  • como parte da API Maps JavaScript do lado do cliente.

  • para uso do servidor como parte das bibliotecas de cliente dos Serviços da Web do Google Maps.

         Esta API aceita tanto endereços do tipo texto como também latitudes e longitudes previamente formatadas de acordo com o padrão estabelecido.

3.1.1.2 - Distance Matrix API

         A API Distance Matrix fornece a distância e o tempo de viagem de uma matriz de origens e destinos e consiste em linhas que contêm os valores duration e distance para cada par. A Distance Matrix está disponível de várias formas:

  • como uma API independente.

  • como parte da API Maps JavaScript do lado do cliente.

  • para uso do servidor como parte das bibliotecas de cliente dos Serviços da Web do Google Maps.

         A API retorna informações com base na rota recomendada entre os pontos inicial e final. Você pode solicitar dados de distância para diferentes meios de transporte, solicitar dados de distância em diferentes unidades, como quilômetros ou milhas, e estimar o tempo de viagem no trânsito.

3.1.1.3 - Compute Engine API

         Cria e executa máquinas virtuais no Google Cloud Platform. O Google Compute Engine oferece máquinas virtuais que são executadas nos data centers do Google conectados à rede de fibra óptica global. As ferramentas e o fluxo de trabalho oferecidos permitem o escalonamento de instâncias únicas para computação em nuvem com balanceamento de carga global.

         Essas VMs são inicializadas rapidamente, vêm com armazenamento em disco permanente e proporcionam desempenho consistente. As máquinas estão disponíveis em muitas configurações, incluindo tamanhos predefinidos e também podem ser criadas com tipos de máquinas personalizados de acordo com suas necessidades específicas.

About

Projeto Final utilizando todas as tecnologias que aprendemos no curso da Entra21 - Blusoft

Resources

License

Stars

Watchers

Forks

Packages

No packages published

Languages

  • JavaScript 61.8%
  • CSS 23.5%
  • HTML 13.0%
  • SCSS 1.1%
  • TypeScript 0.4%
  • Java 0.2%