Screenshots
Clique para ampliar
Vídeos Demonstrativos
Suite OrdemPlus
Plataforma integrada para gestão de ordens de serviço, composta por painel web, API REST e aplicativo mobile offline-first.
R$ 1.000,00
Destaques
Operação offline-first com sincronização inteligente.
O técnico pode executar praticamente todo o atendimento sem internet. Ordens, checklists, itens, observações, anexos e assinaturas ficam armazenados no dispositivo e são sincronizados quando a conexã
Solução completa e integrada.
O OrdemPlus reúne em um único ecossistema:
* gestão administrativa pelo painel web;
* regras de negócio centralizadas na API;
* execução do atendimento pelo aplicativo mobile;
* banco central no servidor;
* banco SQL
Arquitetura modular, segura e expansível.
O servidor utiliza arquitetura MVC e o aplicativo é organizado em camadas, facilitando manutenção, testes e implementação de novas funcionalidades.
A autenticação do painel web, da API e da área técnica `/adm
Tem dúvidas?
Falar no WhatsAppDescrição
O **OrdemPlus** é uma solução completa para empresas de manutenção, assistência técnica, instalação, vistoria e prestação de serviços em campo. O sistema acompanha todo o ciclo de uma ordem de serviço, desde o cadastro do cliente e a abertura da OS até a execução do atendimento, preenchimento de checklist, registro de produtos e serviços utilizados, coleta de assinaturas, inclusão de anexos e conclusão do serviço.
A plataforma é formada por três módulos integrados:
### OrdemPlus Web
Painel administrativo e operacional utilizado por gestores, administradores e operadores.
Por meio do painel web, a empresa pode:
* cadastrar clientes;
* cadastrar funcionários e técnicos;
* gerenciar produtos e serviços;
* registrar dispositivos autorizados;
* abrir e acompanhar ordens de serviço;
* atribuir ordens aos técnicos;
* consultar checklists;
* visualizar produtos e serviços utilizados;
* consultar fotos, PDFs, áudios e assinaturas;
* acompanhar o histórico de alterações;
* controlar o processo de sincronização dos dispositivos.
O painel possui controle de acesso por perfil, permitindo separar as funções de administrador, operador e técnico.
Também existe uma área técnica independente, acessada por `/admin`, destinada à configuração do ambiente, aplicação de migrations e manutenção da instalação. Esse administrador técnico é diferente do administrador funcional da empresa.
### OrdemPlus API
A API REST é responsável pela comunicação entre o servidor, o aplicativo mobile e outros clientes autorizados.
Ela centraliza:
* autenticação por token JWT;
* validação das regras de negócio;
* cadastro e consulta de informações;
* envio e recebimento das ordens;
* sincronização de clientes, funcionários, produtos e serviços;
* sincronização de checklists e itens utilizados;
* upload e download de anexos;
* registro do histórico de eventos;
* controle dos status das ordens;
* tratamento de exclusões e alterações incrementais.
A API utiliza UUIDs e datas de atualização para identificar os registros e decidir quais dados devem ser inseridos, atualizados ou ignorados. Isso evita duplicidades e permite repetir uma sincronização com segurança.
As regras importantes ficam centralizadas no servidor. Por exemplo, uma ordem não pode ser concluída enquanto existirem itens obrigatórios pendentes no checklist.
### OrdemPlus Mobile
Aplicativo desenvolvido em Delphi FMX para uso de técnicos e equipes externas.
O aplicativo permite:
* consultar as ordens atribuídas ao técnico;
* iniciar e acompanhar atendimentos;
* trabalhar sem conexão com a internet;
* preencher checklists;
* adicionar produtos e serviços utilizados;
* registrar observações;
* tirar e visualizar fotos;
* anexar e visualizar PDFs;
* gravar e reproduzir áudios;
* coletar assinaturas do cliente e do técnico;
* alterar o status da ordem;
* sincronizar os dados com o servidor.
Os dados estruturados são armazenados localmente em um banco SQLite. Fotos, áudios, PDFs e assinaturas permanecem na memória interna do dispositivo até serem enviados ao servidor.
Quando a conexão é restabelecida, o aplicativo envia as alterações locais e recebe somente os registros modificados desde a última sincronização. Esse processo reduz o consumo de dados e permite que o técnico continue trabalhando em locais com conexão instável ou inexistente.
No servidor, o banco MySQL ou MariaDB mantém a versão central e consolidada das informações. O SQLite do aplicativo funciona como uma base operacional local, utilizada para garantir o funcionamento offline.
A plataforma é formada por três módulos integrados:
### OrdemPlus Web
Painel administrativo e operacional utilizado por gestores, administradores e operadores.
Por meio do painel web, a empresa pode:
* cadastrar clientes;
* cadastrar funcionários e técnicos;
* gerenciar produtos e serviços;
* registrar dispositivos autorizados;
* abrir e acompanhar ordens de serviço;
* atribuir ordens aos técnicos;
* consultar checklists;
* visualizar produtos e serviços utilizados;
* consultar fotos, PDFs, áudios e assinaturas;
* acompanhar o histórico de alterações;
* controlar o processo de sincronização dos dispositivos.
O painel possui controle de acesso por perfil, permitindo separar as funções de administrador, operador e técnico.
Também existe uma área técnica independente, acessada por `/admin`, destinada à configuração do ambiente, aplicação de migrations e manutenção da instalação. Esse administrador técnico é diferente do administrador funcional da empresa.
### OrdemPlus API
A API REST é responsável pela comunicação entre o servidor, o aplicativo mobile e outros clientes autorizados.
Ela centraliza:
* autenticação por token JWT;
* validação das regras de negócio;
* cadastro e consulta de informações;
* envio e recebimento das ordens;
* sincronização de clientes, funcionários, produtos e serviços;
* sincronização de checklists e itens utilizados;
* upload e download de anexos;
* registro do histórico de eventos;
* controle dos status das ordens;
* tratamento de exclusões e alterações incrementais.
A API utiliza UUIDs e datas de atualização para identificar os registros e decidir quais dados devem ser inseridos, atualizados ou ignorados. Isso evita duplicidades e permite repetir uma sincronização com segurança.
As regras importantes ficam centralizadas no servidor. Por exemplo, uma ordem não pode ser concluída enquanto existirem itens obrigatórios pendentes no checklist.
### OrdemPlus Mobile
Aplicativo desenvolvido em Delphi FMX para uso de técnicos e equipes externas.
O aplicativo permite:
* consultar as ordens atribuídas ao técnico;
* iniciar e acompanhar atendimentos;
* trabalhar sem conexão com a internet;
* preencher checklists;
* adicionar produtos e serviços utilizados;
* registrar observações;
* tirar e visualizar fotos;
* anexar e visualizar PDFs;
* gravar e reproduzir áudios;
* coletar assinaturas do cliente e do técnico;
* alterar o status da ordem;
* sincronizar os dados com o servidor.
Os dados estruturados são armazenados localmente em um banco SQLite. Fotos, áudios, PDFs e assinaturas permanecem na memória interna do dispositivo até serem enviados ao servidor.
Quando a conexão é restabelecida, o aplicativo envia as alterações locais e recebe somente os registros modificados desde a última sincronização. Esse processo reduz o consumo de dados e permite que o técnico continue trabalhando em locais com conexão instável ou inexistente.
No servidor, o banco MySQL ou MariaDB mantém a versão central e consolidada das informações. O SQLite do aplicativo funciona como uma base operacional local, utilizada para garantir o funcionamento offline.
Requisitos
# Requisitos de desenvolvimento
## Servidor, painel web e API
| Componente | Requisito |
| -------------------------- | ----------------------------------- |
| PHP | 8.1 ou superior |
| Arquitetura | MVC próprio |
| Banco de dados | MySQL 5.7+ ou MariaDB 10.4+ |
| Servidor web | Apache 2.4 ou Nginx com PHP-FPM |
| Ambiente local recomendado | XAMPP 8.1+ |
| Codificação do banco | UTF-8mb4 |
| Protocolo da API | REST com JSON e multipart/form-data |
| Autenticação da API | JWT com HMAC SHA-256 |
| Controle de versão | Git |
### Extensões PHP necessárias
```text
pdo_mysql
mbstring
json
openssl
fileinfo
```
### Recursos necessários no servidor web
No Apache:
```text
mod_rewrite
mod_headers
```
### Estrutura principal do backend
```text
Controllers/
Models/
Views/
Core/
Services/
Repositories/
database/
database/migrations/
Sourcer/storage/
docs/
```
### Configuração para desenvolvimento
É necessário criar um arquivo `.env` contendo:
* ambiente da aplicação;
* URL base;
* credenciais do banco;
* timezone;
* chave secreta da aplicação;
* configurações de armazenamento;
* limite de upload;
* credenciais do administrador técnico.
Exemplo:
```env
APP_ENV=development
APP_DEBUG=true
TIMEZONE=America/Sao_Paulo
BASE_URL=http://localhost/ordemplus/Sourcer
SCRIPT_NAME=
DB_HOST=localhost
DB_NAME=ordemplus
DB_USER=root
DB_PASS=
DB_CHARSET=utf8mb4
APP_SECRET=chave-secreta-de-desenvolvimento
MIGRATIONS_ENABLED=true
```
---
## Aplicativo mobile
| Componente | Requisito |
| -------------------------------------- | -------------------------------------------------- |
| Delphi | 11 Alexandria ou superior |
| Framework visual | FireMonkey — FMX |
| Plataforma principal | Android 64 bits |
| Arquitetura Android | `arm64-v8a` |
| Banco local | SQLite |
| Acesso ao banco | FireDAC |
| Requisições HTTP | `System.Net.HttpClient` |
| Integração REST | REST Components |
| Processamento JSON | `System.JSON` |
| Java | JDK 11 ou versão compatível com o Delphi utilizado |
| Android SDK e NDK | Instalados e configurados no Delphi |
| Sistema operacional de desenvolvimento | Windows 10 ou superior |
### Estrutura sugerida do aplicativo
```text
Models/
Controllers/
Views/
Services/
Repositories/
Sync/
DataModules/
Utils/
Assets/
```
### Recursos obrigatórios para compilação
* ícones do aplicativo;
* splash screens;
* fontes utilizadas pelo projeto;
* `AndroidManifest.xml`;
* URL da API configurável;
* banco SQLite local;
* scripts de criação e atualização do banco;
* keystore para assinatura;
* controle de versão do aplicativo.
### Permissões Android utilizadas conforme a funcionalidade
```text
INTERNET
CAMERA
RECORD_AUDIO
ACCESS_FINE_LOCATION
ACCESS_COARSE_LOCATION
READ_MEDIA_IMAGES
READ_MEDIA_AUDIO
READ_MEDIA_VIDEO
FOREGROUND_SERVICE
```
Permissões como localização, acesso às mídias, chamadas telefônicas ou execução de serviços em primeiro plano devem ser declaradas somente quando a funcionalidade correspondente estiver realmente implementada.
---
# Requisitos de deploy para produção
## Servidor OrdemPlus
| Componente | Requisito mínimo |
| ------------------------ | -------------------------------------------------------- |
| PHP | 8.1 ou superior |
| Banco de dados | MySQL 5.7+ ou MariaDB 10.4+ |
| Servidor web | Apache 2.4 ou Nginx |
| Certificado de segurança | HTTPS com TLS 1.2 ou superior |
| Extensões PHP | PDO MySQL, mbstring, JSON, OpenSSL e Fileinfo |
| Armazenamento | Espaço suficiente para fotos, PDFs, áudios e assinaturas |
| Backup | Banco de dados, arquivos e configurações |
| Timezone | `America/Sao_Paulo` |
| Codificação | UTF-8mb4 |
### Configuração mínima do `.env`
```env
APP_ENV=production
APP_DEBUG=false
TIMEZONE=America/Sao_Paulo
BASE_URL=https://seudominio.com
SCRIPT_NAME=
DB_HOST=localhost
DB_NAME=ordemplus
DB_USER=usuario_ordemplus
DB_PASS=senha-forte
DB_CHARSET=utf8mb4
APP_SECRET=chave-aleatoria-segura-com-no-minimo-32-caracteres
MIGRATIONS_ENABLED=false
SISTEMA_EMAIL=admin@seudominio.com
SISTEMA_PASSWORD_HASH=hash-bcrypt-da-senha
```
### Requisitos de segurança
* HTTPS obrigatório;
* `APP_SECRET` forte e exclusivo;
* `APP_DEBUG=false`;
* credenciais do banco com acesso restrito;
* arquivo `.env` protegido;
* diretório de anexos com permissões controladas;
* validação do tamanho e tipo dos uploads;
* sessões seguras;
* proteção CSRF;
* rate limiting no login;
* backups periódicos;
* logs de erros sem exposição de informações sensíveis.
### Permissões recomendadas
```bash
chmod 640 .env
chmod -R 755 Sourcer/
chmod -R 775 Sourcer/storage/
chown -R www-data:www-data Sourcer/storage/
```
### Etapas de implantação
1. Enviar os arquivos para o servidor.
2. Criar o banco MySQL ou MariaDB.
3. Configurar o arquivo `.env`.
4. Apontar o DocumentRoot para o diretório público.
5. Aplicar as migrations pendentes.
6. Configurar HTTPS.
7. Verificar as permissões do storage.
8. Testar o login do painel.
9. Testar a autenticação da API.
10. Validar o endpoint `/api/v1/horaserver`.
11. Realizar uma sincronização com um dispositivo de homologação.
12. Configurar backups do banco e dos anexos.
---
## Aplicativo Android em produção
### Distribuição direta por APK
Para distribuição corporativa:
* gerar o projeto em modo `Release`;
* assinar o APK com uma keystore válida;
* compilar para Android 64 bits;
* atualizar `versionCode` e `versionName`;
* testar instalação e atualização;
* hospedar o APK em endereço HTTPS ou distribuir por MDM;
* manter a keystore armazenada em local seguro;
* executar testes de regressão antes de cada liberação.
### Publicação na Google Play
Para publicação em loja:
* gerar um arquivo AAB assinado;
* utilizar um identificador definitivo de pacote;
* configurar ícones adaptativos;
* preparar screenshots;
* criar descrição curta e completa;
* disponibilizar política de privacidade;
* preencher a classificação de conteúdo;
* justificar permissões sensíveis;
* testar primeiro em distribuição interna;
* promover para teste fechado;
* publicar em produção somente após homologação;
* verificar antes de cada publicação os requisitos atuais de `targetSdkVersion` e da Google Play.
### Validações finais do aplicativo
Antes da liberação, devem ser testados:
* primeiro login;
* expiração e renovação do token;
* funcionamento offline;
* sincronização completa;
* sincronização incremental;
* criação e atualização de ordens;
* preenchimento de checklist;
* bloqueio de conclusão com pendências;
* envio de fotos;
* envio de PDFs;
* gravação e envio de áudios;
* coleta de assinaturas;
* recuperação após falha de conexão;
* atualização do banco SQLite;
* atualização do aplicativo sem perda de dados pendentes.
## Servidor, painel web e API
| Componente | Requisito |
| -------------------------- | ----------------------------------- |
| PHP | 8.1 ou superior |
| Arquitetura | MVC próprio |
| Banco de dados | MySQL 5.7+ ou MariaDB 10.4+ |
| Servidor web | Apache 2.4 ou Nginx com PHP-FPM |
| Ambiente local recomendado | XAMPP 8.1+ |
| Codificação do banco | UTF-8mb4 |
| Protocolo da API | REST com JSON e multipart/form-data |
| Autenticação da API | JWT com HMAC SHA-256 |
| Controle de versão | Git |
### Extensões PHP necessárias
```text
pdo_mysql
mbstring
json
openssl
fileinfo
```
### Recursos necessários no servidor web
No Apache:
```text
mod_rewrite
mod_headers
```
### Estrutura principal do backend
```text
Controllers/
Models/
Views/
Core/
Services/
Repositories/
database/
database/migrations/
Sourcer/storage/
docs/
```
### Configuração para desenvolvimento
É necessário criar um arquivo `.env` contendo:
* ambiente da aplicação;
* URL base;
* credenciais do banco;
* timezone;
* chave secreta da aplicação;
* configurações de armazenamento;
* limite de upload;
* credenciais do administrador técnico.
Exemplo:
```env
APP_ENV=development
APP_DEBUG=true
TIMEZONE=America/Sao_Paulo
BASE_URL=http://localhost/ordemplus/Sourcer
SCRIPT_NAME=
DB_HOST=localhost
DB_NAME=ordemplus
DB_USER=root
DB_PASS=
DB_CHARSET=utf8mb4
APP_SECRET=chave-secreta-de-desenvolvimento
MIGRATIONS_ENABLED=true
```
---
## Aplicativo mobile
| Componente | Requisito |
| -------------------------------------- | -------------------------------------------------- |
| Delphi | 11 Alexandria ou superior |
| Framework visual | FireMonkey — FMX |
| Plataforma principal | Android 64 bits |
| Arquitetura Android | `arm64-v8a` |
| Banco local | SQLite |
| Acesso ao banco | FireDAC |
| Requisições HTTP | `System.Net.HttpClient` |
| Integração REST | REST Components |
| Processamento JSON | `System.JSON` |
| Java | JDK 11 ou versão compatível com o Delphi utilizado |
| Android SDK e NDK | Instalados e configurados no Delphi |
| Sistema operacional de desenvolvimento | Windows 10 ou superior |
### Estrutura sugerida do aplicativo
```text
Models/
Controllers/
Views/
Services/
Repositories/
Sync/
DataModules/
Utils/
Assets/
```
### Recursos obrigatórios para compilação
* ícones do aplicativo;
* splash screens;
* fontes utilizadas pelo projeto;
* `AndroidManifest.xml`;
* URL da API configurável;
* banco SQLite local;
* scripts de criação e atualização do banco;
* keystore para assinatura;
* controle de versão do aplicativo.
### Permissões Android utilizadas conforme a funcionalidade
```text
INTERNET
CAMERA
RECORD_AUDIO
ACCESS_FINE_LOCATION
ACCESS_COARSE_LOCATION
READ_MEDIA_IMAGES
READ_MEDIA_AUDIO
READ_MEDIA_VIDEO
FOREGROUND_SERVICE
```
Permissões como localização, acesso às mídias, chamadas telefônicas ou execução de serviços em primeiro plano devem ser declaradas somente quando a funcionalidade correspondente estiver realmente implementada.
---
# Requisitos de deploy para produção
## Servidor OrdemPlus
| Componente | Requisito mínimo |
| ------------------------ | -------------------------------------------------------- |
| PHP | 8.1 ou superior |
| Banco de dados | MySQL 5.7+ ou MariaDB 10.4+ |
| Servidor web | Apache 2.4 ou Nginx |
| Certificado de segurança | HTTPS com TLS 1.2 ou superior |
| Extensões PHP | PDO MySQL, mbstring, JSON, OpenSSL e Fileinfo |
| Armazenamento | Espaço suficiente para fotos, PDFs, áudios e assinaturas |
| Backup | Banco de dados, arquivos e configurações |
| Timezone | `America/Sao_Paulo` |
| Codificação | UTF-8mb4 |
### Configuração mínima do `.env`
```env
APP_ENV=production
APP_DEBUG=false
TIMEZONE=America/Sao_Paulo
BASE_URL=https://seudominio.com
SCRIPT_NAME=
DB_HOST=localhost
DB_NAME=ordemplus
DB_USER=usuario_ordemplus
DB_PASS=senha-forte
DB_CHARSET=utf8mb4
APP_SECRET=chave-aleatoria-segura-com-no-minimo-32-caracteres
MIGRATIONS_ENABLED=false
SISTEMA_EMAIL=admin@seudominio.com
SISTEMA_PASSWORD_HASH=hash-bcrypt-da-senha
```
### Requisitos de segurança
* HTTPS obrigatório;
* `APP_SECRET` forte e exclusivo;
* `APP_DEBUG=false`;
* credenciais do banco com acesso restrito;
* arquivo `.env` protegido;
* diretório de anexos com permissões controladas;
* validação do tamanho e tipo dos uploads;
* sessões seguras;
* proteção CSRF;
* rate limiting no login;
* backups periódicos;
* logs de erros sem exposição de informações sensíveis.
### Permissões recomendadas
```bash
chmod 640 .env
chmod -R 755 Sourcer/
chmod -R 775 Sourcer/storage/
chown -R www-data:www-data Sourcer/storage/
```
### Etapas de implantação
1. Enviar os arquivos para o servidor.
2. Criar o banco MySQL ou MariaDB.
3. Configurar o arquivo `.env`.
4. Apontar o DocumentRoot para o diretório público.
5. Aplicar as migrations pendentes.
6. Configurar HTTPS.
7. Verificar as permissões do storage.
8. Testar o login do painel.
9. Testar a autenticação da API.
10. Validar o endpoint `/api/v1/horaserver`.
11. Realizar uma sincronização com um dispositivo de homologação.
12. Configurar backups do banco e dos anexos.
---
## Aplicativo Android em produção
### Distribuição direta por APK
Para distribuição corporativa:
* gerar o projeto em modo `Release`;
* assinar o APK com uma keystore válida;
* compilar para Android 64 bits;
* atualizar `versionCode` e `versionName`;
* testar instalação e atualização;
* hospedar o APK em endereço HTTPS ou distribuir por MDM;
* manter a keystore armazenada em local seguro;
* executar testes de regressão antes de cada liberação.
### Publicação na Google Play
Para publicação em loja:
* gerar um arquivo AAB assinado;
* utilizar um identificador definitivo de pacote;
* configurar ícones adaptativos;
* preparar screenshots;
* criar descrição curta e completa;
* disponibilizar política de privacidade;
* preencher a classificação de conteúdo;
* justificar permissões sensíveis;
* testar primeiro em distribuição interna;
* promover para teste fechado;
* publicar em produção somente após homologação;
* verificar antes de cada publicação os requisitos atuais de `targetSdkVersion` e da Google Play.
### Validações finais do aplicativo
Antes da liberação, devem ser testados:
* primeiro login;
* expiração e renovação do token;
* funcionamento offline;
* sincronização completa;
* sincronização incremental;
* criação e atualização de ordens;
* preenchimento de checklist;
* bloqueio de conclusão com pendências;
* envio de fotos;
* envio de PDFs;
* gravação e envio de áudios;
* coleta de assinaturas;
* recuperação após falha de conexão;
* atualização do banco SQLite;
* atualização do aplicativo sem perda de dados pendentes.