Skip to content

luizklitzke1/ProjetoRPG-Flask-WebAPP

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

28 Commits
 
 
 
 
 
 
 
 
 
 

Repository files navigation

WebApp - Projeto RPG

Aplicação Web em Python desenvolvida utilizando, principalmente, Flask, Jinja2 e SQL Alchemy, com a finalidade de representar um CRUD para personagens de RPG.

📜 Desenvolvimento do projeto

O site foi projetado como um aprendizado e prática para o desenvolvimento de aplicações WEB utilizando Python e suas diversas bibliotecas que vem a facilitar o processo. Desenvolvido na disciplina de Programação do segundo ano de Técnico de Informática no Instituto Federal Catarinense - Campus Blumenau.

A estrutura e funcionalidade do projeto foram planejadas para a disciplina de Engenharia de Sofwate e podem ser econtrados em:

🛠 Download e Uso

A aplicação que está disponível para download contem todos os arquivos estruturais, alguns personagem e usuários já registrados para teste e experimentação. Porém, para ainda são necessáriso alguns passos para que tal projeto possa ser enviado à um servidor Linux propriamente dito.

Além de por comandos de terminal, o site pode ser iniciado em um servidor local através da execução do módulo "rodar.py"

✔️ Requerimentos

O projeto faz o uso, principalmente, das biblioteca Flask(e vários derivados menores) e SQL Aclhemy, porém tudo deve ser atendido com um simples pip install do arquivo requirements.txt, naturalmente presente no pacote.

Em caso de problemas ou dúvidas, apenas rode o seguinte no terminal, uma vez dentro da pasta:

python3 -m pip install -r requirements.txt

⁉️ Compreensão por terceiros

Como comentado anteriormente, o projeto apresenta todos os arquivos necessáriso para seu funcionamento livres para download e modificação, seguindo boas práticas de organização, identação, blueprints, etcs. ao decorrer de todos os arquivos.

Toda a funcionalidade é comentada de forma que qualquer usuário consiga compreender as funções, modificá-las e/ou reutilizá-las.

🗃 Banco de Dados

A aplicação utiliza a biblioteca SQL Alchemy para o controle do Banco de Dados. O download do projeto já vem com um bando de dados que contem alguns personagens, usuários e avaliações. A estrutura e o dados podem ser visualizados com a utilização de uma série de programas, como o DB Browser

db1.png

🧑‍🤝‍🧑 Usuários

No sistema, existem basicamente três tipos de usuários: o não logado, o logado e o admin. Cada um possuí um nível próprio de acesso ao dados de outros usuários e dos personagens registrados(tal nível é representados ao lado do nome do usuário quando o mesmo é visto no site, vide screenshot abaixo). Esses níveis de acesso podem ser melhor visualizados no * Diagrama de Casos de Uso do projeto.

Além disso, cada um tem seu perfil pessoal, com seus personagens registrados indexados.

perf1.png

🔑 Login e recuperação de senha

Como na maioria dos sites, o ProjetoRPG possuí um sistema de registro e login de usuários. Caso algum venha a perder seus dados, o mesmo pode resquisitar um e-mail de redefinição de senha para o endereço informado no momento do registro da conta.

log1.png

⚔️ Estrutura de personagens

O site foi desenvolvido de maneira que funcionasse como um repositório para personages de RPG criados pela comunidade, tendo também perfis para os usuários e permitindo que cada personagem seja avaliado com um texto e nota.

Tal propósito já é visto na página inicial, aonde há uma seção com os personagens mais recentemente registrados, apresentando também seus dados principais e nota.

home1.png

Registro de novos personagens e edição

Uma vez que o usuário está logado no site, ele pode registrar um personagem, informando uma série de dados e uma foto opcional, tal formulário é o mesmo que é utilizado para a posterior edição de algum personagem.

reg2.png

🔍 Sitema de busca

Para buscar por um personagem, pode-se escolher preencher uma série de campos sobre o mesmo e então receber todos os que corespondem ao dados. (Os campos que não forem preenchidos, serão desconsiderados na pesquisa do DB uma vez que a querry será um like com "%%" - onde não há nenhuma dado entre os sinais de porcentagem)

pesq1.png

Tal processo de pesquisar seguinda alguns parametros informados, ou nãom, pode ser visto de forma resumida nessa parte do código:

personagens = db.session.query(Personagem).filter(
                                                 Personagem.nome.like(f"%{form_procurar_pers.nome.data}%"),
                                                 Personagem.raca.like(f"%{form_procurar_pers.raca.data}%"),
                                                 Personagem.classe.like(f"%{form_procurar_pers.classe.data}%"),
                                                 ).from_self().paginate(page=1, per_page=9)

Página específica do personagem

Ao clicar na imagem ou nome de um personagem, o usuário é redirecionado para uma página própria, com as informações mais detalhadas do mesmo e as avaliações feitas pela comunidade. Caso ainda não tenha, o usuário pode avaliar o personagem, ou também editar caso já possua alguma.

rev1.png