1
resposta

Melhoria para o projeto

Então, eu tive algumas ideias de como melhorar o código, e gostaria de saber quais caminhos eu devo seguir para atender a essa ideia.

Eu quero que cada usuário possa ter sua própria "lista" de jogos (ao invés de uma lista global onde todos editam). E cada usuário pode apenas editar a sua própria lista. Eu quero também que seja possível visualizar a lista de outros jogadores. A parte de banco até que está tranquila pra mim, pois eu entendo razoavelmente bem de banco. A ideia seria equivalente a de uma rede social de jogos. É possível fazer essa aplicação utilizando flask, ou precisa de outro framework (django) ou alguma outra linguagem de programação? Outra coisa que achei que ficou faltando nesse mini-curso (e não foi falado em qual curso poderíamos ver isso) ou passou despercebido por mim, é que não foi falado nada sobre como tratar a questão da senha. No projeto a senha é como se fosse apenas mais uma string.

1 resposta

Oi, Gilberto. Tudo bem?

Vamos por partes:

Eu quero que cada usuário possa ter sua própria "lista" de jogos (ao invés de uma lista global onde todos editam).

No momento temos um banco modelado da seguinte maneira:

foto

Observe que estas tabelas não tem ligações em comum.

Para fazer com que cada usuário tenha sua própria lista de jogos temos que interligar estas tabelas. E para isso, utilizamos um conceito de banco de dados denominado Foreign Key. De forma sucinta, a Foreign Key é uma referência em uma tabela a uma chave primária de outra tabela e para este caso, poderíamos ter na tabela Jogo uma chave estrangeira que faz referência a um id da tabela Usuario. Dessa forma, cada jogo está atrelado a um usuário.

fk

Neste modelo de tabela acima, estamos dizendo que um usuário pode possuir vários jogos.

Então a ideia é que no código você altere a tabela de jogos para possuir uma FK do id do usuário. Com isso, cada jogo estará atrelado a um usuário.

Eu quero também que seja possível visualizar a lista de outros jogadores.

Neste caso você poderia utilizar o conceito de join para filtrar os jogos pelo id do usuário.

Outra coisa que achei que ficou faltando nesse mini-curso (e não foi falado em qual curso poderíamos ver isso) ou passou despercebido por mim, é que não foi falado nada sobre como tratar a questão da senha. No projeto a senha é como se fosse apenas mais uma string.

Em relação a senhas, você pode utilizar algum encriptador como: MD5, Bcrypt, etc.

Todas estas funcionalidades que você busca implementar na sua aplicação é possível fazer com flask agregado a conhecimentos de banco de dados e a biblioteca flask_mysqldb que é a ensinada neste treinamento.

E fique tranquilo se houver erros durante a implementação, é normal, mas tenho certeza que aprenderá bastante com este desafio.

Qualquer dúvida é só falar. Espero ter ajudado. Abraços e bons estudos!