Projeto para software.
Segue as especificações, mas detalhes e dúvidas é só perguntar:
Requisitos:
• Implementar o software utilizando Electron;
• Rodar em Windows, incluindo versões mais recentes do sistema operacional;
• Ter a opção de atualização automática deste software (verificar na inicialização do programa e a cada X segundos);
• O software deve ter um instalador embutido, que ao abri-lo, detecta se já está instalado no sistema;
• Oferecer a opção para iniciar o software junto a inicialização do sistema operacional;
• Oferecer impressão de tickets em uma impressora térmica não-fiscal utilizando padrão ESC/POS;
• Detectar a impressora desligada e emitir um aviso;
• Detectar a impressora sem papel e emitir um aviso;
• Aceitar a impressora em qualquer porta USB conectada;
• Imprimir imagem no ticket;
• Verificar a cada X segundos por novos pedidos, caso tenha algum novo, marca o pedido como recebido (requisição na API) e imprime automaticamente nas impressoras listadas para impressão automática, caso tenha imprimido com sucesso, informa o servidor com uma requisição na API;
• O programa deve rodar ao lado do relógio do Windows (TrayIcon);
• Oferecer a configuração do volume mínimo da saída de som para os avisos sonoros, de 0% a 100%;
--- O visual deve ser legal! :D
Funcionamento:
Ao abrir o software, é necessário logar com um e-mail e senha (oferecer a opção para memorizar o login, selecionada por padrão), ao logar será retornado, de uma API REST em formato JSON, o token da sessão. Com o token, será feita outra requisição para API que retornará as configurações deste usuário logado e alguns parâmetros (variáveis com nome e valor) que serão utilizados no software, como por exemplo: Emitir aviso sonoro ao receber um pedido.
Após logado, será listado os estabelecimentos deste usuário, se o usuário conter somente um estabelecimento, pula esta tela. Caso o usuário tenha mais de um estabelecimento, abre uma lista para selecionar, com a opção de marcar o estabelecimento como padrão (no qual selecionará este estabelecimento automaticamente na próxima execução e pulará esta tela).
Se for a primeira execução do programa ou detectar que nenhuma impressora está instalada, abre o processo de instalação de impressora, no qual o software detecta uma impressora térmica plugada no USB e a instala para ser utilizada, a instalação da impressora deve enviar uma requisição para a API informando o cadastro da impressora, sendo necessário informar um nome que será utilizado para identificação da impressora, pois temos clientes que trabalham com impressoras tanto no balcão como na cozinha, por exemplo; E, também, um checkbox com padrão habilitado para imprimir automaticamente nesta impressora (no qual fará a impressão automática ao receber um pedido). O retorno desta requisição será a id da impressora.
Observações:
As rotas para este software na API ainda não foram criadas, serão implementadas em paralelo com o projeto conforme a demanda.
Valeu!