📱 Projeto 04: Empréstimos Dispositivos

README

Este novo projeto, intitulado Controle de Fluxo de Dispositivos Eletrônicos, complementa seu portfólio de soluções de gestão e automação, focando na agilidade do front-end e na persistência de dados local.

Abaixo, apresento a estruturação técnica detalhada, aplicando os princípios de Engenharia de Software e as melhorias para garantir a integridade do inventário.


1. Contexto do Projeto

  • Título: Controle de Fluxo de Dispositivos Eletrônicos.
  • Objetivo: Oferecer uma solução eficiente para o rastreamento diário de movimentação de eletrônicos (recebimento e liberação).
  • Problema a Resolver: Centralizar o registro de fluxos para evitar a perda de informações sobre a localização e responsabilidade de aparelhos eletrônicos.
  • Diferencial Técnico: Uso de localStorage para persistência sem necessidade de back-end imediato, ideal para ferramentas de uso rápido e local.

2. Engenharia de Software

2.1 Requisitos Funcionais (RF)

  • RF-001: O sistema deve exibir um Dashboard com total de entradas, saídas e saldo em tempo real.
  • RF-002: O sistema deve permitir o registro de movimentação (Entrada/Saída) com nome do modelo, quantidade e responsável.
  • RF-003: O sistema deve manter um histórico cronológico de todas as ações realizadas.
  • RF-004: O sistema deve persistir os dados no navegador utilizando a API localStorage.

2.2 Requisitos Não Funcionais (RNF)

  • RNF-001 (Usabilidade): A interface deve ser simples e intuitiva para facilitar o monitoramento diário.
  • RNF-002 (Confiabilidade): Garantir que o saldo do estoque seja atualizado automaticamente a cada novo registro.
  • RNF-003 (Portabilidade): O sistema deve funcionar em qualquer navegador moderno sem dependências externas de banco de dados.

2.3 Casos de Uso (UML)

O fluxo principal foca no gestor que precisa de rapidez para liberar ou receber um equipamento.

Versão em SVG (Diagrama de Casos de Uso):


3. Estrutura de Dados (JSON)

Como o projeto utiliza localStorage, os dados são estruturados em um objeto JSON unificado para facilitar a manipulação via JavaScript.

3.1 Modelo do Objeto Movimentacao

{
  "movimentacoes": [
    {
      "id": 1,
      "modelo": "Notebook Dell Vostro",
      "quantidade": 1,
      "responsavel": "Ricardo Pires",
      "tipo": "entrada",
      "data_hora": "2026-05-28T16:30:00Z"
    }
  ]
}

4. Melhorias Sugeridas Implementadas

Para elevar o nível técnico do projeto integrador:

  • Validação de Saldo: O sistema deve impedir um registro de "Saída" se a quantidade solicitada for maior que o saldo atual no estoque.
  • Exportação de Dados: Adicionar um botão para exportar o histórico em formato CSV, permitindo que o gestor salve os dados fora do navegador antes de limpar o cache.
  • Arquitetura de Código: Separar as funções de manipulação do localStorage (StorageEngine) da lógica de atualização da interface (DOMManager).

5. Prompt para Google Stitch: Interface "DeviceFlow"

Copie e cole no Google Stitch para gerar a interface:

Atuar como: Frontend Developer sênior especialista em Dashboards Vue/React. Contexto: Criar a interface para o projeto "DeviceFlow" — Controle de entrada e saída de eletrônicos. O foco é uma UI moderna, limpa e de alta performance utilizando HTML, CSS (Tailwind) e JS puro. Estrutura:

  1. Header: Título e relógio em tempo real.
  2. Dashboard de Cards: 3 cards destacados (Total Entradas Verde, Total Saídas Amarelo, Saldo Atual Azul).
  3. Formulário Lateral: Inputs para Modelo, Quantidade, Responsável e um Toggle/Switch para escolher entre "Entrada" e "Saída".
  4. Timeline Central: Uma listagem elegante de "Histórico Geral" com ícones indicando a direção do fluxo (seta para cima/baixo) e timestamp.

UX e Estilo:

  • Estilo "Clean & Professional" com fontes sans-serif.
  • Feedback visual: O saldo deve piscar ou mudar de cor suavemente quando um novo item for registrado.
  • Persistência: Simular a lógica de que, ao recarregar a página, os dados permanecem na tela (via localStorage).

Este projeto está pronto para ser documentado em seu ecossistema de ensino e pesquisa tecnológica.


Com base nas diretrizes de Engenharia de Software e na sua experiência com o desenvolvimento de ecossistemas multiplataforma, apresento o detalhamento técnico avançado do projeto DeviceFlow.

Nesta etapa, focamos na transição da lógica puramente client-side para uma estrutura que permite escalabilidade, mantendo a simplicidade da persistência local via JSON.


2. Engenharia de Software (Avançada)

2.4 Diagrama de Casos de Uso (UML)

O diagrama abaixo detalha as interações do gestor com o sistema, enfatizando a governança dos dados locais e a visibilidade do inventário.

Versão em SVG (Diagrama de Casos de Uso):

2.5 Diagrama de Classes (Estrutura Front-end)

Abaixo, a modelagem das classes em JavaScript utilizando os princípios SOLID para garantir que a manipulação do localStorage seja independente da interface.


3. Estrutura de Dados e Lógica de Fluxo

3.1 MER (Modelo Entidade-Relacionamento)

Embora o armazenamento seja em localStorage, a estrutura lógica segue o padrão relacional para facilitar uma futura migração para MySQL ou MongoDB.


4. Detalhamento das Melhorias Implementadas

Para garantir a robustez do sistema conforme os padrões de Clean Code:

  • Validação de Consistência: Antes de registrar uma saída, o sistema percorre o JSON histórico, calcula o saldo atual e impede a operação caso o resultado seja negativo.
  • Identidade do Responsável: O campo "responsavel" tornou-se obrigatório para garantir a auditabilidade, permitindo saber exatamente com quem o eletrônico está localizado.
  • Linha do Tempo Cronológica: Implementação de uma ordenação decrescente (da mais recente para a mais antiga) para facilitar a consulta rápida no dia a dia.
  • Sincronização de Dashboard: Uso de Observers ou funções de callback que atualizam os cards informativos imediatamente após qualquer alteração no localStorage.

5. Próximos Passos e Evolução

Dada a sua familiaridade com Java (Spring Boot) e Node.js, o projeto pode evoluir da seguinte forma:

  1. API Rest: Substituir o localStorage por uma API que persista os dados em um banco de dados real.
  2. Autenticação: Adicionar login para que diferentes gestores possam ter seus próprios registros.
  3. Monitoramento: Gerar alertas automáticos quando o saldo de um dispositivo específico atingir um nível crítico.

Esta documentação está pronta para ser integrada aos seus fluxos de ensino via GitHub ou Jekyll.

Copyright © 2026