[Estudo] - Um aplicativo de gerenciamento de venda
djangoTheForceBE
Criei este aplicativo como parte de um estudo que venho fazendo para aplicar algumas técnicas do Django e programação e afins, entre elas:
- Registro de log dos processos.
- Não deletar o registro do banco de dados, apenas marcar como deletado.
- Construir uma API.
- Desenvolver o aplicativo a partir de testes.
- Ainda estou melhorando a forma como os testes estão trabalhando.
- Escrevi boa parte dos testes antes de começar a desenvolver.
- Entender mais a interface de administração do Django.
- Entender o Django Rest Framework.
Posso dizer que consegui evoluir bastante em alguns assuntos, mas considero a parte de escrever os testes antes a parte mais interessante do desenvolvimento. Pois tudo o que vinha aparecendo na minha mente como requisito, eu colocava como teste (mesmo que testes vazios neste primeiro momento) e depois fui fazendo um a um. Foi trabalhoso, mas consegui focar bastante e no final dos testes o aplicativo estava bem "fechadinho", com tudo funcionando como o esperado.
Funcionalidades.
No App, você pode cadastrar Empresas, Depósitos, Produto, Preço, Entidade e Documento; de forma geral, para cada Model, eu criei uma tabela de log.
Sugerindo preços após dar entrada de documento.
Depois que você dá a entrada num documento com os itens, um signal automaticamente gera uma sugestão de preço para o item e depósito correspondente. A sugestão é feita pegando o valor de entrada mais a margem do produto.
Os registros não são deletados, são marcados como deletados.
Bem, desde a faculdade escutei rumores de que havia um sistema que não deletava do banco, apenas marcava como deletado. Então resolvi testar isso na prática e deu certo!
Aquela ajuda!
Documentar todos os models é um pouco tedioso para mim. Então, o que fiz foi pedir uma ajudinha para o ChatGPT. Primeiro joguei os testes e pedi para ele descrever o que o sistema estava fazendo. Ele até fez, mas não ficou do jeito que eu pensei. Então peguei o model e signal de cada um e joguei lá, e ficou quase do jeito que pensei. Alguns ajustes manuais e tudo ficou perfeito! Então, a tela de README.md e os outros docs foram feitos com o auxílio de uma IA, mas esta publicação não! (Tá, acertei alguns pequenos detalhes com a ajuda do ChatGPT)
Sim, o projeto não está finalizado!
Por enquanto, vou deixar o projeto quietinho. Me conheço e certamente, daqui uns 6 meses, vou querer implementar um módulo ou melhoria por uma razão qualquer.
Link para o projeto Aqui