Linha 33: Linha 33:
* Devs:
* Devs:
** Antônio Pedro - UFU
** Antônio Pedro - UFU
** Rafael Nunes - UFU
** Gabriel Nunes - UFU
** João Victor - UFU
** João Victor - UFU
** Victor Sisterolli Junior - UberHub CodeClub
** Victor Sisterolli Junior - UberHub CodeClub

Edição das 16h04min de 20 de março de 2020

Parceria

  • FioCruz
    • Fundação Oswaldo Cruz é uma instituição de pesquisa e desenvolvimento em ciências biológicas localizada no Rio de Janeiro, Brasil, considerada uma das principais instituições mundiais de pesquisa em saúde pública. Foi fundada pelo Dr. Oswaldo Cruz, um notável epidemiologista, onde antes era o Instituto Soroterápico Federal.
    • Endereço: Av. Brasil, 4365 - Manguinhos, Rio de Janeiro - RJ, 21040-900
    • Fundador: Osvaldo Cruz
    • Fundação: 25 de maio de 1900
    • INI - Instituto Nacional de Infectologia
    • Pesquisadores:
      • Dr André Miguel Japiassú
        • Área de conhecimento: Biologia Geral
      • Dr Pedro Henrique Nascimento Theodoro
        • Área de conhecimento: Infectologia


  • UFU
    • A Universidade Federal de Uberlândia (UFU) é uma fundação pública, integrante da Administração Federal Indireta, vinculada ao Ministério da Educação (MEC). A instituição, ainda com o nome de Universidade de Uberlândia (UnU), foi autorizada a funcionar pelo Decreto-lei n. 762, de 14 de agosto de 1969, e federalizada pela Lei n. 6.532, de 24 de maio de 1978.
    • A Universidade Federal de Uberlândia foi fundada em 1969, com a associação de diversas faculdades isoladas como a Faculdade de Engenharia, a Escola de Medicina, entre outras. Em 1978 ocorreu sua federalização, ocasião em que sua organização acadêmica e administrativa foi estruturada em três centros: Centro de Ciências Exatas e Tecnologia, CETEC; Centro de Ciências Humanas e Artes, CEHAR; e Centro de Ciências Biológicas, CEBIM.
    • A Faculdade de Computação (FACOM) da Universidade Federal de Uberlândia foi criada em 2000, a partir do extinto Departamento de Informática (DEINF), criado em 1988, no âmbito do CETEC, com docentes provenientes dos departamentos de Engenharia Elétrica e de Matemática. As atividades acadêmicas do DEINF estiveram intimamente ligadas ao desenvolvimento do Curso de Bacharelado em Ciência da Computação (BCC), criado também em 1988, sendo este curso o marco inicial da FACOM. No início dos anos 2000 foi criado na Faculdade o Programa de Pós-Graduação em Ciência da Computação, inicialmente com o curso de Mestrado Acadêmico. A FACOM continuou sua expansão criando em 2009 o Curso de Bacharelado em Sistema de Informação (BSI) no Campus Santa Mônica, em Uberlândia e, em 2010, no Campus de Monte Carmelo. No ano de 2011 foi aprovado pela CAPES o Curso de Doutorado em Ciência da Computação, em reconhecimento a destacada produção científica da FACOM em diversas áreas da computação.


Equipe


  • Stakeholder: André Miguel Japiassu - Fiocruz
  • Software Engineer: Luiz Cláudio Theodoro - UFU
  • PO - Product Owner: Pedro Henrique Nascimento Theodoro - Fiocruz
  • Scrums Masters:
    • Bruno Sinhoroto - UFU
    • Gabriel Bernardi - UFU
    • Maxley Soares - UFU
  • Designer:
    • Aryanne Araújo - UberHub CodeClub
  • Devs:
    • Antônio Pedro - UFU
    • Gabriel Nunes - UFU
    • João Victor - UFU
    • Victor Sisterolli Junior - UberHub CodeClub
    • Henrique Oliveira - UFU
    • Danilo Dias - UFU



  • Escopo: Desenvolver um sistema de controle de antibióticos que permita a gestão de antibióticos na âmbito da fundação provendo controle, alarmes e comunicação do sistema com interfaces externas. A interação será via Smartphones e Desktops.


Meetings

  • First meeting - 26/03/2020
    • The project started by presenting the technologies that will be used for development in addition to observations about the system. Attached will be the presentation that was used on meeting.
    • Presentation: Mídia: GAFio.pdf


Mockup


  • Mockup ou mock-up, é um modelo em escala ou de tamanho real de um projeto ou dispositivo, usado para ensino, demonstração, avaliação de design, promoção e outros propósitos
  • No caso dessa aplicação, teremos uma visão das interfaces que serão construídas pelo Dev Front-End, sem preocupações estéticas mas com todas as operações que deverão constar na solução final.


  • Back-End
    • RF01: Create CRUDs from all tables.
      • Receive the data entered in the interface and code the actions of: Inclusion, Exclusion, Search and Change of data in the table.
    • RF02: Authenticate user.
      • Authenticate 'registration' and 'Password', for example, using BCrypt that will decrypt hash 'Password' and 'registration'.
    • RF03: Authenticate Endpoins by way of OAuth 2.0.
      • This method will protect backend API from external access. This will bring more security for the application.
    • RF04: Create Endpoints from absorption of CRUD.
      • Use ExpressJS for create endpoints.


  • Front-End
    • RF05: Create the interface for the CRUD of the tables.
    • RF06: Create the System view dashboard.
    • RF07: Create the user authentication interface.


Non-Functional Requirements


  • RF01: Create the Data Base
  • RF02: Create tables
  • RF03: Create the final documentation for back-end
  • RF04: Create the final documentation for front-end

Tools to be used


  • Back-End
    • MySql
      • MySql é um SGBD que permite manipulação de dados em alta capacidade. Foi escolhido pelos seguintes critérios: free e open-source, grande base de usuários com conhecimento e fácil de instalar. Grande comunidade atuante. Por ser relacional, facilitará a implementação por parte da equipe.
    • NodeJS
      • NodeJs é um ambiente de execução Javascript server-side, ou seja, é uma ferramenta que permite criar aplicações javascript sem depender de um browser para a execução. Alguns motivos de sua adoção são: alta escalabilidade, possui o maior repositório do mundo com NPM, possibilidade de deploys e iterações mais rápidas e claro sua notoriedade no mercado sendo utilizado em grandes empresas como Netflix, Uber e LinkedIn.
    • ORM (Sequelize)
      • ORM (Object Relational Mapper) é uma técnica usada para aproximar o paradigma do banco de dados relacional com linguagem SQL ao paradigma de aplicações orientadas a objetos. Essa aproximação deixa a interação com o banco de dados mais amigável ao programador. A ferramenta que será utilizada é o Sequelize e foi escolhido por que possui uma otina comunicação com o MySql além de estar incluso no repositório NPM.
    • ExpressJS
      • O ExpressJs é o framework Node mais popular para web. Essa ferramenta auxilia muito na construção de uma API com caminhos URL (routes), middlewares, etc. O ExpressJs foi escolhido pela praticidade que promove e também por ser o framework mais popular da nossa ferramenta NodeJS, o que consequentemente nos traz uma maior quantidade de material disponível para pesquisa.
    • BCrypt
      • Bcrypt é uma ferramenta para guardar senhas de forma criptografada no banco aumentando a segurança contra ataques de força bruta. Uma das vantagens do Bcrypt é que mesmo duas senhas identicas produzem hash diferentes. Essa ferramente foi escolhida pela grande quantidade de material online para pesquisa e também porque trabalha muito bem como Nodejs.
    • JWT
      • JWT (JSON Web Tokens) é uma ferramenta que gera tokens codificados com tempo limitado para confirmar a autenticidade do usuário, sendo muito importante para segurança e controle sobre sobre quem esta utilizando o sistema. Esta ferramenta foi escolhida por sua facil integração ao Node e também por ter uma comunidade ativa em fóruns e sites para possíveis duvidas.
    • Docker
      • Docker resumidamente é uma plataforma open source que facilita a criação e administração de ambientes isolados. Essa ferramente possibilita empacotar uma aplicação ou ambiente inteiro em um container tornando-o portável para qualquer host que tenha o docker instalado, ou seja, nada de “na minha maquina roda e não sua não”. Essa ferramenta foi escolhida pois reduz drasticamente o tempo de deploy de uma aplicação, possui uma portabilidade que permite uma aplicação ser facilmente executada em um ambiente de produção e homologação e ainda possui uma comunidade enorme, sempre ativa e de fácil acesso.
    • Git
      • Git é um sistema open source de controle de versão que facilita o desenvolvimento de projetos em grupo. Imagine um cenário em que duas pessoas estão desenvolvendo um mesmo projeto e cada uma altera uma parte do código. Para juntar essas duas partes sem o git seria terrível. Essa ferramenta é sem duvidas o que torna viável um projeto ter dezenas e até centenas de desenvolvedores trabalhando em um mesmo projeto. Nesse projeto utilizaremos o github como serviço web do git. Escolhemos o github pois é sem duvidas o maior deposito online de trabalho colaborativo do mundo o que indica que também é o que possui a maior comunidade ativa para estudos e duvidas.


  • Front-End
    • ReactJS
      • React é uma biblioteca Javascript declarativa, eficiente e flexível para a criação de interfaces de usuário (UI). O React foi escolhido para esse projeto pelo simples motivo de ser uma das ferramentas frontend mais usadas no mercado, portando é uma excelente oportunidade para quem está começando a carreira de engajar em uma tecnologia emergente.
    • Axios
      • Axios é uma biblioteca cujo proposito é simplesmente fazer requisições ajax (operações assíncronas) em nossa aplicação web. Essa biblioteca também permite fazer as mesmas requisições feitas em ajax no browser no servidor com o mesmo código, o que facilita na integração do frontend com o backend da nossa aplicação. O proposito da escolha dessa lib é que a mesma é muito pequena e leve alem de ter uma implementação muito simples e também possui compatibilidade com diversos browsers diferentes.


Materials to be used