Desenvolvimento - leocelente/nexus GitHub Wiki

Stack

Interface de Usuário

O projeto é feito em JavaScript usando o framework React. Foram construidos Componentes genéricos para visualização de dados e Paginas em layout de duas colunas mantendo um padrão visual de uma com a visualização e outra com opções de seleção. Framework Bootstrap é utilizado para estilização.

Para gerenciar a renderização em função de eventos escolhi a biblioteca redux para eventos, em conjunto com a extensão redux-thunk para disparar eventos assíncronos como as buscas ao banco de dados.

Banco de Dados

Todas as informações que podem ser alteradas no uso da plataforma estão estruturadas em um banco de dados NoSQL disponibilizado pelo serviço Firebase Firestore do Google. Pessoalmente acho a estrutura de dados bem definida o suficiente para usar um SQL, mas já é legado de desenvolvimento a esse ponto.

Hospedagem

Atualmente usa-se o serviço gratuito do Netlify que permite hospedar o site e sincronizar a versão publica com o repositório do GitHub usando Continuous Integration (CI) e Continuous Delivery (CD), ou seja todo push a master branch do repositório remoto causa uma atualização no site.

Diretório e Arquivos

Dentro da pasta src/

  • /api: Encapsula e Modulariza as rotinas de comunicação com o Banco de Dados Firestore
  • /components: Arquivos React .jsx contem os blocos que constituem a plataforma
  • /components/general: Componentes mais genericos, na maioria dos casos encapsulam componentes do Bootstrap
  • /components/: Componentes espeçificos para essa página, geralmente derivados dos /general
  • /components/charts: Componentes que utilizam a biblioteca de Gráficos para construir as visualizações
  • /css: Estilos e biblioteca Bootstrap
  • /images: Imagens de patrocinadores e membros do projeto
  • /redux: Estrutura para uso da biblioteca Redux
  • /redux/actions: Constantes para identificar eventos e as funcões relacionas aos eventos
  • /redux/reducers: Definem as transformações do estado e o estado inicial
  • /redux/actions: Encapsula os estados definidos pelos reducers e adiciona uma Dev Tool
⚠️ **GitHub.com Fallback** ⚠️