A ideia foi criar uma single page aplication com funcionalidades de um registro de leitura, marcando livros que já foram ou não lidos, adicionando ou excluindo livros, filtrando-os por categoria, editando o progresso de leitura, dentre outras. A proposta veio do curso "The Odin Project". A princípio, o objetivo era criar uma aplicação apenas com a as funcionalidades básicas, como instruia o curso, mas vi potencial para treinar e fixar várias habilidades de HTML, CSS e JS ao implementar mecanismos um pouco mais complexos.
- Criação de livros com imagens e animações
- Armazenamento local dos livros
- Filtro de livros por categoria
- Marcação de livros como "lidos" ou "não lidos"
- Exclusão dos livros
- Criação dinâmica de paginação
- Edição das informações de livros já criados
- Visualização das informações do livro
- HTML
- CSS
- Vanilla JavaScript
O projeto foi incrível para aprender um caminhão de coisas, conhecimentos valiosos que com certeza serão de grande utilidade para projetos futuros. Listo alguns conhecimentos adquiridos e aprimorados:
- Uso do localstorage, parse e stringify
- Module pattern, closure e IIFEs
- Manipulação da DOM sem o uso de frameworks
- Fixação dos aprendizados quanto a map e filter
- Criação de modais
- Animações CSS
- Uso do flexbox
- Criação de paginação dinâmica
- Aparecimento e desaparecimento de elementos da DOM
- Trabalho simultâneo com a DOM e com os dados armazenados no localstorage
- Uso de Intersection Observers
- Uso do dataset e formas de selecionar elementos por meio do dataset
- Alteração de comportamento da página, por meio do JavaScript, com base no tamanho da tela do usuário
- REGEX
- Formas de otimizar o código para lidar com grandes quantidades de dados armazenados
- Maneiras de tornar o código mais legível (nesse caso, colocando cada funcionalidade dentro de sua própria função)
O projeto possui potencial para receber diversas adições que aumentarão sua funcionalidade e otimizarão sua execução. Algumas delas serão:
- Barra de progresso de leitura
- Barra de pesquisa de livros por nome e autor
- Filtragem por livros lidos
- Filtragem por data de leitura
- Criação de metas de leitura
- Lista de livros a serem lidos
- Desafios de leitura
- Modo LITE
- Melhorias de design
- Gráficos de progresso
- Timer de leitura
- Otimização de carregamento dos cards dos livros
- Recriar a aplicação com REACT