Início Profile Projeto
Avatar de

Matheus Ricardo Uihara Zingarelli

Mochila de viagem

  • html
  • css
  • javascript

What-to-pack List 🎒

Veja esta página em português

A website in which is possible to add/remove/update items in a list, so you don't forget what to put in your backpack before traveling.

🪧 Vitrine.Dev
Nome Mochila de viagem
🏷️ Tecnologias html, css, javascript
🚀 URL https://what-to-pack-list.vercel.app
🔥 Course https://www.alura.com.br/curso-online-javascript-web-armazenando-dados-navegador

Project details

You need to fill in the form with the item's name and quantity and click on "Save". The item will then be added to a list that appears to the right of the screen (or below the backpack, if you're viewing the website in your phone). If you try to insert an item that is already on the list, the item will be updated in the list with the new quantity.

Every item in the list has a red button. When clicked, the item will be removed from the list.

The list will still be available even if you close your browser.

gif of adding and removing items in the backpack

HTML and CSS content were already created prior to the beginning of the course. We developed the JavaScript file and made some modifications to HTML and CSS when needed.

Credits

This project was developed in a course from Alura called "JavaScript na Web: armazenando dados no navegador" (JavaScript on the Web: storing data in your browser), where we learn how to use Local Storage to persist data in the browser.

The picture for the backpack was created by Tricia Katz using only CSS. Amazing work!

Instructor: Pedro Marins.

What we learned

We use local storage to persist data in the browser:

    localStorage.setItem(key, value) //add JSON data to Local Storage
    localStorage.getItem(key) //get JSON data from Local Storage

Whenever the page is loaded, we get data from local storage or create an empty array if no data is available. This array will hold every item in the "what-to-pack list" and is used to interact with data and the local storage, by using methods such as JSON.parse(), JSON.stringify(), find(), findIndex(), push() and splice().

We also manipulate the DOM to add/remove/update items on screen, by using methods such as querySelector(), createElement(), appendChild() and remove().

Additional feature: responsiveness

As an additional feature, I added specific styles for screens up to 940px (tablet) and up to 425px (mobile), using media queries.


Detalhes do projeto

Um site em que é possível adicionar, remover e atualizar itens em uma lista (estilizada como uma mochila), para que você não se esqueça do que precisa levar para uma viagem.

Há um formulário com dois campos a serem preenchidos: o nome e a quantidade de um item. Após clicar em "Save", o item será adicionado a uma lista que irá aparecer no lado direito da tela (ou abaixo, caso esteja vendo o site em uma tela de celular). Ao tentar inserir um item que já esteja na lista, ele será atualizado com a nova quantidade informada.

Todos os itens na lista possuem um botão vermelho que, quando clicado, remove este item da lista.

Os dados da lista são salvos localmente, então eles continuarão aparecendo em seu navegador mesmo ao fechá-lo.

gif mostrando adição e remoção de itens da mochila

Os conteúdos em HTML e CSS foram disponibilizados pelo curso, mas fiz algumas modificações necessárias para adicionar novas funcionalidades e tornar a página responsiva para diferentes tamanhos de tela. O foco do curso foi desenvolver a parte de JavaScript.

Créditos

Este projeto foi desenvolvido em um curso de JavaScript da Alura chamado "JavaScript na Web: armazenando dados no navegador", em que aprendia a utilizar o "Local Storage" do navegador para persistir dados.

A imagem da mochila foi criada pela Tricia Katz usando apenas CSS. Ficou incrível!

Instrutor do curso: Pedro Marins.

O que aprendemos

Nós utilizamos o objeto "localStorage" para persistir dados no navegador:

    localStorage.setItem(key, value) //add JSON data to Local Storage
    localStorage.getItem(key) //get JSON data from Local Storage

Toda vez que a página é carregada, obtemos dados do local storage ou, caso não haja dados, criamos um array vazio. O array irá armazenar todos os itens da lista e será o meio de transitar os dados no local storage, utilizando métodos como JSON.parse(), JSON.stringify(), find(), findIndex(), push() e splice().

Também manipulamos o DOM para adicionar, remover e atualizar os itens na tela, usando métodos como querySelector(), createElement(), appendChild() e remove().

Funcionalidade adicional: responsividade

Como funcionalidade adicional, eu também criei estilos de CSS específicos para telas até 940px (tablet) e até 425px (celular), utilizando media queries.