Name: Francisco Cajlon Jhonathan Moura Batista
Email: nathan3boss@gmail.com
LinkedIn: https://www.linkedin.com/in/nathan2slime/
Portfolio: https://www.nathan3boss.dev/
Lista de softwares necessários para executar este aplicativo
Clone o repositório na sua máquina, usando o comando abaixo:
git clone https://github.com/nathan2slime/morgoth.git
São variáveis nomeadas para o computador e usadas por algum software. Abaixo estão todas as variáveis de ambiente dessa aplicação.
Variável | Descrição |
---|---|
PORT |
Porta que a aplicação vai usar, certifique-se que ela não esteja sendo usada por outro processo. |
DATABASE_URL |
URI de conexão com o banco de dados, você deve modificar as credenciais e host de acordo com o seu banco local. |
SECRET_KEY |
Usada para geração de refresh tokens e access tokens. |
ACCESS_TOKEN_EXPIRES_IN |
Tempo de validade de um access token (3d). |
REFRESH_TOKEN_EXPIRES_IN |
Tempo de validade de um refresh token (30d). |
MONGO_INITDB_ROOT_USERNAME |
Define o nome do usuário admin (Usada pelo ambiente Docker). |
MONGO_INITDB_ROOT_PASSWORD |
Define a senha do usuário admin (Usada pelo ambiente Docker). |
MONGO_INITDB_ROOT_DATABASE |
Define o banco de dados inicial (Usada pelo ambiente Docker). |
Você deve criar um arquivo .env
no diretório raiz, com o conteúdo abaixo. Outra opção seria usar o arquivo .env.example
e renomear ele para .env
PORT="3000"
DATABASE_URL="mongodb://user:password@mongo:27017/morgoth?directConnection=true&serverSelectionTimeoutMS=2000&authSource=admin&appName=mongosh+2.2.6"
SECRET_KEY="31239012839"
ACCESS_TOKEN_EXPIRES_IN="3d"
REFRESH_TOKEN_EXPIRES_IN="30d"
MONGO_INITDB_ROOT_USERNAME="user"
MONGO_INITDB_ROOT_PASSWORD="password"
MONGO_INITDB_ROOT_DATABASE="morgoth"
Para rodar o projeto em ambiente Docker, você vai precisar criar um arquivo
.env.production.local
.
Depois de configurar as variáveis de ambiente, instale as dependências do projeto usando o gerenciador de pacotes pnpm. Rode o comando abaixo pra instalar as dependências
pnpm install
Você pode usar o comando abaixo para executar a aplicação
pnpm start
Você pode rodar os testes unitários com o comando abaixo
pnpm test
Rode o comando abaixo para rodar a cobertura de testes unitários
pnpm test:cov
Você pode rodar os testes de integração com o comando abaixo
pnpm test:e2e
Foi criado um CLI com comandos para criação de usuários com role ADMIN. Rode os comandos abaixo para criar um novo usuário com role ADMIN.
pnpm build
pnpm cli admin
Os dados do usuário aparecerão em formato json no console.
{
"data": {
"email": "Aurelie.Fadel@hotmail.com",
"name": "Katherine Barrows",
"password": "QrNZdnBfYY0yjyF",
"role": "ADMIN"
},
"level": "info",
"message": "user admin created"
}
A documentação em Swagger está no endpoint /api/docs
Primeiro, ceritifique-se de as portas 3000 e 27017 não estejam sendo usadas por outro processo e que o arquivo de variáveis de ambiente .env.production.local
esteja criado e com as variáveis devidamente configuradas.
Para rodar a aplicação em ambiente Docker, você pode usar o comando abaixo:
docker compose up