Giter VIP home page Giter VIP logo

web-budget's Introduction

Join the chat at https://gitter.im/web-budget/Lobby License: GPL v3

📢 o webBudget esta mudando! Uma nova e melhorada versão esta em construção, acesse nosso novo repositório aqui: https://github.com/web-budget e também saiba que a v3 esta em modo de manutenção, ou seja, todo o trabalho para novas funcionalidades esta sendo concentrado na v4 no novo repositório

📢 webBudget is changing! A new and improved version will be available soon! check out our brand new repository here: https://github.com/web-budget and keep in mind that v3 is under maintenance mode, work for new features now is done at the new repo to build and will be available in v4

webBudget

Bem vindo or Welcome!

Documentação oficial or official documentation: docs.webbudget.com.br

Se você é do Brasil:

Bem vindo ao repositório do webBudget! Um sistema grátis e open-source para você realizar seu controle financeiro pessoal ou da sua empresa.

Para saber mais, acesse a página oficial do projeto em http://webbudget.com.br.

Se você quer apenas testar o sistema:

Utilize a imagem docker! Mais informações sobre como realizar o deploy podem ser encontradas aqui.

If you are not from Brazil:

Welcome to the webBudget repository! A free and open-source software to control your personal finances or of your company.

If you want to know more about, please, access the oficial project page in http://webbudget.com.br.

If you want to try the project:

Use our docker image! More information and how-to to deploy it can be found here.

web-budget's People

Contributors

arthurgregorio avatar gitter-badger avatar snyk-bot avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

web-budget's Issues

Filtrar movimentos

Ao tentar filtrar um movimento na lista de movimentos é apresentado um erro na query ao banco

Mensagens privadas

Revisar o mecanismo de mensageria

O sistema possui um mecanismo de mensageria, porém ele apresenta vários bugs de PTA's para contornar problemas técnicos e de modelagem

Logout em qualquer pagina

Apos a mudança no sistema de login, a ferramenta só possibilita logou se o usuário estiver na dashboard.

Notificações via e-mail

O sistema deve possuir um mecanismo de notificações via e-mail para as seguintes situações:

1 - Período vencido
2 - Movimentos vencidos
3 - Fechamento mensal

Tais ações devem ser parametrizadas via configuração, definindo os destinatários de cada situação.

receitas X debitos

O sistema esta permitindo que receitas sejam misturadas com débitos durante o rateio

Sistema de mensageria

O sistema de mensageria apresenta um bug impossobilitando o login do usuário quando uma determinada situação for atingida.

Não sei como chega-se nele, mas testar o sistema de mensagens para tentar reproduzir o erro.

Campo conta bancaria

O campo onde digitamos o numero da conta bancaria sumiu do cadastro de carteiras

Movimentar carteiras ao pagar

Ao realizar pagamentos ou recebimentos dos movimentos, movimentar também os saldos das carteiras a fim de apresentar em tempo real a posição financeira

Lista de desejos

Criar um maneira de o sistema controlar economias para aquisição ou conclusão de algo, uma forma de de acordo com a movimentação uma lista de metas ser alimentada para mostrar o quão perto você esta ou não de adquirir aquele bem planejado ou cumprir aquele objetivo.

Gráficos do período

Revisar todos os gráficos do período e resumo do período.

Com a revisão do fechamento e rateios (#7 e #6) os gráficos precisam serem refeitos devido a nova lógica para composição de saldos para centros de custo e classes de movimento

Lentidão login persiste

Ao apresentar o loading da tela inicial (ver bug #35) o sistema ainda apresenta lentidão. Em análise ao código, remover do @postconstruc a carga do gráfico e chamá-lo junto ao evento de loading da tela.

Listagem de transferências

Listar todas as transferências de uma vez só e possibilitar o filtro por carteira como origem e destino em separado

Cartão de débito

Possibilitar pagamentos via cartão de debito

Mesmo fluxo do pagamento em carteira, mas com a referencia para o cartão também.

Parametrização

Fazer tela para parametrizar o sistema com os dados das classes e centros de custo base para movimentar as faturas dos cartões

Edição de identificadores

Ao editar um item cadastrado o sistema não deve permitir editar os valores chave para identificação do objeto.

Por exemplo: um centro de custo não pode ter seu nome editado pois pode provocar inconsistência nos dados da aplicação

Ref #21

Fim do período

Considerar o fim do período quando data final > que data atual, quando ela for igual a data final considerar que o período ainda é válido.

CSS picklist permissões

Corrigir o css do picklist de seleção das permissões, o nome aparece desalinhado com o checkbox

Atualizar para Spring 4

Atualizar toda a arquitetura da ferramenta dependente do spring para que se adeque ao uso da versão 4 do framework, abandonar também o uso de XML em suas configurações.

Depende de #26

Acessar paginas via URL

Ao acessar uma pagina via URL no browser o mecanismo de segurança não esta sendo acionado

Mensagens desaparecem

Ao deixar um aviso em tela, um timeout é setado no componente para que ele desapareça em 8 segundos, porem se uma nova mensagem aparecer no meio tempo, ele nao ficara por mais 8 segundos.

Ao exibir uma nova mensagem em tela, deve-se desabilitar o timeout anterior e começar um novo.

Permitir saldos negativos no ajuste

Ao ajustar o saldo de uma carteira, deve-se permitir o ajuste para um saldo negativo ou permitir que a direção do saldo seja apontada: somar ao atual, subtrair do atual, substituir o atual

Campo do valor do rateio

Ao mostrar a janelinha de rateios, mostrar preenchido o campo valor com o total do movimento, se já houver rateio para ele, pegar o valor restante para o valor total.

bug em link financial - card invoice

HTTP Status 500 - String index out of range: -1

type Exception report

message String index out of range: -1

description The server encountered an internal error that prevented it from fulfilling this request.

exception

javax.servlet.ServletException: String index out of range: -1
javax.faces.webapp.FacesServlet.service(FacesServlet.java:606)
org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:52)
org.springframework.web.filter.CharacterEncodingFilter.doFilterInternal(CharacterEncodingFilter.java:88)
org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:106)
org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:330)
org.springframework.security.web.access.intercept.FilterSecurityInterceptor.invoke(FilterSecurityInterceptor.java:118)
org.springframework.security.web.access.intercept.FilterSecurityInterceptor.doFilter(FilterSecurityInterceptor.java:84)
org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:342)
org.springframework.security.web.access.ExceptionTranslationFilter.doFilter(ExceptionTranslationFilter.java:113)
org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:342)
org.springframework.security.web.session.SessionManagementFilter.doFilter(SessionManagementFilter.java:103)
org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:342)
org.springframework.security.web.authentication.AnonymousAuthenticationFilter.doFilter(AnonymousAuthenticationFilter.java:113)
org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:342)
org.springframework.security.web.servletapi.SecurityContextHolderAwareRequestFilter.doFilter(SecurityContextHolderAwareRequestFilter.java:154)
org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:342)
org.springframework.security.web.savedrequest.RequestCacheAwareFilter.doFilter(RequestCacheAwareFilter.java:45)
org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:342)
org.springframework.security.web.authentication.www.BasicAuthenticationFilter.doFilter(BasicAuthenticationFilter.java:150)
org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:342)
org.springframework.security.web.authentication.AbstractAuthenticationProcessingFilter.doFilter(AbstractAuthenticationProcessingFilter.java:199)
org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:342)
org.springframework.security.web.authentication.logout.LogoutFilter.doFilter(LogoutFilter.java:110)
org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:342)
org.springframework.security.web.context.request.async.WebAsyncManagerIntegrationFilter.doFilterInternal(WebAsyncManagerIntegrationFilter.java:50)
org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:106)
org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:342)
org.springframework.security.web.context.SecurityContextPersistenceFilter.doFilter(SecurityContextPersistenceFilter.java:87)
org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:342)
org.springframework.security.web.FilterChainProxy.doFilterInternal(FilterChainProxy.java:192)
org.springframework.security.web.FilterChainProxy.doFilter(FilterChainProxy.java:160)
org.springframework.web.filter.DelegatingFilterProxy.invokeDelegate(DelegatingFilterProxy.java:343)
org.springframework.web.filter.DelegatingFilterProxy.doFilter(DelegatingFilterProxy.java:260)
root cause

java.lang.StringIndexOutOfBoundsException: String index out of range: -1
java.lang.String.substring(String.java:1904)
br.com.webbudget.domain.entity.card.Card.getReadableName(Card.java:104)
sun.reflect.GeneratedMethodAccessor200.invoke(Unknown Source)
sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
java.lang.reflect.Method.invoke(Method.java:606)
javax.el.BeanELResolver.getValue(BeanELResolver.java:99)
com.sun.faces.el.DemuxCompositeELResolver._getValue(DemuxCompositeELResolver.java:176)
com.sun.faces.el.DemuxCompositeELResolver.getValue(DemuxCompositeELResolver.java:203)
org.apache.el.parser.AstValue.getValue(AstValue.java:183)
org.apache.el.ValueExpressionImpl.getValue(ValueExpressionImpl.java:184)
com.sun.faces.facelets.el.TagValueExpression.getValue(TagValueExpression.java:109)
javax.faces.component.UIComponentBase$AttributesMap.get(UIComponentBase.java:2364)
org.primefaces.renderkit.InputRenderer.createSelectItem(InputRenderer.java:106)
org.primefaces.renderkit.InputRenderer.getSelectItems(InputRenderer.java:87)
org.primefaces.component.selectonemenu.SelectOneMenuRenderer.encodeMarkup(SelectOneMenuRenderer.java:73)
org.primefaces.component.selectonemenu.SelectOneMenuRenderer.encodeEnd(SelectOneMenuRenderer.java:67)
javax.faces.component.UIComponentBase.encodeEnd(UIComponentBase.java:877)
javax.faces.component.UIComponent.encodeAll(UIComponent.java:1826)
javax.faces.render.Renderer.encodeChildren(Renderer.java:168)
javax.faces.component.UIComponentBase.encodeChildren(UIComponentBase.java:847)
javax.faces.component.UIComponent.encodeAll(UIComponent.java:1819)
javax.faces.component.UIComponent.encodeAll(UIComponent.java:1822)
javax.faces.component.UIComponent.encodeAll(UIComponent.java:1822)
com.sun.faces.application.view.FaceletViewHandlingStrategy.renderView(FaceletViewHandlingStrategy.java:447)
com.sun.faces.application.view.MultiViewHandler.renderView(MultiViewHandler.java:125)
javax.faces.application.ViewHandlerWrapper.renderView(ViewHandlerWrapper.java:286)
com.sun.faces.lifecycle.RenderResponsePhase.execute(RenderResponsePhase.java:120)
com.sun.faces.lifecycle.Phase.doPhase(Phase.java:101)
com.sun.faces.lifecycle.LifecycleImpl.render(LifecycleImpl.java:139)
javax.faces.webapp.FacesServlet.service(FacesServlet.java:594)
org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:52)
org.springframework.web.filter.CharacterEncodingFilter.doFilterInternal(CharacterEncodingFilter.java:88)
org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:106)
org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:330)
org.springframework.security.web.access.intercept.FilterSecurityInterceptor.invoke(FilterSecurityInterceptor.java:118)
org.springframework.security.web.access.intercept.FilterSecurityInterceptor.doFilter(FilterSecurityInterceptor.java:84)
org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:342)
org.springframework.security.web.access.ExceptionTranslationFilter.doFilter(ExceptionTranslationFilter.java:113)
org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:342)
org.springframework.security.web.session.SessionManagementFilter.doFilter(SessionManagementFilter.java:103)
org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:342)
org.springframework.security.web.authentication.AnonymousAuthenticationFilter.doFilter(AnonymousAuthenticationFilter.java:113)
org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:342)
org.springframework.security.web.servletapi.SecurityContextHolderAwareRequestFilter.doFilter(SecurityContextHolderAwareRequestFilter.java:154)
org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:342)
org.springframework.security.web.savedrequest.RequestCacheAwareFilter.doFilter(RequestCacheAwareFilter.java:45)
org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:342)
org.springframework.security.web.authentication.www.BasicAuthenticationFilter.doFilter(BasicAuthenticationFilter.java:150)
org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:342)
org.springframework.security.web.authentication.AbstractAuthenticationProcessingFilter.doFilter(AbstractAuthenticationProcessingFilter.java:199)
org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:342)
org.springframework.security.web.authentication.logout.LogoutFilter.doFilter(LogoutFilter.java:110)
org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:342)
org.springframework.security.web.context.request.async.WebAsyncManagerIntegrationFilter.doFilterInternal(WebAsyncManagerIntegrationFilter.java:50)
org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:106)
org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:342)
org.springframework.security.web.context.SecurityContextPersistenceFilter.doFilter(SecurityContextPersistenceFilter.java:87)
org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:342)
org.springframework.security.web.FilterChainProxy.doFilterInternal(FilterChainProxy.java:192)
org.springframework.security.web.FilterChainProxy.doFilter(FilterChainProxy.java:160)
org.springframework.web.filter.DelegatingFilterProxy.invokeDelegate(DelegatingFilterProxy.java:343)
org.springframework.web.filter.DelegatingFilterProxy.doFilter(DelegatingFilterProxy.java:260)
note The full stack trace of the root cause is available in the Apache Tomcat/7.0.54 logs.

Apache Tomcat/7.0.54

Excluir carteiras com saldo

Ao tentar excluir uma carteira que tenha saldo o sistema gera um erro de integridade.

Provável que não esteja dando cascade adequadamente nos saldos.

Movimentar faturas de cartão

Ao movimentar uma fatura de cartão, o sistema apresenta trava e não realiza a inclusão do movimento para a fatura de cartão.

Lentidão login

Ao logar no sistema devido a carga dos gráficos na home no postconstruct do dashboardBean o sistema apresenta uma lentidão considerável quando existem muitos dados a serem processados na montagem do gráfico.

Verificar um lazy load ou um loading na tela (esta ultima é mais porca e tosca, mas é uma opção 👊)

Revisar pagamento fatura

Revisar a forma como o pagamento da fatura dos cartão é paga e mudar para que consiga atender ao mecanismo de rateio

Rateio nos movimentos

Ao realizar a inclusão de um movimento, possibilitar o rateio do mesmo em vários centros de custo e classes de movimento

Isso deve ser permitido para que ao incluir um movimento que seja despesa ou receita para mais de um centro de custo ou classe, seja possível acompanhar individualmente os gastos

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.