Aplicação de Gestão de Encomendas

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

Projeto Aplicação de Gestão de Encomendas

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

Foi desenvolvido com o objetivo de permitir a consulta das encomendas atuais, que encomendas ainda não estão completadas, prontas para entrega ou já entregues, a quantidade de produtos específicos necessários para satisfazer as encomendas atuais, 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 Clientes, Produtos e Encomendas para uma base de dados;
  • Consultar encomendas de um cliente específico;
  • Consultar encomendas de um produto específico;
  • Consultar as quantidades de todos os produtos incluídos atualmente em encomendas;
  • Atualizar o estado da encomenda(quando uma linha de uma DataTable é premida continuamente);
  • 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

  • Ambos os esquemas de ecrã vertical e horizontal são suportados, pois o esquema horizontal melhora significativamente a visualização da informação numa DataTable;
  • Como a largura de um smartphone comum pode não ser suficiente para mostrar toda a informação de uma linha de uma DataTable, uma alternativa foi implementada onde premir na linha mostra toda a informação da mesma;
  • Todas as procuras de clientes/produtos 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'

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