idvogados / idvogados-api Goto Github PK
View Code? Open in Web Editor NEWRepositório para o backend
Repositório para o backend
Agora que temos o boilerplate feito, precisamos configurar o CI corretamente.
Jobs
do CINa página principal (homepage) o usuário (entregador/advogado) indica o seu perfil e resolve um captcha.
O propósito aqui é armazenar o e-mail informado pelo usuário
Precisamos criar a estrutura de código do projeto para iniciarmos o desenvolvimento. Com isso é necessário montar um boilerplate, organizando as ferramentas e elementos que o projeto de backend irá utilizar.
Sugestão de tópicos que podemos pensar:
Algumas dessas decisões já estão sendo discutidas nas issues #2 e #4 e no chat do Discord.
São muitas dúvidas e certamente ainda falta coisa. Acredito que podemos olhar para algo já pronto e extrair o melhor dele, ou criar algo do zero, agregando as boas práticas que o time decidir adotar.
Sugestões são bem vindas 🎉
Após termos o #1 concluídos, precisamos decidir e documentar quais os requisitos que utilizaremos para julgar o que é um PR válido.
Já temos alguns pontos. Mas precisamos expandir.
Explicar nossos 'padrões' de projeto e qualidade de código para ser um PR aceitável (isso pode ser adicionado posteriormente pois ainda será descutido com os tech leads).
Explicar também o que deve acontecer se for um PR inválido.
Por exemplo:
Temos esse issue com a mesma discussão no idvogados.github.io e frontend. Utilizar esse issue para discutir.
idvogados/idvogados.github.io#2
idvogadosorg/idvogados-web#2
Relacionado as issues #14 e #15
helper
src/helpers/validate-email.js
module.exports = async (email, model) => {
const reg = new RegExp(/** definir regra de regex a ser utilizada */)
if (!reg.test(email)) return false
const alreadyExists = await model.exists({ where: { email } })
if (alreadyExists) return false
return true
}
A implementação do boilerplate contém um wrapper da lib PinoJS criado em
src/client/logger-client.js
, que já possúi toda configuração básica para se utilizar os métodos padrões de um logger (info
, warn
, error
, etc).
Dessa forma, precisamos definir um padrão dos logs gerados pela API, descrever como será o JSON enviado ao terminal e quais campos devem estar presentes, para que seja possível indexar em um agregador e gerar estatísticas dessas informações.
Além disso, precisamos debater se iremos utilizar alguma plataforma (kibana, serviço em cloud, etc) para armazenar os logs, mantendo seu histórico ou apenas joga-los no terminal. Acredito que o @deniojunior poderá nos ajudar.
Acredito que possamos utilizar a seguinte chamada no código:
logger.method({
action: 'service.method', // indica onde o log foi chamado no código
message: 'foo bla', // mensagem descritiva da operação
meta: { // metadados da operação (opcional)
color: 'red',
user: 'john'
}
})
Teremos algumas automações para os issues/pr's com relação ao nosso workflow (mantido no Project).
Como PM, eu gostaria das seguintes automações:
Quadro de preparo
Em progresso
for atribuído a uma issue, ela deve ser movida para o quadro In Progress
no projeto Sprint
In Progress
no projeto Sprint
, o label Em progresso
deve ser atribuído à issue.Bloqueado
ela deve ser movida para a coluna Blocked
do projeto SprintBlocked
, a label Bloqueado
deve ser atribuída à issueComo PM gostaria das seguintes automações:
Code Review
, no projeto Sprint
Precisa ser revisado
(tanto no PR quanto na issue)To Do
e remover os labelsDone
do projeto Sprint
Precisamos documentar essas automações em algum 'manual', seja ele no CONTRIBUTING.md
ou outro (tech leads ou um próprio para isso)
Relacionado ao épico #9 .
O usuário (entregador) deve conseguir cadastrar seu e-mail de contato na plataforma.
Mudar template do PR para fechar a(s) issue(s) associadas.
Precisamos de um CONTRIBUTING.md
Além disso, adicionar o seguinte heading no README.md
:
# Como contribuir
Leia nosso guia de contribuição nesse arquivo (link para o contributing)
Precisamos ter o seguinte heading no arquivo CONTRIBUTIND.md
:
# Configurando o ambiente de desenvolvimento
bla bla bla
Aguardando decições dos tech leads e criação do boilerplate do projeto
O link para os termos de uso deverá ficar no README.md
ou no CONTRUBUTING.md
?
Após a discussão tida nesse issue, foi decidido que ficará no README.md
.
Criar um client na API para comunicar com o sendgrid.
src/clients
;Por enquanto não bloqueia nenhuma issue.
Na página principal (homepage) o advogado indica o seu perfil e resolve um captcha.
O propósito aqui é armazenar o e-mail que o advogado informou no form que é exibido após a resolução do captcha.
Arquivos locais de configuracao de IDEs, como JetBrains e VS Code, podem ser salvos no repo.
Novas regras deveriam ser adicionadas ao arquivo .gitignore para que isto nao ocorra.
Os tech leads ou responsáveis pelo projeto ou as pessoas que forem fazer code review devem ter um arquivo de instruções. Por exemplo:
Ter um arquivo público em cada respositório com essas instruções.
Traria mais transparência do processo de gerência para quem esta contribuindo (ter uma gerência mística nem sempre é bom).
O que acham?
Originally posted by @rodrigondec in idvogadosorg/idvogados-web#10
Decidimos utilizar o Jest. É mais completo e autocontido. Porém o Jest aparentemente (pode ter problema) com debugging.
Tem também o mocha (que depende de outras libs).
discutir e decidir qual a lib a ser utilizada.
Na página principal (homepage) o usuário (entregador/advogado) indica o seu perfil e resolve um captcha.
O propósito aqui é armazenar o e-mail informado pelo usuário
Relacionado ao épico #8.
O advogado deve conseguir cadastrar seu e-mail de contato na plataforma.
A declarative, efficient, and flexible JavaScript library for building user interfaces.
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google ❤️ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.