Voltar para os desafios
Dev Pleno
Spring Boot
Destaque
0 submissões

Desafio: Full Stack com Paginação

Crie uma aplicação full stack simples, mas completa, que lista produtos com suporte a paginação no backend e navegação interativa no frontend.

Spring
Java

Criado em 26 de dezembro de 2025

Sobre o Desafio

Crie uma aplicação full stack simples, mas completa, que lista produtos com suporte a paginação no backend e navegação interativa no frontend.

Este desafio é ideal para quem está estudando desenvolvimento web com Spring Boot (Java) no backend e HTML + JavaScript puro no frontend, com um toque de integração real entre as camadas.


📦 Contexto

Imagine que você trabalha em uma pequena empresa e foi encarregado de criar uma interface simples para listar os produtos cadastrados em um banco de dados. O problema é que a base de dados já conta com centenas de registros, então a ideia de listar "tudo de uma vez" está fora de cogitação.

Seu objetivo é:

Desenvolver um backend paginado usando Spring Boot + JPA, e um frontend navegável que se comunica via API REST.


🎯 Objetivo

O desafio consiste em implementar (ou entender e adaptar) a seguinte estrutura:

Backend (Java + Spring Boot):

  • Modelo Product persistido via JPA

  • DTO para expor apenas name e price

  • Repositório com JpaRepository

  • Serviço que aplica um limite de paginação de até 100 itens por página

  • Controller REST acessível via /api/v1/product

  • Classe PageResponse<T> que encapsula as informações de paginação no retorno

Frontend (HTML + JavaScript):

  • Página simples que:

    • Lista produtos vindos da API

    • Exibe os campos name, price e createdAt

    • Permite navegação entre páginas com botões "Anterior" e "Próxima"

    • Atualiza dinamicamente a interface a cada mudança de página


🧪 Requisitos Técnicos

Banco de Dados:

  • PostgreSQL

  • Nome do banco: produtos

  • Credenciais padrão: postgres / manager

⚠️ Lembre-se de rodar o PostgreSQL localmente e criar o banco manualmente antes de iniciar a aplicação.

Configuração esperada do application.properties:

spring.datasource.url=jdbc:postgresql://localhost:5432/produtos
spring.datasource.username=postgres
spring.datasource.password=manager
spring.jpa.hibernate.ddl-auto=update
spring.jpa.show-sql=true
spring.jpa.properties.hibernate.dialect=org.hibernate.dialect.PostgreSQLDialect

Enviar Sua Solução
Compartilhe sua solução para este desafio. Preencha o formulário abaixo com seus dados e o link da sua solução.

Cole o link da sua solução (GitHub, CodePen, CodeSandbox, etc.)