Skip to content

Brazf/case-dev-junior

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

39 Commits
 
 
 
 
 
 
 
 
 
 

Repository files navigation

📋 Gerenciador de Tarefas - Moura

Um sistema completo de gerenciamento de tarefas desenvolvido para o processo seletivo da Moura. O projeto consiste em uma API RESTful em Node.js/Express e um frontend moderno e responsivo.

🚀 Funcionalidades

Frontend

  • ✅ Interface moderna e responsiva
  • ✅ Adicionar, editar e deletar tarefas
  • ✅ Atualizar status das tarefas (Pendente → Em Andamento → Concluída)
  • ✅ Filtros por status
  • ✅ Estatísticas em tempo real
  • ✅ Feedback visual com notificações
  • ✅ Design responsivo para mobile e desktop
  • ✅ Animações suaves e transições

API

  • ✅ CRUD completo de tarefas
  • ✅ Validação de dados
  • ✅ Armazenamento em memória
  • ✅ Estrutura organizada por camadas
  • ✅ Documentação das rotas

🛠️ Tecnologias Utilizadas

Frontend

  • HTML5 - Estrutura semântica
  • CSS3 - Estilização moderna com Flexbox e Grid
  • JavaScript (ES6+) - Funcionalidades interativas
  • Fetch API - Comunicação com a API

Backend

  • Node.js - Runtime JavaScript
  • Express.js - Framework web
  • UUID - Geração de IDs únicos

📁 Estrutura do Projeto

case-dev-junior/ ├── api/ # Pasta raiz do Backend (API RESTful em Node.js). │ ├── node_modules/ # Contém as bibliotecas e dependências do Node.js. Ignorada pelo Git. │ ├── src/ # Código-fonte principal do backend, seguindo a arquitetura em camadas. │ │ ├── controllers/ # Camada de controle: Lida com as requisições HTTP e as respostas. │ │ │ └── taskController.js # Lógica que processa requisições e chama os services. │ │ ├── models/ # Camada de modelo: Lógica de manipulação de dados (nosso banco de dados em memória). │ │ │ └── taskModel.js # Contém o array de tarefas e as funções de CRUD. │ │ ├── services/ # Camada de serviço: Lógica de negócio e validações. │ │ │ └── taskService.js # Regras como validação de status e criação de IDs. │ │ └── routes/ # Camada de rotas: Define os endpoints da API. │ │ └── taskRoutes.js # Mapeia as URLs para as funções do controller. │ ├── app.js # Ponto de entrada do servidor Express. Configura middlewares e rotas. │ ├── jest.config.js # Arquivo de configuração para o framework de testes unitários Jest. │ ├── package-lock.json # Garante que as dependências sejam instaladas com versões exatas. │ └── package.json # Metadados do projeto e lista de dependências. ├── app/ # Pasta raiz do Frontend. Contém os arquivos da interface do usuário. │ ├── Assunto.png # Exemplo de arquivo de imagem usado na aplicação frontend. │ ├── index.html # Estrutura HTML da página principal. │ ├── script.js # Lógica JavaScript do frontend, responsável pela comunicação com a API. │ └── style.css # Estilos CSS que definem a aparência visual da interface. ├── .gitignore # Arquivo que instrui o Git a ignorar arquivos e pastas específicos (ex: node_modules). └── README.md # Documentação principal do projeto: instruções de instalação, execução e detalhes. 

🚀 Como Executar

Pré-requisitos

  • Node.js (versão 14 ou superior)
  • NPM (Node Package Manager)

Passo a Passo

  1. Clone o repositório

    git clone https://github.com/seu-usuario/case-dev-junior.git cd case-dev-junior
  2. Instale as dependências da API

    cd api npm install
  3. Inicie o servidor da API

    npm start

    A API estará disponível em: http://localhost:3000

  4. Abra o frontend

    • Abra o arquivo app/index.html no seu navegador
    • Ou use um servidor local simples:
    cd app python -m http.server 8000

    O frontend estará disponível em: http://localhost:8000

📡 Endpoints da API

Tarefas

Método Endpoint Descrição
GET /tasks Lista todas as tarefas
POST /tasks Cria uma nova tarefa
PATCH /tasks/:id/status Atualiza o status de uma tarefa
DELETE /tasks/:id Remove uma tarefa

Exemplos de Uso

Criar uma tarefa

curl -X POST http://localhost:3000/tasks \ -H "Content-Type: application/json" \ -d '{  "title": "Minha primeira tarefa",  "description": "Descrição da tarefa"  }'

Listar todas as tarefas

curl http://localhost:3000/tasks

Atualizar status

curl -X PATCH http://localhost:3000/tasks/123/status \ -H "Content-Type: application/json" \ -d '{"status": "em andamento"}'

Deletar uma tarefa

curl -X DELETE http://localhost:3000/tasks/123

🎨 Funcionalidades do Frontend

Interface do Usuário

  • Header com estatísticas: Mostra total de tarefas, pendentes e concluídas
  • Formulário de adição: Campos para título e descrição
  • Filtros: Botões para filtrar por status
  • Lista de tarefas: Exibe todas as tarefas com ações
  • Feedback visual: Notificações de sucesso/erro

Estados das Tarefas

  • ⏳ Pendente: Tarefa criada, aguardando início
  • 🔄 Em Andamento: Tarefa sendo executada
  • ✅ Concluída: Tarefa finalizada

Responsividade

  • Design adaptável para desktop, tablet e mobile
  • Layout flexível que se ajusta ao tamanho da tela
  • Interface otimizada para touch em dispositivos móveis

🔧 Configuração de Desenvolvimento

Scripts Disponíveis

# Instalar dependências npm install # Iniciar servidor de desenvolvimento npm start # Executar testes (se implementados) npm test

Estrutura de Dados

Tarefa

{ id: "uuid-v4", title: "Título da tarefa", description: "Descrição da tarefa", status: "pendente" | "em andamento" | "concluida" }

🧪 Testes

O projeto está preparado para implementação de testes unitários. Para adicionar testes:

  1. Instale as dependências de teste:

    npm install --save-dev jest supertest
  2. Configure o Jest no package.json:

    { "scripts": { "test": "jest" } }
  3. Crie arquivos de teste na pasta tests/

📱 Compatibilidade

  • Navegadores: Chrome, Firefox, Safari, Edge (versões modernas)
  • Dispositivos: Desktop, tablet, mobile
  • Sistemas: Windows, macOS, Linux

🚀 Melhorias Futuras

  • Persistência de dados com banco de dados
  • Autenticação de usuários
  • Categorização de tarefas
  • Datas de vencimento
  • Notificações push
  • Modo offline
  • Exportação de dados
  • Temas personalizáveis

👨‍💻 Desenvolvimento

Este projeto foi desenvolvido como parte do processo seletivo da Moura, uma empresa líder no setor de baterias automotivas e industriais no Brasil.

Autor

[Seu Nome] - Desenvolvedor Frontend

Contato

📄 Licença

Este projeto foi desenvolvido exclusivamente para o processo seletivo da Moura.


Moura - Energia que move o futuro! 🔋

About

API RESTful para gerenciamento de tarefas (to-do list)

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Contributors 4

  •  
  •  
  •  
  •