Skip to content

dev-lovers/repair-all

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

1 Commit
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Repair All Logo

Repair All - Gestão de Estoque Inteligente

O sistema Repair All oferece uma solução completa e inteligente para o gerenciamento operacional de oficinas automotivas. Ele permite o cadastro ágil de produtos, controle granular de entradas e saídas de peças e, como grande diferencial, utiliza um modelo nativo de Machine Learning (Regressão Linear) para prever o comportamento e a demanda do estoque.

Ideal para oficinas que buscam evitar o desabastecimento de peças críticas (como pastilhas de freio e óleo), otimizar o fluxo de caixa através de compras baseadas em dados e garantir um atendimento sem interrupções. Tudo isso entregue através de uma interface rápida e reativa construída com SSR moderno.

❓ Por que utilizar

✅ O sistema Repair All é ideal para:

  • Prevenção de Faltas (Stockouts): A inteligência artificial analisa o histórico de saídas para ordens de serviço e prevê exatamente quando e quanto repor;
  • Histórico Imutável: Modelagem de dados baseada em eventos (Append-Only) para garantir integridade fiscal e criar bases sólidas para algoritmos de séries temporais;
  • Alta Performance e UX: Front-end monolítico moderno utilizando Thymeleaf, Tailwind CSS e HTMX, oferecendo a reatividade de uma Single Page Application (SPA) sem a complexidade de gerenciar múltiplos projetos;
  • Desacoplamento Estatístico: Arquitetura limpa onde o motor de cálculo preditivo roda diretamente na JVM (Java), sem depender de serviços externos em Python.

🧠 Como Funciona a Inteligência Artificial (Regressão Linear)

Para prever o comportamento do estoque sem a necessidade de infraestruturas pesadas, o MVP implementa um algoritmo de Regressão Linear Simples desenvolvido nativamente. A regressão linear encontra a reta de melhor ajuste para uma série temporal de dados de saída (consumo).

Matematicamente, a previsão da demanda futura é calculada pela equação da reta y = ax + b, onde:

  • $y$ = A quantidade prevista de peças que precisarão ser repostas.
  • $x$ = O índice do período no tempo (ex: o próximo mês a ser previsto).
  • $a$ = A inclinação da reta (a tendência matemática de alta ou baixa na demanda), calculada por:

$$a = \frac{n(\sum xy) - (\sum x)(\sum y)}{n(\sum x^2) - (\sum x)^2}$$

  • $b$ = O coeficiente linear (ponto de interceptação no eixo Y), calculado por: $$b = \frac{\sum y - a(\sum x)}{n}$$

Aplicações no Fluxo do Sistema:

  1. Extração de Dados: Uma Native Query altamente otimizada no PostgreSQL agrupa o histórico imutável das movimentações de saída mês a mês para cada produto.
  2. Transformação Estrutural: Os meses são convertidos para o eixo $X$ (1, 2, 3...) e a volumetria de peças que saíram para o eixo $Y$.
  3. Inferência Preditiva: A classe de domínio estritamente matemática (LinearRegressionPredictor) executa as equações acima e injeta o próximo período ($n + 1$) na fórmula para descobrir o valor exato de reposição sugerida.

💻 Pré-requisitos

Antes de começar, verifique se você atendeu aos seguintes requisitos:

  • Java 17+ para executar o artefato JAR;
  • Maven 3.9+ para empacotar o projeto em um artefato JAR;
  • PostgreSQL 17 para base de dados relacional;
  • Variáveis de ambiente configuradas (consulte o arquivo application.properties).

🚀 Instalando o Sistema Repair All

Para rodar a aplicação em seu ambiente, siga estas etapas:

Sem Docker (Execução Local):

1. Clone esse repositório
2. Ajuste as variáveis de ambiente localizadas em "application.properties" com as credenciais do seu banco de dados
3. Na raiz do repositório, execute o comando "mvn clean package"
4. Navegue até a pasta "target" e o seu artefato estará lá. Execute-o com o comando "java -jar (nome do artefato gerado).jar"
5. Acesse http://localhost:8080 no seu navegador. Feito! 😃

⚠️ Aviso! Antes de executar a API, garanta que o banco de dados (ex: repairall_db) já existe e que as credenciais estejam corretas.

Com Docker (Já instala as dependências e o banco de dados):

1. Na raiz do repositório, execute o comando "mvn clean package -DskipTests"
2. Em seguida, suba os contêineres em segundo plano com o comando "docker compose up --build"
3. Acesse http://localhost:8080. Feito! 😃

💡 Dica: Para parar a aplicação no Docker, use o comando "docker compose down". Caso precise limpar o ambiente por completo (apagando o banco de dados e os volumes), digite "docker compose down -v".

🔀 Arquitetura de Interface (UI)

Este projeto adota uma abordagem arquitetural unificada:

  • Controllers REST (/api/*): Endpoints isolados e prontos para consumo por aplicações mobile ou integrações de terceiros.

  • Controllers UI (/*): Rotas dedicadas a servir as páginas HTML processadas pelo servidor, utilizando Thymeleaf Layout Dialect para componentização e HTMX para atualizações assíncronas do DOM (ex: recálculo da tabela de previsão de IA sem recarregar a tela).

🔀 Configurações

Por padrão, a aplicação fornece as seguintes opções de configuração principais contidas no arquivo application.properties:

spring.datasource.url=${URL_DATASOURCE:my-url-datasource}
spring.datasource.username=${USERNAME_DATASOURCE:my-username-datasource}
spring.datasource.password=${PASSWORD_DATASOURCE:my-password-datasource}

🥳 Parabéns!!

Se você leu tudo e chegou até aqui, parabéns. Mas por hoje é só! 🎉

Logos

About

Sistema para gerenciamento de estoque em uma oficina de mecânica automotiva.

Resources

Stars

0 stars

Watchers

0 watching

Forks

Contributors