Detalhes do Projeto

Tendo em vista as dificuldades em se comparar os preços dos produtos em diferentes comércios, que não disponibilizam informações por meio da internet, surge a necessidade de uma aplicação para centralizar as informações sobre os produtos desejados, apresentando ao consumidor os estabelecimentos que tem os menores preços.

Neste projeto o desenvolvimento da aplicação foi feito em Python Django, e ele tinha uma caracteristica a mais que era a implementação de padrões de projeto do GOF. Os padrões implementados na aplicação foram:

  • Observer: O projeto utiliza um módulo que notifica um usuário por e-mail sempre que um login em sua conta for detectado. Para que o módulo de envio de e-mail seja notificado de forma eficiente quando um login em uma conta de usuário for realizado, optou-se pela utilização do padrão Observer.
  • Strategy: O projeto possui uma lista de mercados cadastrados que podem ser ordenadas de acordo com alguns critérios, sendo eles: por ordem alfabética (de "A a Z" e de "Z a A") e por avaliação (melhores avaliados e piores avaliados). Para ordenar esta lista de mercados podem ser utilizados vários algoritmos, assim, encontrou-se uma oportunidade para aplicar o padrão Strategy, visto que uma família de algoritmos seria definida.
  • State: O projeto possui diversos produtos nos quais usuários podem informar o preço, para garantir que o preço realmente é válido, os usuários tem a opção de confirmar o preço ou declara-lo incorreto, o preço possui um atributo de pontos de confiabilidade, que aumenta ou diminui de acordo com esta opção do usuário. Para garantir esta confiabilidade, encontrou-se uma oportunidade para aplicar o padrão State, No qual o produto receberia um selo de verificado caso este atributo de pontos estivesse em uma determinada categoria.
  • Factory: O projeto é desenvolvido utilizando o Framework Django da linguagem Python, e o mesmo possui um módulo de Forms no qual é responsável por definir os campos necessários para que seja construido um objeto
  • Facade: Essa estrutura já é implementada no django com o arquivo urls.py, onde é feito todo o gerenciamento de rotas da aplicação. No django existem vários apps, no qual cada um tem a sua própria url, e o arquivo urls.py nada mais é do que uma fachada que gerencia outras fachadas.
  • Template Method: Essa estrutura é utilizada nos forms dos apps da aplicação, onde se define os campos que estarão presentes em determinados formulários.

Ficha Técnica

Ferramentas utilizadas:

  • Python Django
  • Docker
  • Heroku

Cliente:

  • Disciplina de Arquitetura e desenho de software