Sobre • Ignite Lab I • Instalação • Tecnologias • Autor
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.
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:
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
.
- No caso dessa aplicação, é ele quem cria as mensagens de novas compras de cursos no tópico
- 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:
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:
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:
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:
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.
# 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
# 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>
# 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>
# 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>
# 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>