Package: sistema-bancario
Sistema BancÃ¡rio em Python - Atualizado com PrincÃ­pios SOLIDEste projeto oferece uma versÃ£o atualizada e simplificada de um sistema bancÃ¡rio em Python, incorporando os princÃ­pios do SOLID e seguindo as melhores prÃ¡ticas de design orientado a objetos. A aplicaÃ§Ã£o proporciona funcionalidades bÃ¡sicas para gerenciamento de contas bancÃ¡rias, incluindo depÃ³sitos, saques e a visualizaÃ§Ã£o de extratos, tudo isso atravÃ©s de uma interface de texto amigÃ¡vel.Principais CaracterÃ­sticas e PrincÃ­piosOrganizaÃ§Ã£o Modular:O projeto foi dividido em diferentes arquivos, cada um com um propÃ³sito especÃ­fico e seguindo o princÃ­pio da Responsabilidade Ãšnica (SRP).Classes e HeranÃ§a:O uso de heranÃ§a foi aplicado para criar uma estrutura mais coesa e reutilizÃ¡vel. As classes foram organizadas para facilitar a extensÃ£o de funcionalidades.Interfaces Claras:As interfaces foram definidas de forma clara para cada classe, seguindo o princÃ­pio da SegregaÃ§Ã£o de Interfaces (ISP), permitindo que cada classe implemente somente o que Ã© relevante.ValidaÃ§Ãµes Refinadas:As operaÃ§Ãµes, como saques, foram implementadas com validaÃ§Ãµes que respeitam as regras de negÃ³cio e mantÃªm o cÃ³digo coeso e seguro.Menu Intuitivo:O arquivo "main.py" apresenta um menu de interaÃ§Ã£o intuitivo, possibilitando login, acesso ao menu administrativo e realizaÃ§Ã£o de operaÃ§Ãµes bancÃ¡rias.PrincÃ­pio do Open/Closed:A estrutura do projeto foi planejada de modo a ser facilmente estendida sem a necessidade de modificar as classes existentes.InstruÃ§ÃµesExecute o arquivo "main.py" para iniciar a aplicaÃ§Ã£o.Utilize o menu para fazer login, realizar operaÃ§Ãµes bancÃ¡rias e explorar as funcionalidades disponÃ­veis.Aproveite para analisar o cÃ³digo-fonte, entender a implementaÃ§Ã£o dos princÃ­pios SOLID e fazer ajustes de acordo com suas necessidades.Este projeto exemplifica o uso dos princÃ­pios SOLID para criar um cÃ³digo mais robusto, extensÃ­vel e de fÃ¡cil manutenÃ§Ã£o. Ao explorar o cÃ³digo, vocÃª terÃ¡ a oportunidade de aprender nÃ£o apenas as funcionalidades bancÃ¡rias, mas tambÃ©m as boas prÃ¡ticas de programaÃ§Ã£o orientada a objetos.ObservaÃ§Ã£o:Este projeto foi desenvolvido como um exercÃ­cio didÃ¡tico e nÃ£o Ã© adequado para uso em ambientes de produÃ§Ã£o ou para tratamento de informaÃ§Ãµes financeiras reais.Desfrute da jornada de aprendizado e aproveite as vantagens de desenvolver com os princÃ­pios SOLID!Estrutura do ProjetoO projeto segue uma estrutura baseada na Clean Architecture, onde a organizaÃ§Ã£o em camadas facilita a separaÃ§Ã£o de responsabilidades e a escalabilidade do sistema. Abaixo estÃ¡ a descriÃ§Ã£o das principais pastas e arquivos do projeto:app/domain/models:ContÃ©m as classes de modelos de domÃ­nio, comoCliente,ContaBancariaeTransacao.app/domain/repositories:ResponsÃ¡vel por interagir com o banco de dados e realizar operaÃ§Ãµes CRUD nas entidades.app/domain/use_cases:ContÃ©m os casos de uso da aplicaÃ§Ã£o, que encapsulam a lÃ³gica de negÃ³cios.app/interfaces:ContÃ©m as interfaces de interaÃ§Ã£o com o usuÃ¡rio, como o menu do cliente e do administrador.app/persistence/database.py:ResponsÃ¡vel pela configuraÃ§Ã£o do banco de dados e pela inicializaÃ§Ã£o da sessÃ£o.O arquivo principalmain.pyÃ© o ponto de entrada da aplicaÃ§Ã£o, onde o banco de dados Ã© inicializado e os casos de uso sÃ£o instanciados para possibilitar a interaÃ§Ã£o do usuÃ¡rio com o sistema.Lembre-se de explorar cada arquivo e entender como eles se relacionam para formar a estrutura geral do projeto.