Skip to content

rg3915/vendas

Repository files navigation

Vendas

Python 3.7.0 and Django 2.2.6

Veja o live demo.

Objetivo

Desenvolver uma aplicação que realize a venda de produtos.

Explorar todos os recursos do Django junto com todas as possibilidades de regras de negócio requisitadas num projeto real.

Requisitos

  • o sistema vendas gerencia produtos por categoria.
  • cada produto possui: categoria, preço e imagem, além de ser importado ou não, e estar fora de linha ou não.
  • cada cliente possui: CPF, nome, sobrenome, email e telefone.
  • cada cliente pode fazer uma venda e cada venda pode conter vários produtos, cada um com sua quantidade e o valor total da venda.
  • o sistema deve pesquisar os produtos retornando o preço e a quantidade disponível.
  • o sistema deve gerar um relatório com total geral e estatísticas dos produtos mais vendidos.

Inicialmente eu quero explorar as bibliotecas do class based views como TemplateView, ListView e FormView.

Baixando e rodando a app

$ git clone https://github.com/rg3915/vendas.git
cd vendas
python -m venv .venv # python3
source .venv/bin/activate
PS1="(`basename \"$VIRTUAL_ENV\"`):/\W$ " # opcional
pip install -r requirements.txt
cp contrib/env-sample .env
./manage.py makemigrations core
./manage.py migrate
./manage.py createsuperuser
./manage.py loaddata fixtures.json
./manage.py runserver

http://localhost:8000/

Modelo

mer.tex é a modelagem conceitual (coloquei apenas as entidades). Para fazer este documento eu usei o LaTeX junto com o pacote tikz-er2.

Para compilar o documento use o comando

$ latexmk -pdf mer.tex && latexmk -c

Para converter o pdf em jpg use o Imagemagick.

$ convert -density 300 mer.pdf mer.jpg

mer

tabelas.tex foi feito em LaTeX junto com o pacote tikz-uml.

tabelas

Gerando dados randômicos

Para gerar dados randômicos entre na pasta vendas_project/dados e digite

$ python manager_db.py

Nova api para pegar produtos do Mercado Livre

Entre na pasta vendas/api/ e digite

python vendas/api/get_categorias.py
python vendas/api/get_produtos.py

Depois rode o comando

make create_categories
make create_products2

Notas

Para gerar vendas.png use a biblioteca django-extensions junto com

$ ./manage.py graph_models -a -g -o vendas.png

ou

$ ./manage.py graph_models -e -g -l dot -o vendas.png vendas

Se der erro, instale pyparsing novamente desta forma:

$ pip uninstall pyparsing
$ pip install -Iv https://pypi.python.org/packages/source/p/pyparsing/pyparsing-1.5.7.tar.gz#md5=9be0fcdcc595199c646ab317c1d9a709
$ pip install pydot
$ pip freeze > requirements.txt

a

Leia django-notes.

Veja o live demo.