Mais uma etapa concluída, agora com a implementação do Firebase, onde foi possível realizar a autenticação do usuário, salvar os jogos favoritos e as avaliações feitas pelo usuário. Além disso, foi possível ordenar os jogos por avaliação e filtrar os jogos favoritos. Porém assim como na etapa anterior eu não parei por aqui, e implementei algumas funcionalidades extras e recursos que ao meu ver são importantes para o usuário.
- [✅] Utilizar Firebase para realizar autenticação usando email/senha
- [✅] Ter um 🩶 para o usuário favoritar o jogo diretamente na lista, ficando vermelho quando marcado
- [✅] Salvar no firebase os jogos favoritos do usuário, no realtime ou firestore
- [✅] Ter um botão “Favoritos” que apresenta apenas jogos favoritados, permitindo ainda buscar e filtrar estes jogos
- [✅] Ao lado do coração, ter ★★★★ para o usuário avaliar o jogo, podendo marcar de uma em uma
- [✅] Ter uma forma de ordenar por avaliação, vendo os melhores (ou piores) primeiro, clicando novamente para inverter a ordem.
- [✅] Ao carregar a interface, deixar o ❤️ vermelho para os itens favoritos e as ⭐️ amarelas nos itens avaliados
- [✅] Ao acessar sem estar autenticado, os ícones 🩶 e ★ deverão estar visíveis, mas ao clicar irá solicitar a autenticação
- [✅] Ao obter os jogos da API, já apresentar, sem deixar o loading enquanto se obtém os dados do firebase, até porque, o firebase devolverá os dados mais rapidamente
- [✅] A autenticação deve acontecer na rota
/auth/
usando o provedor “E-mail/senha” do firebase, onde o usuário poderá criar uma conta ou acessar a conta já existente (se mantendo apenas nesta rota) - [✅] Escolher um item para aplicar uma animação com CSS, pode ser ao favoritar, ou avaliar, ou quando os itens surgirem
- [✅] Publicar seu projeto online para testarmos (na mesma url de antes)
- [✅] Opção de atualizar as informações do usuário, como avatar, nome, email e senha.
- [✅] Opção de deletar a conta do usuário.
- [✅] Gerenciamento de sessão via serve-side rendering e cookies HttpOnly.
- [✅] Página de comunidade onde é possível ver quais os games que a comunidade mais tem curtido.
- [✅] Validação de formulários com React-Hook-Form e Zod.
- [✅] Usando pattern de composição de componentes.
- [✅] Firebase-Admin para gerenciamento de usuários nas route handlers do Next 13.
- [✅] Upload de arquivos com Cloudinary (Avatar do usuário)
- [✅] Uso de debounce para evitar filtragens desnecessárias.