Skip to content
This repository has been archived by the owner on Jan 26, 2022. It is now read-only.

wandersonwhcr/balance

Repository files navigation

Balance

O Balance é um pequeno sistema Web para controle de balancete contábil simples, com cadastro de contas, lançamentos e visualização do balancete.

Build Status codecov.io Latest Stable Version Latest Unstable Version Dependency Status Dependency Status License

O funcionamento básico pode ser encontrado na Wiki do projeto.

Você pode contribuir com este projeto! Acesse o arquivo CONTRIBUTING.md e saiba mais. Para auxiliar no desenvolvimento, disponibilizamos a API do Balance.

Instalação Rápida: Docker Compose

Este projeto possui uma instalação rápida através do Docker Compose.

docker-compose up
docker-compose exec php-fpm make install

O projeto estará acessível através de um navegador no endereço http://localhost.

Instalação Completa

O Balance é um sistema que utliza um servidor Web, PHP e banco de dados PostgreSQL para armazenamento das informações. A instalação deste projeto deve feita através do composer e bower.

Requisitos Mínimos

  • Servidor Web (Apache, Nginx, IIS);
  • PHP 5.6 ou superior (inclusive PHP 7);
  • PHP com Extensões bcmath, intl e pgsql;
  • PostgreSQL 9.4 ou superior; e
  • Make, Composer e Bower.

Criação da Estrutura

A inicialização do projeto deve ser efetuada utilizando o composer.

composer create-project --no-dev wandersonwhcr/balance

Para criação do banco de dados, utilize os seguintes comandos em modo administrador.

psql -c "CREATE ROLE balance LOGIN PASSWORD 'balance'" -U postgres
psql -c "CREATE DATABASE balance WITH OwNER balance ENCODING = 'UTF8' TEMPLATE = template0" -U postgres

Lembre-se que você pode alterar o usuário e o banco de dados conforme a sua necessidade. Após, você precisa configurar o sistema para acessar o banco de dados corretamente, efetuando uma cópia das configurações globais para configurações locais.

cp config/autoload/config.global.php config/autoload/config.local.php

Após, edite o arquivo config/autload/config.local.php, informando as configurações de acesso ao banco de dados. O arquivo inicialmente terá a seguinte estrutura.

<?php
return [
    'db' => [
        'driver'   => 'pgsql',
        'database' => 'balance',
        'username' => 'balance',
        'password' => 'balance',
        'hostname' => 'localhost',
        'port'     => '5432',
        'charset'  => 'UTF8',
    ],
];

O próximo passo é executar o make para que seja possível a instalação das dependências.

make install

Para acesso ao sistema utilizando o servidor Web, precisamos criar um alias de diretório no virtualhost correspondente, direcionando todas os acessos que possuem o padrão ^/module/([a-zA-Z0-9]+)/(.*)$ para o diretório /module/$1/public/$2. Por exemplo, no Nginx, isto pode ser feito da seguinte forma:

server {
    listen       80;
    server_name  domain.example.com;
    root         /var/www/domain.example.com;
    index        index.php;

    location / {
        try_files $uri $uri/ /index.php$is_args$args;
    }

    location /module {
        rewrite ^/module/([a-zA-Z0-9]+)/(.*)$ /../module/$1/public/$2 break;
    }

    location ~ [^/]\.php(/|$) {
        fastcgi_split_path_info ^(.+?\.php)(/.*)$;

        fastcgi_pass  unix:/var/run/php5-fpm.sock;
        fastcgi_index index.php;
        include       fastcgi_params;
    }
}

História

Quando eu estava cursando meu Técnico em Informática em 2005, desenvolvi um pequeno software em Delphi que efetuava um balancete contábil simples, fruto de um trabalho final para a disciplina de Contabilidade. Depois de alguns meses, comecei a efetuar lançamentos contábeis utilizando papel e caneta, mantendo este trabalho por 6 anos. Em 2011, desenvolvi um aplicativo de código-fonte fechado para executar o mesmo trabalho que eu efetuava no papel, buscando, algum dia, disponibilizar o código.

Decidindo reescrevê-lo, no ano de 2015 eu resolvi adicionar todas as tecnologias que dominava no momento. Assim, criei este projeto para contribuir com a comunidade de software livre, buscando novos conhecimentos.

Licença

Este projeto é opensource e utiliza a Licença BSD-3-Clause, descrita no arquivo LICENSE.