Este aplicativo é um sistema de gerenciamento de tarefas que permite criar, atualizar, consultar e excluir tarefas. Utiliza o Sequelize como ORM para interagir com um banco de dados PostgreSQL.
- Criar Tarefa: Permite adicionar novas tarefas ao sistema.
- Atualizar Tarefa: Permite modificar os detalhes de uma tarefa existente.
- Consultar Tarefas: Permite listar todas as tarefas ou buscar tarefas específicas por ID, título ou status.
- Excluir Tarefa: Permite remover tarefas do sistema.
src/
: Contém o código-fonte do aplicativo.config/
: Contém a configuração do banco de dados.configDb.ts
: Configura e inicializa a conexão com o banco de dados PostgreSQL.
controllers/
: Contém os controladores que lidam com as requisições HTTP.tarefaController.ts
: Define as funções para criar, atualizar, consultar e excluir tarefas.
models/
: Contém os modelos Sequelize que representam as tabelas do banco de dados.interfaces/
: Contém interfaces TypeScript para definir os atributos dos modelos.TarefaTypes.ts
: Define os atributos da tarefa e os atributos necessários para criar uma nova tarefa.
Tarefa.ts
: Define o modelo de tarefa e sua configuração.
routes/
: Contém as definições de rotas para o aplicativo.router.ts
: Define as rotas e mapeia para os controladores apropriados.
app.ts
: Configura o aplicativo Express e aplica as rotas.server.ts
: Inicializa o servidor Express.
O banco de dados é gerenciado pelo Sequelize e utiliza o PostgreSQL. A tabela tarefas
é definida pelo modelo Tarefa
, que inclui os seguintes campos:
id
: Identificador único da tarefa.titulo
: Título da tarefa.descricao
: Descrição detalhada da tarefa.status
: Status da tarefa (concluída ou não).createdAt
: Data de criação da tarefa (automaticamente definida pelo Sequelize).updatedAt
: Data da última atualização da tarefa (automaticamente definida pelo Sequelize).
As seguintes rotas estão disponíveis para interagir com o sistema de gerenciamento de tarefas:
-
POST
/tarefas
- Descrição: Cria uma nova tarefa.
- Corpo da Requisição:
{ "titulo": "string", "descricao": "string", "status": "boolean" }
-
PUT
/tarefas/:id
- Descrição: Atualiza uma tarefa existente.
- Parâmetros da URL:
id
(número): ID da tarefa a ser atualizada.
- Corpo da Requisição:
{ "titulo": "string", "descricao": "string", "status": "boolean" }
-
GET
/tarefas
- Descrição: Lista todas as tarefas.
-
GET
/tarefas/:id
- Descrição: Consulta uma tarefa específica pelo ID.
- Parâmetros da URL:
id
(número): ID da tarefa a ser consultada.
-
GET
/tarefas/titulo/:titulo
- Descrição: Consulta tarefas pelo título.
- Parâmetros da URL:
titulo
(string): Título da tarefa a ser consultada.
-
GET
/tarefas/status/:status
- Descrição: Consulta tarefas pelo status.
- Parâmetros da URL:
status
(boolean): Status da tarefa a ser consultada.
-
DELETE
/tarefas/:id
- Descrição: Remove uma tarefa existente.
- Parâmetros da URL:
id
(número): ID da tarefa a ser removida.
- Instalação de Dependências
npm install
- Inicialização do Servidor
npm start
- Rodar o Projeto
npm run dev
Ambiente de execução JavaScript no lado do servidor.
Superset do JavaScript que adiciona tipagem estática.
Sistema de gerenciamento de banco de dados relacional, hospedado na Vercel.
ORM para Node.js que facilita a interação com o banco de dados.
Plataforma para deploy e hospedagem de aplicações, incluindo bancos de dados.
IDE utilizada para o desenvolvimento do projeto.
Sistema operacional utilizado no desenvolvimento e produção.