Desenvolvimento Sistema Gestao
Desenvolvimento Sistema Gestao
Desenvolvimento de um Sistema de
Gestão para Condomínios
Uberlândia
2018
Steffan Martins Alves
Desenvolvimento de um Sistema de
Gestão para Condomínios
Uberlândia
2018
Este trabalho é dedicado aos síndicos, contadores e administradores que um dia
aceitaram a tarefa de gerir um condomínio, mas mal sabiam o que os esperava.
Agradecimentos
CRUD Create-Read-Update-Delete
FN Forma Normal
JS JavaScript
PF Pessoa Física
PJ Pessoa Jurídica
RF Requisito Funcional
1 INTRODUÇÃO . . . . . . . . . . . . . . . . . . . . . . . . . . . . 12
1.1 Motivação . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 12
1.2 Objetivo . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 13
1.3 Contribuições . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 13
1.4 Organização do Trabalho . . . . . . . . . . . . . . . . . . . . . . . . 14
2 FUNDAMENTAÇÃO TEÓRICA . . . . . . . . . . . . . . . . . 15
2.1 Conceitos Adotados . . . . . . . . . . . . . . . . . . . . . . . . . . . 15
2.2 Trabalhos Correlatos . . . . . . . . . . . . . . . . . . . . . . . . . . . 17
3 DESENVOLVIMENTO . . . . . . . . . . . . . . . . . . . . . . . 20
3.1 Modelagem do Sistema . . . . . . . . . . . . . . . . . . . . . . . . . 20
3.1.1 Atores . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 20
3.1.2 Requisitos . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 21
3.1.3 Caso de Uso . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 25
3.1.4 Modelo de Dados . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 26
3.2 Tecnologias Utilizadas . . . . . . . . . . . . . . . . . . . . . . . . . . 28
3.2.1 Spring Framework . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 28
3.2.2 Interface Gráfica do Usuário . . . . . . . . . . . . . . . . . . . . . . . . 31
3.2.3 Infraestrutura . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 32
4 RESULTADOS . . . . . . . . . . . . . . . . . . . . . . . . . . . . 34
4.1 Apresentação . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 34
4.2 Validação . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 42
5 CONCLUSÃO . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 44
5.1 Desafios Encontrados . . . . . . . . . . . . . . . . . . . . . . . . . . 44
5.2 Trabalhos Futuros . . . . . . . . . . . . . . . . . . . . . . . . . . . . 45
REFERÊNCIAS . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 48
APÊNDICES 51
Capítulo 1
Introdução
1.1 Motivação
Diante desta gama de responsabilidades o síndico tem a seu dispor algumas opções:
controlar sozinho todos os dados do condomínio e usar cadernos, planilhas eletrônicas
ou então adquirir um sistema computadorizado específico para ajudar, ou contratar um
especialista ou empresa administradora de condomínios para tal atribuição.
Capítulo 1. Introdução 13
1.2 Objetivo
Este projeto consiste na implementação de um sistema que permita ao síndico gerir
seu condomínio a fim de atender a legislação e as demandas dos condôminos, sem absor-
ver altos custos. Para uma melhor experiência o sistema deve ser acessível em diversos
dispositivos, contar com armazenamento na nuvem e uma interface amigável e intuitiva
que dispense conhecimentos específicos. Desta forma pretende-se que, com poucos co-
mandos, o sistema possa gerar relatórios, controles, posições financeiras e gráficos, além
de gerenciar outros aspectos relacionados ao negócio.
1.3 Contribuições
O sistema desenvolvido neste trabalho poderá ser usado por condomínios dos mais
variados portes, sendo mais adequado aos residenciais, com baixa arrecadação mensal e
que possuem poucos ou nenhum funcionário. Com esta nova ferramenta o setor tem à
Capítulo 1. Introdução 14
disposição uma alternativa para minimizar seus gastos e, ao mesmo tempo, ampliar sua
capacidade administrativa.
Capítulo 2
Fundamentação Teórica
Este sistema possui uma tela principal (Figura 1) com informações centralizadas
do condomínio, trazendo acesso rápido aos saldos de caixa, contas bancárias e contas
contábeis, avisos de contas a pagar, de solicitações de locações de áreas comuns, dentre
outros dados de interesse do síndico. As outras telas são acessíveis através de um menu,
e todas as operações podem ser realizadas através da interface gráfica da aplicação.
A Icondev também tirou proveito de recursos da computação na nuvem para ar-
mazenamento dos dados dos clientes. Assim o sistema pode ser utilizado em qualquer
computador conectado à Internet e o síndico não precisa se preocupar com questões como
vírus ou backup, conforme cita a desenvolvedora em sua página (ICONDEV, 2017).
Apesar de bastante completa, esta aplicação possui alguns pontos negativos. Um dos
principais equívocos da desenvolvedora foi não fornecer uma funcionalidade para monta-
gem da previsão orçamentária, uma obrigação legal e com penalidades para o condomínio
(REPÚBLICA, 2002). O segundo ponto a ser observado é que, apesar de ter um funciona-
mento totalmente online, a aplicação exige a instalação de um componente no computador
do usuário e, além disso, como este é um software escrito utilizando a linguagem de pro-
gramação Java, é necessário que o computador tenha a JVM previamente instalada para
que o sistema funcione. Esta questão, além de criar uma barreira de dificuldade para os
clientes, os impedem de acessar o sistema pela maioria dos smartphones e tablets comerci-
alizados no mercado, pois estes requisitos limitam o uso do sistema a computadores. Por
fim, apesar de simples e intuitiva, a interface gráfica do sistema não é responsiva, ficando
ilegível em dispositivos com visores menores.
O Immobile Condomínio é um software offline desenvolvido para a gestão de rotinas
Capítulo 2. Fundamentação Teórica 19
Capítulo 3
Desenvolvimento
3.1.1 Atores
Os seguintes atores terão contato com o sistema:
❏ Visitante: é o usuário que chega pela primeira vez ao sistema, não possui um
cadastro e nem credenciais para autenticação. Ele não poderá utilizar as funcionali-
dades de negócio do sistema, apenas poderá criar o seu cadastro e ler as informações
públicas disponibilizadas pelo desenvolvedor. Após criar um cadastro e definir cre-
denciais de acesso, este ator deixa de ser um Visitante e se torna um Síndico.
Capítulo 3. Desenvolvimento 21
3.1.2 Requisitos
Os requisitos são as funcionalidades e limitações que estabelecem a forma de fun-
cionamento de um software. O levantamento destes requisitos é uma parte fundamental
para o desenvolvimento e, quanto mais completo ele for, menos esforço será exigido do
desenvolvedor nas fases finais do projeto, onde novos requisitos podem ser identificados.
Os requisitos podem ser funcionais ou não, e normalmente todo software possui requisitos
de ambos os tipos.
Um Requisito Funcional (RF) diz o que o sistema deve fazer, trata da regra de
negócio em si. Baseado no Código Civil e nas Leis brasileiras citadas no Capítulo 1, bem
como em casos de uso reais junto a condomínios, os seguintes RFs foram levantados:
RF2 Redefinição de Senha: o sistema deve enviar um link por e-mail para redefinição
de senha, caso um usuário esqueça a mesma.
RF3 Autenticação: o sistema deve ter uma tela de entrada (log-in) para que o síndico
possa informar suas credenciais e acessar a área restrita da aplicação. Nesta área,
além das funcionalidades esperadas da aplicação, também deve existir uma opção
de sair do sistema e finalizar a sessão (log-out).
RF5 Cadastro do Condomínio: o sistema deve ter um formulário para que o síndico
possa cadastrar os dados de seu condomínio, bem como alterá-los a qualquer tempo.
RF7 Cadastro de Moradias: o sistema deve ter um CRUD de moradias, que são as
unidades habitacionais dentro de um bloco. Cada bloco deve comportar inúmeras
moradias.
Capítulo 3. Desenvolvimento 22
RF11 Cadastro de Cobranças: o sistema deve ter um CRUD para emissão de cobran-
ças. Uma cobrança deve sempre ser relacionada a uma moradia. Após o recebi-
mento, a cobrança deve mudar de estado.
RF12 Atualização de Cobranças: as cobranças vencidas devem ter seus valores atua-
lizados da seguinte maneira:
RF17 Cadastro de Movimentos: o sistema deve ter um CRUD para registrar movimen-
tações dentro de um período de gestão. Os movimentos podem ser transferências
ou lançamentos. As transferências são movimentações entre contas, portanto pos-
suem duas contas envolvidas. Os lançamentos são registros de receitas ou despesas
e precisam ser relacionados a uma conta e uma categoria.
RF20 Livro Caixa: o sistema deve fornecer ao síndico a possibilidade de gerar um relató-
rio listando os lançamentos em um determinado intervalo no modelo de livro caixa.
Este relatório deve exibir o saldo inicial e final do período, considerando todas as
contas, e ser ordenado por data.
RF21 Painel de Gestão: o sistema deve ter um painel principal centralizando informa-
ções relevantes ao síndico, como saldo em conta, total da inadimplência, resumo da
receita e da despesa do mês bem como dos valores orçados e os já realizados no
período de gestão atual.
Um Requisito Não Funcional (RNF) indica como o sistema deve realizar suas
tarefas. Eles tratam de aspectos como a usabilidade, desempenho e segurança do sistema,
dentre outros. Para este projeto os seguintes RNFs foram considerados relevantes:
RNF1 Cifragem de Senha: as senhas escolhidas pelos usuários devem ser processadas
pelo algoritmo Bcrypt (PROVOS; MAZIERES, 1999).
RNF2 Manter Conectado: o sistema deve fornecer ao usuário a opção de mantê-lo co-
nectado, sem que sejam exigidas credenciais de entrada ao usar o mesmo dispositivo.
Capítulo 3. Desenvolvimento 24
RNF3 Expiração de Token: o link para redefinição de senha não deve funcionar no dia
seguinte e nem ser utilizado para gerar mais de uma nova senha.
RNF4 Envio de e-mails: sempre que o sistema enviar e-mails deverá fazê-lo de forma
assíncrona para não prender o usuário na tela durante sua execução.
RNF5 Dependências dos Cadastros: o sistema não pode permitir que o síndico cadastre
blocos, contas, condôminos, categorias ou períodos sem ter finalizado o cadastro
principal do condomínio. Da mesma forma, moradias não podem ser criadas sem
ao menos um bloco registrado, cobranças precisam previamente de cadastros de
condôminos e moradias, orçamentos exigem a existência de períodos e categorias, e
movimentos requerem previamente contas e períodos, além de categorias caso estes
não sejam transferências.
RNF6 Registros Únicos: Nomes de usuário não podem se repetir. Além disso, um mesmo
condomínio não pode ser registrado por mais de um síndico. De forma semelhante,
blocos, moradias, condôminos, contas, cobranças, categorias, períodos, orçamentos
e movimentos não podem se repetir no condomínio.
RNF7 Validação de Entradas: o sistema deve verificar entradas informadas pelo usuá-
rio, como endereços de e-mail, CNPJs, CPFs, datas e valores monetários (inclusive
cálculos), dentre outras que sejam passíveis de validação, impedindo o registro de
valores incorretos e fornecendo feedback ao usuário.
RNF9 Paginação de Listas: todos as entidades devem ter uma página de listagem que
exibe o que já foi cadastrado e fornece opções de visualização, edição e exclusão.
Esta lista deve ser paginada, e somente os resultados a serem exibidos na página
atual devem ser recuperados do DBMS. Cada página poderá exibir, por padrão, até
20 registros.
RNF10 Exclusão em Cascata: o sistema não deve deixar restos de informação não recu-
peráveis ou sem referência no banco de dados. Se um registro for excluído e possuir
registros filhos, estes também devem ser apagados. Neste caso, o usuário deve ser
informado e precisará confirmar a operação.
RNF11 Transações com o DBMS: em caso de qualquer tipo de falha, o sistema não pode
comprometer a integridade dos dados. Desta forma, todas as operações de leitura
ou gravação no banco de dados devem ser feitas dentro de transações.
Capítulo 3. Desenvolvimento 25
RNF14 Cálculo do Total da Cobrança: o sistema não deve solicitar que o usuário
informe o total da cobrança; este deve ser calculado a partir dos demais campos
monetários da cobrança.
RNF15 Painel de Gestão com Gráficos: os resumos da receita e da despesa do mês, dos
valores orçados e dos já realizados no período devem ser exibidos de forma gráfica
no painel de gestão do condomínio.
RNF16 Relatórios para Impressão: os relatórios gerados pelo sistema devem ser exibidos
já no formato apropriado para impressão em papel A4.
RNF17 Acessos simultâneos: o sistema deve permitir que vários usuários o utilizem pa-
ralelamente.
RNF18 Pool de Conexões com o DBMS: o sistema deve manter um número configurável
de conexões abertas simultaneamente com o banco de dados, utilizando um pool de
conexões para atender requisições simultâneas dos usuários.
RNF20 Interface: o sistema deverá ser acessado completamente via navegadores Web exi-
gindo do usuário apenas suporte a HTML 5, CSS 3 e JS.
RNF21 Compatibilidade com Navegadores: o sistema deve funcionar nas versões mais
recentes dos navegadores Chrome, Internet Explorer, Edge, Firefox, Safari e Opera.
RNF23 Versionamento: uma ferramenta Git deve ser utilizada durante todas as fases do
desenvolvimento para registrar a evolução do projeto.
❏ 3a FN: os atributos não chave de uma entidade devem ser funcionalmente inde-
pendentes uns dos outros.
Capítulo 3. Desenvolvimento 27
Alguns autores modernos preveem outras FNs, entretanto este trabalho se limitou a
estas três regras, as quais já foram amplamente adotadas e difundidas no meio acadêmico.
A relação do condômino com a moradia é construída respeitando estas regras, uma
vez que este poderá possuir ou locar mais de uma moradia. E como o condômino pode
ser tanto um proprietário quanto um locatário, esta relação carrega um atributo para
especificar o tipo do condômino, o que não é restrito apenas a estas duas opções.
O escalonamento de categorias previsto no RF14 foi resolvido com uma chave es-
trangeira que referencia a própria entidade. Também está presente no modelo de dados
o conceito de herança, evitando repetição de informações comuns entre as pessoas físicas
Capítulo 3. Desenvolvimento 28
integradas entre si. Neste projeto, como há necessidade de uma interface Web com au-
tenticação de usuários e persistência de dados, os módulos Spring Web MVC, Spring
Security e Spring Data foram acoplados. Além destes, para facilitar a configuração
do framework e a distribuição do software final, o módulo Spring Boot também foi
adicionado. Cada um destes componentes é explicado a seguir.
O módulo Spring Web MVC (PIVOTAL, 2018f), como o próprio nome já declara,
traz consigo a estrutura do padrão de arquitetura Model-View-Controller (MVC), já dis-
pensando o programador de mais esta tarefa no desenvolvimento.
Outra vantagem deste módulo é a conversão de dados enviados através de formulá-
rios Web. Em um cenário padrão, quando o desenvolvedor recebe dados de um formulário,
tudo é interpretado como texto, inclusive datas e valores numéricos — já que este é o com-
portamento do Hypertext Transfer Protocol (HTTP) — e o programador precisa realizar
a conversão de cada uma das entradas manualmente. Com esta ferramenta os dados já
são convertidos de acordo com o tipo das variáveis que os recebem, sem necessidade de
código adicional.
Indo ainda mais longe, o módulo é capaz de instanciar objetos inteiros a partir
da submissão de um formulário. Por exemplo: suponha a classe Pessoa com os atributos
nome, idade e sexo, e também imagine um formulário de cadastro com os mesmos campos,
ao receber os dados deste formulário é possível optar por receber uma instância da classe
Pessoa, já com todos os atributos preenchidos, ao invés de ler cada variável separadamente
para construir um objeto deste tipo.
senvolvedor em cada um dos outros módulos são centralizadas em um único local ou até
mesmo automatizadas, trazendo clareza e facilitando a criação do projeto. Mas a mais
importante funcionalidade do Spring Boot é vista na fase de implantação do sistema, onde
há possibilidade de criar aplicações autossuficientes (stand-alone) com poucas instruções.
No modelo tradicional, para executar uma aplicação Java é necessário que a má-
quina possua uma JVM. Uma aplicação Java para Web precisa de um servidor provendo
Web Containers e Enterprise JavaBeans (EJB) Containers, como o Apache (APACHE,
2018). Com o Spring Boot estes requisitos são dispensados, pois ele é capaz de encapsular
dentro do próprio pacote o interpretador necessário, tornando o software autossuficiente
e facilitando, também, sua distribuição.
3.2.2.1 Thymeleaf
Para trazer conteúdo dinâmico a páginas Web de uma aplicação Java, o HTML
é embutido em Java Server Pages (JSPs), onde códigos em Java são intercalados com
conteúdo escrito em HTML. Estas páginas são sempre interpretadas pelo servidor, onde
todo código Java é executado e substituído pelo seu resultado, para então ser enviado
ao cliente de forma natural. Sem a interferência do servidor elas não seriam visualizadas
corretamente, pois o código escrito em Java é ilegível para o navegador.
Da mesma forma que a mistura de SQL ao Java causa incômodos, a mistura de
Java ao HTML também não agrada, pois dificulta a colaboração entre equipes de desen-
volvimento, deixa a página desorganizada e com muita lógica de programação mesclada
às marcações da interface. Para resolver este conflito vieram as Template Engines, fer-
ramentas que possibilitam a escrita de código com lógica computacional usando somente
marcações válidas de HTML, CSS e JS. Isto não significa que os navegadores serão capa-
zes de interpretar e executar a lógica ali contida, mas estes poderão ignorá-las e apresentar
a página Web sem quebras nem códigos ilegíveis quando um servidor não está disponível.
O Thymeleaf (THYMELEAF, 2018) é um Template Engine moderno e dedicado
ao Java e possui módulos adicionais para integração ao Spring Framework e ao Spring
Security, o que o torna ainda mais poderoso neste projeto. Com o Thymeleaf não é mais
necessária a utilização de JSPs e parcelas de código em Java, e sim somente conteúdo
Capítulo 3. Desenvolvimento 32
A variedade de dispositivos com conexão à Internet hoje torna essencial criar sites
voltados ao mercado mobile, e o Bootstrap (OTTO, 2018) é um dos frameworks front-
end que ajuda os programadores a fazer isto acontecer sem precisar digitar uma linha
de CSS. Criar uma página usando os componentes e elementos da biblioteca Bootstrap,
além de já torná-lo responsivo, geralmente deixa a interface mais bonita e eficiente, uma
vez que há facilidade para implementar barras de navegação, modal, slideshows, dentre
outros sem a menor dificuldade.
A combinação do Font Awesome (FONTICONS, 2018) ao Bootstrap melhora
ainda mais a experiência do usuário, pois traz ícones à interface e torna possível a apli-
cação de um conceito de Interação Humano-Computador, a metaforização de ações do
sistema a partir de elementos do mundo real, permitindo ao usuário a criação de modelos
mentais eficazes, melhorando sua produtividade ao utilizar o sistema.
Há ainda uma ferramenta para criação de gráficos com pouquíssimo esforço do pro-
gramador, o Chart.js (TIMBERG, 2018). Esta ferramenta cria automaticamente gráficos
em HTML 5 a partir de simples comandos em JS. Traz vários modelos de gráficos e uma
vasta gama de opções para personalização.
3.2.3 Infraestrutura
Todo sistema precisa de uma infraestrutura física para ser executado. O intuito
é oferecer esta aplicação na Internet, então é essencial contar com um servidor sempre
Capítulo 3. Desenvolvimento 33
online que seja capaz de responder a requisições simultâneas e que possa suportar o
crescimento do software ao longo do tempo, tanto em termos de aumento de usuários
quanto de utilização de memória e armazenamento. Além disso é preciso fazer backups
regularmente para prevenir a perda dos dados dos usuários.
O investimento em hardware e sua manutenção adequada tem um custo elevado,
além de exigir profissionais capacitados. Uma alternativa recente a este investimento é a
contratação de serviços na nuvem para execução e oferta do sistema, podendo ter um custo
menor e tirando do desenvolvedor a responsabilidade de manutenção da infraestrutura do
seu software, preocupando-se somente com o código em si.
3.2.3.1 Heroku
3.2.3.2 JawsDB
O serviço do Heroku visto na seção anterior não traz consigo um banco de dados,
pois ele é focado na execução da aplicação. Assim é necessário buscar uma solução para
a persistência das informações. O JawsDB (JAWSDB, 2018) é um fornecedor, dentre
muitos outros, de Database as a Service (DBaaS), uma abordagem para armazenamento
e gerenciamento de dados estruturados na nuvem que também suporta escalabilidade,
backups e replicação de dados em diversos servidores para maior disponibilidade.
Este projeto adota o MySQL, entretanto a migração para outro tipo de banco de
dados não é um gargalo, visto que a uniformidade do SQL e a arquitetura deste projeto
possibilitam a alteração do DBMS sem necessidade de revisão do código, limitando-se
apenas à replicação dos dados já existentes em um banco de dados para o outro.
34
Capítulo 4
Resultados
4.1 Apresentação
Este sistema é uma aplicação Web composta por duas áreas: uma de acesso público,
que não necessita de autenticação; e outra de acesso restrito, que necessita de um nome
de usuário e senha. Após se autenticar (Figura 5), o síndico é redirecionado para o painel
de gestão (Figura 6), uma central de informações com cartões e gráficos.
A Figura 13 mostra como este conceito é bem aplicado no cadastro de uma cobrança,
onde há, também, automação do valor total e preenchimento padrão de alguns campos,
outra facilidade para o usuário. Parece simples, mas se o usuário precisasse se preocupar
em computar o total da cobrança ou com os campos zerados ele perderia tempo fazendo
cálculos e poderia, ainda, errar a informação. Desta forma, à medida que ele insere alguns
valores já pode acompanhar o total, que é preenchido em tempo real, e no servidor os
campos vazios recebem seus valores padrões.
O site também é responsivo. Com um smartphone de apenas 3,5¨ de visor, por
exemplo, o usuário pode acessá-lo e executar qualquer uma das operações que faz no
computador, pois nenhuma funcionalidade deixou de ser adaptada à tela menor (Figura
14). Em dispositivos assim, o menu é totalmente recolhido para dar espaço ao conteúdo.
Além disso, alguns botões são redesenhados e os campos são reorganizados para melhor
apresentar as informações ou facilitar a interação com a tela sensível ao toque.
Por fim, estão presentes os requisitos de recuperação de senha com envio de e-
mail assíncrono contendo um token único e temporário, senhas estas que são gravadas no
DBMS somente após cifradas por um algoritmo de segurança, há possibilidade de se man-
ter conectado e também de alteração dos dados pessoais do síndico, atualização diária de
cobranças vencidas através de um evento recorrente programado no DBMS MySQL, capa-
cidade de acessos simultâneos em qualquer horário e menos espera por respostas graças a
um pool de conexões com o banco de dados controlado pelo HikariCP (WOOLDRIDGE,
2012), além de integridade garantida por transações.
O sindico irá utilizar rotineiramente o sistema para inserir os movimentos ocorri-
dos no condomínio, tais como pagamentos de contas e recebimentos de mensalidades,
Capítulo 4. Resultados 42
4.2 Validação
O sistema foi submetido a inúmeros testes durante e após o desenvolvimento. Testes
funcionais, de performance e de volume, por exemplo, foram feitos para identificar e
corrigir falhas no desenvolvimento. Após considerada finalizada, a aplicação passou por
um teste de aceitação por usuários, da seguinte maneira:
Capítulo 5
Conclusão
Para este trabalho foi idealizado e implementado um Sistema de Gestão para Con-
domínios com o objetivo de facilitar o trabalho do síndico como um gestor, livrando-o
de tarefas manuais oferecendo suporte aos processos de forma simples, com qualidade e
eficiência.
Este objetivo só foi atingido graças aos estudos realizados durante o trabalho, como
a realização de cursos sobre os frameworks utilizados, unidos aos conhecimentos prévios
absorvidos no decorrer do curso de graduação em Sistemas de Informação, incluindo
aqueles relacionados às disciplinas de Programação Orientada a Objetos, Banco de Dados,
Estrutura de Dados, Redes de Computadores, Modelagem de Software e Programação
para Internet. Também teve igual contribuição o conhecimento prévio em Contabilidade,
graças a uma graduação anterior e o exercício da profissão, além da experiência pessoal
como síndico de um condomínio há alguns anos.
Com o objetivo de validar a aplicação, um condomínio real foi convidado para utilizar
o sistema. Nesta atividade os resultados foram satisfatórios, além de contribuir para a
identificação de algumas novas funcionalidades, objeto de trabalhos futuros.
Pretende-se continuar o desenvolvimento da aplicação, adicionando novas funciona-
lidades, melhorando outras e posteriormente planejar sua comercialização com o intuito
de buscar um valor justo para o desenvolvedor e, ao mesmo tempo, mínimo para o condo-
mínio, contribuindo para o desenvolvimento saudável do setor e a qualidade de vida das
pessoas afetadas direta ou indiretamente pela gestão do síndico.
❏ Mais relatórios: os relatórios atuais visam atender ao mínimo exigido pela legisla-
ção, mas o sistema já guarda e pode vir a reter informações que permitem a criação
de inúmeros relatórios de gestão úteis ao síndico, como extrato de conta, razão de
categoria, ficha cadastral de condômino, relatório de adimplência, etc. É ainda
possível enriquecer os relatórios com gráficos e algumas opções de personalização.
❏ Cobranças em lote: em certo ponto do mês o síndico cria cobranças para cada
uma das moradias, e estas geralmente possuem o mesmo valor e vencimento. Para
evitar a repetição da tarefa o sistema poderia permitir a criação destas cobranças
para todas as moradias de uma só vez.
❏ Novos atores: o sistema pode ser expandido para suportar, ao menos, dois no-
vos atores: o condômino e a administradora de condomínios. O condômino teria
interesse em acessar a prestação de contas do condomínio a qualquer momento e
ver a situação das cobranças emitidas contra sua moradia. A administradora de
condomínios é uma prestadora de serviços que realiza o papel de síndico para os
inúmeros condomínios que a contratam e estaria interessada em utilizar o sistema
de forma plural, podendo gerenciar mais de um condomínio.
❏ Áreas de lazer: a maioria dos condomínios possui uma ou mais áreas de lazer.
Como são de uso comum, há necessidade de gerenciar reservas e até mesmo cobrar
taxas de uso. Uma funcionalidade que traga uma agenda para cada área de lazer e
opções de reserva e cobrança, apesar de não crítica, é muito interessante.
❏ Portaria: condomínios de médio a grande porte costumam ter porteiros e fazem re-
gistro de visitantes, veículos e encomendas. Este controle pode ser implementado no
Capítulo 5. Conclusão 47
Referências
ETEMAD, E.; JR., T. A.; RIVOAL, F. CSS Snapshot 2017. [S.l.], 2017.
Https://www.w3.org/TR/2017/NOTE-css-2017-20170131/. (Accessado em 21/06/2018).
OTTO, M. Bootstrap, the most popular HTML, CSS, and JS library in the
world. 2018. <https://getbootstrap.com/>. (Accessado em 15/11/2018).
Referências 49
TIMBERG, E. Chart.js, open source HTML5 Charts for your website. 2018.
<https://www.chartjs.org/>. (Accessado em 15/11/2018).
Referências 50
Apêndices
52
APÊNDICE A
Exemplos de Relatórios
A.2 Balancete
APÊNDICE A. Exemplos de Relatórios 55
A.3 Orçamento
APÊNDICE A. Exemplos de Relatórios 56
A.4 Inadimplência