Um software de código aberto que está em desenvolvimento utilizando a linguagem Python3. Tem por objetivo calcular automaticamente o imposto de renda de aplicações financeiras na bolsa de valores, e gerar o boleto do DARF (Documento de Arrecadação de Receitas Federais) para pagamento.
O projeto atualmente não conta com testes unitários implementados. A ideia desta tarefa é utilizar a biblioteca unittest e realizar a implementação dos testes unitários para a classe Control, dessa forma garantindo o funcionamento unitário dos métodos da mesma e facilitar a manutenção do código.
Procedimento
Verificar os requisitos para a utilização do unittest.
Estudar o funcionamento da biblioteca.
Fazer a implementação dos testes unitários da classe Control.
Realizar testes utilizando os testes unitários implementados e garantir seu funcionamento.
Os testes devem ter como retorno apenas True ou False indicando se passou ou não no teste.
Commitar a implementação realizada no diretório test na raíz do projeto.
Observações
Documentações referentes aos padrões do unittest e a como utilizar a biblioteca podem ser encontradas no seguinte local:
Após concluídas as tarefas, marcá-las como concluídas no Issue e commitar as mudanças. Realizar um pull request para o master adicionando o número da Issue no comentário.
Atualmente o log em modo debug não está dividido entre as classes, ou seja, está usando o log global. Dessa forma, todos os logs indesejados de debug da biblioteca selenium e outras bibliotecas utilizadas serão visualizados ao acionar o modo debug do aplicativo. A ideia é remover estes logs indesejados das biliotecas utilizadas no modo debug.
Procedimento
Implementar o modo debug do log dividido por cada classe do sistema.
Implementar a configuração do log em cada classe e adicionar argumento de entrada para o usuário selecionar o level do log.
Testar as implementações realizadas.
Conclusão
Após concluídas as tarefas, marcá-las como concluídas no Issue e commitar as mudanças. Realizar um pull request para o master adicionando o número da Issue no comentário.
Atualmente o projeto necessita que as dependências todas sejam instaladas manualmente pelo usuário. A ideia é elaborar o documento de dependências e utilizar ele para instalação automática das dependências.
Procedimento
Utilizar o virtualenv e o pip freeze para criar o documento de dependências.
Adicionar a instalação automática das dependências no arquivo de configuração: configure
Testar a instalação correta e execução do software em um sistema de ambiente virtual python.
Conclusão
Após concluídas as tarefas, marcá-las como concluídas no Issue e commitar as mudanças. Realizar um pull request para o master adicionando o número da Issue no comentário.
O sistema CEI-B3 adicionou um campo novo no Login, o campo de reCAPTCHA . É necessário consertar o sistema de conexão com o CEI-B3 para lidar com a resolução do reCAPTCHA se possível.
Procedimento
Estudar sobre formas de lidar com o campo reCAPTCHA adicionado no login do CEI-B3 .
Implementar uma possível solução.
Realizar testes.
Commitar as modificações implementadas.
Conclusão
Após concluídas as tarefas, marcá-las como concluídas no Issue e commitar as mudanças. Realizar um pull request para o master adicionando o número da Issue no comentário.
O projeto atualmente não conta com testes unitários implementados. A ideia desta tarefa é utilizar a biblioteca unittest e realizar a implementação dos testes unitários para a classe Transaction, dessa forma garantindo o funcionamento unitário dos métodos da mesma e facilitar a manutenção do código.
Procedimento
Verificar os requisitos para a utilização do unittest.
Estudar o funcionamento da biblioteca.
Fazer a implementação dos testes unitários da classe Transaction.
Realizar testes utilizando os testes unitários implementados e garantir seu funcionamento.
Os testes devem ter como retorno apenas True ou False indicando se passou ou não no teste.
Commitar a implementação realizada no diretório test na raíz do projeto.
Observações
Documentações referentes aos padrões do unittest e a como utilizar a biblioteca podem ser encontradas no seguinte local:
Após concluídas as tarefas, marcá-las como concluídas no Issue e commitar as mudanças. Realizar um pull request para o master adicionando o número da Issue no comentário.
Após concluídas as tarefas, marcá-las como concluídas no Issue e commitar as mudanças. Realizar um pull request para o master adicionando o número da Issue no comentário.
Há uma opção para o usuário consultar as suas transações, seja transações compradas ou vendidas. A ideia desta tarefa é fazer o design da ui de consulta de transações.
Procedimento
Verificar e estudar como desenvolver interfaces de usuário utilizando a biblitoteca QtWidgets.
Verificar como funciona e como foi feito o design da interface principal (ui/gui.ui).
Implementar um widget personalizado para exibir os dados de uma transação. O widget deve exibir todos as propriedades da classe Transaction.
Realizar o design da tela de consulta manual de transações utilizando o mesmo tamanho e posição da tela principal. Implementar a consulta em formato de lista de widgets.
Permitir a edição das propriedas de cada transação pelo usuário.
Adicionar botão para voltar à tela principal.
Commitar a implementação realizada no diretório ui na raíz do projeto, chamando o design de transaction_list.ui.
Observações
Abaixo encontra-se uma video aula de como implementar um design simples utilizando a biblioteca QtWidgets.
Após concluídas as tarefas, marcá-las como concluídas no Issue e commitar as mudanças. Realizar um pull request para o master adicionando o número da Issue no comentário.
Após concluídas as tarefas, marcá-las como concluídas no Issue e commitar as mudanças. Realizar um pull request para o master adicionando o número da Issue no comentário.
Nos campos de input de CPF da interface gráfica, inserir máscara: "___.___.___-__".
Procedimento
Estudar sobre como inserir máscaras no Qt.
Implementar a máscara.
Aplicar a máscara para o campo de inserção de CPF no login do CEI-B3.
Aplicar a máscara para o campo de inserção de CPF da geração do boleto da DARF.
Realizar testes.
Commitar as modificações implementadas.
Conclusão
Após concluídas as tarefas, marcá-las como concluídas no Issue e commitar as mudanças. Realizar um pull request para o master adicionando o número da Issue no comentário.
O sistema CEI-B3 possui uma limitação associada à data máxima possível para importação dos dados da carteira de ativos. Essa data não está sendo levada em conta na hora de exibir ao usuário os meses possíveis de importação de dados do CEI.
Procedimento
Verificar a data máxima e mínima possíveis de acesso acessando a página do CEI-B3/carteira de ativos
Implementar a leitura desses valores de data mais antiga possível de acesso da carteira de ativos.
Corrigir a lógica dos meses divulgados ao usuário para importação levando em conta a data mais antiga possível de acesso a carteira de ativos.
Realizar testes.
Commitar a correção implementada.
Conclusão
Após concluídas as tarefas, marcá-las como concluídas no Issue e commitar as mudanças. Realizar um pull request para o master adicionando o número da Issue no comentário.
Deve-se criar uma opção na interface gráfica para o usuário consultar as suas ações. A ideia desta tarefa é fazer o design da ui de consulta de ações.
Procedimento
Verificar e estudar como desenvolver interfaces de usuário utilizando a biblitoteca QtWidgets.
Verificar como funciona e como foi feito o design da interface principal (ui/gui.ui).
Implementar um widget personalizado para exibir os dados de uma ação. O widget deve exibir todos as propriedades da classe Stock.
Realizar o design da tela de consulta manual de ações utilizando o mesmo tamanho e posição da tela principal. Implementar a consulta em formato de lista de widgets.
Permitir a edição das propriedas de cada ação pelo usuário.
Adicionar botão para voltar à tela principal.
Commitar a implementação realizada no diretório ui na raíz do projeto, chamando o design de stock_list.ui.
Observações
Abaixo encontra-se uma video aula de como implementar um design simples utilizando a biblioteca QtWidgets.
Após concluídas as tarefas, marcá-las como concluídas no Issue e commitar as mudanças. Realizar um pull request para o master adicionando o número da Issue no comentário.
Atualmente o projeto contém apenas a adição de transações vendidas. A ideia desta tarefa é a implementação da adição de transações compradas, desta forma permitindo o desconto correto das taxas e o cálculo do preço médio por ação.
Procedimento
Modificar as implementações para conter uma propriedade que diz se a transação foi comprada ou vendida.
Verificar outras propriedades que devem ser alteradas para permitir a adição de transações compradas. Fazer as modificações necessárias.
Testar o sistema adicionando manualmente transações compradas e vendidas e verificar o correto funcionamento.
Conclusão
Após concluídas as tarefas, marcá-las como concluídas no Issue e commitar as mudanças. Realizar um pull request para o master adicionando o número da Issue no comentário.
Esta tarefa visa verificar a possibilidade de adicionar uma opção a mais para inserção das transações além da utilização do sistema CEI - B3* e da inserção manual. A ideia é utilizar as notas de corretagem da B3.
Procedimento
Consultar as notas de corretagem da B3 e verificar se ela contém todas as transações realizadas e se ela mantém um padrão para ser possível a automação.
Verificar se é possivel obter o dado que diz se o título foi comprado ou vendido.
Verificar se é possivel obter o dado que diz respeito a quantidade de títulos comprados/vendidos.
Verificar se é possivel obter o dado que diz o valor do título.
Verificar se é possivel obter o dado que diz a data de compra/venda.
Verificar se é possivel obter o dado que diz qual o tipo de título (Swing trade, day trade, fundos imobiliários, etc)
Verificar se é possivel obter o dado que diz os valores das taxas pagas para compra/venda dos títulos.
Conclusão
Documentar em um arquivo de texto simples as conclusões tomadas ao inspecionar as notas de corretagem e adicionar este documento na tarefa.
Verificar se todos os dados necessários para o desenvolvimento da aplicação podem ser obtidos no sistema CEI - B3.
Procedimento
Consultar o sistema CEI - B3 utilizando o navegador utilizando uma conta que possua vendas e compras de títulos.
Verificar se é possivel obter o dado que diz se o título foi comprado ou vendido.
Verificar se é possivel obter o dado que diz respeito a quantidade de títulos comprados/vendidos.
Verificar se é possivel obter o dado que diz o valor do título.
Verificar se é possivel obter o dado que diz a data de compra/venda.
Verificar se é possivel obter o dado que diz qual o tipo de título (Swing trade, day trade, fundos imobiliários, etc)
Verificar se é possivel obter o dado que diz os valores das taxas pagas para compra/venda dos títulos.
Conclusão
Documentar em um arquivo de texto simples as chamadas REST e os parâmetros necessários para obter os dados descritos acima e adicionar este documento na tarefa.
Há uma opção para o usuário adicionar manualmente as suas transações, seja transações compradas ou vendidas. A ideia desta tarefa é fazer o design da ui de adição de transações.
Procedimento
Verificar e estudar como desenvolver interfaces de usuário utilizando a biblitoteca QtWidgets.
Verificar como funciona e como foi feito o design da interface principal (ui/gui.ui).
Realizar o design da tela de adição manual de transações utilizando o mesmo tamanho e posição da tela principal.
Adicionar todas as propriedas da classe Transaction para que o usuário insira na tela.
Adicionar botão para voltar à tela principal.
Commitar a implementação realizada no diretório ui na raíz do projeto, chamando o design de transaction_add.ui.
Observações
Abaixo encontra-se uma video aula de como implementar um design simples utilizando a biblioteca QtWidgets.
Após concluídas as tarefas, marcá-las como concluídas no Issue e commitar as mudanças. Realizar um pull request para o master adicionando o número da Issue no comentário.
Após concluídas as tarefas, marcá-las como concluídas no Issue e commitar as mudanças. Realizar um pull request para o master adicionando o número da Issue no comentário.
O projeto atualmente não conta com testes unitários implementados. A ideia desta tarefa é utilizar a biblioteca unittest e realizar a implementação dos testes unitários para a classe Darf, dessa forma garantindo o funcionamento unitário dos métodos da mesma e facilitar a manutenção do código.
Procedimento
Verificar os requisitos para a utilização do unittest.
Estudar o funcionamento da biblioteca.
Fazer a implementação dos testes unitários da classe Darf.
Realizar testes utilizando os testes unitários implementados e garantir seu funcionamento.
Os testes devem ter como retorno apenas True ou False indicando se passou ou não no teste.
Commitar a implementação realizada no diretório test na raíz do projeto.
Observações
Documentações referentes aos padrões do unittest e a como utilizar a biblioteca podem ser encontradas no seguinte local:
Após concluídas as tarefas, marcá-las como concluídas no Issue e commitar as mudanças. Realizar um pull request para o master adicionando o número da Issue no comentário.
Atualmente o boleto da DARF está sendo gerado de forma incompleta, sem imprimir a parte relacionada ao código de barras.
Procedimento
Verificar e estudar a forma de impressão do boleto.
Estudar métodos para gravar o arquivo .pdf ao invés de tirar uma foto da tela no chromedriver.
Implementar correção para imprimir o boleto da DARF completo.
Realizar testes.
Commitar a correção implementada.
Conclusão
Após concluídas as tarefas, marcá-las como concluídas no Issue e commitar as mudanças. Realizar um pull request para o master adicionando o número da Issue no comentário.
Hávera a necessidade de inserção de CAPTCHA para gerar o boleto da bolsa de valores. Para isso, é necessário a criação de uma tela que exibirá a imagem do CAPTCHA e conterá uma entrada textual para o usuário digitar o código do CAPTCHA . A ideia desta tarefa é fazer o design da ui de inserção do CAPTCHA ao receber o mesmo do sistema da receita federal.
Procedimento
Verificar e estudar como desenvolver interfaces de usuário utilizando a biblitoteca QtWidgets.
Verificar como funciona e como foi feito o design da interface principal (ui/gui.ui).
Realizar o design da tela de inserção do código CAPTCHA .
Retornar o valor inserido do CAPTCHA para o sistema de controle utilizar na comunicação com a receita federal.
Commitar a implementação realizada no diretório ui na raíz do projeto, chamando o design de captcha.ui.
Observações
Abaixo encontra-se uma video aula de como implementar um design simples utilizando a biblioteca QtWidgets.
Após concluídas as tarefas, marcá-las como concluídas no Issue e commitar as mudanças. Realizar um pull request para o master adicionando o número da Issue no comentário.
O projeto atualmente não conta com testes unitários implementados. A ideia desta tarefa é utilizar a biblioteca unittest e realizar a implementação dos testes unitários para a classe Stock, dessa forma garantindo o funcionamento unitário dos métodos da mesma e facilitar a manutenção do código.
Procedimento
Verificar os requisitos para a utilização do unittest.
Estudar o funcionamento da biblioteca.
Fazer a implementação dos testes unitários da classe Stock.
Realizar testes utilizando os testes unitários implementados e garantir seu funcionamento.
Os testes devem ter como retorno apenas True ou False indicando se passou ou não no teste.
Commitar a implementação realizada no diretório test na raíz do projeto.
Observações
Documentações referentes aos padrões do unittest e a como utilizar a biblioteca podem ser encontradas no seguinte local:
Após concluídas as tarefas, marcá-las como concluídas no Issue e commitar as mudanças. Realizar um pull request para o master adicionando o número da Issue no comentário.
Esta tarefa visa verificar a possibilidade de adicionar uma opção a mais para inserção das transações além da utilização do sistema CEI - B3 e da inserção manual. A ideia é utilizar as notas de corretagem das corretoras da bolsa de valores.
Procedimento
Consultar as notas de corretagem de pelo menos duas corretoras e verificar se elas contém todas as transações realizadas e se elas mantém um padrão para ser possível a automação.
Verificar se é possivel obter o dado que diz se o título foi comprado ou vendido.
Verificar se é possivel obter o dado que diz respeito a quantidade de títulos comprados/vendidos.
Verificar se é possivel obter o dado que diz o valor do título.
Verificar se é possivel obter o dado que diz a data de compra/venda.
Verificar se é possivel obter o dado que diz qual o tipo de título (Swing trade, day trade, fundos imobiliários, etc)
Verificar se é possivel obter o dado que diz os valores das taxas pagas para compra/venda dos títulos.
Conclusão
Documentar em um arquivo de texto simples as conclusões tomadas ao inspecionar as notas de corretagem e adicionar este documento na tarefa.
Após concluídas as tarefas, marcá-las como concluídas no Issue e commitar as mudanças. Realizar um pull request para o master adicionando o número da Issue no comentário.
Gerar um pacote de instalação completo do sistema Gerador de DARF para o sistema operacional linux(rpm, debian e targz).
Procedimento
Estudar sobre como gerar instaladores para linux a partir de códigos em python 3.
Gerar o instalador.
Divulgar o instalador em algum website.
Automatizar o processo de geração de instalador e divulgação do mesmo.
Realizar testes.
Commitar a automatização da geração do instalador implementada.
Conclusão
Após concluídas as tarefas, marcá-las como concluídas no Issue e commitar as mudanças. Realizar um pull request para o master adicionando o número da Issue no comentário.
Após concluídas as tarefas, marcá-las como concluídas no Issue e commitar as mudanças. Realizar um pull request para o master adicionando o número da Issue no comentário.
Gerar um pacote de instalação completo do sistema Gerador de DARF para o sistema operacional windows.
Procedimento
Estudar sobre como gerar instaladores para windows a partir de códigos em python 3.
Gerar o instalador.
Divulgar o instalador em algum website.
Automatizar o processo de geração de instalador e divulgação do mesmo.
Realizar testes.
Commitar a automatização da geração do instalador implementada.
Conclusão
Após concluídas as tarefas, marcá-las como concluídas no Issue e commitar as mudanças. Realizar um pull request para o master adicionando o número da Issue no comentário.
O projeto atualmente não conta com muita documentação. A ideia é trazer a biblioteca Pydoc ao projeto e permitir o uso da mesma para a documentação do sistema.
Procedimento
Verificar os requisitos para a utilização do Pydoc.
Estudar o funcionamento da biblioteca.
Fazer as modificações necessárias no projeto para que o mesmo possa gerar documentação com o Pydoc.
A documentação gerada deve ser adicionada ao diretório doc na raíz do projeto.
Escrever passo-a-passo de como gerar a documentação do sistema utilizando o Pydoc e anexar esse documento no diretório doc na raíz do projeto.
Observações
Documentações referentes aos padrões do Pydoc e a como utilizar a ferramente podem ser encontradas nos seguintes locais:
Após concluídas as tarefas, marcá-las como concluídas no Issue e commitar as mudanças. Realizar um pull request para o master adicionando o número da Issue no comentário.
Atualmente o projeto conta com o uso do chromedriver para impressão do boleto do DARF. A ideia desta tarefa é utilizar a biblioteca automatedweb ao invés de utilizar o chromedriver, para remover a dependência do navegador chrome.
Procedimento
Estudar as bibliotecas chromedriver e automatedweb.
Navegar pelo sistema da receita e anotar todas as chamas POST,GET,etc necessárias para gerar o boleto.
Implementar comunicação com o sistema da receita de impressão de boletos utilizando o automatedweb.
Substituir no sistema a implementação do chromedriver pela implementação utilizando o automatedweb.
Realizar testes.
Commitar a correção implementada.
Conclusão
Após concluídas as tarefas, marcá-las como concluídas no Issue e commitar as mudanças. Realizar um pull request para o master adicionando o número da Issue no comentário.
Atualmente o projeto contém apenas a implementação do método para obter o total vendido da operação de Swing Trade. É necessário implementar os métodos para obtenção do total vendido das outras operações também, pois assim, o usuário poderá visualizar estes valores na interface gráfica.
Procedimento
Implementar o método get_total_sell_value_of_day_trade_stocks na classe Control.
Implementar o método get_total_sell_value_of_fi_stocks na classe Control.
Testar os métodos.
Conclusão
Após concluídas as tarefas, marcá-las como concluídas no Issue e commitar as mudanças. Realizar um pull request para o master adicionando o número da Issue no comentário.