Aplicacao Desktop Java - Registro e Desbloqueio de novo Cliente

Bom dia a todos,

Para a faculdade, preciso programar uma aplicacão Desktop Java (não pode ser uma aplicacão web). Será um E-Commerce muito simples. Haverá um servidor ao qual clientes e funcionários podem se conectar via Sockets.

Eu estou dúvida sobre como posso realizar o seguinte requisito:
“Os clientes recém-cadastrados devem ser ativados uma vez por um funcionário”

Ou seja, um cliente clicará no botão “Cadastrar” e seus dados serão salvos no banco de dados, mas ele só poderá se logar de novo na aplicacão se um funcionário liberar.

A parte do cadastro eu já sei como fazer (as infos serão salvas num db SQLite), mas essa “dependência” cliente-funcionário eu não sei por onde começar.

Eu gostaria de indicações de leitura ou sugestões sobre conceitos que poderiam ser úteis para uma possível implementacão. Eu ainda não comecei a programar ainda.

Agradeco desde já qualquer ajuda!

Conceitualmente, um modo de obter isso é ter um campo extra no cliente (ex: ativo, etc) que terá o valor false (ou equivalente) quando ele se cadastrar. Para os funcionários, você pode ter uma listagem (ou pode usar a listagem de clientes, se ela já existir) onde ele vê todos os clientes que estão com ativo=false, e o funcionário pode clicar em um botão ou opção para ativar ou desativar esse cliente. Adicionalmente, você pode querer adicionar campos para gravar quem realizou a ativação (id/código do funcionário e data/hora).

Quando o cliente tentar se logar, além de usuário e senha, você também verifica se esse campo está false e, caso esteja, emite algum tipo de aviso (ex: sua conta ainda não foi ativada).

Abraço.

2 curtidas

É exatamente isso, muito obrigada!
Agora, para que o funcionário seja notificado, ele tem que ficar esperando (escutando no socket) por algo como uma mensagem de “novo registro”? E entao esse funcionário teria que fazer uma chamada de método remota para settar o atributo do cliente?

Pode ou não ser assim, isso fica a seu critério. Isso é um requisito?

Sim, da mesma forma que eu suponho que outras chamadas do sistema sejam feitas (inclusão e edição do cliente e funcionário, por exemplo).

Note que eu estou respondendo conceitualmente. Se você tem dúvidas mais específicas ou de implementação, então precisa trazer essas perguntas.

Abraço.

2 curtidas

sim, ao final terá que ser uma aplicacao server/client com comunicacao via socket!

Muito obrigada pela resposta!!