API@RTC

Conteúdos disponíveis

Sobre o projeto

O projeto consiste em um RTC(realtime chat) que foi desenvolvido para fixar conhecimentos como uso do TypeORM, e implementação de WebSockets e aplicar conceitos e conhecimentos como Arquitetura limpa e TDD. O projeto possui features como a criar/authenticar usuários, como criar grupos de conversas e enviar mensagens para o grupo.

Documentação da API (Swagger) » Documentação do Projeto (Google Docs) » Documentação do Frontend (Layout Figma) »

Tecnologias utilizadas

  • Ambiente node utilizando a linguagem - Typescript
  • Framework utilizado - NestJS
  • Sistema de Mensagerias - Apache Kafka
  • Utilização de containers - Docker

NodeJS Yarn TypeScript NestJS Docker Swagger JavaScript Apache Kafka

Dependências do projeto

Migrations

Neste projeto deve ser feito o versionamento do banco de dados, então para isto temos alguns comandos:

$ yarn run migrate:latest # Isto irá executar as migrations
$ yarn run migrate:revert # Isto irá reverter as migrations
$ yarn run migrate:generate <nome_migration> # Isto gerará uma nova migration a partir da entidade
$ yarn run migrate:create <nome_migration> # Isto criará uma migration vazia

Execução do projeto

Configuração

Este projeto possui um arquivo de variáveis de ambiente, devemos cria-lo e colocalo na raiz do projeto com as seguintes chaves:

  VARIAVEL_1=
  VARIAVEL_2=
Instalação e execução

A Infraestrutura deste projeto foi desenvolvida com base em Containers, usando o Docker & Docker Compose, para inicializar a infraestrutura em modo desenvolvimento:

$ docker-compose up 

OU

$ yarn run:compose-dev

Obs: Este comando irá instalar e executar os seguintes containers node:18-alpine o apache kafka e o postgres:14.4, e ainda executará as migrations.

Testes

Este projeto está sendo desenvolvido além das features os testes para a segurança do projeto, para executar os testes basta rodar:

$ yarn run test:watch # Rodará os testes em modo "live reload"
$ yarn run test:debug # Rodará os testes e exibirá a cobertura dos testes
$ yarn run test       # Rodará os teste somente 

Deploy

Este projeto está/será hospedado na AWS e está sendo utilizado CI/CD.

Na branch develop ao ser feito um merge atualizara a api de desenvolvimento:

  https://host-dev.com/api/

Na branch master ao ser feito um merge atualizara a api de produção:

  https://host-prod.com/api/

Contribuições

Participaram deste projeto os devs: ​

Foto Nome E-mail
👨🏼‍💻 Eduardo Silva eduardo.silva@usemobile.xyz
👨🏼‍💻 Outros devs... outros.devs@usemobile.xyz