Code Monkey home page Code Monkey logo

activelearningtrainer's Introduction

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...

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.