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
Metodologias Utilizadas:
- Scrum adaptado
Cliente:
- Disciplina de Arquitetura e desenho de software