Computadores-Para-Todos / computers-4-all-manager

Gestor de equipamentos, pessoas e processos do projeto "Computadores para todos"
4 stars 1 forks source link

Setup do database #6

Closed TiagoGouvea closed 4 years ago

TiagoGouvea commented 4 years ago

Objetivo

Esta issue é para deixar pronta a conexão com o banco de dados que todos usaram daqui em diante, bem como já implementar um modelo de exemplo, o de usuários, que também será consumido na issue de autenticação.

Conexão

Tabela de usuários

Rota de usuários

👏👏👏👏

A partir daqui sabemos que temos uma conexão pronta, um model com schema para servir de exemplo para as próximas tabelas.

thiagopuntar commented 4 years ago

Oi Tiago, acho que vou precisar de 08h, mais porque tenho que dar uma lida na documentação do Sequelize. Eu sempre usei o módulo mysql direto.

lopesboa commented 4 years ago

E ai @TiagoGouvea Eu n havia visto que vc já tinhas deixado a parte do database para alguém fazer, mas eu fiz uma pull request no brench #6. Neste momento eu so deixei as configs do sequelize e fiz um teste na migration pra ver se a path foi setada da forma correta, tambem fiz a alteração da estrutura de pastas e adicionei o .editorconfig. Na model para users eu adicionei os que eu achei que possamos usar, podemos discutir a respeito, n configurei todos. Outra coisa, para controle de tempo ou para monitorar eu uso o wakatime

TiagoGouvea commented 4 years ago

@lopesboa obrigado pela pró-atividade! Eu tinha programado para o @thiagopuntar esta issue, mas creio que possam fazer juntos.. mas terão que sincronizar. Vi que você não seguiu muito a especificação da issue.. dai, o que acham de vocês dois se comunicarem para termos os itens da issue todos implementados? Recomendo ir marcando na lista as tarefas feitas pra ficar mais fácil conferir depois também.

lopesboa commented 4 years ago

Nada por isso @TiagoGouvea. Podemos sim fazer juntos eu e o @thiagopuntar e sincronizar certinho. Vou seguir mais conforme as recomendações na descrição da issue. Quanto a marcação das tarefas feitas eu só n marquei por que tinha q esperar ser analisado, se estivesse td certinho quando a pull fosse aceite eu marcaria. Acho q com isso a parte toda de conexão está completa, só vou colocar as variáveis no arquivo .env, vou ver se der dou mais uma adiantada hj para algumas rodas e os controllers.

TiagoGouvea commented 4 years ago

Alô @lopesboa , obrigado pelo empenho! 👏

Algumas coisas que observei vendo seu código até aqui, e que podem ser ajustadas para ficar ainda melhor.

Organização de arquivos

Modelo

É isso ai! Quando mandar mais código dou mais feedback. :)

lopesboa commented 4 years ago

Tudo certo @TiagoGouvea, vou remover o user_ e fazer a correção dos erros ortográficos. O pwd seria o campo com a senha encriptada, para fazer a comparação na ir de verificar se a senha existe ou n. Quanto aos requires q n estão a ser usados meu editor avisa sim, é q eu já havia feito, mas lembrei q tinha q fazer commites menores para n pesar tanto na verificação e aprovação, daí q acabei esquecer de remover alguns.

Obrigado pelo feedback, ajuda bastante. Bora codar🤘🏾

thiagopuntar commented 4 years ago

Oi @TiagoGouvea, fechei as features dessa branch. Pode avaliar para fazer o merge no dev?

Tomei a liberdade para alterar a estrutura do app.js em um formato de setup e instalei o express-async-errors, é um plugin que pega todos os erros de métodos assíncronos e redireciona automaticamente para o middleware de erros, sem precisar ficar usando try ... catch e chamando o next(err).

Quanto a migration, deixei em aberto porque eu fiz adicionei o método sync() do sequelize no load do arquivo de db. Pode verificar?

Forte abraço

TiagoGouvea commented 4 years ago

Legal @thiagopuntar a ideia do express-async-errors, eu não conhecia ainda. Eu instalei o Rollbar no projeto, que é um serviço que dentre outras coisas faz um log online, assim o express-async-errors pode mandar pro Rollbar o que capturar e será útil.

O sync pode ser uma boa sim, simplifica a coisa né.. nunca usei como forma de migração assim, mas podemos ver o que acontece. Não sei se enquanto o dev está escrevendo o código, mudando os schemas e tal, se o sync não dá uma pirada.. mas vamos experimentar.

Algumas sugestões e duvidas:

No mais, ficou tudo bem legal! Abra um pull request para dev quando puder.

Muito obrigado @thiagopuntar e @lopesboa pelo empenho! Mandaram muito bem!!

🎉🎉🎉

lopesboa commented 4 years ago

Então @TiagoGouvea, O SANDGRID_API_KEY eu que estava a fazer o teste, eu vi algumas pessoas comentando a respeito de de cadastro e verificação por email com o Twilio SendGrid usando nodejs dei uma lida na doc é bem simples a implementação caso haver necessidade podemos usar, pra não correr o risco de ter usuários fantasmas.

Obrigado pelo feedback, e pela oportunidade.

thiagopuntar commented 4 years ago

Oi @TiagoGouvea , commitei a validação do .env com os requisitos obrigatórios. O 'use strict' não fui eu que incluí.

Estou abrindo a PR.

Abraços

TiagoGouvea commented 4 years ago

Ok @lopesboa . Vou anotar isso ai para uma issue futura ok?

Por agora, vou fechar esta aqui porque tudo está funcionando