/bexup-challenge

bexup-challenge made with vue 3 and pinia

Primary LanguageVue

BexUp Project Manager

Teste técnico de front-end desenvolvido com Vue 3.

Pínia ^2.1.6
Vite ^4.4.9
Vue 3.3.4

Decisões tomadas para este projeto

  1. Gerenciamento de estado : Pinia
  • Suporte Oficial do Vue 3 Embora o Vuex seja uma biblioteca popular, o Pinia é oficialmente recomendado pelo Vue.js para uso com o Vue 3.
  • Gerenciamento de Estado mais Flexível Pinia oferece uma variedade de recursos, como getters, setters, ações e efeitos, que permitem um gerenciamento de estado mais flexível e organizado e ao mesmo tempo elimina a necessidade de definir mutações e actions separadas, simplificando a estrutura da loja.
  • Performance Melhorada: Pinia é altamente otimizado para o Vue 3, aproveitando suas APIs reativas internas. Isso pode levar a um desempenho melhor do que o Vuex, especialmente em aplicativos de larga escala.
  • Menos Acoplamento: A estrutura do Pinia promove um acoplamento mais baixo entre os componentes e o estado, tornando seu código mais fácil dar manuntenção e integrar com arquitetura modular.
  1. Framework CSS: Bulma Optei pelo BulmaCSS por ele fornecer um conjunto de classes CSS predefinidas que facilita a criação rápida de layout e responsividade, e economizando tempo de desenvolvimento.

  2. Autenticação de usuários e API: Firebase e Firestore Desenvolvi a autenticação de usuários utilizando o Firebase, e construi um banco de dados noSQL utilizando Firestore para alimentar a aplicação. Tomei a decisão de utilizar o Firestore pelo seguintes motivos abaixo:

  • Autenticação Integrada: O Firestore é integrado com o sistema de autenticação Firebase, facilitando o controle de acesso aos dados com base nos perfis de usuário.
  • Atualizações em tempo real: O Firestore fornece sincronização em tempo real de dados, o que significa que as atualizações no banco de dados são refletidas automaticamente em todos os dispositivos conectados.
  • Escalabilidade: O Firestore é altamente escalável, tanto horizontal quanto verticalmente.

Estrutura do Firestore o Firestore trabalha com documentos, um documento contém coleções e subcoleções, a estrutura do documento deste projeto foi construído da seguinte forma.

  • Criei um documento chamado users utilizando o userID do usuário logado como ID do documento

  • Dentro do documento de users criei um documento chamado projects que armazena uma coleção de documentos

  • Cada projeto contéum id unico e é a key para acessarmos o valores da coleção.

exemplo visual:

Como rodar o projeto localmente

1 - instale as dependências

npm  install

Compile and Hot-Reload for Development

2 - utilize o comando abaixo para rodar o projeto localmente

npm  run  dev