Repository navigation
BRMW 2.0.0
A versão 2.0.0 é uma reescrita completa do BRMW. A aplicação foi reconstruída em React 19 + TypeScript sobre o JointJS Core (open source) e agora roda inteiramente no navegador: não há backend, não há conta e os modelos ficam salvos na sua máquina, no localStorage.
Esta é a base de código que vai receber a evolução do projeto daqui em diante. O código legado em AngularJS + Express/MongoDB (série 0.x) fica preservado nas tags anteriores e não receberá novas funcionalidades.
A versão hospedada, com contas, armazenamento em nuvem e compartilhamento, continua disponível em app.brmodeloweb.com.
Destaques
🧭 Fluxo completo de modelagem
- Modelagem conceitual na notação entidade-relacionamento (Peter Chen, com as convenções de Heuser): entidades, relacionamentos, atributos, identificadores, cardinalidades, entidades fracas, hierarquias ISA e entidades associativas.
- Modelagem lógica com tabelas, colunas, chaves primárias e estrangeiras, e views com expressão de consulta.
- Modelagem NoSQL (novo módulo) com coleções, documentos embutidos e referências.
- Conversão automática conceitual → lógico e conceitual → NoSQL, com escolhas interativas nos casos ambíguos (estratégias de ISA, posicionamento de atributos, referência vs. embutimento).
- Geração de SQL a partir do modelo lógico.
✏️ Editor de diagramas
- Seleção múltipla, copiar/recortar/colar, desfazer/refazer, snaplines, grade, quebras de página e impressão.
- Atalhos de teclado:
Ctrl/Cmd+Ssalvar,Ctrl/Cmd+Z/Ctrl/Cmd+Shift+Zdesfazer/refazer,Ctrl/Cmd+C/X/Várea de transferência,Ctrl/Cmd+Pimprimir,Delete/Backspaceremover,Esccancelar. - Paleta de formas, barra de ferramentas contextual por elemento, redimensionamento, cores e notas.
- Todos os widgets do editor (canvas, seleção, toolbar, clipboard, command manager, snaplines, impressão) são implementações próprias em
app/editor/, sem dependência do JointJS+.
💾 Persistência local
- Workspace com criação, renomeação e exclusão de modelos.
- Modelos salvos no
localStoragedo navegador. Limpar os dados do site apaga os modelos.
🌐 Interface
- Português (Brasil) e inglês, via
react-i18next. - Diálogos acessíveis com Radix UI.
Tecnologia
| Camada | 0.x | 2.0.0 |
|---|---|---|
| Frontend | AngularJS | React 19, TypeScript, styled-components, React Router 7 |
| Diagramas | jointjs 3.7 | @joint/core 4.x (open source) + widgets próprios |
| Backend | Express + MongoDB | nenhum (app 100% cliente) |
| Persistência | MongoDB | localStorage |
| Build | Webpack 5, yarn | Webpack 5, Babel, Sass, pnpm |
| Testes | Jest + Cypress | Jest + Testing Library |
| Runtime | Node 20.x, yarn 1.x | Node 24.x, pnpm 10.x |
Mudanças incompatíveis
- Sem backend e sem autenticação. Login, cadastro, recuperação de senha, preferências, compartilhamento público e importação por URL foram removidos desta edição.
- Modelos da versão 0.x não são migrados automaticamente. Eles ficam na base de dados do servidor da versão anterior; esta edição parte de um workspace vazio.
- Node.js 24.x e pnpm 10.x são obrigatórios para desenvolvimento.
- Estrutura de pastas nova:
app/react/(aplicação),app/editor/(widgets),app/joint/(formas).app/angular/,server_app/ecypress/deixaram de existir.
Como rodar
pnpm install
pnpm run:feAcesse http://localhost:9000. Para produção, pnpm build gera a saída em app/dist.
Licença
Apache 2.0, mantida.
Full Changelog: v0.3.3...v2.0.0