O Pregão CCMBR foi desenvolvido com PHP, PDO, MySQL e Bootstrap 5, utilizando um modelo de microsistemas para modularização, escalabilidade e manutenção facilitada.
Cada módulo é relativamente independente, mas integrado via banco de dados central e arquivos de configuração compartilhados.
Microsistemas principais identificados até o momento:
MODE-LOGIN-001: Login e autenticação.
MODE-CRUD-001: Operações CRUD (Create, Read, Update, Delete) gerais.
MODE-USUARIOS-001: Gestão de usuários.
MODE-PREGAO-001: Gestão de leilões de moedas e cédulas.
Exemplo da organização atual:
config/databaseNexa.php é compartilhado por todos os microsistemas; não deve ser alterado sem avaliação completa, pois impacta todo o sistema.
Pastas assets/css e assets/js contêm estilos e scripts gerais e específicos para moedas e cédulas.
Arquivos dentro de includes/ são componentes reutilizáveis, como cards, menus, chat e funções auxiliares.
O banco de dados contém tabelas principais para suportar o pregão:
Tabelas mais relevantes:
lista_pregao – fila de pregão, status, preço inicial e referências à peça.
anuncios_moedas / anuncios_cedulas – informações e imagens das peças.
lances – histórico de lances, usuário, valor, timestamp.
usuarios – cadastro, permissões e saldo de créditos.
configuracoes – parâmetros gerais do sistema.
Relacionamentos:
Cada registro em lista_pregao referencia uma peça em anuncios_moedas ou anuncios_cedulas.
A tabela lances referencia o usuário (usuarios.id) e a peça (lista_pregao.id / idMoeda ou idCedula).
Sistema projetado para integridade referencial, evitando lances duplicados ou peças sem registro.
O usuário acessa index.php do módulo de moedas ou cédulas.
O sistema consulta lista_pregao para montar o catálogo ordenado pela fila.
Cada card apresenta: imagens, código, lance inicial, histórico de lances e botão para Ficha Técnica.
Lances são enviados via lance_antecipado.php e validados pelo backend:
Apenas valores maiores que o lance atual são aceitos.
Em caso de lance duplicado, o primeiro é aceito e o segundo rejeitado.
Atualizações automáticas do catálogo são realizadas a cada 30 segundos via refresh do front-end, garantindo sincronização da fila.
Atualmente, Moedas e Cédulas são tratados em microsistemas separados, mas com lógica e estrutura muito semelhantes.
Sugestão: criar um módulo abstrato compartilhado para reduzir duplicação de código (cards, chat, ficha técnica).
Scripts JS podem ser modularizados com funções comuns para hover, atualização de fila e tooltips.
Futuro: IA leiloeira pode interagir com o chat, exigindo endpoints de API para envio e leitura de mensagens.
Nilton Romani