ToDo App é uma API com as principais funcionalidades de um gerenciador de tarefas.
- A aplicação foi construída utilizando Node.JS, Typescript e o framework Nest.JS.
- O ORM escolhido foi o TypeORM.
- O banco é o MySQL
- As rotas são protegidas no padrão Bearer Authentication.
Uma pessoa deseja se cadastrar para usufruir do gerenciador de tarefas:
- Pessoa precisa estar autenticada.
- Pessoa pode ter várias tarefas.
- Não pode haver tarefas repetidas.
- Criar uma pessoa: o
username
deve ser único.- Listar usuários.
- Excluir usuário.
- Editar usuário.
- Adicionar uma tarefa:
task
deve ser único.- Listar tarefas.
- Excluir tarefas.
- Editar tarefas.
Para usar a aplicação, você precisará configurar as variáveis de ambiente.
Renomeie o arquivo raiz do projeto .env.example
para .env
. Este arquivo contém todas as variáveis necessárias para iniciar o aplicativo.
MYSQL_HOST
você precisará informar localhost
para rodar o projeto localmente, ou mysql
para rodar a aplicação via Docker.
Exemplo:
MYSQL_HOST=mysql # Para rodar pelo Docker
MYSQL_HOST=localhost # Para rodar localmente
MYSQL_USER=root
MYSQL_PASSWORD=root
- Clone o repositório
git@github.com:trkotovicz/todos-nest.git
. - Na raíz do repositório, abra o terminal e rode o comando
npm run compose:up
e aguarde a alicação subir (esse passo pode demorar um pouco). - Para encerrar a aplicação, rode o comando
npm run compose:down
.
- Clone o repositório
git@github.com:trkotovicz/todos-nest.git
. - Na raíz do repositório instale as dependências:
$ npm install
- Configure as variáveis de ambiente no arquivo
.env
- Inicialize o projeto:
$ npm start
Com a aplicação rodando acesse a documentação da API.
As ações devem ser realizadas com a conta da pessoa autenticada.
O token retornado do login deve ser enviado no header com o nome de Authorization
.
Exemplo:
Authorization: Bearer {TOKEN_AQUI}
O aplicativo usa o banco de dados MySQL. Certifique-se de tê-lo instalado em seu computador caso queira rodar a aplicação localmente. A aplicação possui os scripts necessários para criar ou excluir o banco de dados.
Ao iniciar a aplicação, o banco de dados será criado automaticamente.
Scripts:
npm run db:create
para criar seu banco de dados.npm run db:drop
para excluir o banco de dados.
A aplicação possui testes unitários e testes de integração (E2E). Para isso, foi utilizado Jest e Supertest.
# tests
npm test
# coverage
npm run test:cov
Projeto desenvolvido por Thais R Kotovicz.