Gymnasteg

Gymnasteg

  • Docs
  • GitHub

›Projeto

Projeto

  • Documento de Visão
  • Documento de Arquitetura
  • EAP
  • TAP
  • Pipeline Devops
  • Roadmap de Projeto
  • Roadmap de Papéis
  • EVM
  • Roi

Produto

  • Canvas Gymnasteg
  • Product Backlog
  • Protótipo
  • especifica
  • requisitos
  • Planejamento de Teste de Usabilidade
  • Resultados Teste de Usabilidade

Gerenciamento do Projeto

  • Plano de Gerenciamneto de Riscos
  • Metodologia
  • Plano de GCS
  • Plano de Comunicação
  • Postmortem

Sprints

  • Planning Sprint 0
  • Result Sprint 0
  • Planning Sprint 1
  • Result Sprint 1
  • Planning Sprint 2
  • Result Sprint 2
  • Planning Sprint 3
  • Result Sprint 3
  • Planning Sprint 4
  • Result Sprint 4
  • Planning Sprint 5
  • Result Sprint 5
  • Planning Sprint 6
  • Result Sprint 6
  • Planning Sprint 7
  • Result Sprint 7
  • Planning Sprint 8
  • Result Sprint 8
  • Planning Sprint 9
  • Result Sprint 9
  • Planning Sprint 10
  • Result Sprint 10
  • Planning Sprint 11
  • Result Sprint 11
  • Planning Sprint 12
  • Result Sprint 12
  • Planning Sprint 13
  • Result Sprint 13
  • Planning Sprint 14
  • Result Sprint 14

Documento de Arquitetura

Histórico de Alterações

DataVersãoDescriçãoAutor(es)
16/09/20190.1Criação da estrutura base do documento de visãoAlan Marques
17/09/20190.2Implementação da introdução do documentoAlan Marques, Fellipe Araujo
20/09/20190.3Implementação do diagrama de casos de uso com suas especificaçõesFellipe Araújo
20/09/20190.4Adição das metas e restrições da arquiteturaFellipe Araujo
20/09/20190.5Implentação da representação de arquiteturaAlan Marques, Fellipe Araujo
22/09/20190.6Adição das versões das tecnologias utilizadasAlan Marques
24/09/20190.7Adição dos diagramas de classe e modelo do banco de dadosAlan Marques
24/09/20190.8Atualização da Representação ArquiteturalFellipe Araujo
01/10/20190.9Adição do Diagrama de RelaçõesFellipe Araujo
01/10/20190.10Atualização do Diagrama de Classes e Diagrama LógicoFellipe Araujo e Alan Marques
20/09/20190.11Atualização de informações na Representação ArquiteturalAlan Marques, Fellipe Araujo
07/10/20190.12Atualização da Visão de Caso de UsoFellipe Araujo
08/10/20190.13Atualização do Diagrama e Descrição de Caso de UsoFellipe Araujo

1. Introdução

1.1. Objetivo

O seguinte documento tem como objetivo aprensentar a arquitetura do projeto Gymnasteg, como também esclarecer os principais aspectos do software como um todo.

1.2. Escopo

O Gymnasteg tem como objetivo ser uma plataforma web de avaliação de atletas em competições de ginástica. Nessa plataforma, os juízes, nas suas respectividas bancas, darão notas aos atletas participantes da competição vinculada a banca. No final da avaliação da banca, o sistema se encarregara de mostrar o ranking dos atletas competidores de acordo suas respectivias notas.

1.3. Visão Geral

O documento está segmento em Representação de Arquitetura, Metas e Restrições da Arquitetura, Visão de Casos de Uso, Visão Lógica e Visão de Dados.

1.4 Definições, Acrônimos e Abreviações

  • API: Application Programming Interface.
  • Framework: Conjuntos de funções e componentes pré definidos.
  • ORM: Object-relational-mapping.
  • SGBD: Sistema de Gerenciamento de Banco de Dados.

2. Representação de Arquitetura

RepresentaçãoDaArquitetura

2.1 Padrão Arquitetural

O projeto foi modelado seguindo a arquitetura MVC (Model, View, Controller), no qual foi utilizado o Node.js para o back-end, em conjunto com framework ExpressJS e o ORM Sequelize para criação da API, onde vai ser processado as ações de leitura, escrita e alteração de informações no banco de dados PostgreSQL. Para o front-end foi utilizado o React, uma biblioteca UI (User Interface), que realiza o papel de organizar e enviar informações da API. O React vai possibilitar a criação de telas de forma declarativa, ou seja, de como a tela vai reagir ao estado ou dados da aplicação. Essa biblioteca é baseada em componentes, ou seja, será criada partes da interface e ao final junta-se todos os componentes correspondentes formando, assim, uma interface maior e mais complexa.

  • Model: Camada da arquitetura responsável pela lógica de négocio, manipulação e validação de dados na aplicação.
  • View: Camada da arquitetura responsável pela exibição da interface com o usuário.
  • Controller: Camada da arquitetura responsável pela validação das requisições dos usuário de acordo com as regras de autenticação e autorização da aplicação.

2.2 Tecnologias

2.2.1 React (16.9.0)

O React é uma biblioteca JavaScript para criação de interfaces interativas de usuário e que pode ser rederizada no servidor através do Node.js.

2.2.2 Node.js (10.16.3)

Node é um ambiente de execução de JavaScript server-side, projetado para desenvolvimento de aplicações escaláveis.

2.2.3 Docker (19.03.2)

Docker é um tecnologia de conteinerização, onde busca resolver o problema de padronização de ambiente desenvolvimento de software e o isolamento de serviços.

2.2.4 PostgreSQL (11)

PostgresSQL é SGBD relacional de alto desempenho de código livre.

2.2.5 Travis CI (latest)

Travis CI é um serviço de integração contínua hospedado, usado para criar e testar projetos de software hospedados no GitHub.

2.2.6 Git (2.17.1)

Git é uma ferramenta de versionamento de arquivos de código livre.

2.2.7 JEST (24.9.0)

Jest é um framework para realização de teste de JavaScript.

2.2.8 ExpressJS (4.17.1)

Express é um minimalista e flexivel framework Node.js que prover um conjunto de recursos para aplicações web.

2.2.9 Sequelize (5.18.4)

Sequelize é ORM baseado em promises para Node.js, que suporta vários dialetos, entre eles PostgreSQL.

3. Metas e Restrições da Arquitetura

3.1 Metas do Software Gymnasteg

  • Disponibilizar aos organizadores das competições de ginástica uma plataforma web para avaliação de atletas.
  • Automatizar o processo de votação, contabilização dos votos e divulgação da nota final de cada atleta através de um ranking.
  • Cadastrar os competidores via arquivo csv ou manualmente pela plataforma.
  • Cadastrar bancas e juízes.

3.2 Restrições da Arquitetura

  • Ter acesso à internet.
  • O juíz ter uma conta na plataforma, cuja criação está restrita a ser feita pelo coordenador do evento.
  • O atleta ter sido cadastrado corretamente na sua respectiva modalidade.

4. Visão de Casos de Uso

4.1 Diagrama de Casos de Uso

Diagrama

4.2 Descrições de Casos de Uso

Casos de usoAtorDescrição
UC01-Listar bancasCoordenadorEste caso de uso ocorre sempre que o coordenador loga no Gymnasteg
UC02-Inserir dadosCoordenadorEste caso de uso ocorrerá somente se o coordenador clicar em uma das modalidades
UC03-Carregar planilha de dadosCoordenadorEste caso de uso poderá ocorrer caso o coordenador preferir usar planilhas
UC04-Criar BancasCoordenadorEsta caso de uso ocorrerá somente se o coordenador inserir todos os dados necessários
UC05-Editar bancaCoordenadorEste caso de uso ocorrerá somente se o coordenador tiver criado uma banca previamente
UC06-Visualizar RankingCoordenadorEste caso de uso ocorrerá quando as votações forem submetidas
UC07-Listar bancas do JuizJuizEste caso de uso ocorrerá somente se uma banca que o Juiz estiver for criada pelo coordenador
UC07-Acessar bancaJuizEste caso de uso ocorrerá quando o juiz clicar em uma banca
UC08-Listar competidoresJuizEste caso de uso ocorrerá somente se o Juiz entrar na banca atual para votação
UC09-Liberar votaçãoJuizEste caso de uso poderá ocorrer quando o Juiz escolher um competidor
UC010-Votar execuçãoJuizEste caso de uso poderá ocorrer quando todos os Juizes liberarem a votação e se o Juiz tiver autorização para votar execução e/ou dificuldade
UC011-Votar dificuldadeJuizEste caso de uso poderá ocorrer quando todos os Juizes liberarem a votação e se o Juiz tiver autorização para votar dificuldade e/ou execução
UC012-VotarJuizEste caso de uso ocorrerá quando o Juiz entrar com a potuação correta do seu tipo de avaliação

5. Visão Lógica

DIAGRAMACLASSE

6. Visão de Dados

DIAGRAMALOGICO

← Documento de VisãoEAP →
  • Histórico de Alterações
  • 1.1. Objetivo
  • 1.2. Escopo
  • 1.3. Visão Geral
  • 1.4 Definições, Acrônimos e Abreviações
  • 2.1 Padrão Arquitetural
  • 2.2 Tecnologias
    • 2.2.1 React (16.9.0)
    • 2.2.2 Node.js (10.16.3)
    • 2.2.3 Docker (19.03.2)
    • 2.2.4 PostgreSQL (11)
    • 2.2.5 Travis CI (latest)
    • 2.2.6 Git (2.17.1)
    • 2.2.7 JEST (24.9.0)
    • 2.2.8 ExpressJS (4.17.1)
    • 2.2.9 Sequelize (5.18.4)
  • 3.1 Metas do Software Gymnasteg
  • 3.2 Restrições da Arquitetura
  • 4.1 Diagrama de Casos de Uso
  • 4.2 Descrições de Casos de Uso
Gymnasteg
Docs
Getting Started (or other categories)Guides (or other categories)API Reference (or other categories)
Community
User ShowcaseStack OverflowProject ChatTwitter
More
BlogGitHubStar
Developed by Gymnasteg team.