Ecosyste.ms: Awesome

An open API service indexing awesome lists of open source software.

Awesome Lists | Featured Topics | Projects

https://github.com/lucasrmagalhaes/bootcamp_eduzz-node_react

Bootcamp Eduzz realizado na plataforma Digital Innovation One.
https://github.com/lucasrmagalhaes/bootcamp_eduzz-node_react

dio eduzz

Last synced: 2 days ago
JSON representation

Bootcamp Eduzz realizado na plataforma Digital Innovation One.

Awesome Lists containing this project

README

        

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

* [Dribbble](https://dribbble.com/)

* [Behance](https://www.behance.net/)

* [Pinterest](https://www.pinterest.pt/)

* [Figma](https://www.figma.com/)

* [Houston](https://eduzz.github.io/houston/)

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](https://v8.dev/)

Dentro do diretório ```api```
```
docker-compose up
```

```
yarn install
```

```
yarn start
```

[Public APIs](https://github.com/public-apis/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](http://tryrabbitmq.com/)


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](https://aws.amazon.com/pt/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](https://aws.amazon.com/pt/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](https://aws.amazon.com/pt/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](https://github.com/tgbaldo/dio-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.