Aplicação de Gestão de Membros

Dev
React Native
Expo
Aplicação de Gestão de Membros Cover

Projeto de Aplicação de Gestão de Membros

Projeto pessoal criado para auxiliar a gestão de membros.

Foi desenvolvido com o objetivo de permitir a criação de um perfil de membro, verificar a informação de um membro, entre outras funcionalidades, de forma rápida e fácil, assim como tornar toda esta informação disponível em qualquer lugar, armazenando-a numa base de dados na cloud.

Funcionalidades

Funcionalidades Principais

  • Adicionar novos membros a uma base de dados;
  • Consultar a informação de um membro específico;
  • Editar a informação de um membro;
  • Apagar membros;
  • Importar/Exportar informação de membros para/de ficheiros .csv de forma a facilitar a partilha e/ou edição;

Funcionalidades Gerais

  • Autenticação para permitir o acesso da informação apenas a contas aprovadas (a habilidade de criar uma conta seria removida numa implementação real, ou necessitar a verificação/aprovação da conta antes de permitir o acesso);
  • Mudar a password;
  • Tradução para várias línguas;
  • Modo claro/escuro;
  • Verificação de atualizações (como isto é um projeto pessoal, publicar nas App Stores não é viável, logo um sistema de atualizações diferente foi implementado, não possível para iOS);

Notas Técnicas

  • Procuras de membros têm uma implementação de “fuzzy searching” com uma lista para ajudar o utilizador a encontrar o membro desejado;
  • Verificações de atualizações foi implementado por guardando as APKs em Firebase Storage e depois verificando a versão atual da aplicação com as versões das APKs guardadas, fazendo o download e atualizando se uma versão mais recente estiver disponível (isto não é possível no iOS, sendo que este não permite sideloading);
  • Como todas as funcionalidades cloud requerem a Firebase, em qualquer reprodução deste projeto vai requerir a configuração de um projeto Firebase (mais especificamente dos módulos descritos na seção seguinte) e a adição de ambos os ficheiros com configurações (google-services.json and GoogleService-Info.plist) ao projeto;
  • ‘Environment variables’ são usadas, portanto, em qualquer reprodução deste projeto irá requerer que elas existam no ficheiro .env (para a execução local) e/ou Expo (ou outra framework), tal como o exemplo seguinte:
# Firebase Config Files
GOOGLE_SERVICES_JSON='./google-services.json'
GOOGLE_SERVICES_PLIST='./GoogleService-Info.plist'

# URL for placeholder profile picture, stored in Firebase Storage
EXPO_PUBLIC_PLACEHOLDER_PICTURE_URL=xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx

Tech utilizada

Este projeto foi desenvolvido com a React Native Expo framework, usando Typescript, CSS e Javascript.

Todas as funcionalidades cloud usam Firebase. Os módulos principalmente usados são:

Alguns do ‘pacotes’ usados principalmente são:

  • Fuse.js para ‘fuzzy searching’;
  • i18next para a implementação de traduções;
  • React Native Paper para a customização de temas e aparência;
  • Todos os ‘pacotes’ estão presentes em package.json;

Desenvolvido por