Este é um projeto simples de sistema de login que fornece uma API RESTful para gerenciar dados. Ele é construído usando Node.js e TypeScript, e utiliza o framework web Express.js, MySQL como banco de dados e JSON Web Tokens (JWT) para autenticação.
Antes de executar este projeto, certifique-se de ter instalado o seguinte:
Sistema Operacional Distribuição Unix
Node.js (versão 16.17.0 ou superior)
Docker (versão 23.0.6)
Docker-Compose (versão 2.18.0)
⚠️ Antes de começar a desenvolver
- Clone o repositorio.
- Use o comando :
git@github.com:guigabriel/crud-project.git
. - Entre na pasta do repositório que acabou de clonar:
cd crud-project
.
- Crie uma branch apartir da
master
.
- Verifique se você está na branch
master
.git branch
.
- Caso Você não esteja na branch
master
.git checkout master
- Agora crie a sua branch a qual você vai enviar seus
commits
. - Você deve seguir o seguinte formato
nome-github-nome-projeto
. - Exemplo:
git checkout -b guilherme-gabriel-crud-project
.
🐋 Docker
-
⚠️ Verifique se o docker e o docker-compose estão instalados. -
caso não estejam:
-
Agora verifique as versões:
docker -v
docker-compose -v
- Utilize o comando
pwd
e verifique que você está dentro da pasta do projeto. - Crie um arquivo
.env
na Raiz do Projeto:MYSQL_USER=root MYSQL_PASSWORD=password MYSQL_PORT=3306 MYSQL_HOST=db MYSQL_DB=crud_db MYSQL_ROOT_PASSWORD=password
- Utilize o comando
docker-compose up -d --build
para criar os contâiners. - Após os containers subirem você deve entrar no container
crud-api
assim:docker exec -it crud-api sh
.
- Dentro do container você deve instalar as dependências do projeto:
npm install
.
- E por fim executar o projeto:
npm run dev
.
- Para sair do container é só digitar
exit
. - Para derrubar os containers basta executar
docker-compose down
.
- O comando
docker-compose up -d --build
deve ser utilizado APENAS NA PRIMEIRA VEZ QUE VOCÊ FOR SUBIR OS CONTAINERS. - Após a primeira vez o comando será apenas
docker-compose up -d
.
POST /user/login
{
"email":"gui@gui.com",
"password": "senha12346789"
}
POST /user/logout
POST /user/register
{
"email":"test@test.com",
"password":"senha123546",
"username":"user"
}
Node JS
Typescript
MySQL
Docker
Morgan
Cors
Jest
eslint