Implementação de Sistema de Comércio de Móveis com Spring Boot, Vue e MySQL

Estrutura Técnica

Backend com Spring Boot

Spring Boot é um framework open source que simplifica o desenvolvimento de aplicações baseadas em Spring. Seguindo o princípio "convenção sobre configuração", oferece padrões pré-definidos que permitem aos desenvolvedores focar na lógica de negócios. O framework automatiza configuarções através de dependências do projeto e oferece ferramentas como o Spring Initializr para bootstrap de projetos.

Frontend com Vue.js

Vue.js destaca-se pela simplicidade e curva de aprendizado suave. Oferece binding bidirecional de dados através de diretivas como v-model, sincronizando automaticamente o modelo com a visualização. O ciclo de vida dos componentes inclui hooks como created(), mounted() e updated() para controle granular do comportamento da aplicação.

Análise de Viabilidade

A viabilidade técnica foi confirmada através do uso de Java e ecossistema Spring. A viabilidade econômica considerou o custo-benefício entre desenvolvimento e retorno operacional. A viabilidade operacional focou na experiência do usuário final e integração com fluxos de trabalho existentes.

Testes do Sistema

Os testes visaram identificar falhas e validar conformidade com requisitos. Foram aplicados testes funcionais baseados em casos de uso, com ênfase na experiência do usuário.

Testes de Autenticação

Dados de Entrada Resultado Esperado Resultado Obtido
Usuário: admin, Senha: admin123, Código: correto Acesso concedido Acesso bem-sucedido
Usuário: admin, Senha: errada, Código: correto Erro de autenticação Senha inválida

Testes de Gestão de Utilizadores

Cenário Comportamento Esperado
Registo sem nome de utilizador Bloqueio com alerta de campo obrigatório
Edição de perfil existente Atualização imediata dos dados

Design do Banco de Dados

Campo Tipo Restrições
codigo INT PRIMARY KEY
data_criacao TIMESTAMP DEFAULT CURRENT_TIMESTAMP
referancia_pedido VARCHAR(64) NOT NULL

Exemplo de Implementação

@RestController
@RequestMapping("/api")
public class ControladorAPI {

    @Autowired
    private ServicoConfiguracao configService;
    
    @GetMapping("/localizacao")
    public ResponseEntity<Map<String, String>> obterLocalizacao(
            @RequestParam String longitude, 
            @RequestParam String latitude) {
        
        String apiKey = configService.obterChaveAPI("baidu_maps");
        Map<String, String> dadosLocal = ServicoGeo.obterCidade(apiKey, longitude, latitude);
        
        return ResponseEntity.ok(dadosLocal);
    }
    
    @PostMapping("/comparar-faces")
    public ResponseEntity<ComparacaoFacial> compararFaces(
            @RequestParam String imagem1, 
            @RequestParam String imagem2) {
        
        ClienteFacial cliente = ServicoFacial.getInstancia();
        ComparacaoFacial resultado = cliente.comparar(imagem1, imagem2);
        
        return ResponseEntity.ok(resultado);
    }
}

Estrutura do Banco de Dados

CREATE TABLE cliente (
  id BIGINT AUTO_INCREMENT PRIMARY KEY,
  data_criacao TIMESTAMP DEFAULT CURRENT_TIMESTAMP,
  nome_usuario VARCHAR(200) UNIQUE NOT NULL,
  senha VARCHAR(200) NOT NULL,
  celular VARCHAR(20)
);

CREATE TABLE mensagem (
  id BIGINT AUTO_INCREMENT PRIMARY KEY,
  conteudo TEXT NOT NULL,
  resposta TEXT,
  usuario_id BIGINT NOT NULL
);

CREATE TABLE acesso_token (
  id BIGINT AUTO_INCREMENT PRIMARY KEY,
  token VARCHAR(200) NOT NULL,
  expiracao TIMESTAMP,
  usuario_id BIGINT NOT NULL
);

Tags: SpringBoot vue MySQL Testes de Software Design de Banco de Dados

Publicado em 6-28 22:34