v1.0 · Projeto de portfólio

Controle de equipamentos

O eduAssets registra quem retirou o quê, mantém o estoque atualizado, acompanha manutenções e quebras e exporta relatórios em CSV, Excel e PDF.

Abre em Guest Mode: somente leitura, sem cadastro.

eduAssets — gestão de equipamentos escolares

Projeto de portfólio

Do desafio operacional à implementação full-stack

Sistema web full-stack para controle de estoque, empréstimos, devoluções e ocorrências de equipamentos escolares.

O desafio

Escolas frequentemente controlam notebooks, tablets e acessórios por planilhas dispersas, dificultando saber o que está disponível, emprestado, em manutenção ou quebrado.

Carrinho com notebooks guardados em compartimentos numerados.
O cenário que o sistema organiza: equipamentos numerados, emprestados e devolvidos todos os dias.

O painel responde, sem precisar abrir planilhas:

  • Quantos equipamentos existem e quantos estão disponíveis?
  • O que está emprestado, e para quem?
  • O que está em manutenção?
  • O que está quebrado?
  • O que foi emprestado e devolvido recentemente?

A solução

O eduAssets centraliza estoque, empréstimos, devoluções, ocorrências, permissões e exportação de relatórios em uma aplicação web.

O que foi desenvolvido

  • Acesso e permissões

    JWT, controle de sessão e níveis de acesso por responsabilidade.

  • RFID opcional

    Integração com Raspberry Pi ou Arduino Nano.

  • Entrega

    CI/CD, deploy da aplicação e API, e documentação operacional.

Decisões de arquitetura

  • Por que o banco fica na Neon?

    A VM Oracle possui apenas 1 GB de RAM. Manter o PostgreSQL gerenciado reduz consumo de memória, simplifica backups e separa a disponibilidade do banco da máquina da API.

  • Por que o frontend é separado da API?

    O frontend estático pode ser servido globalmente pelo Cloudflare Pages, enquanto a API permanece em uma VM com controle operacional independente.

  • Por que existe Guest Mode?

    Para permitir avaliação e interação imediata do sistema sem criar contas ou expor credenciais administrativas.

  • Por que RFID é opcional?

    O sistema continua útil com login convencional e pode receber hardware quando for hospedado localmente ou quando a operação justificar o investimento.

Fluxo de empréstimos

Do empréstimo à devolução em quatro passos

Cada passo atualiza o estoque na hora, para que o saldo disponível seja sempre o real.

  1. Registrar

    Informe solicitante, responsável, data e hora e os itens com suas quantidades.

  2. Validar o estoque

    Se não houver saldo disponível suficiente, o registro é bloqueado.

  3. Devolver

    Na lista de abertos, confirme a devolução com data e hora. Os itens voltam ao estoque.

  4. Consultar o histórico

    Todo empréstimo fica registrado com status Aberto ou Devolvido.

Funcionalidades

Cada painel tem uma função

Empréstimos e devoluções

Registre empréstimos com vários itens e processe devoluções a partir da lista de empréstimos em aberto.

  • Itens podem ser editados antes da devolução
  • Baixa de estoque atômica, segura contra concorrência
  • Observação opcional em cada empréstimo
Tela Devoluções do eduAssets, com empréstimos em aberto, equipamentos pendentes e painel para confirmar uma devolução.
Devoluções: empréstimos em aberto e detalhes do registro selecionado.

Dashboard de estoque e histórico

Total, disponíveis, emprestados, em manutenção e quebrados em cards de resumo. O estoque é listado por categoria e o histórico traz todos os empréstimos.

  • Busca por categoria, solicitante, responsável ou número
  • Resumo detalhado por categoria
  • Exportação do estoque e do histórico
Tela Dashboard do eduAssets na aba Estoque, com indicadores de equipamentos e tabela por categoria com quantidades totais, disponíveis e quebradas.
Dashboard de estoque: indicadores gerais e disponibilidade dos equipamentos por categoria.

Controle de ocorrências

Registre observações, manutenções e equipamentos quebrados. Ao resolver um registro, descreva a solução aplicada e o item volta ao estoque.

  • Observação não altera o estoque
  • Manutenção e quebra retiram o item do estoque disponível
  • Histórico de registros resolvidos, com as medidas tomadas
Tela Controle do eduAssets, com indicadores de observações, manutenções e equipamentos quebrados e uma lista de ocorrências.
Controle: indicadores e registros de observação, manutenção e quebra.

Para onde vai cada item

O estoque muda a cada ação, sem edição manual.

  • EmpréstimoDisponível → Emprestado
  • DevoluçãoEmprestado → Disponível
  • ManutençãoDisponível → Em manutenção
  • QuebraDisponível → Quebrado
  • Resolver registroManutenção ou quebra → Disponível

Também incluído

Recursos do projeto

Além dos painéis, o que o sistema oferece no uso diário.

  • Guest Mode

    Qualquer pessoa explora o sistema em modo leitura, sem cadastro.

  • Permissões no backend

    A restrição por nível não depende só da interface: toda rota de escrita valida o token.

  • Estoque consistente

    Baixa atômica por transação e bloqueio do registro quando falta saldo.

  • RFID opcional

    Login por cartão com Raspberry Pi ou Arduino Nano. O login por senha continua disponível.

  • Exportação

    Histórico de empréstimos e inventário em CSV, Excel ou PDF.

  • Português e inglês

    Interface nos dois idiomas, com modo claro, escuro ou do sistema.

Acesso e segurança

Três níveis de acesso

A restrição existe na interface e é aplicada também no backend.

  • Convidado

    Entra sem login. Visualiza Dashboard, histórico e estoque. Não cria, edita nem exclui.

  • Editor

    Registra empréstimos, processa devoluções e cria ou edita registros de Controle.

  • Administrador

    Acesso total: Cadastros, exclusão de registros, troca de senha e cartões RFID.

Proteções

  • Autenticação por JWT e senhas com hash bcrypt
  • Cabeçalhos de segurança (helmet) e limite de tentativas de login
  • Validação de toda requisição de escrita com Zod
  • Sessão de administrador expira após 30 minutos de inatividade

Hardware opcional

Login por cartão RFID

O usuário encosta o cartão no leitor e entra sem digitar senha.

Teste do leitor RFID: etiquetas são aproximadas do sensor conectado ao microcomputador.
Placa leitora RFID conectada por fios a um Raspberry Pi sobre uma bancada.
Hardware RFID: leitor, conexões e microcomputador.
Bancada de informática com o sistema eduAssets aberto em um monitor e o leitor RFID conectado sobre a mesa.
Bancada de testes com o eduAssets e o conjunto de leitura RFID.
  1. Cadastro do cartão

    O administrador gera um token em Cadastros → Usuários e grava no cartão. O servidor guarda só o hash.

  2. Leitura

    Um serviço em Python, em um Raspberry Pi ou Arduino Nano, lê o cartão e envia o token ao backend.

  3. Login

    O backend valida o token e avisa as abas abertas por WebSocket. A sessão inicia sozinha.

O leitor emite sons distintos para cartão detectado, sucesso e erro. O RFID nunca é obrigatório.

Tecnologia

Stack

Frontend

  • TypeScript
  • Vite
  • CSS custom properties
  • Arquitetura feature-first

Backend e API

  • Node.js
  • Express 5
  • Prisma
  • Zod

Banco de dados

  • PostgreSQL
  • Neon

Hardware opcional

  • Python
  • Raspberry Pi
  • Arduino Nano
  • Leitor RFID

Hospedagem e infraestrutura

  • Cloudflare Pages
  • Oracle Cloud
  • Docker
  • Nginx

Documentação

Guias do projeto

Consulte os materiais de uso, arquitetura, API, desenvolvimento, implantação, hospedagem e operação.

Visão geral

Arquitetura e dados

Desenvolvimento e implantação

Operação e evolução

Repositório de origem:GitHub

eduAssets Documentos

Guias do projeto

Documentos

Apresentação do projeto

Arquivo-fonte

Carregando documento…

Arquivo-fonte

Perfil pessoal

Sobre o autor

Desenvolvedor, técnico em informática e estudante de Engenharia da Computação.

Retrato de Thiago da Silva usando óculos, camisa azul-escura e jaqueta clara.

Thiago da Silva

Desenvolvedor · Técnico em informática · Estudante de Engenharia da Computação

São Paulo, Brasil

Explore o sistema

Abra o eduAssets em Guest Mode e navegue pelos painéis, sem cadastro.