/BlogNES

Blog simples utilizando apenas conceitos básicos do Flask.

Primary LanguagePythonMIT LicenseMIT

BlogNES

Neste exercício, o objetivo é criar um blog simples utilizando apenas conceitos básicos do Flask.

Restrições

  1. Utilize apenas os conceitos de redirecionamentos, configuração de sessões manualmente com cookies e flash messages.
  2. Não utilize extensões do Flask para simplificar o desenvolvimento.
  3. O banco de dados deve ser simulado utilizando dicionários.

Requisitos

Implemente as seguintes funcionalidades:

  • Criação de uma endpoint API para carregar o conteúdo de todos os posts.

  • Sistema de login (login.html)

    • Implemente um sistema de login para o admin.
    • Caso o usuário não seja o admin, permita que ele acesse os blogs normalmente.
  • Perfil do usuário (profile.html)

    • Exibir informações sobre o usuário (nome, foto de perfil, etc)
    • Implemente um formulário para o usuário poder editar seu usuário.
  • Página de criação de posts (create_post.html)

    • Criar um novo post, fornecendo um título e conteúdo.
  • Página de visualização de Post (post.html)

    • Exibir o título, conteúdo e os comentários.
  • Área de comentários (Opcional)

    • Adicione a funcionalidade de comentários em cada post. Cada comentário deve ter um autor e conteúdo.
  • Página inicial (index.html)

    • Esta página deverá exibir uma lista de posts, com paginação usando QueryString.
    • Uma barra de pesquisa para filtrar os posts.

Modificações

  • Modificar o endpoint /api/allPosts para api/getPosts?page=<NUMERO_DA_PAGINA>.
  • Na rota / será apresentado a View ìndex.html. Esta View irá realizar o seguintes passos:
  • A View terá uma variável contador nextPage.
  • A View irá consultar o endpoint api/getPosts para obter os posts utilizando nextPage para definir a página atual.
  • A View irá apresentar esses posts obtidos.
  • Será apresentado um botão id="btnNextPage", com a funcionalidade de paginação na View.
  • A View irá consultar novamente a endpoint api/getPosts, para obter os posts utilizando nextPage (valor da próxima página).
  • Este botão id="btnNextPage" irá remover todos os posts da página atual, e
  • Irá para apresentar os posts na View.