~misterio/veraoPFPA-Projeto

Projeto de Programação Funcional Pura e Aplicações (Verão 2022)
pequenas melhorias no readme
explicar usuário admin no readme
ajustes no readme

refs

main
browse  log 

clone

read-only
https://git.sr.ht/~misterio/veraoPFPA-Projeto
read/write
git@git.sr.ht:~misterio/veraoPFPA-Projeto

You can also use your local clone with git send-email.

#Projeto Yesod - Programação Funcional Pura com Aplicações - EaD - Curso de verão IME

#Integrantes do grupo

  • 10856803 Gabriel Silva Fontes
  • 11816122 João Vitor Diógenes
  • 6476509 Euclides Torres Ometto Stolf

#Projeto escolhido: 1 - Crie um site utilizando o framework Yesod.

#Funcionalidades resumidas

  • Autenticação (login, registro, logout) e autorização (o primeiro usuário registrado é considerado o admin)
  • Adição, remoção, e listagem de pokémons no Pokédex (apenas admin)
  • Adição, remoção, e listagem de pokémons no seu perfil

#Como executar

Primeiro, configure as credenciais do seu banco em config/settings.yml.

Você pode compilar e executar com o stack, cabal, ou nix:

stack build && stack exec pokedex-pfpa
cabal run
nix run

As migrações são executadas automaticamente.

O yesod gerará automaticamente uma chave session.aes, para assinar e encriptar os cookies de sessão.

O CSS, templates, e configurações do config/settings.yml são embedados no executável em tempo de compilação, então você pode levar o executável para outro lugar e executar normalmente (só precisa levar a session.aes, ou deixar o yesod gerar outra).

Você pode sobreescrever as configurações em tempo de execução usando variáveis de ambiente (veja elas em config/settings.yml), ou especificando um outro .yml como argumento ao executar.

#Descrição detalhada

Nosso projeto possui o intuito de ser um organizador de equipes para mestres de Pokémons. Cada treinador deve se registrar para ter acesso à funcionalidade de montar a sua própria equipe, e para tal, existem pokémons pré-cadastrados disponíveis, com as devidas informações de nome, tipo e respectiva imagem.

O objetivo final é ser um sistema simples, mas de usabilidade agradável e que poderia ser útil em mostrar quais pokémons fazem parte do seu time, como um mestre pokémon.

#Banco de dados

Nosso banco de dados está estruturado de acordo com este diagrama Crows Foots:

diagrama

#Estilização

Utilizamos a sheet PicoCSS como base. Esta é implementada em SCSS, e tem como característica principal usar poucas classes pra estilização, sendo uma boa escolha para prototipar rápido e para um HTML semântico.

Incluimos apenas o estilo já compilado em CSS, mas deve ser possível compilar automaticamente com o Haskell. Embedamos o CSS no executável em tempo de compiação, facilitando a portabilidade do programa.

Por fim, nossa estilização têm temas escuro e claro (escolhidos dependendo da configuração do seu navegador ou sistema operacional).

PS: E o Amarelo é #CAASO. Voa ICMC.