Skip to content

The final project for my computer engineering course at Insper alongside IBM

Notifications You must be signed in to change notification settings

pedrocunial/ActiveLearningTrainer

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

1 Commit
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

PFE-2018-IBM

CircleCI token

Repositório para o desenvolvimento do Projeto Final de engenharia para a IBM.

O projeto consiste em uma ferramenta de rotulagem para os classificadores NLC e VR da IBM Cloud.

Estrutura do projeto

Esse repositório contém o WebApp e a Business Layer da ferramenta, os dois serviços da solução, nas pastas frontend e backend, respectivamente.

Setup

O guia de utilização do projeto está descrito em cada serviço separadamente.

Mantenedores

  • Gustavo Efeiche
  • Lucas Astur
  • Marcelo Andrade
  • Pedro Cunial

Guia de desenvolvimento

Os serviços frontend e backend são desenvolvidos em branches separados, e ao final de cada release do projeto, anexadas ao branch master.

Quando for contribuir para um projeto específico, use a seguinte convenção de nomes para criação de branches:

  • bug - consertar uma issue
  • feat - nova feature
  • hotfix - uma breve mudança no código
  • junk - experimentos (nunca vão ser anexadas)

O nome do branch deve ser o nome de um dos itens acima, seguido do serviço em que está trabalhando (frontend ou backend) e, por fim, uma breve descrição do que está fazendo.

Exemplos:

  • bug/frontend/image-not-showing
  • hotfix/frontend/remove-comments
  • bug/backend/nlc-breaks-empty-list
  • feat/backend/vr-classifier
  • feat/frontend/manage-projects

Ao final da contribuição, crie um Pull Request para o branch do respectivo serviço. Esse Pull Request deve ser aceito no mínimo pelo(s) membro(s) que está(ão) trabalhando no mesmo serviço durante a sprint. Após o Pull Request ser aceito, remova o branch criado, deletando-o na seção branches e na cópia local do repositório, utilizando $ git branch -D <branch>.

Ao final de uma sprint ou release da ferramenta, os dois branches frontend e backend farão um Pull Request para o branch master com as mudanças da sprint. Esses dois Pull Requests devem ser revisados e aceitos por todos os membros do grupo.

Caso seja feita uma nova feature que envolva uma mudança de protocolo de comunicação entre o frontend e o backend, liste essa nova comunicação na descrição do Pull Request. O mesmo só deve ser aceito quando houver um Pull Request condizente com a feature no outro serviço também.

Nesse momento, será criada uma tag para o projeto, marcando uma nova release.

Trabalhando no frontend e backend ao mesmo tempo

Para facilitar o trabalho nos serviços de frontend e backend na mesma máquina, deve ser criada, localmente, uma nova worktree para o repositório. Este link explica o conceito de worktrees. Esta técnica permite ao programador trabalhar em dois branches ao mesmo tempo, evitando ter de clonar duas vezes o repositório.

Estando na raíz do repositório, faça checkout no branch frontend utilizando $ git checkout frontend. Em seguida, crie a nova worktree com $ git worktree add ../pfe_frontend. Será criada uma nova pasta, com nome pfe_frontend/, do "lado de fora" do repositório. Esta nova pasta representa a nova worktree. Ela é uma cópia exata do repositório original, porém está conectada a ele. Nesta nova pasta é possível trabalhar como se estivesse no reposítório original, trocando de branches, editando e commitando arquivos, etc. Mudanças realizadas na nova pasta serão refletidas na pasta original. Portanto, para organização da equipe, a nova pasta servirá para trabalhos no branch frontend, enquanto a pasta contendo a cópia original será utilizada para trabalhos no branch backend. Recomenda-se renomear a pasta com a cópia original do repositório para pfe_backend, para fácil identificação da worktree a ser utilizada.

Exemplo de workflow com duas worktrees:

Modificando o frontend

$ cd pfe_frontend
$ git checkout frontend
$ git pull origin frontend
$ git checkout -b feat/frontend/example-feature
...modificações no frontend...
$ git add <modified_files>
$ git commit -m "..."
$ git push -u origin feat/frontend/example-feature
...Pull Request deste novo branch para o branch remoto frontend...

Modificando o backend

$ cd pfe_backend
$ git checkout backend
$ git pull origin backend
$ git checkout -b feat/backend/example-feature
...modificações no backend...
$ git add <modified_files>
$ git commit -m "..."
$ git push -u origin feat/backend/example-feature
...Pull Request deste novo branch para o branch remoto backend...

About

The final project for my computer engineering course at Insper alongside IBM

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published