# 9.9 - Mini Projeto

## 📘 Enunciado do Projeto

> **📌 Desafio – Construindo sua primeira API com MVC**
>
> Crie uma API RESTful que permita gerenciar tarefas (to-do list), utilizando o framework **Express** com a estrutura **MVC**. A API deve permitir:
>
> * Criar uma nova tarefa
> * Listar todas as tarefas
> * Remover uma tarefa pelo ID
>
> Os dados devem ser armazenados **em memória**, usando arrays. O foco aqui é aplicar o conceito de **separação de responsabilidades** entre:
>
> * **Model**: gerencia os dados
> * **Controller**: lida com a lógica das rotas
> * **Route**: define os caminhos da API
>
> 🧪 Teste sua API usando o **Postman**.

### 🗂️ Estrutura de pastas sugerida

{% code title="Estrutura do projeto" %}

```bash
mini-todo-api/
├── controllers/
│   └── taskController.js
├── models/
│   └── taskModel.js
├── routes/
│   └── taskRoutes.js
├── index.js
├── package.json
└── .gitignore
```

{% endcode %}

### 🎯 Funcionalidades esperadas

<table><thead><tr><th width="116">Método</th><th width="221">Rota</th><th>Descrição</th></tr></thead><tbody><tr><td>GET</td><td>/tasks</td><td>Lista todas as tarefas</td></tr><tr><td>POST</td><td>/tasks</td><td>Cria nova tarefa</td></tr><tr><td>DELETE</td><td>/tasks/:id</td><td>Remove tarefa por ID</td></tr></tbody></table>

### ✍️ Exemplo de uma tarefa

```json
{
  "id": 1,
  "title": "Estudar Node.js"
}

```

#### ✅ Critérios de avaliação

* Organização da estrutura em **MVC**
* Uso correto de status HTTP (`200`, `201`, `204`, `404`)
* Testes feitos no Postman
* Código com **nomes de variáveis em inglês**
* Comentários e indentação limpos
* NÃO UTILIZAR NENHUMA IA!!!&#x20;

{% hint style="warning" %}
Não tenha medo de errar. Se tiver dúvidas, pergunte aos instrutores. E, caso tenha dificuldades, procure por documentações, fóruns, o discord do FavelaWare… tudo, menos IA. &#x20;
{% endhint %}
