Skip to content

Projeto desenvolvido durante a primeira edição do Ignite Lab cujo objetivo foi entender na pratica como criar aplicações escaláveis utilizando microsserviços e como conectá-los com frontends.

License

Notifications You must be signed in to change notification settings

MrRioja/ignite-lab-01

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

72 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Ignite Lab I

GitHub top language GitHub last commit

SobreIgnite Lab IInstalaçãoTecnologiasAutor

Sobre

Projeto desenvolvido durante o Ignite Lab I, evento criado pela Rocketseat. Um evento 100% online e GRATUITO, com conteúdo exclusivo e INÉDITO.

Ocorreu do dia 04 ao dia 11 de Abril de 2022 e teve como intuito mostrar na prática como construir microsserviços escaláveis com NodeJS e NestJS.

Ignite Lab I

Projeto desenvolvido durante a primeira edição do Ignite Lab cujo objetivo foi entender na pratica como criar aplicações escaláveis utilizando microsserviços e como conectá-los com frontends.

A aplicação desenvolvida é uma página de cursos aonde os usuários realizam login através de e-mail e senha ou com autenticação social utilizando conta Google, como podemos ver na tela de login abaixo utilizando Auth0:

Tela de login

A landing page é bem simples pois o foco do evento foi lidar com os microsserviços, no caso foram construídos:

  • Microsserviço Purchases: Responsável por lidar com os eventos de compra.
    • No caso dessa aplicação, é ele quem cria as mensagens de novas compras de cursos no tópico purchases.new-purchase.
  • Microsserviço Classroom: Responsável por lidar com as turmas dentro da aplicação.
    • Consome as mensagens do tópico de purchases para, com base nelas, criar novos alunos e vincula-los aos cursos comprados.
  • Microsserviço Gateway: API gateway da aplicação.

Com o usuário não autenticado a visualização da página inicial fica dessa maneira:

Landing Page

Após realizar o login e clicar no link Faça sua matricula localizado no header, o usuário verá todos os cursos e poderá clicar no botão Realizar inscrição para fazer parte da turma do curso em questão, conforme ilustrado a seguir:

Cursos disponíveis

Ao acessar a aba Meus cursos, o usuário terá acesso a todos os cursos aos quais ele se matriculou, podendo ver também o avatar de alunos da mesma turma e a data de ingresso, como podemos ver a seguir:

Meus cursos

Basicamente são essas as etapas do projeto. Deixarei a seguir uma evidência das mensagens criadas e logo após um GIF de demonstração da aplicação sendo utilizada, passarei por todos os caminhos possíveis para exemplificar o fluxo como um todo:

Kafka UI

Demonstração da aplicação

Instalação

Antes de começar, você vai precisar ter instalado em sua máquina as seguintes ferramentas: Git, Node.js e Docker. Além disso é bom ter um editor para trabalhar com o código como VSCode.

🏗 Criando o ambiente com Docker

# Clone este repositório
$ git clone git@github.com:MrRioja/ignite-lab-01.git

# Acesse a pasta do projeto no terminal/cmd
$ cd ignite-lab-01

# Execute o comando abaixo para que o ambiente docker seja criado
$ docker-compose up -d --build

# Com isso teremos a construção do nosso banco de dados, filas do Kafka e outras ferramentas. Para mais detalhes basta acessar o conteúdo do arquivo docker-compose.yml presente na raiz do projeto

🎲 Rodando o serviço - Classroom

# Clone este repositório
$ git clone git@github.com:MrRioja/ignite-lab-01.git

# Acesse a pasta do projeto no terminal/cmd
$ cd ignite-lab-01

# Vá para a pasta classroom
$ cd classroom

# Instale as dependências
$ npm install
# Caso prefira usar o Yarn execute o comando abaixo
$ yarn

# Execute a aplicação em modo de desenvolvimento
$ npm run start:dev
# Caso prefira usar o Yarn execute o comando abaixo
$ yarn start:dev

# O serviço iniciará na porta 3334 - acesse <http://localhost:3334>

🎲 Rodando o serviço - Gateway

# Clone este repositório
$ git clone git@github.com:MrRioja/ignite-lab-01.git

# Acesse a pasta do projeto no terminal/cmd
$ cd ignite-lab-01

# Vá para a pasta gateway
$ cd gateway

# Instale as dependências
$ npm install
# Caso prefira usar o Yarn execute o comando abaixo
$ yarn

# Execute a aplicação em modo de desenvolvimento
$ npm run start:dev
# Caso prefira usar o Yarn execute o comando abaixo
$ yarn start:dev

# O serviço iniciará na porta 3332 - acesse <http://localhost:3332>

🎲 Rodando o serviço - Purchase

# Clone este repositório
$ git clone git@github.com:MrRioja/ignite-lab-01.git

# Acesse a pasta do projeto no terminal/cmd
$ cd ignite-lab-01

# Vá para a pasta purchases
$ cd purchases

# Instale as dependências
$ npm install
# Caso prefira usar o Yarn execute o comando abaixo
$ yarn

# Execute a aplicação em modo de desenvolvimento
$ npm run start:dev
# Caso prefira usar o Yarn execute o comando abaixo
$ yarn start:dev

# O serviço iniciará na porta 3333 - acesse <http://localhost:3333>

🖥️ Rodando o Front End (Web)

# Clone este repositório
$ git clone git@github.com:MrRioja/ignite-lab-01.git

# Acesse a pasta do projeto no terminal/cmd
$ cd ignite-lab-01

# Vá para a pasta web
$ cd web

# Instale as dependências
$ npm install
# Caso prefira usar o Yarn execute o comando abaixo
$ yarn

# Execute a aplicação em modo de desenvolvimento
$ npm run dev
# Caso prefira usar o Yarn execute o comando abaixo
$ yarn dev

# O servidor iniciará na porta 3000 - acesse <http://localhost:3000>

Tecnologias

Node.js

NestJS

NextJS

GraphQL





Autor

Luiz Rioja

Backend Developer

LinkedIn GitHub Gmail WhatsApp Skype

About

Projeto desenvolvido durante a primeira edição do Ignite Lab cujo objetivo foi entender na pratica como criar aplicações escaláveis utilizando microsserviços e como conectá-los com frontends.

Topics

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published