Documento de Arquitetura
O EuPescador é um aplicativo mobile (para os pescadores) e web (para administração) cuja finalidade principal é permitir a criação, edição, validação e exportação de relatórios de campo sobre espécies de peixes nativas do estado do Tocantins, Brasil. O objetivo principal do aplicativo é o levantamento e recolhimento de dados científicos de tais espécies para pesquisadores da região. Neste documento serão exploradas todas as estruturas necessárias para o funcionamento do aplicativo e sua devida arquitetura.
Esse documento está em evolução, ele foi começado faz uns semestres, e tem como finalidade apresentar uma visão arquitetural do projeto EuPescador, facilitando dessa forma o entendimento do funcionamento dos processos envolvidos, aqui possui atualizações em relação ao documento de arquitetura produzido no semestre passado 2022-1. Com isto, esse documento estará descrevendo os componentes, as estruturas e as tecnologias envolvidas no funcionamento do sistema.
Tecnologias
Node.js
O Node.js é um ambiente de execução JavaScript server-side, permitindo criar aplicações JavaScript para rodar como uma aplicação standalone em uma máquina, não dependendo de um browser para a execução. Aqui nesse site possui mais explicações sobre sua definição, características e vantages: Link.
PostgreSQL
PostgreSQL é um sistema gerenciador de banco de dados objeto relacional de código. Possui características modernas como consultas complexas, chaves estrangeiras, tiggers, views e integridaded transicional. Aqui nesse site possui uma melhor explicação dessa tecnologia: Link.
React Native
React Native é uma framework baseada no Javascript que tem como finalidade facilitar o desenvolvimeto de aplicações mobiles multiplataformas. Aqui nesse link possui uma melhor explicação dessa framework: Link.
React
React é uma biblioteca baseada no Javascript que tem como finalidade auxiliar na criação de interfaces para aplicações web, lançada e mantida pelo Facebook. Aqui nesse link explica o que é e como funciona o React: Link.
Docker
Docker é uma ferramenta para gerar um ambiente isolado e construído especificamente para a equipe que será utilizado para facilitar o desenvolvimento do projeto. Nesse link explica melhor sobre como funciona o Docker: Link.
Heroku
A Heroku é uma plataforma nuvem que faz deploy de várias aplicações back-end e front-end seja para hospedagem, testes em produção ou escalar aplicações, também possui integração com o Github. Nesse link explica quase todos os aspectos sobre o Heroku: Link.
Diagrama
A representação da arquitetura do projeto, foi desenvolvido na ferramenta chamada Lucid.app
Fish Log
Esse microsserviço é responsável por tudo que é relacionado aos relatórios de peixes, desde a criação do relatório pelo pescador até a validação pelo pesquisador. Além disso, esse serviço permitirá ao pescador e ao pesquisador editar ou remover relatórios pendentes.
Fish Wiki
Esse microsserviço é responsável pelo armazenamento de dados sobre Peixes, adquiridos a partir do consumo de uma planilha de informações disponibilizada pelos pesquisadores, a fim de fornecer conhecimentos que ajudem os pescadores a fazerem relatórios mais exatos.
User
Esse microsserviço é responsável pelo gerenciamento de usuários na plataforma, como a criação e a diferenciação de tipos de usuários: Pescadores e Pesquisadores.
Client
Onde tem a aplicação web e mobile. O web fica com a total gerência do projeto, e a parte mobile fica ao uso do pescador.
Restrições Arquiteturais
Escalabilidade
Atualmente temos uma restrição na versão mobile, onde todas as imagens do aplicativo carregam de uma vez, e como essas imagens são pesadas, acaba usando bastante a internet do usuário, e pesando também o banco de dados. A solução que encontramos foi paginar o banco de dados e ir mostrando as imagens no aplicativo conforme o pescador for dando o scroll, para não carregar as imagens de uma vez ao abrir a aplicação.
Segurança
Como é um aplicativo sobre pesca, onde o pescador coloca dados sobre o peixe, sua localização e suas características, a preocupação da aplicação é não mostrar a localização exata, para evitar o aumento de caças e a extinção das expécies. Por tanto, o sistema alterada a localização das espécies alguns metros para evitar que isso ocorra.
Usabilidade
Uma restrição em relação a usabilidade é, como a grande maioria dos lugares onde existe a pesca, a conexão com a internet acaba sendo ruim, a solução encontrada para driblar esse problema foi adicionar um aplicativo com funcionalidades offlines para que o pescador não tenha problemas ao utilizar o aplicativo.
Referências
Documento de Arquitetura. Eu_Pescador. Disponível em: documento de arquitetura 2021.2. Acesso em: 10 dez. 2022.
Definições Arquiteturais. Disponível em: documento de arquitetura 2022.1. Acesso em: 10 dez. 2022.
Versionamento
Data | Versão | Descrição | Autor |
---|---|---|---|
10/12/2022 | 1.0 | Criação do documento | Emily Dias |
05/01/2023 | 1.1 | Ajustes do documento | Emily Dias |