Esta API RESTful permite que usuários gerenciem suas tarefas de forma simples e eficiente. Com ela, é possível criar, editar, concluir e excluir tarefas, além de gerenciar suas informações pessoais.
- Facilidade de Uso: Proporcionar uma API de fácil consumo para gerenciar tarefas diárias.
- Tecnologias Modernas: Demonstrar a aplicação de tecnologias como TypeScript, Node.js, Express e MongoDB.
- Base Sólida: Estabelecer uma fundação robusta para futuros desenvolvimentos e expansões.
- Cadastro de Usuário: Criação de novos usuários com atributos essenciais.
- Login de Usuário: Autenticação de usuários utilizando email e senha.
- Edição de Perfil: Atualização de informações pessoais, como nome, idade e foto de perfil.
- Visualizar Tarefas: Acesso às tarefas associadas ao usuário.
- Adicionar Tarefa: Criação de novas tarefas.
- Excluir Tarefa: Remoção de tarefas existentes.
- Marcar Tarefa como Concluída: Atualização do status da tarefa para concluída.
- Editar Tarefa: Modificação dos atributos da tarefa, exceto a data de criação.
Para executar este projeto localmente, você precisará ter instalado:
- Node.js (versão 14 ou superior)
- npm ou yarn (gerenciadores de pacotes)
- MongoDB (pode ser local ou via serviço como MongoDB Atlas)
- API Client para testar a aplicação (como Postman ou Insomnia)
-
Clone o Repositório:
git clone https://github.com/Lucas-Cunhaa/Codex-challenge-2024-To-Do-Back-End.git cd Codex-challenge-2024-To-Do-Back-End
-
Instale as Dependências:
Copy code npm install
-
Configure as Variáveis de Ambiente:
Crie um arquivo .env na raiz do projeto e adicione as seguintes variáveis:
PORT=3000 MONGODB_URI=your_mongodb_connection_string
-
Inicie o Servidor:
npm start
- Endpoint:
POST /app/signup
- Descrição: Cria um novo usuário.
Corpo da Requisição:
{
"name": "João Silva",
"email": "[email protected]",
"password": "senhaSegura123",
"age": 25,
"gender": "masculino"
}
- Endpoint:
POST /app/login
- Descrição: Loga um usuário.
Corpo da Requisição:
{
"email": "[email protected]",
"password": "senhaSegura123",
}
- Endpoint:
PUT /app/editProfile/:id
- Descrição: Atualiza as informações de perfil do usuário.
Parâmetros de URL:
- id (string) - ID do usuário.
Corpo da Requisição:
{
"nome": "João S. Silva",
"age": 26,
"photo": "url_da_foto"
}
- Endpoint:
GET /app/getTasks/:id
- Descrição: Retorna todas as tarefas associadas a um usuário.
Parâmetros de URL:
- id (string) - ID do usuário.
- Endpoint:
POST /app/addTask/:id
- Descrição: Atualiza as informações de perfil do usuário.
Parâmetros de URL:
- id (string) - ID do usuário.
Corpo da Requisição:
{
"name": "minha tarefa",
"Date": "2024-09-17T23:19:33.664Z",
"isCompleted": false,
"description": "testando"
},
- Endpoint:
PUT /app/editTask/:userId/:taskId
- Descrição: Atualiza as informações de perfil do usuário.
Parâmetros de URL:
- userId (string) - ID do usuário.
- taskId (string) - ID da tarefa.
Corpo da Requisição:
{
"name": "minha tarefa n9va ",
"isCompleted": true,
"description": "testando2"
},
- Endpoint:
DELETE /app/deleteTask/:userId/:taskId
- Descrição: Exclui uma tarefa específica de um usuário.
Parâmetros de URL:
- userId (string) - ID do usuário.
- taskId (string) - ID da tarefa.
Este projeto está licenciado sob a MIT License.