Loading repository data…
Loading repository data…
Damasceno11 / repository
MVP de plataforma de treinamento industrial em Realidade Virtual (VR). Arquitetura híbrida composta por um Backend robusto em Java 17/Spring Boot (Clean Architecture & DDD Lite) para processamento de telemetria e análise de performance, integrado a um Frontend imersivo em Unity 3D para simulação física de veículos pesados.
A transparent discovery signal based on current public GitHub metadata.
This score does not audit code, security, maintainers, documentation quality, or suitability. Verify the repository and its current documentation before adoption.
Plataforma Enterprise de Treinamento Imersivo com Gêmeos Digitais. Solução desenvolvida durante o HackTown 2025 focada em arquitetura escalável, integração IoT e experiência do usuário em tempo real.
O OperateOS resolve o problema do alto custo e risco no treinamento de operadores de máquinas pesadas. Através de um ambiente seguro (VR/Unity), simulamos cenários de risco e capturamos telemetria em tempo real para um backend analítico, exibindo métricas de performance e alertas críticos em um dashboard de comando.
Fluxo de Valor:
Utilizamos uma abordagem Híbrida (IoT + Web), onde o Unity atua como um dispositivo IoT enviando pulsos de dados para uma API Stateless.
sequenceDiagram
participant U as 🚛 Unity (Veículo)
participant A as 📡 API (Java Controller)
participant D as 🧠 Domain (UseCase)
participant DB as 💾 Database (H2)
participant F as 🖥️ Angular (Dashboard)
Note over U, F: Ciclo de Atualização (Polling 500ms)
loop Telemetria Física
U->>U: Calcula Física (Rigidbody)
U->>A: POST /telemetry {speed, collision}
A->>D: ProcessTelemetryUseCase.execute()
D->>D: Aplica Regras (Score -0.5, Game Over)
D->>DB: Repository.save(Session)
A-->>U: 200 OK
end
loop Monitoramento
F->>A: GET /latest
alt Sem Sessão Ativa
A-->>F: Retorna WAITING_SESSION (Singleton)
else Sessão Encontrada
DB->>A: Retorna Dados Reais
A-->>F: JSON {score, logs, active}
end
F->>F: Atualiza UI (RxJS)
end
TrainingSession) isoladas de frameworks.ddl-auto=update para agilidade no MVP).switchMap, polling, retry).UnityWebRequest com Coroutines para não bloquear a thread de física.hackathon-workdb-vr/
├── operateos-backend/ # Spring Boot Application (Java)
│ ├── src/main/java/.../core/ # Regrs de Negócio (Puro Java)
│ └── src/main/java/.../infra/ # Frameworks (Spring/JPA)
│
├── operateos-dashboard/ # Angular Application (Web)
│ ├── src/app/core/ # Services & Models
│ ├── src/app/features/ # Dashboard Component
│ └── src/styles.scss # Design System Global (Manual Palette)
│
├── OperateosSim/ # Unity Project (VR/3D)
│ ├── Assets/Scripts/ # C# Network & Physics logic
│ └── Assets/Scenes/ # Cenário 3D
│
└── .gitignore # Configuração crítica para ignorar Library/Node_Modules
Durante os 4 dias de Hackathon, enfrentamos e superamos bloqueios críticos de nível Enterprise:
mat.$indigo-palette e $azure-palette pararam de ser exportadas ou não existiam, quebrando o build com o erro crítico Undefined variable.styles.scss. Isso "blindou" o projeto contra atualizações futuras e garantiu a identidade visual Dark Mode Industrial sem depender de magic strings.TrainingSession (gerando um novo UUID) a cada requisição de polling quando o banco estava vazio.static final WAITING_SESSION). O objeto de "Espera" passou a ser único na memória da JVM, estabilizando a renderização do Frontend e reduzindo a pressão no Garbage Collector.Library/*.so) maiores que 100MB, mesmo com o .gitignore configurado (os arquivos já estavam "staged" em commits anteriores).git rm -r --cached .) e reestruturamos o .gitignore para bloquear explicitamente pastas de build do Unity em subdiretórios (OperateosSim/Library), permitindo um deploy leve apenas com o código-fonte.Para rodar o sistema completo, você precisará de 3 terminais/janelas abertas.
npm i -g @angular/cli)cd operateos-backend
# Via Maven Wrapper (Windows)
./mvnw spring-boot:run
Aguarde aparecer: Tomcat started on port 8080.
Abra um novo terminal:
cd operateos-dashboard
npm install
ng serve
Acesse: http://localhost:4200 no seu navegador. Você verá o status "AGUARDANDO...".
OperateosSim.Assets/Scenes/SampleScene.unity.Teste de Sucesso:
| Membro | Função | Foco Principal |
|---|---|---|
| Pedro Paulo (Lead) | Arquiteto & Backend | Java Core, Integração, Resolução de Crises |
| **** | Unity Developer | Física 3D, C# Scripting, Otimização de Rede |
| **** | Frontend Eng. | Angular, RxJS, UX/UI Material Design |
| **** | DevOps/Infra | Git Flow, Banco de Dados, Documentação |
| **** | Product Owner | Regras de Negócio, Validação QA, Pitch |
"A complexidade técnica foi absorvida pela integração robusta entre o Backend Java e a Simulação Física, permitindo que o Frontend servisse como uma janela tática crítica para a operação." — OperateOS Team