Python 3.4 and Django 1.7.8
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
virtualenv -p /usr/bin/python3 vendas
cd vendas
source bin/activate
PS1="(`basename \"$VIRTUAL_ENV\"`):/\W$ " # opcional
echo "Django>=1.7,<1.8" > requirements.txt # aditional
pip install -r requirements.txt
./manage.py makemigrations vendas
./manage.py migrate
./manage.py createsuperuser
./manage.py loaddata fixtures_bkp.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
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.