Python 3.5.0 and Django 1.10.1
Veja o live demo.
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.
- 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.
$ 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
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
tabelas.tex foi feito em LaTeX junto com o pacote tikz-uml.
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
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
Leia django-notes.
Veja o live demo.