📚 Pré-requisitos Teóricos: este projeto aplica conceitos ensinados em Matriz de 20 Capítulos de Aplicações Full Stack (este módulo). Recomendado revisar antes de começar.

📝 Lista de Tarefas 08 - Guia Completo Full Stack (Spring Boot + React)

Bem-vindo ao guia definitivo para desenvolver uma aplicação web moderna utilizando Spring Boot no backend e React no frontend. Este projeto foi desenhado para ser didático, robusto e seguir as melhores práticas de engenharia de software.`

🎯 Objetivos do Projeto

—`

🛠️ Stack Tecnológica

Backend (API)

Frontend (Web)

—`

🚀 Guia de Configuração e Execução

Pré-requisitos

1. Configurando o Backend

O backend possui dois perfis configurados: dev e production.

  1. Navegue até a pasta backend:
    cd backend
    
  2. Executar em Modo de Desenvolvimento (H2): O perfil dev é o padrão. Ele usa um banco de dados em memória que é recriado a cada reinicialização.
    ./mvnw spring-boot:run
    
    • A API estará disponível em: http://localhost:8080
    • Console H2: http://localhost:8080/h2-console
    • Swagger UI: http://localhost:8080/swagger-ui.html
  3. Executar em Modo de Produção (PostgreSQL): Para usar o PostgreSQL, altere o perfil no arquivo application.properties para production ou passe via linha de comando:
    ./mvnw spring-boot:run -Dspring-boot.run.profiles=production
    

    Certifique-se de ter um banco de dados chamado listadetarefas_db criado no seu PostgreSQL local.`

2. Configurando o Frontend

  1. Navegue até a pasta frontend:
    cd frontend
    
  2. Instale as dependências:
    npm install
    
  3. Inicie o servidor de desenvolvimento:
    npm run dev
    
    • O frontend estará disponível em: http://localhost:5173

—`

📚 Estrutura do Projeto

Backend (/backend)

A estrutura segue o padrão MVC (Model-View-Controller) adaptado para API REST:

Frontend (/frontend)

A estrutura segue o padrão de componentes do React:

—`

📝 Passo a Passo de Desenvolvimento (Resumo)

Se você quiser recriar este projeto do zero, siga estes passos:

  1. Crie o Backend:
    • Use o Spring Initializr para gerar o projeto com Web, JPA, H2, Lombok.
    • Crie a entidade Tarefa.
    • Crie o repositório TarefaRepository.
    • Crie o serviço TarefaService com as regras de negócio.
    • Crie o controlador TarefaController para expor os endpoints.
    • Configure o application.properties.
  2. Crie o Frontend:
    • Use npm create vite@latest frontend -- --template react.
    • Instale axios e react-router-dom.
    • Configure o api.js para apontar para localhost:8080.
    • Crie os componentes e páginas para listar e criar tarefas.
    • Estilize com CSS moderno.
  3. Integre:
    • Certifique-se de habilitar o CORS no Spring Boot (SecurityConfig.java) para permitir requisições do frontend (localhost:5173).

—`

🤝 Contribuição

Sinta-se à vontade para fazer um fork deste projeto e enviar Pull Requests com melhorias!


—`

🚀 Como Executar no Laboratório

1. Abra o terminal na pasta deste projeto

No seu editor/IDE, abra a pasta deste projeto (File > Open Folder) ou navegue via terminal:

cd fullstack_tarefas_08_spring_react

2. Execute a aplicação e os testes

./mvnw spring-boot:run
# No frontend: npm install && npm run dev

[!TIP] Dica para execução a partir da raiz do repositório: Se você abriu o repositório completo no VS Code, basta navegar até a pasta antes de executar: cd proj_aplicacoes_full_stack/projetos/fullstack_tarefas_08_spring_react