SpoolVault é um sistema web desenvolvido em Next.js para gerenciar de forma eficiente o seu inventário de filamentos de impressão 3D e armazenar suas calibrações detalhadas. O objetivo principal do projeto é fornecer uma ferramenta centralizada onde você pode cadastrar todos os detalhes de um filamento (como temperaturas, retração, flow, pressure advance, etc.) e gerar etiquetas com QR Code para facilitar o rastreio físico dos seus carretéis.
- Cadastro de Filamentos: Registre marca (fabricante), tipo de material (PLA, ABS, PETG, etc.), cor e o número do lote do seu filamento.
- Armazenamento de Calibração: Salve dados cruciais obtidos nos seus testes de calibração para garantir sempre a melhor impressão. Os campos incluem:
- Temperatura Mínima e Máxima do Bico
- Temperatura Mínima e Máxima da Mesa
- Retração (Distância e Velocidade)
- Fluxo (Flow Rate / Multiplicador de extrusão)
- Fluxo Máximo Volumétrico (Max Volumetric Flow)
- Avanço de Pressão (Pressure Advance)
- VFA (Velocity Fibrillation Artifacts / Teste de velocidade ideal)
- Geração de QR Code: Crie QR Codes únicos para cada filamento cadastrado. Ao ler o código com seu smartphone, você é direcionado diretamente para a página de detalhes daquele carretel.
- Integração com Impressoras Térmicas: Imprima etiquetas automaticamente em sua impressora térmica para colar nos carretéis de filamento, contendo as principais informações e o QR Code.
- Banco de Dados Local: Utiliza SQLite embutido, não dependendo de configurações complexas de infraestrutura em nuvem (basta rodar e usar).
- Interface Moderna: Feito com Next.js (App Router), React 19 e ícones Lucide.
- Organização Extrema: Nunca mais esqueça qual configuração funcionou melhor para aquela marca específica de PLA ou PETG.
- Setup Rápido de Impressão: Ao pegar um filamento da estante, basta ler o QR Code ou checar a etiqueta para inserir instantaneamente no seu Fatiador (OrcaSlicer, PrusaSlicer, Cura, etc.) os valores ideais de temperatura, fluxo e pressure advance.
- Privacidade e Controle: Como o banco de dados roda localmente (
SQLite), todas as suas anotações de filamentos pertencem 100% a você, funcionando rápido e sem depender de internet. - Pronto para Integrações: Graças ao back-end integrado (API Routes do Next.js), é possível no futuro conectar o sistema diretamente via plugins ao seu Fatiador (como o OrcaSlicer).
- Next.js (Versão 16.2.10)
- React (Versão 19)
- SQLite (via
better-sqlite3) - node-thermal-printer (para impressão de etiquetas)
- qrcode (para geração dos códigos)
- Cadastre um novo filamento: Insira informações básicas como marca, material e cor.
- Faça as calibrações: Realize os testes na sua impressora 3D para achar temperatura ideal, fluxo, pressure advance, etc.
- Atualize o sistema: Preencha os dados no SpoolVault.
- Imprima a etiqueta: Gere a etiqueta térmica e cole no carretel.
- No dia a dia: Quando for imprimir, leia a etiqueta/QR code e insira os dados no fatiador para garantir a impressão perfeita.
Para rodar este projeto na sua máquina local, você precisará do Node.js instalado.
Abra o seu terminal (ou Git Bash) e clone o projeto:
git clone https://github.com/Woorkier/filament_controller.git
cd filament_controllerExecute o comando abaixo na pasta raiz do projeto para instalar todas as bibliotecas necessárias:
npm installAbaixo estão as três formas de executar o projeto, listadas da mais recomendada (para uso contínuo/produção) até a forma de desenvolvimento local.
(Atenção: Para as opções 3.1 e 3.2, que são focadas em manter a aplicação online de forma contínua, lembre-se de rodar o comando npm run build antes, para compilar a versão final do projeto).
O PM2 é um gerenciador de processos moderno que mantém seu aplicativo rodando em segundo plano, reinicia automaticamente em caso de falhas e pode iniciar junto com o sistema operacional. Siga os passos:
- Instale o PM2 globalmente em sua máquina:
npm install -g pm2
- Inicie a aplicação:
(Alternativa se fosse um script Node comum:
pm2 start npm --name "filament-controller" -- startpm2 start app.js) - Salve a lista de processos (para que voltem sozinhos se o servidor reiniciar):
pm2 save
- Monitore os logs em tempo real (caso precise ver o que está acontecendo):
pm2 log
O comando nohup é uma ferramenta nativa do sistema que ignora o sinal de encerramento quando você fecha o terminal. É mais simples, porém menos robusto que o PM2.
- Execute no terminal:
O
nohup npm start > output.log &
&no final joga o processo para rodar livre no segundo plano. (Para scripts comuns, serianohup node app.js > output.log &) - Para encerrar depois:
Busque o ID do processo rodando
ps aux | grep nodeno terminal. Quando achar o número do processo, finalize-o com o comando:kill <PID>
Use esta opção se você for alterar o código-fonte ou se quiser apenas testar a aplicação localmente de forma rápida. O servidor só ficará ativo enquanto a janela do seu terminal estiver aberta.
- Inicie o servidor de desenvolvimento:
npm run dev
- O servidor será iniciado na porta padrão (geralmente
3000) e ficará acessível na sua rede local. - Abra o seu navegador e acesse:
http://localhost:3000
Não é necessário configurar nenhum banco de dados externo. Ao iniciar a aplicação pela primeira vez ou salvar o primeiro filamento, o sistema criará automaticamente uma pasta /data na raiz do projeto contendo o arquivo filaments.db do SQLite, pronto para uso.
Desenvolvido para entusiastas e profissionais de Impressão 3D que buscam a precisão máxima e organização no seu fluxo de trabalho.