Skip to content

anaisateodoro/todolist

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

7 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Curso Online de Java [Rocketseat]

📓 Período de 09 a 13/10/2023 📌

🚧 React Select 🚀 Em construção... 🚧


Descrição do projeto 💻

Aprendizado no desenvolvimento de aplicação web do To-do List em Java com a mentoria de 💝 Daniele Leão.

Nesta semana, 👩 tive a oportunidade de praticar os fundamentos essenciais para um projeto com o uso do Spring Boot com a integração com um banco de dados e por fim noções básicas de autenticação da aplicação.


To-do List 🚀

  • Semana do Curso Online de Java da Rocketseat.
  • Praticando meus conhecimentos em requisições HTTP com a criação de uma aplicação web To-do List.
  • ✨Link de acesso: ToDoList

aula02


Conteúdos praticados 📁

  • Aula 1 - Construção back-end de uma aplicação de To-Do List

    • Qual a função principal do Maven no desenvolvimento da aplicação do projeto;
    • Gerenciar dependências e fazer o tal build;
    • Diferenciar entre o empacotamento via JAR e via WAR em uma aplicação Spring Boot com Spring Initializr;
    • O propósito de uma controller no contexto do Spring Boot;

  • Aula 2 - Integração com o Banco de Dados

    • Ao definir um atributo de uma classe como "private", ele só pode ser acessado pela própria classe e, é necessário usar métodos públicos na classe que retornam ou modificam tal atributo.
    • Os métodos "getters" e "setters" em Java são usados para recuperar e definir valores de atributos de uma classe, respectivamente.
    • A annotation @RequestBody no Spring Boot indica que os dados da requisição estarão no corpo da mensagem e serão convertidos para o objeto especificado no parâmetro do método.
    • O Lombok é uma biblioteca que facilita a criação de getters e setters, entre outros métodos, no Java.
    • O Spring Data JPA é uma biblioteca de persistência que facilita a comunicação com o banco de dados em uma aplicação Spring Boot.

  • Aula 3 - Implementando segurança nos dados do usuário

    • Aspectos de segurança e estruturação para garantir um acesso seguro a sua aplicação.
    • Utilização da biblioteca Bcrypt na aplicação.
    • Método doFilter.
    • Header HTTP.

  • Aula 4 - Atualizando tarefas e validação de rotas

    • O servlet path deve ser igual a /tasks.
    • Finalidade de utilizar o método setAttribute no contexto do filtro e do controlador na aplicação.
    • Utilização do método findByIdUser no repositório de tarefas, passando o ID do usuário como parâmetro.
    • O ID da tarefa é passado como um parâmetro de caminho (path variable) na URL.

  • Aula 5 - Deploy do Back-End

    • Usando a validação do ID do usuário no método de atualização de tarefas.
    • Implementação de um tratamento global de exceções usando @ControllerAdvice para mensagens de erro específicas.
    • Uso do Spring DevTools melhora a experiência de desenvolvimento.
    • Criado um arquivo Dockerfile para utilizar o Render.com
    • Definição das configurações do projeto e criar uma imagem Docker da aplicação.

Como usar o ToDoList? 💻


- Pré-Requisitos: 🔍 Java 17, Maven, VSCode, Rest Client.
- Testes: Postman.

Instalação

Faça um clone do repositório para seu PC:

git clone https://github.com/anaisateodoro/todolist

Edite e modifique a sua maneira 😽;

🛠️ Rodar mvn clean install para instalar as dependências

🛠️ Rodar mvn spring-boot:run para subir a aplicação

🛠️ A aplicação estará disponível na port 8080


Tecnologias:



Como contribuir 🙆‍♀️

☕ A sugestão é sempre bem-vinda! Fique à vontade de propor mudanças...

  • Faça um fork desse repositório;
  • Cria uma branch com a sua feature: git checkout -b minha-feature;
  • Faça commit das suas alterações: git commit -m 'feat: Minha nova feature';
  • Faça push para a sua branch: git push origin minha-feature.

💡 Depois que o merge da sua pull request for feito, você pode deletar a sua branch.



🔗 Praticado com ♥ por Anaísa Mayara Teodoro com a mentoria de Daniele Leão ♥ .

Releases

No releases published

Packages

No packages published

Languages