Skip to content

JoaoPaulo-Macedo/sales_accounting_app

Repository files navigation

Acerto de Vendas

💵 Aplicativo para cálculo e acerto de vendas, com finalidade de facilitar o trabalho na empresa na qual trabalhei. 💵

vendas

💻 Tecnologias

O projeto foi desenvolvido com Flutter, e inclui packages como shared_preferences, flutter_bloc, get_it e mockito para testes.

💪 Motivação

Trabalhei em uma empresa de prestação de serviços a qual promovia distribuição e venda de produtos. Nesse contexto, semanalmente havia a prestação de contas do material distribuído, envolvendo cálculos que incluem comissão da empresa, comissão dos colaboradores e impostos, além de variáveis como o preço do produto, que varia semanalmente, material vendido, devolvido e extraviado/danificado. Para facilitar, criei esse aplicativo, oferecendo considerável agilidade, conforto e precisão aos cálculos.

📐 Arquitetura

Em sua arquitetura foi implementado o Clean Dart proposto pela Flutterando como implementação da Clean Architecture no Flutter. Apesar de ser um aplicativo simples, foi optado pelo Clean Dart por fins de estudo, além de o aplicativo possuir possibilidade de futura expansão.
O Clean Dart pode ser dividido do seguinte modo:

  • Presentation (UI, Flutter, Controllers, State Manager, etc).
  • Domain (apenas regras de negócios).
    • Entities: regras de negócio da empresa.
    • Usecases: regras de negócio da aplicação.
    • Interfaces/contratos de Repositories.
  • Data
    • Implementação de Repositories.
    • Tratamento dos dados externos.
    • Interfaces/contratos de DataSources.
  • External
    • Implementação de DataSources.
    • Acessos externos que dependem de packages, drivers, APIs, etc.

Além disso, o Clean Architecture propõe o conjunto de princípios conhecido como SOLID.

🎬 Gestão de Estado

Para gestão de estado foi adotado o Cubit do package flutter_bloc. A escolha se deu devido à sua simplicidade e agilidade na implementação, evitando o boilerplate gerado pelo BLoC tradicional com a criação de classes para gerenciar eventos, atendendo bem às necessidades do projeto.

💉 Injeção de Dependências

A injeção de dependências foi implementada com o package get_it. Escolhido por ser um package simples que atende bem as demandas do aplicativo, contribuindo na implementação do princípio SOLID da inversão de dependências.

📝 Funcionalidades

  1. Informe os campos referentes ao material (total em posse, venda, devolução e faltas).
  2. Informe os campos referentes ao financeiro.
  3. Informe o preço de venda do material.
  • O cálculo é automático assim que todos os campos obrigatórios são informados.
  • Há tratamento de erros, sendo eles mostrados ao usuário através de um SnackBar na parte inferior.

Veja o vídeo exemplo a seguir: video from YouTube

  • Os campos "Total de Cartelas", "Imposto" e "Ajuda de Custo" são comuns a todas as semanas, sendo por isso salvos no aparelho. O processo de salvamento é mostrado ao usuário por um indicador de progresso, como demonstrado em vídeo.

About

Simple app to manage sales from previous job.

Topics

Resources

Stars

Watchers

Forks

Packages

No packages published

Languages