Skip to content

lucasrmagalhaes/bootcamp_eduzz-node_react

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

33 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Bootcamp Eduzz - DIO | Issues


Mentoria 01: Aula Inaugural: Como ser o próximo contratado pela Eduzz

Apresentação do bootcamp.


Mentoria 02: Carreira Eduzz: cultura e governança

Como funciona o dia a dia na Eduzz.


Mentoria 03 - Projeto Eduzz: Explicando o projeto Eduzz e prototipando a aplicação

Exemplo de Projeto no Figma.


Mentoria 04 - Projeto Eduzz: Componentizando a aplicação e criando interfaces responsivas

Principios importantes

  1. Estrutura de pastas
  2. Separação de responsabilidade
  3. Entender o framework e a linguagem

Frameworks recomendados

  1. Redux Toolkit - Gerenciamento do Estado
  2. MUI - UI components
  3. Formik - Validação do formulário
  4. Emotion/Styled Component - Estilização

Mentoria 05 - Projeto Eduzz: Criando a base de dados para suportar a aplicação

O que é Banco de Dados? Coleção organizada de informações.

Tipos
  • Bancos de dados relacionais
  • Bancos de dados NoSQL
  • Data warehouses
  • Bancos de dados gráficos
Banco relacional
  • MySQL, MariaDB, Postgree, SQLServer, SQLite3
  • Armazenam dados em tabelas e linhas
  • Usam SQL
  • ACID (Atomicidade, Consistência, Isolamento, Durabilidade)
  • Integralidade do dado
  • Dados bem definidos
Não relacional
  • Firebase, MongoDB, ElasticSearch, Redis, Cassandra, DynamoDB...
  • Flexibilidade
  • Documentos (semelhantes a JSON), chave-valor
  • Armazenando registros na mesma coleção que possuem diferentes campos ou atributos
  • Escala horizontalmente
  • Não tem uma forma padrão de recuperação de dados
Chave primária
  • Identificador único de um registro na tabela
  • Não pode ser NULL
  • Não podem ser simples ou compostas
Chave estrangeira
  • Chave primária de outra tabela, ou dela mesma
  • Pode ser NULL

Clientes de BD
  • MySQL Workbench
  • DBeaver
  • HeidiSQL

Migration
  • Versiona o schema da aplicação
  • Controle de alterações do banco
  • Pode ser adicionada ao deploy automático

Seeds
  • Pode ser usada para DADOS DE TESTE ou valores PRÉ DEFINIDO
  • Pode ser adicionada ao deploy automático

Mentoria 06 - Projeto Eduzz: Desenvolvendo o back-end da aplicação e plugando o front-end

  • Sobre APIs;
  • Primeiro endpoint (hands-on);
  • Funcionamento do NodeJS;
  • Relembrando o que é Typescript;
  • Detalhar a arquitetura do projeto; e
  • API funcionando!

APIs (Application Programming Interface - Interface de Programação de Aplicação)
V8

Dentro do diretório api

docker-compose up
yarn install
yarn start

Public APIs


Mentoria 07 - Projeto Eduzz: Entendendo e utilizando serviços de mensageria

  • Conceitos sobre processamento assíncrono;
  • Message Brokers;
  • Funcionamento do RabbitMQ;
  • Aplicação prática;
  • Nova arquitetura do projeto; e
  • Esqueci minha senha funcionando!

O que é assíncrono?
Um processo assíncrono é um processo ou função que executa uma tarefa "em segundo plano", sem que o usuário precise esperar que a tarefa termine.

Message Brokers
É quem define para qual fila vai a mensagem
Filas - Message Brokers - Eventos
RabbitMQ, Redis e Amazon SQS

RabbitMQ Simulator


Mentoria 08 - Projeto Eduzz: Vislumbrando possibilidades de integração da aplicação com a nuvem

O que é nuvem?

O termo nuvem é o nome dado à tecnologia que permite a distribuição de serviços de computação e o acesso online a eles sem a necessidade de instalar programas. Justamente por não necessitar da instalação de programas, ou do armanezamento de dados, o conceito originado do inglês cloud computing faz alusão à "nuvem".

Alguns serviços na nuvem: Spotify, Youtube, Facebook, Instagram, Dropbox e Google Docs.

Provedores de Cloud vs Meu Servidor

No meu servidor, tudo eu tenho que fazer, na nuvem eu tenho a possibilidade de tudo ser gerenciado pelo provedor escolhido.
Limitação de recurso: estou limitado ao poder computacional da máquina contratada (contratações de novas máquinas pode levar tempo).

Benefícios dos Serviços de Cloud

Escalabilidade: Capacidade de um Sistema em adicionar ou remover recursos de maneira autônama sem interrupções.
Gerenciamento: Os serviços são gerenciados pelo provedor para que você ponha esforço no seu produto.
Custo: Normalmente os serviços contratados são cobrados por tempo de execução, armazenamento, e cosutumam ser baratos.
Confiabilidade: Facilita e reduz os custos de backup de dados, recuperação de desastre e continuidade dos negócios, já que os dados podem ser espelhados em diversos sites redundantes na rede do provedor em nuvem.
Segurança: Os provedores em nuvem oferecem um amplo conjunto de políticas, tecnlogias e controles que fortalecem a segurança, ajudando a proteger os dados, os aplicativos e a infraestrutura contra possíveis ameaças.

Diversos serviços para surpotarem seu produto:

  1. Banco de Dados
  2. Caching
  3. Armazenamento
  4. Backup
  5. Rede
  6. Monitoramento
  7. DNS
  8. CDN
  9. Autenticação/Autorização
  10. Inteligência Artificial
  11. Blockchain
  12. Contâineres
  13. Deploy
  14. Etc, etc, etc...

Provedores de serviços de nuvem: Amazon Web Services, Azure, Google Cloud Platform, Heroku, Vercel e Digital Ocean.

Serviços que vamos usar:

  • AWS RDS
  • AWS ECR
  • AWS ECS
  • GitHub Actions

RDS
É o serviço de banco de dados da AWS. É nele que criamos as nossas instâncias de banco de dados. É um serviço AWS e suporta uma gama de banco de dados relacionais.

ECR
Basicamente é o serviço de armazenamento de imagens de contêineres da AWS. Você também pode usar outros serviços fora da nuvem da AWS, como o Docker Hub.

ECS
Faz a orquestração dos nossos contêineres baseado nas configurações que definimos para eles. Ele é o serviço responsável pela escalabilidade da nossa aplicação.

Calculator API


Mentoria 09 - Projeto Eduzz: Retire todas as dúvidas encontradas no desenvolvimento do projeto

Dicas/Conselhos e os bastidores de um DEV na Eduzz.

About

Bootcamp Eduzz realizado na plataforma Digital Innovation One.

Topics

Resources

License

Stars

Watchers

Forks

Contributors 2

  •  
  •  

Languages