- API@RTC - Conteúdos disponíveis - Sobre o projeto - Tecnologias utilizadas - Dependências do projeto - Migrations - Execução do projeto - Configuração - Instalação e execução - Testes - Deploy - Contribuições
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) »
- Ambiente node utilizando a linguagem - Typescript
- Framework utilizado - NestJS
- Sistema de Mensagerias - Apache Kafka
- Utilização de containers - Docker
- Node.js
- Yarn
- Docker
- NestJs CLI (Opcional)
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
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=
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.
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
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/
Participaram deste projeto os devs:
Foto | Nome | |
---|---|---|
👨🏼💻 | Eduardo Silva | eduardo.silva@usemobile.xyz |
👨🏼💻 | Outros devs... | outros.devs@usemobile.xyz |