Skip to content

GitLab

  • Menu
Projects Groups Snippets
    • Loading...
  • Help
    • Help
    • Support
    • Community forum
    • Submit feedback
    • Contribute to GitLab
  • Sign in
  • W Wiki
  • Project information
    • Project information
    • Activity
    • Labels
    • Planning hierarchy
    • Members
  • Repository
    • Repository
    • Files
    • Commits
    • Branches
    • Tags
    • Contributors
    • Graph
    • Compare
  • Issues 0
    • Issues 0
    • List
    • Boards
    • Service Desk
    • Milestones
  • Merge requests 0
    • Merge requests 0
  • CI/CD
    • CI/CD
    • Pipelines
    • Jobs
    • Schedules
  • Deployments
    • Deployments
    • Environments
    • Releases
  • Monitor
    • Monitor
    • Incidents
  • Analytics
    • Analytics
    • Value stream
    • CI/CD
    • Repository
  • Wiki
    • Wiki
  • Snippets
    • Snippets
  • Activity
  • Graph
  • Create a new issue
  • Jobs
  • Commits
  • Issue Boards
Collapse sidebar
  • Easy Class
  • Wiki
  • Wiki
  • doc para stakeholders

Last edited by Rafael Companhoni Nov 21, 2018
Page history

doc para stakeholders

Easy Class - Visão Geral Técnica da Solução

O objetivo deste documento é sintetizar a arquitetura geral da solução e quais as tecnologias empregadas. Com isto visamos facilitar o processo de manutenção/extensão do trabalho realizado pelos desenvolvedores da Easy Class no futuro. A aplicação é composta por 3 projetos separados:


  • Back-End (API): Consiste em um projeto em Express (Node) responsável pela implementação da API REST a ser consumida pelas demais aplicações-cliente da solução. Utiliza a arquitetura MVC, autenticação simples (I.e. usuário + senha) e armazena as informações em um banco de dados MongoDB. O projeto também incluí testes de integração que são implementados com o framework Jest e a biblioteca Supertest para geração de requisições HTTP.

  • Front-End (web): Esta aplicação-cliente será executada no browser do usuários. Utiliza o framework JavaScript React e arquitetura Redux para gerenciamento de estado. Os estilos estão definidos utilizando arquivos SASS obtidos do framework CSS Bulma. Toda a aplicação é compilada pela ferramenta Webpack que gera um bundle otimizado a ser implantado no servidor em produção. Também utiliza Jest para testes e a biblioteca Enzyme para os testes unitários dos componentes React.

  • Front-End (mobile): Utiliza o framework React-Native (uma derivação do mesmo framework React utilizado pelo projeto web) que torna possível o desenvolvimento da aplicação na linguagem JavaScript mas que gera código nativo para as plataformas Android e iOS. Desta forma têm-se apenas uma base de código para o projeto mobile além de utilizar a mesma linguagem utilizada nos demais projetos da solução.

Os projetos Back-End e Front-End Web incluem scripts para que sua execução seja feita em containeres Docker. Durante o desenvolvimento os programadores podem utilizar a ferramenta Docker Compose para a criação dos containeres. A forma como executar localmente o projeto está descrito no arquivo README de cada um deles.


Infraestrutura e dados de acesso

Todas as ferramentas utilizadas foram cadastradas com um email Gmail criado especificamente para o projeto. Os dados de acesso dessa conta são:


GMAIL 

Nome: Easy Class 

Email: [email protected] 

A figura abaixo ilustra as ferramentas/plataformas envolvidas na infraestrutura do projeto:

infra


  1. Os desenvolvedores trabalham com o código-fonte de cada projeto localmente e utilizam o sistema de controle de versões Git para atualizar o repositório remoto no Github.

  1. O GitHub é uma plataforma que hospeda repositórios gerenciados pela ferramenta Git. No caso do Easy Class, estas são as informações para acesso:

Dados de acesso 

Nome: EasyClassUser  

Senha: -- 

Organização: EasyClassApp 

Repositório do projeto web 

https://github.com/EasyClassApp/easy-class-web 

Repositório do projeto API 

https://github.com/EasyClassApp/easy-class-api 

3 Cada repositório no Github possui duas branches: 'staging' e 'master'. Foi criado um hook entre essas branches e a plataforma de integração contínua TravisCI. Assim, basta que um desenvolvedor faça o push de alterações em uma dessas branches para que o processo de testes + deploy seja realizado pelo Travis. Os dados de acesso do Travis:


https://travis-ci.org/EasyClassApp 

Login com a conta do Google criada para o projeto 

4 O Heroku é uma plataforma para hospedagem de aplicações. O Easy Class possui dois projetos:

  • Staging: possui sempre a última versão da branch de staging e serve para testes durante o desenvolvimento)

  • Produção: é o projeto será utilizado pelos usuários reais.


Os dados para acesso ao dashboard e URLs dos projetos:


Dados de acesso 

Email: [email protected] 

Senha: --- 

Ambiente de staging web 

https://easy-class-web-staging.herokuapp.com 

Ambiente de produção web 

https://easy-class-web.herokuapp.com 

Ambiente de staging da API 

https://easy-class-api-staging.herokuapp.com/api 

Ambiente de produção da API 

https://easy-class-api.herokuapp.com/api 

Nota: as URLs referentes a API são para consumo de dados – para testá-las utilize a ferramenta Postman, cujos arquivos de endpoints e ambientes estão incluídos no projeto Back-End na pasta infrastructure.


5 Todos os dados gerenciados pela aplicação estão em bancos de dados hospedados na plataforma mLab (https://mlab.com). Os dados para acesso ao dashboard:

Username: EasyClassUser 

Senha: --- 
Clone repository
  • Arquitetura
  • Configuracao
  • EAP
  • Requisitos
  • api
  • doc para stakeholders
  • endpoints
  • git comandos basicos
  • Home
  • mockups
  • modelagem banco de dados
  • problemas
  • sprints