Aplicação construída durante a 5ª semana Next Level Week da Rocketseat ( NLW#05 )
Será contruída durante esta semana (de 19 a 25/04) uma aplicação para envio de mensagens em tempo real, como um Chat.
A aplicação ainda está em construção!
- Aula 1 - Fundamentos do NodeJS
- Aula 2 - Primeiro contato com banco de dados (TypeORM + SQLite 3)
- Aula 3 - Separando regra de negócio e relacionamentos (um pra um, muitos para um)
- Aula 4 - Introdução ao protocolo WebSocket
- Aula 5 - Finalizando a aplicação
Sou aluno do Ignite, programa de aceleração para devs, focado em preparar profissionais completos(as) para o mercado, treinando skills técnicas e comportamentais de forma intensiva e prática.
Para praticar os conhecimentos adquiridos, me desafiei a construir a mesma aplicação do NLW#05 aplicando o conteúdo visto durante o bootcamp.
Além da organização do projetos, utilizando os princípios do SOLID, e também o Design Patter Singleton, minhas alterações no projeto até o momento foram:
- Banco de dados: ao invés de SQLite, utilizarei o Postgres
- Infraestutura: utilizarei contêiners Docker para instanciar o banco de dados
- mais validações de integridade
Será necessário possuir instalado na máquina:
- Node > 12.x.x
- Yarn
- Docker
- Docker-Compose
Cumprindo estes requisitos, siga os passos:
Utilize comandos git para clonar o projeto, como o exemplo utilizando SSH:
git clone git@github.com:IagooCesaar/cursos-rocketseat-nlw-05-node.git "minha pasta"
Via terminal, navegue até a pasta criada, onde foi depositado o clone do projeto, e execute o comando yarn
. Todas as dependências do projeto serão instaladas.
Ainda no terminal, execute o comando docker-compose up -d
para instanciar o banco de dados. Se esta for a primeira vez que esteja criando um container com a imagem postgres
este procedimento poderá levar alguns minutos.
Uma vez que o banco de dados esteja em execução, execute o comando yarn typeorm migration:run
. Este comando fará com que todos os objetos de banco de dados sejam criados.
Você poderá comprovar a criação desses objetos acessando o banco de dados, utilizando o Beekeeper Studio.
Agora com todas as dependências disponíveis, para executar o projeto em ambiente de desenvolvimento execute o comando yarn dev
. O serviço será iniciado na porta 3333. Você poderá utilizar o Insomnia (ou qualqer software similar, como o Postman) para acessar os recursos desta API.
Com a aplicação em funcionamento, utilize o seu browser favorito para acessar página de clientes em http://localhost:3333/pages/client e a página de administradores em http://localhost:3333/pages/admin
Para executar os testes será necessário primeiramente seguir os passos anteriores para ter todas as dependências disponíveis.
O próximo passo será criar um banco de dados exclusivo para testes. Para isto, iremos utilizar a instância de Postgres existente que subimos com o Docker.
Com o Beekeeper, conecte-se ao banco de dados. Acesse o menu File > New Tab
. Escreva a instrução create database nlw05_test
e clique no botão Run. A mensagem Query Executed Successfully. No Results deverá ser apresentada.
Com nosso banco de dados criado, de volta ao terminal, execute o comando yarn test
. Serão executados os testes unitários e os testes de integração.
Após executar os testes, inicie a aplicação e acesse a rota http://localhost:3333/api-coverage/index.html