{"id":19844874,"url":"https://github.com/lucasrmagalhaes/bootcamp_eduzz-node_react","last_synced_at":"2025-05-01T20:32:35.803Z","repository":{"id":38990232,"uuid":"438482993","full_name":"lucasrmagalhaes/bootcamp_eduzz-node_react","owner":"lucasrmagalhaes","description":"Bootcamp Eduzz realizado na plataforma Digital Innovation One.","archived":false,"fork":false,"pushed_at":"2023-03-07T02:44:09.000Z","size":2310,"stargazers_count":5,"open_issues_count":16,"forks_count":1,"subscribers_count":2,"default_branch":"main","last_synced_at":"2025-04-06T18:09:11.809Z","etag":null,"topics":["dio","eduzz"],"latest_commit_sha":null,"homepage":"","language":"TypeScript","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/lucasrmagalhaes.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null}},"created_at":"2021-12-15T03:33:44.000Z","updated_at":"2024-08-26T01:55:04.000Z","dependencies_parsed_at":"2023-02-07T15:46:48.382Z","dependency_job_id":null,"html_url":"https://github.com/lucasrmagalhaes/bootcamp_eduzz-node_react","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/lucasrmagalhaes%2Fbootcamp_eduzz-node_react","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/lucasrmagalhaes%2Fbootcamp_eduzz-node_react/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/lucasrmagalhaes%2Fbootcamp_eduzz-node_react/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/lucasrmagalhaes%2Fbootcamp_eduzz-node_react/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/lucasrmagalhaes","download_url":"https://codeload.github.com/lucasrmagalhaes/bootcamp_eduzz-node_react/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":251941295,"owners_count":21668709,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["dio","eduzz"],"created_at":"2024-11-12T13:05:51.244Z","updated_at":"2025-05-01T20:32:34.783Z","avatar_url":"https://github.com/lucasrmagalhaes.png","language":"TypeScript","funding_links":[],"categories":[],"sub_categories":[],"readme":"\u003ch3\u003eBootcamp \u003ca href=\"https://github.com/eduzz/mentoria-dio\"\u003eEduzz\u003c/a\u003e - DIO | \u003ca href=\"https://github.com/lucasrmagalhaes/homework-issues/issues?q=is%3Aissue+label%3AEduzz+is%3Aclosed\"\u003eIssues\u003c/a\u003e\u003c/h3\u003e\n\n\u003chr\u003e\n\n\u003ch4\u003eMentoria 01: Aula Inaugural: Como ser o próximo contratado pela Eduzz\u003c/h4\u003e\n\nApresentação do bootcamp.\n\n\u003chr\u003e\n\n\u003ch4\u003eMentoria 02: Carreira Eduzz: cultura e governança\u003c/h4\u003e\n\nComo funciona o dia a dia na Eduzz.\n\n\u003chr\u003e\n\n\u003ch4\u003eMentoria 03 - Projeto Eduzz: Explicando o projeto Eduzz e prototipando a aplicação\u003c/h4\u003e\n\n* [Dribbble](https://dribbble.com/) \u003cbr\u003e\n* [Behance](https://www.behance.net/) \u003cbr\u003e\n* [Pinterest](https://www.pinterest.pt/) \u003cbr\u003e\n* [Figma](https://www.figma.com/) \u003cbr\u003e\n* [Houston](https://eduzz.github.io/houston/)\n\nExemplo de Projeto no Figma.\n\n\u003chr\u003e\n\n\u003ch4\u003eMentoria 04 - Projeto Eduzz: Componentizando a aplicação e criando interfaces responsivas\u003c/h4\u003e\n\nPrincipios importantes\n\n\u003col\u003e\n    \u003cli\u003eEstrutura de pastas\u003c/li\u003e\n    \u003cli\u003eSeparação de responsabilidade\u003c/li\u003e\n    \u003cli\u003eEntender o framework e a linguagem\u003c/li\u003e\n\u003c/ol\u003e\n\nFrameworks recomendados\n\n\u003col\u003e\n    \u003cli\u003eRedux Toolkit - Gerenciamento do Estado\u003c/li\u003e\n    \u003cli\u003eMUI - UI components\u003c/li\u003e\n    \u003cli\u003eFormik - Validação do formulário\u003c/li\u003e\n    \u003cli\u003eEmotion/Styled Component - Estilização\u003c/li\u003e\n\u003c/ol\u003e\n\n\u003chr\u003e\n\n\u003ch4\u003eMentoria 05 - Projeto Eduzz: Criando a base de dados para suportar a aplicação\u003c/h4\u003e\n\n**O que é Banco de Dados?** Coleção organizada de informações.\n\n##### Tipos\n\n\u003cul\u003e\n    \u003cli\u003eBancos de dados relacionais\u003c/li\u003e\n    \u003cli\u003eBancos de dados NoSQL\u003c/li\u003e\n    \u003cli\u003eData warehouses\u003c/li\u003e\n    \u003cli\u003eBancos de dados gráficos\u003c/li\u003e\n\u003c/ul\u003e\n\n##### Banco relacional\n\n\u003cul\u003e\n    \u003cli\u003eMySQL, MariaDB, Postgree, SQLServer, SQLite3\u003c/li\u003e\n    \u003cli\u003eArmazenam dados em tabelas e linhas\u003c/li\u003e\n    \u003cli\u003eUsam SQL\u003c/li\u003e\n    \u003cli\u003eACID (Atomicidade, Consistência, Isolamento, Durabilidade)\u003c/li\u003e\n    \u003cli\u003eIntegralidade do dado\u003c/li\u003e\n    \u003cli\u003eDados bem definidos\u003c/li\u003e\n\u003c/ul\u003e\n\n##### Não relacional\n\n\u003cul\u003e\n    \u003cli\u003eFirebase, MongoDB, ElasticSearch, Redis, Cassandra, DynamoDB...\u003c/li\u003e\n    \u003cli\u003eFlexibilidade\u003c/li\u003e\n    \u003cli\u003eDocumentos (semelhantes a JSON), chave-valor\u003c/li\u003e\n    \u003cli\u003eArmazenando registros na mesma coleção que possuem diferentes campos ou atributos\u003c/li\u003e\n    \u003cli\u003eEscala horizontalmente\u003c/li\u003e\n    \u003cli\u003eNão tem uma forma padrão de recuperação de dados\u003c/li\u003e\n\u003c/ul\u003e\n\n##### Chave primária\n\n\u003cul\u003e\n    \u003cli\u003eIdentificador único de um registro na tabela\u003c/li\u003e\n    \u003cli\u003eNão pode ser NULL\u003c/li\u003e\n    \u003cli\u003eNão podem ser simples ou compostas\u003c/li\u003e\n\u003c/ul\u003e\n\n##### Chave estrangeira\n\n\u003cul\u003e\n    \u003cli\u003eChave primária de outra tabela, ou dela mesma\u003c/li\u003e\n    \u003cli\u003ePode ser NULL\u003c/p\u003e\n\u003c/ul\u003e\n\n##### Clientes de BD\n\n\u003cul\u003e\n    \u003cli\u003eMySQL Workbench\u003c/li\u003e\n    \u003cli\u003eDBeaver\u003c/li\u003e\n    \u003cli\u003eHeidiSQL\u003c/p\u003e\n\u003c/ul\u003e\n\n##### Migration\n\n\u003cul\u003e\n    \u003cli\u003eVersiona o schema da aplicação\u003c/li\u003e\n    \u003cli\u003eControle de alterações do banco\u003c/li\u003e\n    \u003cli\u003ePode ser adicionada ao deploy automático\u003c/p\u003e\n\u003c/ul\u003e\n\n##### Seeds\n\n\u003cul\u003e\n    \u003cli\u003ePode ser usada para DADOS DE TESTE ou valores PRÉ DEFINIDO\u003c/li\u003e\n    \u003cli\u003ePode ser adicionada ao deploy automático\u003c/li\u003e\n\u003c/ul\u003e\n\n\u003chr\u003e\n\n\u003ch4\u003eMentoria 06 - Projeto Eduzz: Desenvolvendo o back-end da aplicação e plugando o front-end\u003c/h4\u003e\n\n\u003cul\u003e\n    \u003cli\u003eSobre APIs;\u003c/li\u003e\n    \u003cli\u003ePrimeiro endpoint (hands-on);\u003c/li\u003e\n    \u003cli\u003eFuncionamento do NodeJS;\u003c/li\u003e\n    \u003cli\u003eRelembrando o que é Typescript;\u003c/li\u003e\n    \u003cli\u003eDetalhar a arquitetura do projeto; e\u003c/li\u003e\n    \u003cli\u003eAPI funcionando!\u003c/li\u003e\n\u003c/ul\u003e\n\n**APIs (Application Programming Interface - Interface de Programação de Aplicação)** \u003cbr\u003e\n[V8](https://v8.dev/)\n\nDentro do diretório ```api```\n```\ndocker-compose up\n```\n\n```\nyarn install\n```\n\n```\nyarn start\n```\n\n[Public APIs](https://github.com/public-apis/public-apis)\n\n\u003chr\u003e\n\n\u003ch4\u003eMentoria 07 - Projeto Eduzz: Entendendo e utilizando serviços de mensageria\u003c/h4\u003e\n\n- Conceitos sobre processamento assíncrono;\n- Message Brokers;\n- Funcionamento do RabbitMQ;\n- Aplicação prática;\n- Nova arquitetura do projeto; e\n- Esqueci minha senha funcionando!\n\nO que é assíncrono? \u003cbr\u003e\nUm 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. \u003cbr\u003e\n\n**Message Brokers** \u003cbr\u003e\nÉ quem define para qual fila vai a mensagem \u003cbr\u003e\nFilas - Message Brokers - Eventos \u003cbr\u003e\nRabbitMQ, Redis e Amazon SQS \u003cbr\u003e\n\n[RabbitMQ Simulator](http://tryrabbitmq.com/)\n\n\u003chr\u003e\n\n\u003ch4\u003eMentoria 08 - Projeto Eduzz: Vislumbrando possibilidades de integração da aplicação com a nuvem\u003c/h4\u003e\n\n##### O que é nuvem?\n\nO 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\". \u003cbr\u003e\n\n**Alguns serviços na nuvem:** Spotify, Youtube, Facebook, Instagram, Dropbox e Google Docs. \u003cbr\u003e\n\n##### Provedores de Cloud vs Meu Servidor \n\nNo meu servidor, tudo eu tenho que fazer, na nuvem eu tenho a possibilidade de tudo ser gerenciado pelo provedor escolhido. \u003cbr\u003e\nLimitação de recurso: estou limitado ao poder computacional da máquina contratada (contratações de novas máquinas pode levar tempo). \u003cbr\u003e\n\n##### Benefícios dos Serviços de Cloud\n\n**Escalabilidade:** Capacidade de um Sistema em adicionar ou remover recursos de maneira autônama sem interrupções. \u003cbr\u003e\n**Gerenciamento:** Os serviços são gerenciados pelo provedor para que você ponha esforço no seu produto. \u003cbr\u003e\n**Custo:** Normalmente os serviços contratados são cobrados por tempo de execução, armazenamento, e cosutumam ser baratos. \u003cbr\u003e\n**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. \u003cbr\u003e\n**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. \u003cbr\u003e\n\nDiversos serviços para surpotarem seu produto:\n\n\u003col\u003e\n    \u003cli\u003eBanco de Dados\u003c/li\u003e\n    \u003cli\u003eCaching\u003c/li\u003e\n    \u003cli\u003eArmazenamento\u003c/li\u003e\n    \u003cli\u003eBackup\u003c/li\u003e\n    \u003cli\u003eRede\u003c/li\u003e\n    \u003cli\u003eMonitoramento\u003c/li\u003e\n    \u003cli\u003eDNS\u003c/li\u003e\n    \u003cli\u003eCDN\u003c/li\u003e\n    \u003cli\u003eAutenticação/Autorização\u003c/li\u003e\n    \u003cli\u003eInteligência Artificial\u003c/li\u003e\n    \u003cli\u003eBlockchain\u003c/li\u003e\n    \u003cli\u003eContâineres\u003c/li\u003e\n    \u003cli\u003eDeploy\u003c/li\u003e\n    \u003cli\u003eEtc, etc, etc...\u003c/li\u003e\n\u003c/ol\u003e\n\n**Provedores de serviços de nuvem:** Amazon Web Services, Azure, Google Cloud Platform, Heroku, Vercel e Digital Ocean. \u003cbr\u003e\n\n**Serviços que vamos usar:**\n- AWS RDS\n- AWS ECR\n- AWS ECS\n- GitHub Actions\n\n[RDS](https://aws.amazon.com/pt/rds/) \u003cbr\u003e\nÉ 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. \u003cbr\u003e\n\n[ECR](https://aws.amazon.com/pt/ecr/) \u003cbr\u003e\nBasicamente é 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 \u003ca href=\"https://hub.docker.com\"\u003eDocker Hub\u003c/a\u003e. \u003cbr\u003e\n\n[ECS](https://aws.amazon.com/pt/ecs/) \u003cbr\u003e\nFaz 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. \u003cbr\u003e\n\n[Calculator API](https://github.com/tgbaldo/dio-calculator-api)\n\n\u003chr\u003e\n\n\u003ch4\u003eMentoria 09 - Projeto Eduzz: Retire todas as dúvidas encontradas no desenvolvimento do projeto\u003c/h4\u003e\n\nDicas/Conselhos e os bastidores de um DEV na Eduzz.","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Flucasrmagalhaes%2Fbootcamp_eduzz-node_react","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Flucasrmagalhaes%2Fbootcamp_eduzz-node_react","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Flucasrmagalhaes%2Fbootcamp_eduzz-node_react/lists"}