O projeto consiste em fornecer um sistema de vendas de produtos e administração geral de comércio físico, nesse caso um petshop. A simples interface de vendas é semelhante a de sistemas de vendas de um(a) operador(a) de caixa registradora presente em comércios.
O sistema de vendas funciona basicamente com chamadas HTTP, que realizam requisições à base de dados do servidor, este que responde a requisição do produto e sua quantidade, retornando a resposta que é renderizada na interface de vendas. Tanto o processamento de novos itens bem como a atualização de posteriores requisições de outras quantidades são atualizadas na interface de pessoa que opera a venda.
Esse projeto foi concebido como parte de meu aprendizado do framework Flask.
- Processar produtos a serem vendidos a partir de seus "códigos de barra"
- Reverter o processamento descrito acima, como remover itens processados ou cancelar a venda por completa. Esse processo consiste em autenticação de uma credencial que possua permissão para tal, registrada pelo administrador.
- Concluir a venda.
- Lidar com possíveis inconsistências de: autenticações, código de produto inexistente e quantidade de requisição de produto incompatível.
- Consiste em um CRUD de produtos e credenciais, bem como uma visualização de vendas registradas e suas características.
Algumas das ferramentas utilizadas:
- Python
- Flask
- Flask-SQLAlchemy
- Flask-Admin
- Flask-Migrate
- SQLite
- Bootstrap 3
- Python 3.8+
- Ative sua virtual env.
- Configure a variável de ambiente do Flask como: app
Comandos seguintes:
pip install -r requirements.txt
flask db init
flask db migrate
flask db upgrade
flask run
Com isso, é possível acessar a aplicação Flask e em seguida a rota /admin
para criar uma credencial de funcionário que irá operar a venda. Assim, poderá se autenticar nas rotas /
ou /login
e obter acesso à interface de vendas. Abaixo a imagem da interface de admin, na parte de credenciais:
- O sistema de vendas foi desenvolvido para atuar com apenas um terminal de trabalho ativo, não sendo compatível ainda com o que se encontra em comércios que possuem mais de um terminal de operação de caixa registradora.
- O sistema de admin ainda não possui login.
- Não possuo direitos sobre o nome da empresa fictícia que aparece pelas interfaces, esta que foi escolhida apenas para ilustrar o projeto.