Post on 26-Jun-2020
Escola Superior de Tecnologia e Gestão
AMEC
Gestão de Condomínios
Projeto de Informática - Curso de Engenharia
Informática
Emanuel Martins Gonçalves
Nº: 1009437
29 de Novembro de 2013
Escola Superior de Tecnologia e Gestão
AMEC
Gestão de Condomínios
Projeto de Informática - Curso de Engenharia
Informática
Emanuel Martins Gonçalves
Nº: 1009437
Professor Orientador:
Engenheiro Noel de Jesus Lopes da Unidade
Técnico-Científica de Informática da ESTG
29 de Novembro de 2013
i
Agradecimentos
Agradeço à minha amiga Andreia Sequeira e amigo Marco Gonçalves que estão a
pensar tornarem-se empreendedores criando uma empresa de Gestão de Condomínios, e
assim surgir a ideia de realizar este projeto, fazendo assim que este projeto faça parte
também do deles de forma a desafiar os conhecimentos adquiridos ao longo do meu
curso.
Ao meu irmão André Gonçalves, que me apoiou sempre que foi preciso.
Ao Engenheiro Noel de Jesus Lopes, que me esclareceu sempre que o procurei.
À Professora Doutora Maria Clara Silveira, pela disponibilidade de me indicar a direção
correta para a realização da análise de requisitos do projeto.
À minha mãe e família, pelo apoio de não me deixarem ficar a meio desta etapa
importantíssima para a minha vida.
Aos meus amigos dentro do curso e fora dele, não vou dizer nomes, eles sabem quem
são.
Um muito obrigado a todos.
ii
Resumo
Este documento foi realizado no contexto da unidade curricular Projeto de Informática,
do curso de Engenharia Informática, da Escola Superior de Tecnologia e Gestão, do
Instituto Politécnico da Guarda.
Num mundo empresarial cada vez mais competitivo, um jovem empreendedor deste
século precisa de muita coragem, muito trabalho, criatividade constante, bons
conhecimentos a nível pessoal e profissional, bons investidores, mas precisa também
obrigatoriamente de um Software que lhe facilite a gestão da nova empresa.
Este projeto consiste no desenvolvimento de uma solução informática, capaz de dar
respostas aos utilizadores intervenientes no ramo da Gestão de Condomínios.
O objetivo principal centra-se na gestão de Clientes, Serviços, Atas e Despesas de um
Condomínio. Com a informação introduzida, é possível calcular o montante que cada
Cliente vai pagar no final do mês.
Este projeto baseia-se em quatro partes, uma parte para divulgação da empresa e para o
utilizador pedir um orçamento, outra para o utilizador registado (Cliente) ter acesso à
informação pessoal, do condomínio e despesas, entrar em contacto com empresa,
administrador interno ou externo. Outra parte é focada para o funcionário, onde pode
registar Condomínios, Clientes, Atas, Serviços, gerir esses dados, fazer procuras para
consultas. Por fim, e não menos importante, a parte ligada ao gestor, para gerir
funcionários e serviços, fazer pesquisa e consulta de informação.
Para a realização deste projeto foi utilizado o Microsoft Visual Studio, as principais
tecnologias utilizadas foram o ASP.NET, C# e o SQL SERVER.
Palavras-Chave:
Aplicação Web, Gestão de Condomínios, Base de Dados, ASP.NET, C#, Software
iii
Abstract
This document was prepared in the context of the discipline Computer Project, in course
of Engineering Informatics, School of Technology and Management, Polytechnic
Institute of Guarda.
In a business world increasingly competitive, a young enterpriser in this century needs a
lot of courage, hard work, constant creativity, good acquirements of the personal and
professional level, good investors, but needs a mandatory software that facilitates the
management of the new company.
This project is a solution to development capable give answers users interested in the
branch of Management Condominium.
The main goal focuses on Customer management, Services, Atas and Expenses of a
condominium. With the information introduced, can calculate the amount each customer
will pay on the end of the month.
This project is based in four parts, one part to divulgation the company and for the user
do budget request, another part for registered user (client) access to personal
information, condominium and expenses, contact the company, and internal or external
administrator. Another part is focused to the employee, where can register a
Condominium, Customers, Atas, Services, can manage these data, do research and
consultations. Finally, and not least, the part linked to the manager, to manage
employees and services, do research and consultations of information.
For this project we used the Microsoft Visual Studio, the main technologies used were
ASP.NET, C # and SQL SERVER.
Key words:
Web Application, Condominium Management, Databases, ASP.NET, C #, Software
iv
Índice
Capítulo 1. Introdução ................................................................................................... 1
1.1 Objetivos ............................................................................................................ 2
1.2 Motivação .......................................................................................................... 4
1.3 Contribuição ....................................................................................................... 4
1.4 Estrutura do Documento .................................................................................... 5
Capítulo 2. Estado da Arte ............................................................................................ 6
2.1 Introdução .......................................................................................................... 6
2.2 Aplicação GeCond Online ................................................................................. 7
Capítulo 3. Metodologia e Análise de Requisitos ....................................................... 10
3.1 Problema .......................................................................................................... 10
3.2 Metodologia ..................................................................................................... 12
3.3 Plano de Trabalho ............................................................................................ 13
3.4 Diagrama de Contexto ..................................................................................... 14
3.5 Atores e Casos de Uso ..................................................................................... 15
3.6 Diagrama de Casos de Uso .............................................................................. 17
3.7 Descrição de Casos de Uso .............................................................................. 18
3.7.1 Pedir Orçamento ....................................................................................... 19
3.7.2 Registar Novo Condomínio ...................................................................... 20
3.7.3 Inserir Cliente no Condomínio ................................................................. 21
3.7.4 Inserir Despesa do Condomínio ............................................................... 22
3.7.5 Selecionar Serviços Pedidos do Condomínio ........................................... 23
3.7.6 Procurar Cliente ........................................................................................ 24
3.7.7 Editar Cliente ............................................................................................ 25
3.7.8 Gerir Clientes por Condomínio ................................................................ 26
v
3.7.9 Apagar Cliente .......................................................................................... 28
3.7.10 Ver/Editar Atas ......................................................................................... 29
3.7.11 Consultar Info Pessoal .............................................................................. 31
3.7.12 Contactar Empresa .................................................................................... 32
3.7.13 Ver/Editar Funcionário ............................................................................. 33
3.7.14 Confirmar Pagamentos ............................................................................. 34
3.8 Diagramas de Sequência .................................................................................. 35
3.8.1 Procurar Cliente por Condomínio............................................................. 35
3.8.2 Registar Novo Condomínio ...................................................................... 36
3.8.3 Gerir Funcionários .................................................................................... 37
3.8.4 Ver/Editar Atas ......................................................................................... 38
3.8.5 Emitir e Confirmar Pagamento ................................................................. 39
3.9 Diagrama de Classes ........................................................................................ 40
3.10 Semântica de Classes ....................................................................................... 41
3.10.1 Entidade: Atas .......................................................................................... 41
3.10.2 Entidade: Condomínios ............................................................................ 42
3.10.3 Entidade: Clientes ..................................................................................... 44
3.10.4 Entidade: Funcionários ............................................................................. 47
3.10.5 Entidade: Despesas ................................................................................... 48
3.10.6 Entidade: ConfirmarPagamento ............................................................... 48
3.10.7 Entidade: Servicos .................................................................................... 49
3.10.8 Entidade: DespesaCliente ......................................................................... 50
3.11 Diagrama de Atividades ................................................................................... 51
3.12 Diagrama de Estados ....................................................................................... 52
3.13 Diagrama de Instalação .................................................................................... 53
3.14 Arquitetura da Solução .................................................................................... 53
Capítulo 4. Tecnologias e Software Utilizados ........................................................... 54
vi
4.1 Tecnologias ...................................................................................................... 54
4.1.1 Microsoft SQL SERVER ......................................................................... 54
4.1.2 ASP.NET .................................................................................................. 54
4.1.3 C# ............................................................................................................. 55
4.1.4 HTML ....................................................................................................... 56
4.1.5 CSS ........................................................................................................... 56
4.1.6 JavaScript ................................................................................................. 57
4.2 Software Utilizado ........................................................................................... 58
4.2.1 Microsoft Visual Studio 2010 .................................................................. 58
4.2.2 Outros ....................................................................................................... 58
Capítulo 5. Implementação da Solução ....................................................................... 59
5.1 Introdução ........................................................................................................ 59
5.2 Modelo Físico da BD ....................................................................................... 59
5.3 Aplicação ......................................................................................................... 61
5.3.1 Navegação da aplicação............................................................................ 61
5.3.2 Criação de uma página mestre .................................................................. 62
5.3.3 Registar um Condomínio .......................................................................... 63
5.3.1 Validar e Enviar Pedido de Orçamento .................................................... 66
5.4 Código .............................................................................................................. 69
5.4.1 Carregar um ficheiro PDF ........................................................................ 69
5.4.2 Calcular Quota Mensal ............................................................................. 69
Capítulo 6. Conclusão e Trabalho Futuro ................................................................... 70
6.1 Conclusão ......................................................................................................... 70
6.2 Resultados Obtidos .......................................................................................... 70
6.3 Trabalho Futuro ............................................................................................... 71
Bibliografia ..................................................................................................................... 72
vii
Lista de Figuras
Figura 1: Gráfico Área de Clientes ................................................................................... 7
Figura 2: Exemplo do software Gecond ........................................................................... 8
Figura 3: Citação Pressman metodologia ágil ................................................................ 12
Figura 4: Mapa de Gantt ................................................................................................. 13
Figura 5: Diagrama de Contexto .................................................................................... 14
Figura 6: Diagrama de Casos de Uso ............................................................................. 17
Figura 7: Diagrama de Sequência Procurar Cliente por Condomínio ............................ 35
Figura 8: Diagrama de Sequência Registar Novo Condomínio ..................................... 36
Figura 9: Diagrama de Sequência Novo Funcionário .................................................... 37
Figura 10: Diagrama de Sequência Editar Funcionário.................................................. 37
Figura 11: Ver/Editar Ata ............................................................................................... 38
Figura 12:Diagrama de Sequência Emitir e Confirmar Pagamento ............................... 39
Figura 13: Diagrama de Classes ..................................................................................... 40
Figura 14: Diagrama de atividades Registar novo Condomínio..................................... 51
Figura 15: Diagrama de Estado Confirmar Pagamento .................................................. 52
Figura 16: Diagrama de instalação ................................................................................. 53
Figura 17: Arquitetura da Solução.................................................................................. 53
Figura 18: Ambiente de trabalho do Visual Studio ........................................................ 58
Figura 19: Modelo Físico da BD .................................................................................... 59
Figura 20: Diagrama ER ................................................................................................. 60
Figura 21:Navegação da aplicação ................................................................................. 61
Figura 22:Criar Master Page .......................................................................................... 62
Figura 23: Login ............................................................................................................. 63
Figura 24: Opções depois do Login com sucesso .......................................................... 63
Figura 25: Área de Funcionário ...................................................................................... 64
Figura 26: Formulário Registar Condomínio ................................................................. 64
Figura 27: Exemplo Formulários Desbloqueados .......................................................... 65
Figura 28: Formulário Pedir Orçamento ........................................................................ 66
Figura 29: Exemplo de inserção incorreta ...................................................................... 66
Figura 30: Exemplo da validação do email .................................................................... 67
Figura 31: Exemplo validação do NIF ........................................................................... 67
Figura 32: Exemplo ValidationSummary ....................................................................... 67
Figura 33:Exemplo do botão Confirmar ......................................................................... 67
Figura 34: Exemplo do Código do Botão Confirmar ..................................................... 68
Figura 35: Exemplo de Código Carregar Ficheiro ......................................................... 69
Figura 36: Exemplo de Código Calcular Quota Mensal................................................. 69
viii
Lista de Tabelas
Tabela 1: Comparação das Aplicações ............................................................................. 9
Tabela 2: Atores e Casos de Uso .................................................................................... 15
Tabela 3: Pedir Orçamento ............................................................................................. 19
Tabela 4: Descrição caso de uso Registar Novo Condomínio........................................ 20
Tabela 5: Descrição Caso de uso Inserir Cliente no Condomínio .................................. 21
Tabela 6: Inserir Despesa do Condomínio ..................................................................... 22
Tabela 7: Selecionar Serviços Pedidos do Condomínio ................................................. 23
Tabela 8: Editar Cliente .................................................................................................. 25
Tabela 9: Descrição caso de uso Gerir Cliente por Condomínio ................................... 26
Tabela 10: Apagar Cliente .............................................................................................. 28
Tabela 11: Descrição caso de uso Ver/Editar Atas......................................................... 29
Tabela 12: Descrição caso de uso Consultar Info Pessoal .............................................. 31
Tabela 13: Descrição caso de uso Contactar Empresa ................................................... 32
Tabela 14: Descrição caso de uso Gerir Funcionário ..................................................... 33
Tabela 15: Descrição caso de uso Confirmar Pagamentos ............................................. 34
Tabela 16: Semântica da classe Atas .............................................................................. 41
Tabela 17: Semântica dos Métodos ................................................................................ 41
Tabela 18: Semântica da classe Condomínios ................................................................ 42
Tabela 19: Método Pesquisar ......................................................................................... 43
Tabela 20: Semântica da classe Clientes ........................................................................ 44
Tabela 21: Método Apagar Cliente ................................................................................ 45
Tabela 22: Método Inserir Cliente .................................................................................. 45
Tabela 23: Semântica da classe Funcionários ................................................................ 47
Tabela 24: Semântica da classe Despesas ...................................................................... 48
Tabela 25: Semântica da classe ConfirmarPagamento ................................................... 48
Tabela 26: Semântica da classe Servicos ....................................................................... 49
Tabela 27: Semântica da classe DespesaCliente ............................................................ 50
ix
Listas de Código
Lista de Código 1: Exemplo SQL .................................................................................. 54
Lista de Código 2: Exemplo ASP.NET .......................................................................... 55
Lista de Código 3: Exemplo C# ..................................................................................... 55
Lista de Código 5: Exemplo HTML ............................................................................... 56
Lista de Código 7: Exemplo CSS ................................................................................... 57
Lista de Código 9: Exemplo JavaScript ......................................................................... 57
x
Glossário
ASP.NET Plataforma da Microsoft utilizado para o desenvolvimento de aplicações
Web.
C# (C Sharp) linguagem de programação orientada a objetos.
JavaScript É uma linguagem de programação executada do interior dos programas
e/ou outras linguagens de programação.
CSS Cascading Style Sheets, é uma linguagem otimizada para a construção
de layouts para websites.
PK Primary Key, é a chave primária de uma tabela na base de dados.
FK Foreign Key, é a chave estrangeira de uma tabela e também uma PK em
outra tabela na BD (base de dados).
NIB Número de identificação bancária.
HTML HyperText Markup Language, que significa Linguagem de Marcação de
Hipertexto.
Servidor
Web
Responsável por aceitar pedidos HTTP de clientes, geralmente os
navegadores, e servi-los com respostas HTTP, incluindo opcionalmente
dados, que são na maioria páginas web, tais como documentos HTML
SQL
SERVER
É um SGBD (Sistema de Gestão de Base de Dados), criado pela
Microsoft que permite interação com os dados através da linguagem
SQL.
1
Capítulo 1. Introdução
Este projeto consiste no desenvolvimento de uma solução informática para Gestão de
Condomínios. A ideia surge por sugestão de uma jovem empreendedora Andreia
Sequeira, que está a iniciar a carreira empresarial neste ramo.
A Gestão de Condomínios é cada vez mais utilizada no nosso quotidiano. As pessoas,
cada vez menos, querem ter preocupações com o condomínio onde habitam. Preferem
deixar essa função para entidades profissionais, umas porque não têm tempo que lhes
permita gerir um condomínio, outras porque não se entendem bem entre vizinhos,
fazendo com que as reuniões pareçam um tormento, sem chegarem a conclusões
importantes sobre temas relativos ao condomínio.
Nascem assim as empresas de Gestão de Condomínios, para facilitar e ajudar os
habitantes que necessitam da prestação de serviços deste negócio. Surgem também o
desenvolvimento de aplicações para apoiarem as empresas na gestão e também métodos
para cativarem os clientes a optarem pelos seus serviços.
2
1.1 Objetivos
Após recolha da informação necessária para a realização do projeto, definiram-se que os
objetivos da solução informática a desenvolver devem ser divididos em quatro partes
bem definidas, a primeira consiste na divulgação online da empresa para maior
visibilidade e para o utilizador ter acesso à informação da mesma, visualizar os serviços
que a empresa disponibiliza, contactos, localização e quais os métodos que a empresa
utiliza. Disponibilizar também uma opção para pedido de orçamento.
A segunda parte é uma área de cliente, apenas para utilizadores registados no sistema
onde podem visualizar a informação pessoal, do condomínio, como também as despesas
que têm para com o condomínio.
A terceira parte trata-se da área de funcionário, que permite fazer a gestão do
condomínio, despesas, clientes e documentos que sejam relevantes como por exemplo
as atas das reuniões.
A quarta parte passa pela área de gestor, onde este poderá ter acesso a algumas
funcionalidades da área do funcionário, fazer a gestão de funcionários, serviços e
despesas.
Analisados os objetivos da aplicação, chegou-se à conclusão que a solução incidia na
criação de uma aplicação web. Isto porque permite visibilidade da empresa na internet,
facilidade de acesso onde quer que esteja, basta para isso ter um ponto de acesso, como
na atualidade a internet está quase em todos os lugares, não se torna numa barreira. Não
é necessário instalar nada nos computadores para utilizar a aplicação, as atualizações
são aplicadas para todos os utilizadores de uma só vez, foram estes os pontos fortes para
a escolha da solução deste projeto. Um exemplo vantajoso desta escolha, é que um
funcionário possa registar toda a informação de um condomínio ao mesmo tempo que
está a realizar uma reunião com os clientes do condomínio. E que para isso chegue ter
um tablet, ou um telemóvel ou portátil com um ponto de acesso à Internet disponível.
Para melhor percebermos os fatores da escolha da melhor solução é apresentado em
anexo (Anexo 4) as vantagens e desvantagens de uma aplicação Web e uma aplicação
Desktop.
3
Os pontos importantes deste projeto têm os seguintes objetivos:
Impulsionar a divulgação online da empresa de gestão de condomínios o que
permite que qualquer utilizador web interessado no serviço possa ter contacto
com a empresa via email através de um pedido de orçamento.
Na área do cliente que esteja registado:
Consultar informação pessoal, podendo editar alguma dessa informação.
Consultar condomínio e respetivos serviços a ele associados.
Consultar as despesas para com o condomínio e a situação financeira do mesmo.
Alterar password de acesso ou fazer recuperação da mesma.
Na área do funcionário:
Procurar e gerir Condomínios.
Procurar e gerir Clientes.
Procurar e gerir Atas de um condomínio.
Procurar e gerir Despesas de um condomínio.
Na área do gestor:
Algumas funcionalidades do funcionário.
Pesquisar e gerir um funcionário.
Pesquisar e gerir os pacotes de serviços e seus custos.
Fazer a gestão das quotas mensais dos clientes consoante as despesas existentes
e opções de serviços prestados.
4
1.2 Motivação
A motivação da realização deste projeto foi a criação de uma aplicação personalizada,
que permite facilitar a gestão de condomínios, de modo a que seja possível gerir os
meios envolventes e ligados aos Condomínios, sejam eles os Clientes, Atas, Despesas,
Serviços de forma simples para o utilizador, possibilitar também pesquisas de
informação que o utilizador deseje consultar.
1.3 Contribuição
Este projeto consiste no desenvolvimento de uma aplicação web como referido
anteriormente, que tem o propósito de simplificar a Gestão de Condomínios e permitir
aos utilizadores intervir com a aplicação de forma flexível, e terem acesso a
informações e soluções. As funcionalidades que os utilizadores devem ter como opções
são:
Fazer pedido de orçamento por email.
Inserir/Ver/Editar Condomínios.
Gerir Clientes.
Gerir Despesas.
Inserir/Ver/Editar Atas.
Consultar informações.
Gerir Serviços.
Inserir/Ver/Editar Funcionários.
Introduzir e visualizar documentos PDF.
Enviar email com avisos.
Estas são algumas das contribuições deste projeto.
5
1.4 Estrutura do Documento
Este documento é constituído por 7 capítulos:
No Capítulo 1. Introdução, onde temos uma breve introdução, motivação,
contribuição e a estrutura do documento.
No Capítulo 2. Estado da arte, onde é comentado após uma breve pesquisa, o que
podemos encontrar no mercado e qual o registo atual da gestão de condomínios, assim
como as aplicações que se podem encontrar para soluções informáticas na atualidade.
No Capítulo 3. Metodologia e Análise de Requisitos, é descrito o problema e tipo de
metodologia utilizada para a realização do projeto, bem como o planeamento do mesmo,
podemos também visualizar a interação dos atores com o sistema e casos de uso
utilizados, onde encontraremos de forma pormenorizada os requisitos necessários para a
nossa aplicação.
No Capítulo 4. Tecnologias e Software Utilizados, é descrito de forma breve as
tecnologias e software utilizados para o desenvolvimento deste projeto.
No Capítulo 5. Implementação da Solução, vamos descrever algumas das
funcionalidades implementadas na aplicação web e disponibilizar alguns excertos de
código utilizado para executar determinadas opções.
No Capítulo 6. Conclusão e Trabalho Futuro, tem a finalidade de retirar conclusões
do que foi realizado no projeto, e também descrever o trabalho futuro.
6
Capítulo 2. Estado da Arte
2.1 Introdução
Encontram-se facilmente empresas ligadas ao ramo da gestão de condomínios. Basta
escrever a palavra “gestão de condomínios” num motor de busca para que os nossos
olhos sejam invadidos com uma quantidade de páginas web associadas a empresas que
se dedicam a este negócio.
Em todo o caso, conseguimos também constatar que muitos dos sites não têm uma área
de cliente definida, mostram informação da empresa, valores, parceiros, contatos, os
serviços que disponibilizam, em alguns casos permitem que o utilizador faça um pedido
de orçamento, mas se um cliente quiser aceder á informação pessoal e do condomínio
onde habita já não se verifica com a mesma quantidade com que eramos conquistados
no inicio da pesquisa.
Da pesquisa realizada às 10 primeiras empresas encontradas no motor de busca do
Google, verificamos que a área de cliente está implementada em 60% destas, as outras
40% não disponibilizam essa função.
Aprofundando um pouco mais, das empresas que têm o serviço disponível ao cliente,
reparamos que 20% destas têm a área de cliente personalizada e que 40% utilizam o
mesmo software “GeCond Online” desenvolvido pela empresa “Improxy”
(http://www.improxy.pt/) que está muito bem classificada no mercado no fornecimento
de software, nomeadamente no sector imobiliário, gestão de condomínios e
arrendamentos.
Para podermos ter uma ideia mais concreta destes valores era preciso ter acesso na
totalidade a todas as aplicações encontradas, como isso não foi possível, apenas
podemos afirmar estes dados.
Na Figura 1, encontra-se um gráfico para nos ajudar a perceber melhor como estão
distribuídas as percentagens da pesquisa realizada aos sites que têm ou não Área de
Cliente.
7
Figura 1: Gráfico Área de Clientes
2.2 Aplicação GeCond Online
Uma vez que era necessário sermos clientes das empresas encontradas para saber
detalhadamente quais as operações que dispunham, vamos focar o software da empresa
“Improxy” com o nome “GeCond Online”, é um software comercializado para empresas
do ramo da gestão de condomínios ao qual foi possível ter acesso e alguma informação.
Segundo o que está na sua página web da empresa, este software disponibiliza as
seguintes opções:
As opções disponíveis para o condómino são:
Visualização dos documentos e mensagens criadas pelo administrador
Consulta de dados pessoais
Consulta dos seus avisos, créditos e recibos
Consulta da informação geral do condomínio
Consulta do orçamento e da análise orçamental (comparação entre o
orçamentado e realizado)
Lista de frações e quotas
Situação das frações (valores globais em dívida)
Balanço do exercício
Lista de despesas
Consulta de ocorrências e registo de nova ocorrência
20%
40%
40%
Área de Cliente
Area de ClientePersonalizada
Area de Cliente GeCond
Sem area de ClienteDefinida
8
Alterar palavra-passe
Como administrador pode:
Definir que opções do menu ficam disponíveis aos utilizadores
Ativar e desativar utilizadores
Anexar a cada condomínio um conjunto de documentos para consulta, tais como
relatórios, atas e formulários.
Este módulo pode ser disponibilizado de várias formas, sendo que, em qualquer uma
das situações, o módulo terá de estar instalado num servidor da Improxy:
Incluído num mini-site desenvolvido pela Improxy (veja alguns exemplos de
mini-sites Gecond online)
Integrado num website completo desenvolvido pela Improxy
Ser chamado a partir dum website que o cliente já disponha. (1)
Figura 2: Exemplo do software Gecond
Este software pode ser comercializado para qualquer empresa, e foi muito encontrado
nos websites que foram pesquisados. 1
1 Os websites pesquisados encontram-se no final do relatório no anexo 1
9
Comparação entre a aplicação encontrada Gecond e a que foi desenvolvida neste
projeto:
Tabela 1: Comparação das Aplicações
Aplicação Gecond Aplicação Desenvolvida
Visualização dos documentos e
mensagens criadas pelo
administrador
Sim. Também permite a visualização de
documentos, sendo que as mensagens entre
os intervenientes são efetuadas por email.
Consulta de dados pessoais Sim
Consulta dos seus avisos, créditos
e recibos
Não tem.
Consulta da informação geral do
condomínio
Sim. Consulta do Condomínio, dos
Serviços, Atas, Despesas, Clientes.
Lista de frações e quotas Sim. Lista das frações e quotas por
permilagem.
Situação das frações (valores
globais em dívida)
De momento ainda não tem. (Em
implementação, Confirmar Pagamentos)
Balanço do exercício Não tem
Lista de despesas Sim. Lista de Despesas do Condomínio e
do Cliente
Consulta de ocorrências e registo
de nova ocorrência
Não tem
Alterar palavra-passe Sim
Para além das descritas a aplicação desenvolvida, permite:
Gerir funcionários
Gerir serviços
Pedir orçamentos
Enviar avisos via email
10
Capítulo 3. Metodologia e Análise de Requisitos
3.1 Problema
Desenvolver uma aplicação web que permita fazer a gestão de condomínios.
Para a área de cliente foi necessário fazer um estudo de como fazer:
A solicitação de orçamento onde o possível cliente numa primeira abordagem possa
introduzir dados relativos à composição do prédio, nomeadamente número de
frações, numero de andares existentes, se existem lojas ou parqueamento, se sim qual
a capacidade dos mesmos, garagens, sala de condomínio, arrecadações. Para deste
modo o funcionário da empresa ir minimamente preparado quando for a reunião
numa data a marcar pelos intervenientes.
A solicitação de serviços de limpeza do prédio, ou pintura e outros pequenos
trabalhos no âmbito particular.
Apresentar os vários contactos da empresa.
Após a reunião, quando acordarem os termos entre as partes e realizar negocio, para os
clientes registados, a empresa fornece ao cliente os dados de acesso (username e password -
dados que ele pode alterar posteriormente) onde podem consultar:
As informações sobre o condomínio como por exemplo quais os administradores
internos do prédio (normalmente existem dois, um da empresa e alguém que reside
no prédio - estipulado em assembleia e presente na ata da reunião), qual o nome do
banco e numero de conta para transferências, assim como os valores existentes tanto
na conta à ordem como a prazo, qual o seguro em vigor com o montante e validade
do mesmo, no caso de existirem elevadores qual os gastos de manutenção e outros
serviços ligados à construção e limpeza com a informação das despesas.
Os clientes podem também observar os seus dados pessoais, com a possibilidade de
alterar algumas informações a eles referentes como por exemplo o numero de
telefone ou o email…
11
Para a área do funcionário e gestor:
Como fazer pesquisas, consultas e gestão de informações relacionadas com o
condomínio, clientes, despesas, atas,
Como confirmar pagamentos do cliente para com o condomínio.
Poderem carregar um ficheiro PDF.
12
3.2 Metodologia
A metodologia utilizada para a realização do projeto foi a Ágil adaptada a Extreme
Programming (XP) é uma metodologia de desenvolvimento de software, surgiu nos
Estados Unidos por volta dos anos 90. Tem tido bastante sucesso em vários países, pois
permite ajudar a criar sistemas de melhor qualidade, reduz o tempo de produção que por
sua vez a nível financeiro torna-se mais económico do que o habitual. Os objetivos são
alcançados devido a valores, princípios e praticas, que são substancialmente diferentes
da forma tradicional de desenvolver software. (2)
Os principais princípios da metodologia ágil são:
Mais interações entre indivíduos que processos e ferramentas.
Mais Software em funcionamento que documentação abrangente.
Mais colaboração com o cliente que negociação de contratos.
Mais respostas a mudanças que seguir um plano.
Roger S. Pressman2, afirma que o Desenvolvimento Ágil requer a utilização de
pequenos e constantes incrementos de software, e para isso, necessita que o feedback do
cliente seja o mais rápido possível. (3)
Figura 3: Citação Pressman metodologia ágil
O método Ágil não descarta a utilização dos métodos tradicionais como documentação,
ferramentas e processos, planeamentos e negociações, mas prefere dar prioridade á
interação entre programador e cliente, deixa assim os métodos tradicionais para segundo
plano.
2 Engenheiro de Software, escritor e consultor, norte-americano, presidente da R.S. Pressman &
Associates
13
3.3 Plano de Trabalho
O plano de trabalho para o desenvolvimento do projeto é o seguinte:
Tarefa 1 Análise de sistema dos requisitos do projeto.
-Usar diagramas de uso de modo a definir requisitos da aplicação
web
Tarefa 2 Implementação da aplicação.
-Criar páginas mestre, base de dados, definir as permissões dos
utilizadores.
-Programação em ASP.NET, C#, JavaScript para desenvolvimento
da aplicação.
Tarefa 3 Testes da aplicação.
-Realização de testes e análise da eficiência e fiabilidade da
aplicação.
-Verificar se todas as validações estão a funcionar.
Tarefa 4 Documentação do projeto num relatório.
Na Figura 4, é apresentado o mapa de Gantt, que mostra a duração e intervalos de tempo
das tarefas para a execução do projeto:
ID Tarefas Data Inicio Data Fim Duração TotalAgo 2013 Set 2013 Out 2013 Nov 2013
4-8 11-8 18-8 25-8 1-9 8-9 15-9 22-9 29-9 6-10 13-10 20-10 27-10 3-11 10-11 17-11 24-11
1 14d20-08-201301-08-2013Tarefa 1
2 65d29-11-201302-09-2013Tarefa 2
3 40d29-11-201307-10-2013Tarefa 3
4 20d29-11-201304-11-2013Tarefa 4
4h
6h
2h
4h
Horas em média por dia
Figura 4: Mapa de Gantt
14
3.4 Diagrama de Contexto
Este tipo de diagrama expõe-nos o projeto e a sua relação com o meio ambiente. É uma
forma simplificada de representar o projeto em execução, onde se pode identificar os
limites dos processos, as áreas envolvidas e os relacionamentos com outros processos e
elementos. Na figura 5 podemos visualizar de forma simples como se realiza a execução
da aplicação.
Gestão de Condomínios
Cliente
Gestor
Funcionário
Envia pedido de orçamentoConsulta Informação pessoal
Edita, insere contactos, nib.
Devolve resultados de consulta
Insere, edita, atualiza e elimina Condomínios, Clientes, Atas, Despesas
Seleciona Serviços para os Condominios
Consulta Informação
Devolve resultados da consulta com (Atas ,Clientes, Condomínios)
Insere, edita, atualiza e elimina Serviços e FuncionáriosConsulta Informação
Devolve resultados da consulta com (Atas ,Clientes, Condomínios)
Envia Avisos
Utilizador
Envia Avisos
Figura 5: Diagrama de Contexto
15
3.5 Atores e Casos de Uso
Um ator representa um conjunto de pessoas que interagem com o sistema de forma
semelhante, sobre o qual não há controlo. Cada ator tem um papel diferente para
executar uma operação, vamos neste ponto, perceber a que atores estão ligados os casos
de uso do projeto.
Tabela 2: Atores e Casos de Uso
Atores Casos de Uso Objetivos
Utilizador Pedir Orçamento
Para que o utilizador entre em contacto com a
empresa e possa solicitar um orçamento para o seu
Condomínio.
Cliente
Consultar Info Pessoal Para o utilizador ter acesso á informação que lhe
corresponde e poder editar alguns campos
Consultar Info Condomínio Para o utilizador visualizar os dados correspondentes
ao Condomínio em que se encontra registado
Consultar Documentos Para o utilizador consultar atas
Editar Password Para o utilizador alterar a password uma vez que a
primeira é gerada pelo sistema
Editar Contactos Para o utilizador alterar alguma informação,
essencialmente os contactos
Consultar Despesas Para o utilizador consultar as despesas daquele mês,
e o histórico de outras
Contactar Administrador
Externo
Para o utilizador entrar em contacto via email com o
funcionário nomeado em reunião para o cargo de
administrador do condomínio
Contactar Administrador
Interno
Para o utilizador entrar em contacto via email com o
administrador interno do condomínio nomeado em
reunião
16
Contactar Empresa Para o utilizador contactar a empresa
Funcionário
Registar Novo Condomínio
Para o utilizador registar novo condomínio, e dados
associados como inserir também os clientes,
serviços, atas e despesas
Ver/Editar Condomínios Para o utilizador ver um condomínio e editá-lo se
necessário
Procurar Condomínio
Para o utilizador procurar um condomínio
introduzindo apenas uma palavra que esteja
associada á morada, localidade ou código postal
Enviar Aviso Para o utilizador poder enviar avisos aos clientes de
um condomínio
Procurar Cliente
Para o utilizador procurar um cliente introduzindo
apenas uma palavra-chave que esteja associada ao
nome, apelido ou número de identidade
Ver/Editar Cliente Para o utilizador ver informação de um cliente e
edita-la se necessário
Gerir Atas Para o utilizador poder ver uma ata, e se necessário
inserir, editar, apagar a mesma de um condomínio
Confirmar Pagamentos Para o utilizador quando verificar que os pagamentos
foram efetuados, colocar um visto
Simulador de Valores
Para o utilizador caso necessite confirmar uma conta
relacionada com o cálculo da quota mensal poder
utilizar esta função
Gestor
Gerir Funcionários Para o utilizador inserir, ver e editar um funcionário
Gerir Serviços Para o utilizador inserir, ver e editar serviços
17
3.6 Diagrama de Casos de Uso
O diagrama de casos de uso tem a finalidade de nos mostrar as interações entre os atores
e os casos de uso do sistema. Na figura 5 que se segue, podemos visualizar como essas
interações se vão executar entre atores e respetivos casos de uso.
Cliente
Amec-Gestão de Condomínios
Consultar Info Pessoal,Info Condomínio, Documentos,
Despesas
Gestor
Funcionario
LOGIN
Editar Password,Contactos
Enviar email paraAdministrador Externo, Administrador
Interno, EmpresaRegistar NovoCondomínio
Ver/EditarCondomínios
Gerir Clientes porCondomínio
Procurar e ConsultarCondominio, Cliente, Atas
Enviar Aviso
ConfirmarPagamentos
Simulador deValores
Procurar, Ver,Editar, Inserir Funcionário
Gerir Serviços
<include>
<include>
<include>
<include>
<include>
<include>
<include>
Utilizador Ocasional
Pedir Orçamento
<include>
<include>
<include>
<include>
Emitir Pagamento
<include>
Ver/Editar Atas <include>
Figura 6: Diagrama de Casos de Uso
18
3.7 Descrição de Casos de Uso
Neste tópico é exposto com pormenor como os casos de uso vão funcionar.
Para isso usamos tabelas compostas pelos seguintes campos:
Nome: Indica o nome do caso de uso que vai ser descrito.
Ator: Indica os atores que vão interagir no caso de uso.
Descrição: Descreve o objetivo do caso de uso indicado.
Pré-Condições: se existir uma pré condição necessária para se puder dar inicio
ao caso de uso, é indicada nesta secção.
Caminho Principal: onde é descrito o caminho do ator que interage com o
caso de uso
Caminho Alternativo: se houver validações de campos ou falha em operações
ao caminho principal, é descrito neste campo.
Suplementos: validações necessárias a serem feitas para se poder executar o
caso de uso pretendido
Pós-Condições: descreve uma operação efetuada após o término do caso de
uso, se existir.
19
3.7.1 Pedir Orçamento
Tabela 3: Pedir Orçamento
Nome: Pedir Orçamento
Ator: Utilizador ocasional
Descrição: O objetivo é, que o ator possa fazer um pedido de orçamento
entrando em contacto com a empresa via email.
Pré-Condições: Basta estar a navegar na aplicação web
Caminho Principal:
1) O caso de uso começa quando o ator pressiona no menu a
opção ”Orçamentos”.
2) A aplicação disponibiliza um formulário para preencher.
3) O ator introduz a informação necessária e carrega no botão
“Confirmar”.
4) O sistema envia um email para a empresa e para o ator se
escolher a opção de receber uma cópia do pedido.
Caminho
Alternativo:
3 a) Se o ator não introduzir a informação obrigatória ou
estiver mal inserida, o sistema não envia o email e indica quais
as caixas de texto que merecem atenção.
4 a) Se houver algum erro no envio do email, o sistema avisa
que o email não pode ser enviado e qual o motivo.
Suplementos:
Testar se as validações dos campos preenchidos funcionam
corretamente. Como é o caso do nif, contacto telefónico, email
e código postal.
Testar se envia os dados introduzidos para o email da empresa
e do ator se a opção for selecionada.
20
3.7.2 Registar Novo Condomínio
Tabela 4: Descrição caso de uso Registar Novo Condomínio
Nome: Registar Novo Condomínio
Ator: Funcionário
Descrição: Este caso de uso permite que o ator registe um novo
condomínio
Pré-Condições: Login - O ator precisa estar devidamente identificado e
ligado no sistema.
Caminho Principal:
1) O caso de uso começa quando o ator pressiona o botão
“Novo Condomínios” no menu rápido, ou no submenu
“Condomínios -> Registar Novo”.
2) A aplicação disponibiliza um formulário.
3) O ator introduz detalhes do Condomínio e pressiona no
botão “Inserir”.
4) A aplicação insere os dados do Condomínio.
Caminho Alternativo:
3 a)Se houver algum campo de preenchimento obrigatório
vazio ou com uma formatação não adequada, a aplicação não
deixa guardar os dados e aparecem “X” nos locais onde se
verificou a falha com o motivo da não inserção do mesmo.
Suplementos:
Testar se a aplicação deixa inserir os dados, sem que os
campos obrigatórios estejam devidamente preenchidos.
Depois de registado o Condomínio, o sistema disponibiliza um menu onde é possível
Inserir Clientes, Selecionar Serviços Pedidos, Inserir Ata ou Despesas associadas ao
Condomínio. O ator pode desta forma continuar a inserção de dados ou se preferir
introduzi-los mais tarde, também é possivél.
21
3.7.3 Inserir Cliente no Condomínio
Tabela 5: Descrição Caso de uso Inserir Cliente no Condomínio
Nome: Inserir Cliente no Condomínio
Ator: Funcionário
Descrição: Este caso de uso permite que o ator insira Clientes no
Condomínio.
Pré-Condições: Login - O ator precisa estar devidamente identificado e
ligado no sistema; O Condomínio tem de estar registado.
Caminho Principal:
1) O caso de uso começa após o ator Registar Novo
Condomínio.
2) A aplicação disponibiliza um formulário.
3) O ator introduz os dados relativos ao Cliente, onde a
inserção da quota mensal, pode ser manual ou automática
e pressiona botão “Inserir”.
4) A aplicação insere os dados do Cliente e envia um email
com o username e password gerada pelo sistema para o
Cliente.
Caminho Alternativo:
3 a)Se o ator quer fazer o cálculo automático da quota
mensal, pressiona botão “Calcular”.
3 a1)A aplicação introduz o valor da quota mensal no
respetivo campo.
3 b)Se houver algum campo de preenchimento obrigatório
vazio ou com uma formatação não adequada, a aplicação não
deixa inserir os dados e aparecem “X” nos locais onde se
verificou a falha com o motivo da não inserção.
4 a) Se o cliente já existir ou o email já estiver a ser
utilizado, o sistema avisa que o cliente já se encontra
registado.
Suplementos:
Testar se a aplicação deixa inserir os dados, sem que os
campos obrigatórios estejam devidamente preenchidos.
Testar se o cálculo da quota mensal está em conformidade
com o resultado esperado.
22
A inserção de Atas e Despesas do Condomínio funcionam de forma semelhante.
3.7.4 Inserir Despesa do Condomínio
Tabela 6: Inserir Despesa do Condomínio
Nome: Inserir Despesa do Condomínio
Ator: Funcionário
Descrição: Este caso de uso permite que o ator insira Despesas do
Condomínio.
Pré-Condições: Login - O ator precisa estar devidamente identificado e
ligado no sistema; O Condomínio tem de estar registado.
Caminho Principal:
1) O caso de uso começa após o ator Registar Novo
Condomínio, quando o ator pressiona o botão “Despesas”
do menu.
2) A aplicação disponibiliza um formulário.
3) O ator introduz os dados relativos à Despesa do
Condomínio e clica no botão “Inserir”.
4) A aplicação insere os dados da Despesa e regista
automaticamente a data em que foi inserida.
Caminho Alternativo:
4 a) Se houver algum campo de preenchimento obrigatório
vazio ou com uma formatação não adequada, a aplicação não
deixa inserir os dados e aparecem “X” nos locais onde se
verificou a falha com o motivo da não inserção.
Suplementos:
Testar se a aplicação deixa inserir os dados, sem que os
campos obrigatórios estejam devidamente preenchidos.
O caso de uso Inserir Ata tem o mesmo funcionamento que o caso de uso anterior, com
a particularidade de que no ponto 3, o ator faz inserção dos dados e carrega um ficheiro
PDF com os pormenores da reunião.
23
3.7.5 Selecionar Serviços Pedidos do Condomínio
Tabela 7: Selecionar Serviços Pedidos do Condomínio
Nome: Selecionar Serviços Pedidos do Condomínio
Ator: Funcionário
Descrição: O objetivo é, que o ator introduza o tipo de pacote de
serviços que o Condomínio deseja contratar.
Pré-Condições: Login - O ator precisa estar devidamente identificado e
ligado no sistema. O Condomínio tem de estar registado.
Caminho Principal:
1) O caso de uso começa após o ator Registar Novo
Condomínio, quando o ator pressiona o botão “Serviços”
do menu.
2) A aplicação disponibiliza um formulário para inserir o
pedido de Serviço.
3) O ator introduz a data do Inicio do Serviço Pedido.
4) A aplicação disponibiliza a linha de Serviços Pedidos,
onde aparecem as opções de Serviços consoante a escolha
de pacotes de Serviços (Tipos de Serviços), e Validade.
5) O ator seleciona o pacote de Serviços, os Serviços, a
Validade e clica em “Inserir”.
6) A aplicação guarda as escolhas feitas na Linha de
Serviços Pedidos e insere automaticamente a data do fim
do Pedido de Serviço, consoante a validade selecionada.
Caminho Alternativo:
3 a)O ator pode escolher se a data de início do Serviço
Pedido a introduzir é a do dia da inserção ao clicar o botão
“Hoje” ao lado da caixa de texto, ou se preferir pode colocar
a data manualmente.
Suplementos:
Testar se a aplicação guarda devidamente as opções
selecionadas e insere a data do fim do Serviço Pedido
automaticamente.
24
3.7.6 Procurar Cliente
Tabela 8: Descrição caso de uso Procurar Cliente
Nome: Procurar Cliente
Ator: Funcionário
Descrição:
O objetivo é, que o ator possa procurar um Cliente através de
uma palavra de pesquisa, de modo a obter a informação do
Cliente e que permita também, Inserir uma Despesa do
Cliente ou editar informação do mesmo.
Pré-Condições: Login - O ator precisa estar devidamente identificado e
ligado no sistema.
Caminho Principal:
1) O caso de uso começa quando o ator pressiona o botão
“Procurar Clientes” no menu rápido, ou no submenu
“Clientes -> Procurar Clientes”.
2) A aplicação disponibiliza uma tabela com todos os
Clientes registados e uma caixa de texto para procurar por
nome, apelido ou número de identidade.
3) O ator introduz palavra de pesquisa e clica no botão
procurar.
4) A aplicação devolve o resultado obtido da procura.
5) O ator seleciona o cliente que deseja.
6) A aplicação apresenta a informação relativa ao Cliente e
opções para “Editar” “+Despesas”.
Caminho Alternativo:
3 a)Se a caixa de texto não estiver preenchida com pelo
menos um caracter, o texto muda para vermelho de modo a
chamar a atenção do ator que nada foi introduzido na caixa
de texto.
4 a)Se não houver clientes com os dados introduzidos na
procura, o sistema avisa que não existem clientes com os
atributos inseridos na procura.
6 a) Se o ator escolher opção “Editar”, ver caso de uso Editar
Cliente.
6 b) Se o ator escolher opção +Despesas, ver caso de uso
Inserir Despesa do Cliente.
25
Suplementos:
Testar se a aplicação devolve o resultado da procura
esperado.
Inserir Despesa do Cliente, este caso de uso funciona da mesma forma que o Inserir
Despesa do Condomínio só que na vez de inserir a despesa associada à classe
Condomínio, é inserido na classe Cliente.
3.7.7 Editar Cliente
Tabela 8: Editar Cliente
Nome: Editar Cliente
Ator: Funcionário
Descrição: Neste caso de uso o objetivo é, que o ator possa editar os
dados de um cliente.
Pré-Condições: Login - O ator precisa estar devidamente identificado e
ligado no sistema.
Caminho Principal:
1) O caso de uso começa quando o ator pressiona o botão
“Editar”.
2) A aplicação disponibiliza um formulário com os dados
que se podem editar do Cliente.
3) O ator introduz as alterações a realizar e pressiona botão
“Atualizar”.
4) A aplicação guarda as alterações.
Caminho Alternativo:
3 a) Se houver algum campo de preenchimento obrigatório
vazio ou com uma formatação não adequada, a aplicação não
deixa alterar os dados e aparecem “X” nos locais onde se
verificou a falha com o motivo da não alteração.
Suplementos: Testar se os dados editados foram atualizados
Testar se as validações estão a funcionar corretamente.
26
3.7.8 Gerir Clientes por Condomínio
Tabela 9: Descrição caso de uso Gerir Cliente por Condomínio
Nome: Gerir Clientes por Condomínio
Ator: Funcionário
Descrição:
Neste caso de uso o objetivo é, que o ator visualize
informação dos Clientes por Condomínio onde
posteriormente pode inserir, editar ou apagar um Cliente no
Condomínio selecionado.
Pré-Condições: Login - O ator precisa estar devidamente identificado e
ligado no sistema.
Caminho Principal:
1) O caso de uso começa quando o ator pressiona o submenu
“Clientes -> Ver/Editar Clientes”.
2) A aplicação disponibiliza uma tabela com todos os
Condomínios registados e uma caixa de texto para
procurar por morada, localidade ou código postal.
3) O ator introduz palavra de pesquisa e clica no botão
“Procurar”.
4) A aplicação devolve o resultado obtido da procura.
5) O ator seleciona o Condomínio onde pretende gerir os
Clientes.
6) A aplicação apresenta uma tabela com os Clientes que
estão associados ao Condomínio selecionado
7) O ator seleciona o Cliente.
8) A aplicação apresenta os dados do Cliente selecionado e
opções para editar, novo, apagar e voltar ao ponto
anterior.
Caminho Alternativo:
3 a)Se a caixa de texto não estiver preenchida com pelo
menos um caracter, o texto muda para vermelho de modo a
chamar a atenção do ator, nada foi introduzido na caixa de
texto.
4 a)Se não houver Condomínios com os dados introduzidos
27
na procura, o sistema avisa que não existem condomínios
com os atributos inseridos na procura.
6 a)Se no Condomínio selecionado não existirem Clientes
registados, o sistema alerta que não há clientes no
Condomínio e disponibiliza opção do botão ”Novo” Inserir
Cliente no Condomínio (Ver este caso de uso Tabela 5).
8 a)Se o ator selecionar opção “Editar” Editar Cliente (Ver
caso de uso na Tabela 8)
8 b)Se o ator selecionar opção “Novo” Inserir Cliente no
Condomínio (Ver caso de uso na Tabela 5)
8 c)Se o ator selecionar opção “Apagar” Apagar Cliente
(Ver caso de uso na Tabela 10)
Suplementos:
Testar se a aplicação devolve o resultado da procura
esperado.
Testar se os Clientes são os do Condomínio selecionado.
28
3.7.9 Apagar Cliente
Tabela 10: Apagar Cliente
Nome: Apagar Cliente
Ator: Funcionário
Descrição: Neste caso de uso o objetivo é, que o ator possa apagar um
Cliente
Pré-Condições: Login - O ator precisa estar devidamente identificado e
ligado no sistema.
Caminho Principal:
1) O caso de uso começa quando o ator pressiona o botão
“Apagar”.
2) A aplicação pede para confirmar a eliminação do Cliente.
3) O ator confirma
4) A aplicação apaga o Cliente.
Caminho Alternativo:
2 a) Se não houver confirmação a aplicação cancela a
operação.
2 b) Se o utilizador pressionar o botão “Não”
3 a) O sistema não permite eliminar se houver dados
associados ao Cliente.
Suplementos: Testar se a aplicação deixa eliminar o Cliente com dados
associados a ele.
29
3.7.10 Ver/Editar Atas
Tabela 11: Descrição caso de uso Ver/Editar Atas
Nome: Ver/Editar Atas
Ator: Funcionário e Gestor
Descrição: O objetivo é, o ator visualizar informação das Atas por
Condomínio, e se for necessário poder editar Atas.
Pré-Condições: Login - O ator precisa estar devidamente identificado e ligado
no sistema.
Caminho Principal:
1) O caso de uso começa quando o ator pressiona o submenu
“Documentos>> Atas” ou clica botão “Ver Atas” no menu
rápido inicial.
2) A aplicação disponibiliza uma tabela com todos os
Condomínios registados e uma caixa de texto para procurar
por morada, localidade ou código postal.
3) O ator introduz palavra-chave e clica no botão procurar.
4) A aplicação devolve o resultado obtido da procura.
5) O ator seleciona o Condomínio onde estão as atas que
deseja ver.
6) A aplicação apresenta as Atas que estão associadas ao
Condomínio selecionado e também opções para visualizar
documento e editar Ata.
7) O ator seleciona opção.
8) A aplicação apresenta os dados relativos à opção escolhida.
Caminho
Alternativo:
3 a)Se a caixa de texto não estiver preenchida com pelo menos
um caracter, o texto muda para vermelho de modo a chamar a
atenção do ator, nada foi introduzido na caixa de texto.
4 a)Se não houver Condomínios com os dados introduzidos na
procura, o sistema avisa que não existem condomínios com os
atributos inseridos na procura.
5 a)Se no Condomínio selecionado não existirem Atas
registadas, o sistema alerta que não há Atas no Condomínio.
30
7 a)Se escolher “Ver Documento”, o sistema abre um novo
separador com o documento PDF da ata.
7 b) Se escolher editar, apresenta um formulário para alterar os
dados da Ata correspondente
Suplementos:
Testar se a aplicação devolve o resultado da procura esperado.
Testar se as Atas são as correspondentes do Condomínio
selecionado.
Testar se as validações na opção editar estão a funcionar
corretamente.
Poder imprimir a ata selecionada.
31
3.7.11 Consultar Info Pessoal
Tabela 12: Descrição caso de uso Consultar Info Pessoal
Nome: Consultar Info Pessoal
Ator: Cliente
Descrição: O objetivo é, que o ator visualize a informação pessoal e todos
os dados do condomínio a ele associados.
Pré-Condições: Login - O ator precisa estar devidamente identificado e ligado
no sistema.
Caminho Principal:
1) O caso de uso começa quando o ator pressiona o submenu
“Consultar Informações>> Pessoal” ou clica botão “Perfil”
no menu rápido inicial.
2) A aplicação disponibiliza a informação pessoal relativa ao
ator, e opções para o ator poder editar contactos, ver
informações do Condomínio, Pagamentos, Atas.
3) O ator escolhe, visualiza a sua informação e se quiser pode
escolher as opções disponíveis.
Caminho
Alternativo:
3 a) Se o ator clicar em Condomínio
A aplicação mostra a informação do Condomínio
3 b) Se o ator clicar em Pagamentos
A aplicação mostra a informação dos Pagamentos
3 c) Se o ator clicar em Atas
A aplicação mostra a informação das Atas
3 d) Se o ator clicar em Editar
A aplicação disponibiliza um formulário para que o ator faça
as devidas alterações.
Suplementos:
Testar se a aplicação apresenta a informação correta do ator
que fez login.
Testar se os dados do Condomínio, Atas, Pagamentos
associados ao ator estão corretos.
Testar validações na opção editar.
32
3.7.12 Contactar Empresa
Tabela 13: Descrição caso de uso Contactar Empresa
Nome: Contactar Empresa
Ator: Cliente
Descrição: Este caso de uso tem a finalidade de dar ao ator possibilidade
de entrar em contacto com a empresa via email.
Pré-Condições: Login - O ator precisa estar devidamente identificado e ligado
no sistema.
Caminho Principal:
1) O caso de uso começa quando o ator pressiona o submenu
“Contactar>> Empresa”
2) A aplicação disponibiliza um formulário.
3) O ator introduz o título e o assunto, clica em enviar.
4) O sistema envia o email para a empresa.
Caminho
Alternativo:
4 a)Se houver algum erro no envio, avisa com uma mensagem
de erro e volta ao ponto 3.
Suplementos: Testar se avisa o ator quando o título e o assunto não estão
introduzidos, anulando o envio do email.
33
3.7.13 Ver/Editar Funcionário
Tabela 14: Descrição caso de uso Gerir Funcionário
Nome: Ver/Editar Funcionário
Ator: Gestor
Descrição: Permite que ator possa procurar, ver, editar funcionário
Pré-Condições: Login - O ator precisa estar ligado na aplicação
Caminho Principal:
1) O caso de uso começa quando o ator pressiona o submenu
“Funcionários”
2) A aplicação disponibiliza uma tabela com todos os
Funcionários registados na empresa e uma caixa de texto
para procurar por nome, cargo ou número de identidade.
3) O ator introduz palavra de pesquisa na caixa de texto e
clica no botão “Procurar”.
4) A aplicação devolve o resultado obtido da procura, para
visualização da informação do Funcionário.
5) O ator seleciona o Funcionário que quer “Editar”.
6) A aplicação disponibiliza um formulário com os dados a
editar do Funcionário selecionado.
7) O ator introduz dados a editar e clica no botão “Atualizar”.
8) O sistema atualiza os dados alterados.
Caminho
Alternativo:
3 a) Se a caixa de texto não estiver preenchida com pelo
menos um caracter, o texto muda para vermelho de modo a
chamar a atenção do ator, nada foi introduzido na caixa.
4 a) Se não houver Funcionários com os dados introduzidos na
procura, o sistema avisa que não existem funcionários com os
atributos inseridos na procura.
8 a) Se houver algum campo de preenchimento obrigatório
vazio ou com uma formatação não adequada, a aplicação não
deixa alterar os dados e aparecem “X” nos locais onde se
verificou a falha com o motivo da não alteração.
Suplementos:
Testar se o resultado obtido é coincidente com a procura
realizada.
Testar validações da edição do Funcionário.
34
O caso de uso Inserir Funcionário, funciona como os outros exemplos de inserção já
descritos, mais propriamente com o Inserir Cliente, pois também envia um email para o
funcionário com o username e password gerada pelo sistema quando se clica no botão
“Inserir”.
3.7.14 Confirmar Pagamentos
Tabela 15: Descrição caso de uso Confirmar Pagamentos
Nome: Confirmar Pagamentos
Ator: Funcionário
Descrição: Permite que ator possa verificar quem pagou as faturas do mês
corrente, assinalando quem tem as quotas em dia.
Pré-Condições: Login - O ator precisa estar devidamente identificado e ligado
no sistema.
Caminho Principal:
1) O caso de uso começa quando o ator pressiona o submenu
“Documentos>> Confirmar Pagamentos”
2) A aplicação disponibiliza uma tabela com todos os pedidos
de confirmação de pagamento.
3) O ator verifica se está pago, se sim passa para true o
atributo PAGA.
4) A aplicação guarda as alterações de estado do pagamento.
Caminho
Alternativo:
Suplementos: Testar se altera o estado da confirmação de pagamento visto
da área do Cliente.
35
3.8 Diagramas de Sequência
Na maioria dos casos, usamos um diagrama de sequência para ilustrar as realizações de
casos de uso, isto é, para mostrar como os objetos interagem para executar o
comportamento total ou parcial de um caso de uso. Um ou mais diagramas de sequência
podem ilustrar as interações de objetos que constituem um caso de uso.
3.8.1 Procurar Cliente por Condomínio
Este diagrama de sequência mostra o comportamento das ações entre o ator e a interface
do caso de uso para Procurar Cliente por Condomínio.
Interface Procurar Clientepor Condominio
Clientes
Top Package::Funcionário
Seleciona
Devolve uma GridView(tabela) de todos os Clientes registados
Seleciona Cliente
Mostra os dados do Cliente
Consulta
Condominios
Devolve uma GridView(tabela) de todos os Condominios e uma caixa de procura
Introduz palavra de pesquisa relacionada com a morada, localidade, codigoPostal
Mostra os dados filtrados pela procura
Seleciona CondomínioConsulta
Figura 7: Diagrama de Sequência Procurar Cliente por Condomínio
36
3.8.2 Registar Novo Condomínio
Este diagrama de sequência mostra o comportamento das ações entre o ator e a interface
do caso de uso para registar novo Condomínio.
Fun
cio
nár
ioIn
terf
ace
Reg
ista
r N
ovo
Co
nd
om
inio
Co
nd
om
inio
sC
lien
tes
Serv
ico
sPed
ido
sA
tas
Des
pes
as
Top
Pac
kage
::Fu
nci
on
ário
Sele
cio
na
Co
nsu
lta
Dev
olv
e o
fo
rmu
lári
o
Pre
ench
e o
s d
ado
s re
spet
ivo
s ao
Co
nd
om
inio
Ver
ific
a o
s d
ado
s in
tro
du
zid
os.
Co
nfi
rma
(Bo
tão
Inse
rir)
Inse
rir
Dis
po
nib
iliza
os
form
ulá
rio
s p
ara
inse
rção
de
Clie
nte
s, S
ervi
ços,
Ata
s, D
esp
esas
Co
nsu
lta
Co
nsu
lta
Co
nsu
lta
Co
nsu
lta
Pre
ench
e o
s d
ado
s d
os
resp
etiv
os
form
ulá
rio
s
Ver
ific
a o
s d
ado
s in
tro
du
zid
o
Co
nfi
rma
(Bo
tão
Inse
rir)
Inse
rir
Inse
rir
Inse
rir
Inse
rir
Co
nsu
lta
Lin
has
Serv
ico
sPed
ido
s
Co
nsu
lta
Inse
rir
Figura 8: Diagrama de Sequência Registar Novo Condomínio
37
3.8.3 Gerir Funcionários
Este diagrama mostra a sequência de inserir novo funcionário.
Novo funcionário:
FuncionárioInterfacer Novo Funcionário
Top Package::Gestor
Seleciona
Devolve o formulário
Preenche os dados respetivos ao Funcionário
Pede para confirmar e validar
Confirma (Botão Inserir)
Guardar
Consulta
Figura 9: Diagrama de Sequência Novo Funcionário
Editar Funcionário:
FuncionárioInterfacer Editar Funcionário
Top Package::Gestor
Seleciona
Devolve o formulário
Edita os dados respetivos ao Funcionário
Pede para confirmar e validar
Confirma (Botão Editar)
Atualiza
Consulta
Figura 10: Diagrama de Sequência Editar Funcionário
38
3.8.4 Ver/Editar Atas
O diagrama de sequência que se segue mostra a interação do ator com o interface, para
o ator ver e editar uma Ata.
AtasInterface Ver/Editar
Ata
Top Package::Gestor
Seleciona
Se for ver abre novo separador com ficheiro PDF
Confirma caminho do ficheiro
Valida se fichero foi introduzido
Confirma Botão (Atualizar)
Atualizar(com novo ficheiro)
Consulta
Condominios
Devolve uma tabela com todos os Condominios
Seleciona o condomínio ou faz uma procura
Consulta
Devolve uma tabela com todas as atas por Condominios
Seleciona a Ata que quer ver ou editar
Se for editar faz o upload do ficheiro
Figura 11: Ver/Editar Ata
39
3.8.5 Emitir e Confirmar Pagamento
Top Package::Funcionário Top Package::Cliente
Interface Emitir Pagamento Interface Confirmar Pagamento Confirmar Pagamento Cliente Funcionário
Seleciona
Devolve um ficheiro pdf e formulário
Seleciona
Consulta
Consulta
Preenche formulário
Guarda com (PAGA = FALSE)
Consulta
Consulta
Consulta
Devolve formulário para edição de dados
Se pagamento verificado na conta o Condominio (PAGA = TRUE)
Guardar Alteração de estado PAGA
Confirmar Edição
Confirma Pagamento
Figura 12:Diagrama de Sequência Emitir e Confirmar Pagamento
O que está neste diagrama, ainda não foi testado nem implementado na aplicação.
40
3.9 Diagrama de Classes
+Registar Novo()+Ver/Editar()+Procurar()
-idCondominio-idFuncionario-morada-codigoPostal-localidade-orcamentoAnual-nomeBancoCond-nibCondominio-nFracoes-nAndares-nLojas-capacidadeParque-nGaragens-salaCondominio-nArrecadacoes-elevadores
Condominios
+Inserir()+Procurar()+Ver/Editar()+Apagar()
-idCliente-username-nomeCliente-aplidoCliente-biCliente-nifCliente-telefoneCliente-telemovelCliente-emailCliente-idCondominio-fracao-andar-permilagem-quotaMensal-adminterno-nomeBancoCliente-nibCliente
Clientes
+Inserir()+Ver/Editar()
-idDespesaCliente-decricaoC-custosC-idCliente-data
DespesaCliente
+Inserir()+Ver/Editar()
-idServicosPedidos-dataInicio-idCondominio-dataFim
ServiçosPedidos
+Inserir()+Ver/Editar()
-idLinhasServicosPedidos-idServicosPedidos-idServicos-validade
LinhasSevicosPedidos
+Inserir()+Ver/Editar()+Apagar()
-idServicos-idTipoServico-servico-custosServico
Servicos
+Inserir()+Ver/Editar()+Apagar()
-idTipoServicos-tipoServicos-descricao
TipoDeServicos
+Inserir()+Ver/Editar()
-idAta-idCondominio-descricao-ficheiro-data
Atas
+Inserir()+Ver/Editar()+Pesquisar()
-idConfirmarPagamento-idCliente-idFuncionario-descricaoPagamento-ficheiroPagamento-data-paga
ConfirmaPagamento
+Inserir()+Ver/Editar()+Procurar()
-idFuncionario-username-nomeFuncionario-cargo-biFuncionario-nifFuncionario-telefoneFuncionario-contato2
Funcionarios
+Inserir()+Ver/Editar()+Apagar()
-idDespesas-descDespesaExtra-custos-idCondominio-data
Despesas
1
*
1
*
1
*
1
*
*
1
*
1
1
*
1*
*
1
1
*
*1
Figura 13: Diagrama de Classes
41
3.10 Semântica de Classes
3.10.1 Entidade: Atas
Tabela 16: Semântica da classe Atas
Atributos Tipos de
Dados
Descrição Valores
Válidos
Formato Restrições
idAta(PK) Numeração
Automática
Número sequencial
que identifica
univocamente cada
Ata
Maior que 0 Até 10
dígitos
Gerado pelo
sistema / Não
alterável
idCondominio
(FK)
Integer Número que
identifica
univocamente cada
Condomínio
Maior que 0 Até 10
dígitos
Facultado pelo
sistema e
alterável
descricao String Descreve de uma
forma resumida o
conteúda da Ata
Caracteres Até 50
caracteres
Obrigatório e
alterável
ficheiro String Onde se carrega o
ficheiro com a ata
Caracteres Até 100
caracteres
Obrigatório e
alterável
data Date Data em que a ata
foi introduzida no
sistema
DD/MM/YY Até 10
caracteres
Obrigatório e
não alterável
Tabela 17: Semântica dos Métodos
Nome Descrição
Inserir() Operação que permite inserir uma nova Ata:
1. O Sistema gera o id_Ata (incrementa uma unidade ao último id_Ata).
2. O idCondominio é introduzido consoante o Condomínio inserido ou
selecionado o sistema vai buscar o valor.
3. Introduzir descrição.
4. Carregar ficheiro PDF.
5. Introduzir data da reunião.
Ver/Editar() Operação que permite ver/editar uma Ata.
1. Selecionar a Ata através do idAta.
2. Mostrar informação da Ata.
3. Introduzir nova descrição e/ou carregar ficheiro da ata.
4. Alterar dados da Ata.
42
3.10.2 Entidade: Condomínios
Tabela 18: Semântica da classe Condomínios
Atributos Tipos de
Dados
Descrição Valores
Válidos
Formato Restrições
idCondominio
(PK)
Numeração
Automática
Número sequencial
que identifica
univocamente cada
Condomínio
Maior que
0
Até 10
dígitos
Gerado pelo
sistema / Não
alterável
idFuncionario
(FK)
Integer Numero que
identifica o
Funcionário que está
a realizar reuniões
com os condóminos
(Clientes)
Maior que
0
Até 10
dígitos
Facultado pelo
sistema e
alterável
morada String Morada onde se
encontra registado o
condomínio
Caracteres Até 70
caracteres
Obrigatório e
não alterável
codigoPostal String Código postal do
condomínio
Caracteres Até 8
caracteres
Obrigatório e
não alterável
localidade String Localização do
condomínio
Caracteres Até 50
caracteres
Obrigatório e
não alterável
orcamentoAnual Float Orçamento anual do
condomínio
Números
de 0 a 9
Até (8,2)
dígitos
Obrigatório e
alterável
nomeBancoCond String Nome do banco no
qual se encontram os
valores relativos ao
condomínio
Caracteres Até 50
caracteres
Obrigatório e
alterável
nibCondominio String NIB do banco para
futuras transferências
Caracteres Até 50
caracteres
Obrigatório e
alterável
nFracoes Integer Frações do
condomínio
Números
inteiros de
0 a 9
Até 4
dígitos
Obrigatório e
alterável
nAndares Integer Número de andares
do condomínio
Números
inteiros de
0 a 9
Até 3
dígitos
Obrigatório e
alterável
nLojas Integer Número de lojas caso
existam do
condomínio
Números
inteiros de
0 a 9
Até 2
dígitos
Obrigatório e
alterável
capacidadeParque Float Capacidade do
parque do
condomínio
Números
de 0 a 9
Até (5,2)
dígitos
00000,00
Obrigatório e
alterável
nGaragens Integer Número de garagens
caso existam do
Números
inteiros de
Até 4
digitos
Obrigatório e
alterável
43
condomínio 0 a 9
salaCondominio Bit Diz se existe ou não
sala de condomínio
True ou
false
0 ou 1 Obrigatório/
Alterável
nArrecadacoes Integer Número de
arrecadações do
condomínio
Números
inteiros de
0 a 9
Até 3
digitos
Obrigatório e
alterável
elevadores Bit Diz se existe ou não
elevadores no
condominio
True ou
false
0 ou 1 Obrigatório/
Alterável
Para além dos métodos Inserir (), Ver/Editar (), que são iguais aos da Ata, mudando os
campos a inserir ou ver/editar. Temos o método Pesquisar ().
Tabela 19: Método Pesquisar
Nome Descrição
Pesquisar() Operação que permite procurar um Condomínio:
1. Inserir palavra-chave de uma morada, localidade ou codigoPostal
2. Se existe
3. Mostrar dados do Condomínio
4. Senão
5. Informar que não existem Condomínios relacionados à palavra de
pesquisa.
O método Pesquisar () funciona da mesma maneira para Pesquisar Clientes, ou
Pesquisar Funcionário, alterando os campos de pesquisa para cada caso, para o Cliente
procura palavra de pesquisa por nome, apelido e bi, para o Funcionário procura palavra
de pesquisa relacionados ao nome, cargo e Nº BI.
44
3.10.3 Entidade: Clientes
Tabela 20: Semântica da classe Clientes
Atributos Tipos de
Dados
Descrição Valores
Válidos
Formato Restrições
idCliente(PK) Numeração
Automática
Número sequencial
que identifica
univocamente cada
Cliente
Maior que
0
Até 10
dígitos
Gerado pelo
sistema / Não
alterável
idCondominio
(FK)
Integer Número que
identifica
univocamente cada
Condomínio
Maior que
0
Até 10
dígitos
Facultado pelo
sistema e
alterável
username String Username para que o
cliente tenha acesso
á sua informação
pessoal e do
condomínio onde
habita
Caracteres Até 20
caracteres
Obrigatório e
não alterável
nomeCliente String Nome do condómino Caracteres Até 70
caracteres
Obrigatório e
não alterável
apelidoCliente String Apelido do
condómino
Caracteres Até 50
caracteres
Obrigatório e
alterável
biCliente Integer Número de Bilhete
de Identidade ou
Cartão de Cidadão
Números
de 0 a 9
Até 8
dígitos
Obrigatório e
não alterável
nifCliente String Número de
identificação fiscal
do condómino
Números
de 0 a 9
Até 9
dígitos
Obrigatório e
não alterável
telefoneCliente String Número de telefone
do condómino
Números
de 0 a 9
Até 9
caracteres
Obrigatório e
alterável
telemovelCliente Integer Número de
telemóvel do
condómino
Números
inteiros de
0 a 9
Até 9
dígitos
Obrigatório e
alterável
fracao String Fração do
condómino
Caracteres
Até 2
Caracteres
Obrigatório e
alterável
andar String Andar do
condomínio
Alfa
numéricos
Até 3
dígitos
Obrigatório e
alterável
permilagem Integer Percentagem da
fração do
condómino
Números
inteiros de
0 a 9
Escala de
inteiros de 0
a 100
Obrigatório e
alterável
quotaMensal Float Quota mensal do
cliente
Números
de 0 a 9
Até (5,2)
dígitos
00000,00
Obrigatório e
alterável
45
adminterno Bit Identifica se o
cliente é o
administrador
interno
True ou
false
0 ou 1 Obrigatório e
alterável
nomeBancoCliente String Nome do Banco do
Cliente
Caracteres Até 50
caracteres
Obrigatório e
alterável
nibCliente String NIB do cliente para
futuras transferência
Caracteres Até 21
caracteres
Obrigatório e
alterável
Os métodos são muito semelhantes aos das tabelas Método Pesquisar e Semântica dos
Métodos referidos nas páginas anteriores. Alterando os campos consoante as classes.
Com acrescento do método Apagar()
Tabela 21: Método Apagar Cliente
Apagar() Operação que permite eliminar um Cliente.
1. Selecionar o Cliente através do idCliente.
2. Se idCliente está a ser utilizado
3. Cancelar operação e enviar mensagem “Não é possível eliminar”
4. Senão
5. Apagar Cliente
Tabela 22: Método Inserir Cliente
Inserir() Operação que permite inserir um Cliente.
1) O Sistema gera o id_Cliente (incrementa uma unidade ao último
id_Cliente).
2) O idCondominio é introduzido consoante o Condomínio inserido ou
selecionado o sistema vai buscar o valor.
3) Introduzir username.
4) Introduzir nomeCliente.
5) Introduzir apelidoCliente
6) Introduzir biCliente
7) Introduzir nifCliente onde é verificado se o Nif está bem introduzido
a) Verifica se valor introduzido do nif é nulo, se é numérico e se
tem 9 digitos.
b) Verifica se o primeiro número é (1,2,5,6,8,9)
c) Faz o cálculo do dígito controlo.
dígito controlo = c * 9;
var i = 0;
for (i = 2; i <= 8; i++) {
dígito controlo += nif.charAt(i - 1) * (10 - i);
}
dígito controlo = 11 - (dígito controlo % 11);
46
d) Se o dígito controlo é maior que 10, coloca-o a zero.
e) Compara o digito controlo com o ultimo numero do nif
f) Se for igual, então nif válido.
g) Senão nif inválido.
8) Introduzir telefoneCliente
ValidationExpression="2([1-9]{1}[0-9]{7}|[1-9]{2}[0-9]{6})"
9) Introduzir telemovelCliente
ValidationExpression="9([1236]{1}[0-9]{7})"
10) Introduzir email
ValidationExpression="\w+([-+.']\w+)*@\w+([-.]\w+)*\.\w+([-.]\w+)*"
11) Introduzir fracao
12) Introduzir andar
13) Introduzir permilagem
14) Introduzir quotaMensal manualmente, ou gerar automaticamente
clicando no botão Calcular:
a) quotamensal = ((orçamento anual.Condominios / 12) *
(permilagem / 1000));
15) Introduzir adminterno
16) Introduzir nomeBancoCliente
17) Introduzir nibCliente
47
3.10.4 Entidade: Funcionários
Tabela 23: Semântica da classe Funcionários
Atributos Tipos de
Dados
Descrição Valores
Válidos
Formato Restrições
idFuncionario(PK) Numeração
Automática
Número sequencial
que identifica
univocamente cada
Funcionário
Maior que
0
Até 10
dígitos
Gerado pelo
sistema / Não
alterável
username String Username para que o
funcionário tenha
acesso á sua
informação pessoal e
possa operar
informação
relacionada aos
condomínios
Caracteres Até 20
caracteres
Obrigatório e
não alterável
nomeFuncinario String Nome do Funcionário Caracteres Até 70
caracteres
Obrigatório e
não alterável
biFuncionario Integer Número de Bilhete de
Identidade ou Cartão
de Cidadão
Números
de 0 a 9
Até 8
dígitos
Obrigatório e
não alterável
nifFuncionario String Número de
identificação fiscal do
condómino
Números
de 0 a 9
Até 9
dígitos
Obrigatório e
não alterável
telefoneFuncionario String Número de telefone
do condómino
Números
de 0 a 9
Até 9
caracteres
Obrigatório e
alterável
contato2 Integer Número auxiliar caso
o primeiro não se
encontre disponível
Números
inteiros de
0 a 9
Até 9
dígitos
Obrigatório e
alterável
48
3.10.5 Entidade: Despesas
Tabela 24: Semântica da classe Despesas
Atributos Tipos de
Dados
Descrição Valores
Válidos
Formato Restrições
idDespesas(PK) Numeração
Automática
Número
sequencial que
identifica
univocamente
cada Despesa
Maior que 0 Até 10
dígitos
Gerado pelo
sistema / Não
alterável
idCondominio
(FK)
Integer Número que
identifica
univocamente
cada Condomínio
Maior que 0 Até 10
dígitos
Facultado pelo
sistema e
alterável
descDespesaExtra String Descreve o tipo de
despesa que vai
ser inserida
Caracteres Até 100
caracteres
Obrigatório e
alterável
custos Float Custo da despesa Caracteres Até (5,2)
dígitos
00000,00
Obrigatório e
alterável
data Date Data em que a
despesa foi
introduzida no
sistema
DD/MM/YY Até 10
caracteres
Obrigatório e
não alterável
3.10.6 Entidade: ConfirmarPagamento
Tabela 25: Semântica da classe ConfirmarPagamento
Atributos Tipos de
Dados
Descrição Valores
Válidos
Formato Restrições
idConfirmarPagamento(PK) Numeração
Automática
Número
sequencial
que identifica
univocamente
cada Ata
Maior que 0 Até 10
dígitos
Gerado pelo
sistema /
Não
alterável
idCliente (FK)
Integer Número que
identifica
univocamente
cada Cliente
Maior que 0 Até 10
dígitos
Facultado
pelo sistema
e não
alterável
idFuncionario (FK) Integer Número que
identifica
univocamente
cada
Funcionario
Maior que 0 Até 10
dígitos
Facultado
pelo sistema
e não
alterável
49
descricaoPagamento String Descreve de
uma forma
resumida o
conteúdo do
pagamento
Caracteres Até 50
caracteres
Obrigatório
e alterável
ficheiroPagamento String Onde se
carrega o
ficheiro com
os dados do
pagamento
Caracteres Até 100
caracteres
Obrigatório
e alterável
data Date Data em que
foi emitido o
pagamento no
sistema
DD/MM/YY Até 10
caracteres
Obrigatório
e não
alterável
paga Bit Indica se a
fatura já foi
paga ou não
true or false 1 ou 0
Obrigatório
e alterável
3.10.7 Entidade: Servicos
Tabela 26: Semântica da classe Servicos
Atributos Tipos de
Dados
Descrição Valores
Válidos
Formato Restrições
idServicos(PK) Numeração
Automática
Número sequencial
que identifica
univocamente cada
Despesa
Maior que
0
Até 10
dígitos
Gerado pelo
sistema / Não
alterável
idLinhasServicos
Pedidos (FK)
Integer Número que
identifica
univocamente cada
Linha de Serviços
Pedidos
Maior que
0
Até 10
dígitos
Facultado pelo
sistema e
alterável
servico String Tipo de serviço Caracteres Até 20
caracteres
Obrigatório e
alterável
custosServico Float Custo da despesa Caracteres Até (5,2)
dígitos
00000,00
Obrigatório e
alterável
50
3.10.8 Entidade: DespesaCliente
Tabela 27: Semântica da classe DespesaCliente
Atributos Tipos de
Dados
Descrição Valores
Válidos
Formato Restrições
idDespesaCliente(PK) Numeração
Automática
Número
sequencial que
identifica
univocamente
cada Despesa do
Cliente
Maior que 0 Até 10
dígitos
Gerado pelo
sistema / Não
alterável
idCliente (FK) Integer Número que
identifica
univocamente
cada Cliente
Maior que 0 Até 10
dígitos
Facultado
pelo sistema e
não alterável
descricaoC String Descreve o tipo
de despesa que
vai ser inserida
Caracteres Até 100
caracteres
Obrigatório e
alterável
custosC Float Custo da despesa Caracteres Até (5,2)
dígitos
00000,00
Obrigatório e
alterável
data Date Data em que a
despesa foi
introduzida no
sistema
DD/MM/YY Até 10
caracteres
Obrigatório e
não alterável
51
3.11 Diagrama de Atividades
Os diagramas de atividades servem para mostrar fluxos operacionais do sistema,
descrevendo as operações que constituem a aplicação de forma prática.
Na figura 14, está o diagrama de atividades do funcionário para registar um novo
Condomínio e poder inserir os Clientes associados a ele, como também Serviços, Atas e
Despesas.
Login Registar Condomínio
Login Correcto?
Não
Sim
Funcionário
Inserir todos os dados
Dados bem inseridos e com formato adequado?
Sim
NãoRever dados introduzidos
Aviso de erros
Disponibiliza formulários de inserção de Clientes, Serviços, Atas, Despesas
Inserir mais tarde?
Sim
NãoInserir todos os dados
Aviso de erros
Rever dados introduzidosNão
Dados bem inseridos e com formato adequado?
Sim
Figura 14: Diagrama de atividades Registar novo Condomínio
52
3.12 Diagrama de Estados
Este tipo de diagramas indicam as transações de estado de um objeto, o exemplo da
Figura 15 mostra-nos, se uma emissão de pagamento se encontra “Paga” ou “Em
divida”.
Em divida//entry:IdConfirmarPagamento,idCliente,idFuncionário,...,paga="False"//do/ Confirmar Pagamento
[O Cliente emite o pagamento]
[O funcionário verifica se o pagamento foi efetuado]
Paga//entry:IdConfirmarPagamento,idCliente,idFuncionário,...,paga="True"//do/
Sim
Figura 15: Diagrama de Estado Confirmar Pagamento
53
3.13 Diagrama de Instalação
O diagrama de instalação descreve os componentes de hardware e software e a sua
interação com os outros elementos de suporte ao processamento.
InternetServidor Amec
Dispositivo de Acesso
Servidor Base de Dados
Impressora
TCP/IPTCP/IP
TCP/IP
TCP/IP
Figura 16: Diagrama de instalação
3.14 Arquitetura da Solução
Através da Figura 17, podemos ver como a aplicação interage com os outros periféricos
de saída e entrada de dados.
INTERNET
Cliente Funcinário Gestor
Servidor ISSBase de Dados
SQL SERVER
Figura 17: Arquitetura da Solução
54
Capítulo 4. Tecnologias e Software Utilizados
Neste capítulo vão ser descritas as tecnologias utilizadas na elaboração deste projeto
bem como apresentar alguns exemplos de código utilizados na aplicação.
4.1 Tecnologias
Uma vez que o projeto utilizou um conjunto de tecnologias web, faz todo o sentido
evidencia-las de forma breve. São elas Microsoft SQL SERVER, ASP.NET, C#,
HTML, CSS e JavaScript.
4.1.1 Microsoft SQL SERVER
É um sistema de gestão de Base de dados, criado pela Microsoft. Vem incluído no
Microsoft Visual Studio, e é utilizado sempre que queremos aceder a dados da BD (base
de dados) do projeto.
Podemos ver o código SQL usado para selecionar os serviços e informações a eles
associados, para que o funcionário veja quantos dias faltam para o serviço expirar por
ordem crescente.
Lista de Código 1: Exemplo SQL
4.1.2 ASP.NET
O ASP.NET é uma tecnologia de scripting do lado do servidor, esta tecnologia permite
colocar numa página web, scripts que irão ser executados por um servidor. (4)
Esta tecnologia, permite ao programador utilizar várias linguagens, como o VB, C#,
C++, entre outras.
Na Lista de Código 2 é mostrado um exemplo de ASP.NET que tem a finalidade de
criar um menu de navegação da aplicação.
55
Lista de Código 2: Exemplo ASP.NET
4.1.3 C#
O C# (pronuncia-se "C sharp") é uma linguagem de programação criada para o
desenvolvimento de uma variedade de aplicações que executam sobre o .NET
Framework. As várias inovações no C# permitem o desenvolvimento rápido de
aplicações, mantendo a expressividade e a elegância das linguagens C-style. (5)
Visual C# é uma implementação da linguagem C# pela Microsoft. Visual Studio suporta
Visual C#. Desta forma torna-se muito mais fácil trabalhar uma aplicação e acelera
significativamente o desenvolvimento do projeto, pois disponibiliza editor de código,
compilador, modelos de projetos, designers, assistentes de código entre outras
ferramentas.
Na Lista de Código 3 podemos visualizar um exemplo C#, que mostra como funciona o
botão Calcular, que tem a finalidade de fazer o cálculo da quota mensal de um Cliente.
Lista de Código 3: Exemplo C#
56
4.1.4 HTML
HTML é sigla de HyperText Markup Language, uma expressão inglesa que significa
"Linguagem de Marcação de Hipertexto". É uma linguagem de marcação utilizada para
produção de páginas na web. Os elementos são definidos através de tags, que funcionam
como comandos de formatação de textos, formulários, links (ligações), imagens,
tabelas, entre outros. (6)
Na Lista de Código 4 é apresentado o exemplo de uma pequena parte da criação de uma
página mestre.
Lista de Código 5: Exemplo HTML
4.1.5 CSS
Cascading Style Sheets (ou simplesmente CSS) é uma folha de estilo que é utilizada
para definir a apresentação de documentos escritos em uma linguagem de marcação,
como HTML ou XML. Seu principal benefício é prover a separação entre o formato e o
conteúdo de um documento. (7)
Desta forma em vez de estarmos constantemente a utilizar o mesmo código
repetidamente para formatar objetos que requerem a mesma formatação, basta criar uma
classe CSS e chamá-la quando se deseja utilizar.
Na Lista de Código 6 mostra-nos exemplos de utilização de CSS, que permite criar um
botão rollover.
57
Lista de Código 7: Exemplo CSS
4.1.6 JavaScript
JavaScript é uma linguagem de programação utilizada para criar programas que são
intervenientes em ações que se desejam realizar numa página web, aumentando a
interatividade entre páginas e utilizador.
Na Lista de Código 8 está o exemplo para abrir nova janela centrada no meio do ecrã.
Lista de Código 9: Exemplo JavaScript
58
4.2 Software Utilizado
4.2.1 Microsoft Visual Studio 2010
É um pacote de programas da Microsoft com vasto leque de opções, o principal
software para a realização da aplicação, este software permite a interação entre todas as
tecnologias que foram referidas anteriormente, é um produto com muito potencial para
desenvolvimento de aplicações web.
Figura 18: Ambiente de trabalho do Visual Studio
4.2.2 Outros
O software que também teve um papel muito importante para a concretização do projeto
foram o Adobe Photoshop, Fireworks para a criação e edição de imagens da aplicação
web, o Microsoft Word para a realização do relatório, o Microsoft Visio para a criação
de todos os diagramas e também o Power Designer para criação do modelo ER da BD
da aplicação web.
59
Capítulo 5. Implementação da Solução
5.1 Introdução
Neste capítulo é apresentado algumas das funcionalidades da aplicação web
desenvolvida, recorrendo a figuras e breve código utilizado para atingir os objetivos
desejados.
5.2 Modelo Físico da BD
Figura 19: Modelo Físico da BD
Este foi o ponto de partida para a criação da aplicação web.
FK_SERVICOS_REFERENCE_TIPODESE
FK_CONDOMIN_REFERENCE_FUNCIONÁ
FK_CONFIRMA_REFERENCE_FUNCIONÁ
FK_LINHASSE_REFERENCE_SERVICOS
FK_SERVIÇOS_REFERENCE_CONDOMIN
FK_CLIENTES_REFERENCE_CONDOMIN
FK_ATAS_REFERENCE_CONDOMIN
FK_DESPESAS_REFERENCE_CONDOMIN
FK_LINHASSE_REFERENCE_SERVIÇOS
FK_DESPESAC_REFERENCE_CLIENTES
FK_CONFIRMA_REFERENCE_CLIENTES
TipoDeServiços
idTipoServicos
tipoServicos
descricao
...
int
varchar(20)
varchar(100)
<pk>
Funcionários
idFuncionario
username
nomeFuncionario
cargo
biFuncionario
nifFuncionario
telefoneFuncionario
contato2
...
int
varchar(50)
varchar(70)
varchar(50)
int
int
varchar(50)
varchar(50)
<pk>
Servicos
idServicos
idTipoServicos
servico
custosServico
...
int
int
varchar(20)
float
<pk>
<fk>
Condominios
idCondominio
idFuncionario
morada
codigoPostal
localidade
orcamentoAnual
nomeBancoCond
nibCondominio
nFracoes
nAndares
nlojas
capacidadeParque
nGaragens
salaCondominio
nArrecadacoes
elevadores
...
int
int
varchar(70)
varchar(10)
varchar(50)
float
varchar(50)
varchar(30)
int
int
int
float
int
bit
int
bit
<pk>
<fk>
ServiçosPedidos
idServicosPedidos
dataInicio
idCondominio
dataFim
...
int
datetime
int
datetime
<pk>
<fk>
Clientes
idCliente
username
nomeCliente
aplidoCliente
biCliente
nifCliente
telefoneCliente
telemovelCliente
emailCliente
idCondominio
fracao
andar
permilagem
quotaMensal
adminterno
nomeBancoCliente
nibCliente
...
int
varchar(20)
varchar(70)
varchar(50)
int
int
varchar(15)
varchar(15)
varchar(50)
int
varchar(10)
varchar(10)
float
float
bit
varchar(50)
varchar(50)
<pk>
<ak2>
<ak1>
<fk>
Atas
idAta
idCondominio
descricao
ficheiro
data
...
int
int
varchar(50)
varchar(100)
datetime
<pk>
<fk>
Despesas
idDespesas
descDespesaExtra
custos
idCondominio
...
int
varchar(100)
float
int
<pk>
<fk>
LinhasServicosPedidos
idLinhasServicosPedidos
idServicosPedidos
idServicos
validade
...
int
int
int
datetime
<pk>
<fk2>
<fk1>
DespesaCliente
idDespesaCliente
descriçãoC
custosC
idCliente
...
int
varchar(100)
float
int
<pk>
<fk> ConfirmaPagamento
idConfirmarPagamento
idCliente
idFuncionario
descricaoPagamento
ficheiroPagamento
data
paga
...
int
int
int
varchar(50)
varchar(100)
datetime
bit
<pk>
<fk2>
<fk1>
60
É apresentada na Figura 20 a base de dados implementada no Visual Studio com o
seguinte diagrama.
Figura 20: Diagrama Visual Studio
Clientes
idCliente
username
nomeCliente
aplidoCliente
biCliente
nifCliente
telefoneCliente
telemovelCliente
emailCliente
idCondominio
fracao
andar
permilagem
quotaMensal
adminterno
nomeBancoCliente
nibCliente
Condominios
idCondominio
idFuncionario
morada
codigoPostal
localidade
orcamentoAnual
nomeBancoCond
nibCondominio
nFracoes
nAndares
nlojas
capacidadeParque
nGaragens
salaCondominio
nArrecadacoes
elevadores
Despesas
idDespesas
descDespesaExtra
custos
idCondominio
data
Funcionários
idFuncionario
username
nomeFuncionario
cargo
biFuncionario
nifFuncionario
telefoneFuncionario
contato2
emailFunci
ServiçosPedidos
idServicosPedidos
dataInicio
idCondominio
dataFim
TipoDeServiços
idTipoServicos
tipoServicos
descricao
Servicos
idServicos
idTipoServicos
servico
custosServico
LinhasServicosPedidos
idLinhasServicosPedidos
idServicosPedidos
idServicos
validade
Atas
idAta
idCondominio
descricao
ficheiro
data
ConfirmaPagamento
idConfirmarPagamento
idCliente
idFuncionario
descricaoPagamento
ficheiroPagamento
data
paga
DespesaCliente
idDespesaCliente
descricaoC
custosC
idCliente
Data
61
5.3 Aplicação
5.3.1 Navegação da aplicação
Na Figura 21 podemos ver como funciona a navegação entre as páginas da aplicação de
uma forma geral.
Figura 21:Navegação da aplicação
62
5.3.2 Criação de uma página mestre
Uma página mestre, permite que se crie o conteúdo que vai ser universal em todas as
páginas. Assim sempre que se quer alterar algo num website que tenha uma página
mestre, é só fazer as modificações uma vez, que todas as outras páginas vão atualizar,
sem ser necessário andar a fazer alterações página a página.
Como criar uma página mestre?
No Solution Explorer, fazer “Add New Item” onde aparece e janela seguinte:
Figura 22:Criar Master Page
Escolhemos “Master Page”, inserimos o nome que desejamos e “Add”. De seguida abre
uma janela onde podemos então criar e editar como vai ficar distribuída a informação
através de código HTML e ASP.NET.
Para este projeto foram criadas 4 páginas mestres, uma para normal navegação, outra
para navegação da área de Cliente, outra para área de Funcionário e para a área de
Gestor.
No anexo 2 está disponível o código da criação da página mestre da área do funcionário.
63
5.3.3 Registar um Condomínio
Um breve exemplo dos passos que o utilizador precisa fazer para Registar Novo
Condomínio.
Todos os utilizadores podem navegar na página Web, mas para acederem ao conteúdo
de interesse individual, é necessário realizar um Login e entrar na área associada ao
utilizador ligado no sistema.
Figura 23: Login
Depois do login feito com sucesso, aparece no canto superior direito as opções Logout e
neste exemplo, Área de Funcionário, porque se for o gestor ou o cliente a operação é
semelhante, mudando a opção Área para Cliente ou Gestor dependendo de quem fez o
login.
Figura 24: Opções depois do Login com sucesso
Se o utilizador clicar em “Área Funcionário”, entra na área que lhe corresponde.
Onde lhe é apresentada a seguinte pagina web, com as opções necessárias ao
desempenho das suas funções e aviso de serviços que expiraram ou estão perto de
expirar a validade, merecendo a atenção por parte dele.
64
Figura 25: Área de Funcionário
Se por exemplo optar por introduzir “Novo Condomínio”, clicando no botão mais
escuro da Figura 25, ou se for à barra de menu Condomínios>> Registar Novo, aparece
o formulário para inserir o condomínio (Figura 26).
Figura 26: Formulário Registar Condomínio
65
O funcionário insere os dados do condomínio e depois do sistema validar os dados, é
apresentado um menu para inserir Clientes, Serviços, Atas e Despesas.
Na Figura 27, mostra como o funcionário vê a informação do Condomínio e fica com
acesso aos formulários para poder inserir Clientes, Serviços, Atas e Despesas associadas
ao Condomínio registado.
Figura 27: Exemplo Formulários Desbloqueados
66
5.3.1 Validar e Enviar Pedido de Orçamento
Qualquer utilizador pode fazer um pedido de orçamento à empresa. Através do seguinte
formulário.
Figura 28: Formulário Pedir Orçamento
O utilizador introduz a informação, e se os campos obrigatórios não estiverem
devidamente preenchidos ou com o formato correto, ao clicar no botão confirmar,
ocorre o seguinte (Figura 29):
Figura 29: Exemplo de inserção incorreta
Isto acontece porque foram utilizadas as ferramentas disponibilizadas para validação de
dados do ASP.NET e também para o caso do NIF JavasScript.
67
Exemplo da validação de um dado introduzido na TextBoxEmail (Figura 31):
Figura 30: Exemplo da validação do email
O RequiredFieldValidator faz a validação de campos obrigatórios e o
RegularExpressionValidator serve para validar os caracteres introduzidos e qual os
formatos os dados a introduzidos devem ter.
Exemplo da validação de um dado introduzido na TextBoxNIF (Figura 31):
Figura 31: Exemplo validação do NIF
Esta validação é mais complexa foi necessário usar um CustomValidator para que possa
executar uma função em JavaScrip (Anexo 3). Todos os outros campos têm validações
semelhantes a estes dois exemplos (Figura 30 e 31), dependendo do que é requerido.
Para que as mensagens de erro sejam apresentadas no ecrã cria-se um
ValidationSummary que permite gerir como e onde queremos que as notificações de
erro apareçam:
Figura 32: Exemplo ValidationSummary
E atribui-se ao botão o mesmo grupo de validação:
Figura 33:Exemplo do botão Confirmar
68
Se houver erros nos dados introduzidos, o botão não faz o evento enquanto não
estiverem todos os dados corretos.
Se os dados estão bem inseridos é enviado o email para a empresa com a informação:
Figura 34: Exemplo do Código do Botão Confirmar
69
5.4 Código
Neste tópico é mostrado alguns excertos de código, utilizados para realizar algumas
operações e funcionalidades.
5.4.1 Carregar um ficheiro PDF
Tem a finalidade de permitir que o utilizador possa fazer o upload de um ficheiro PDF
associado a uma Ata, neste caso.
Figura 35: Exemplo de Código Carregar Ficheiro
5.4.2 Calcular Quota Mensal
Utilizado quando o funcionário está a registar um Cliente, e quer que o sistema calcule a
quota mensal.
Figura 36: Exemplo de Código Calcular Quota Mensal
70
Capítulo 6. Conclusão e Trabalho Futuro
6.1 Conclusão
No final desde projeto, tirando um ou dois pontos os objetivos previstos foram
conseguidos. O que aprendemos durante o curso teve impacto na forma como foram
contornados os problemas encontrados.
Neste caso a interação com um possível utilizador da aplicação foi enriquecedora, a
troca de ideias para melhorar a aplicação foi impecável e vai continuar para o futuro,
pois ainda existe um caminho longo a percorrer para que este projeto possa concorrer
diretamente com os melhores do mercado.
6.2 Resultados Obtidos
No final deste projeto, os resultados obtidos foram:
Inserir, editar, procurar um Condomínio.
Gerir Clientes.
Gerir Serviços.
Ver/editar/inserir Atas.
Ver/editar/inserir Despesas do Condomínio e do Cliente.
Ver/editar/inserir Funcionários.
Fazer Procuras com palavras de pesquisa.
Carregar e Visualizar ficheiros PDF.
Calcular a quota mensal que o cliente irá pagar.
Aviso de validade dos pacotes de serviços contratados.
Enviar email com avisos para reuniões, pagamentos, serviços e outros.
Pedir orçamentos.
71
6.3 Trabalho Futuro
Para trabalho futuro pretende-se:
Criar um modo de facilitar a gestão do NIB do Condomínio e Clientes. E
também para uma validação real do NIB introduzido e o Nome do Banco.
Fazer uma gestão de crédito e débito da conta do Condomínio.
Se tudo correr bem com a empresa, passado um ano do surgimento no mercado,
é necessária a criação de um sistema de faturação certificada.
Criar uma forma de identificar uma localidade através da introdução do código
postal para facilitar a inserção.
Fazer a uma gestão para os fornecedores, com quem a empresa de Condomínios
pode ter como parceiros.
72
Bibliografia
1. Improxy. Gecond online. http://www.improxy.pt. [Online] Improxy, 2012. [Citação:
28 de 09 de 2013.]
http://www.improxy.pt/Solu%C3%A7%C3%B5eseplataformas/Gest%C3%A3odecond
om%C3%ADnios/Gecondonline/tabid/1759/Default.aspx.
2. Improve it. Extreme Programming. desenvolvimentoagil. [Online] Improve it, 2013.
[Citação: 2013 de 11 de 25.] http://desenvolvimentoagil.com.br/xp/.
3. Hiperbytes. Metodologia Agil XP. Hiperbytes. [Online] 2013. [Citação: 16 de 11 de
2013.] http://www.hiperbytes.com.br/artigos/metodologia-xp-extreme-programming-
desenvolvimento-agil/.
4. pplWare. ASP.NET – Introdução e conceitos. pplWare no Comments. [Online]
Pplware, 2013. [Citação: 12 de 11 de 2013.] http://pplware.sapo.pt/tutoriais/asp-net-
%E2%80%93-introducao-e-conceitos/.
5. Microsoft. Microsoft developer network. Visual C#. [Online] Microsoft, 2013.
[Citação: 20 de 11 de 2013.] http://msdn.microsoft.com/pt-
BR/library/kx37x362(v=VS.90).aspx.
6. significados.com. Significado de HTML. Significados.com. [Online] 7Graus, 2011-
2013. [Citação: 28 de 11 de 2013.] http://www.significados.com.br/html/.
7. wikipedia. http://pt.wikipedia.org. Cascading_Style_Sheets. [Online] wikipedia, 30
de 6 de 2013. [Citação: 12 de 11 de 2013.]
http://pt.wikipedia.org/wiki/Cascading_Style_Sheets.
73
Anexo 1
Lista de websites visitados para pesquisa no estudo do Estado da Arte:
http://www.grupocertifacil.com/
http://www.paxdomi.pt/
http://www.gestaodecondominios.pt/
http://www.great-house.pt/
http://www.h24gestaodecondominios.com/
http://www.scgc.pt/
http://www.condblue.com/
http://www.lispatios.ich.pt/
http://www.predominio.pt/
http://www.contacomum.com/
74
Anexo 2
Exemplo de código utilizado para a criação da master page na área do funcionário:
<%@ Master Language="C#" AutoEventWireup="true" CodeBehind="menuFuncionario.master.cs" Inherits="GestCondominios.menuFuncionario" %> <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> <html xmlns="http://www.w3.org/1999/xhtml"> <script type="text/javascript"> function abrir(pagina, largura, altura) { //pega a resolução do visitante w = screen.width; h = screen.height; //divide a resolução por 2, obtendo o centro do monitor meio_w = w / 2; meio_h = h / 2; //diminui o valor da metade da resolução pelo tamanho da janela, fazendo com q ela fique centralizada altura2 = altura / 2; largura2 = largura / 2; meio1 = meio_h - altura2; meio2 = meio_w - largura2; //abre a nova janela, já com a sua devida posição window.open(pagina, '', 'height=' + altura + ', width=' + largura + ', top=' + meio1 + ', left=' + meio2 + ',resizable=no'); } </script> <head runat="server"> <title>Gestão de Condominios/Funcionário</title> <link rel="SHORTCUT ICON" type="image/x-icon" href="~/images/logoAmecI.ico" /> <link href="Styles/style.css" rel="stylesheet" type="text/css" /> <asp:ContentPlaceHolder ID="HeadContent" runat="server"> </asp:ContentPlaceHolder> <style type="text/css"> .style1 { width: 100px; height: 80px; text-align: justify; float: left; } </style> </head> <body> <form id="form1" runat="server"> <div class="main-out"> <div class="main"> <div class="page"> <div class="top"> <div class="header"> <div class="header-top"> <h1>
75
<asp:ImageButton ID="ImageLogo" CssClass="style1" ImageUrl="~/images/logoAmec.png" runat="server" OnClick="ImageLogo_Click" /> GESTÃO <span>CONDOMÍNIOS</span></h1> <p style="margin-top: 25px;"> <asp:LoginStatus ID="LoginSt" runat="server" CssClass="btLogin" LoginText="Login" LogoutText="Logout" LogoutAction="Redirect" LogoutPageUrl="~/Default.aspx" Font-Bold="True" Font-Italic="False" Font-Size="Large" ForeColor="#F1F1F1" Height="30px" Width="85px" /> <asp:LoginView ID="LoginViewMenu" runat="server"> <RoleGroups> <asp:RoleGroup Roles="Cliente"> <ContentTemplate> <asp:HyperLink ID="HyperLinkMenuCliente" runat="server" CssClass="btLogin" NavigateUrl="~/Cliente/PagClientes.aspx" Height="30px" Width="85px" Font-Bold="True" Font-Italic="False" Font-Size="7pt" ForeColor="#F1F1F1">Area <br /> Cliente</asp:HyperLink></ContentTemplate> </asp:RoleGroup> <asp:RoleGroup Roles="Funcionario"> <ContentTemplate> <asp:HyperLink ID="HyperLinkVendedorMenu" runat="server" CssClass="btLogin" NavigateUrl="~/Funcionario/PagFuncionario.aspx" Height="30px" Width="85px" Font-Bold="True" Font-Italic="False" Font-Size="7pt" ForeColor="#F1F1F1">Area <br /> Funcionário</asp:HyperLink> </ContentTemplate> </asp:RoleGroup> <asp:RoleGroup Roles="Gestor"> <ContentTemplate> <asp:HyperLink ID="HyperLinkGestor" runat="server" CssClass="btLogin" NavigateUrl="~/Gestor/PagGestor.aspx" Height="30px" Width="85px" Font-Bold="True" Font-Italic="False" Font-Size="7pt" ForeColor="#F1F1F1">Area <br /> Gestão</asp:HyperLink></ContentTemplate> </asp:RoleGroup> </RoleGroups> </asp:LoginView> </p> </div> <div class="topmenu"> <asp:Menu ID="Menu1" runat="server" Orientation="Horizontal"> <Items> <asp:MenuItem NavigateUrl="~/Default.aspx" Text="Bem Vindo"></asp:MenuItem> <asp:MenuItem Text="Quem Somos"> <asp:MenuItem Text="Missão" NavigateUrl="#"></asp:MenuItem> <asp:MenuItem Text="Valores" NavigateUrl="#"></asp:MenuItem> <asp:MenuItem Text="História" NavigateUrl="#"></asp:MenuItem> </asp:MenuItem>
76
<asp:MenuItem NavigateUrl="~/PagParceiros.aspx" Text="Parceiros"></asp:MenuItem> <asp:MenuItem NavigateUrl="~/PagServicos.aspx" Text="Serviços"> <asp:MenuItem Text="Gestão de Condomínios" NavigateUrl="~/PagGestao.aspx"></asp:MenuItem> <asp:MenuItem Text="Manutenção" NavigateUrl="~/PagManutencao.aspx"></asp:MenuItem> <asp:MenuItem Text="Limpeza" NavigateUrl="~/PagLimpeza.aspx"></asp:MenuItem> </asp:MenuItem> <asp:MenuItem NavigateUrl="~/PagOrcamentos.aspx" Text="Orçamentos"></asp:MenuItem> <asp:MenuItem NavigateUrl="~/PagContatos.aspx" Text="Contatos"></asp:MenuItem> </Items> <StaticMenuItemStyle Width="105px" /> <StaticHoverStyle BackColor="#0F87D5" Width="105px" /> <DynamicMenuItemStyle CssClass="MenuItem" /> </asp:Menu> </div> <br /> <asp:Panel ID="PanelLogin" runat="server"> <br /> </asp:Panel> </div> <div class="body_txt"> </div> <div class="content"> <asp:Menu ID="MenuGS" runat="server" Orientation="Horizontal" StaticSubMenuIndent="10px" DynamicHorizontalOffset="2" BackColor="#ECEFF0" Font-Names="Verdana" Font-Size="10pt" ForeColor="#0066FF" Width="980px" Font-Bold="True"> <DynamicHoverStyle BackColor="#0066FF" ForeColor="#ECEFF0" /> <DynamicMenuItemStyle HorizontalPadding="10px" VerticalPadding="5px" /> <DynamicMenuStyle BackColor="#ECEFF0" /> <DynamicSelectedStyle BackColor="#0066FF" ForeColor="#ECEFF0" /> <Items> <asp:MenuItem Text="Condominios"> <asp:MenuItem Text="Registar Novo" NavigateUrl="~/Funcionario/PagRegCondominio.aspx"> </asp:MenuItem> <asp:MenuItem Text="Ver/Editar" NavigateUrl="~/Funcionario/PagVerEditarCond.aspx"> </asp:MenuItem> <asp:MenuItem Text="Enviar Aviso" NavigateUrl="~/Funcionario/PagEnviarAviso.aspx"> </asp:MenuItem> </asp:MenuItem> <asp:MenuItem Text="Clientes"> <asp:MenuItem Text="Procurar clientes" NavigateUrl="~/Funcionario/PagProcurarClient.aspx"> </asp:MenuItem> <asp:MenuItem Text="Ver/Editar Clientes" NavigateUrl="~/Funcionario/PagVerEditCliente.aspx"> </asp:MenuItem> </asp:MenuItem>
77
<asp:MenuItem Text="Documentos"> <asp:MenuItem Text="Atas" NavigateUrl="~/Funcionario/PagDocAtas.aspx"></asp:MenuItem> <asp:MenuItem Text="Confirmar Pagamentos" NavigateUrl="~/Funcionario/PagDocFaturas.aspx"></asp:MenuItem> </asp:MenuItem> <asp:MenuItem Text="Simulador de valores" NavigateUrl="javascript: abrir('PagSimulaCal.aspx','650','400')"> </asp:MenuItem> </Items> <StaticHoverStyle BackColor="#0066FF" ForeColor="#ECEFF0" /> <StaticMenuItemStyle HorizontalPadding="10px" VerticalPadding="5px" /> <StaticSelectedStyle BackColor="#0066FF" ForeColor="#ECEFF0" /> </asp:Menu> <asp:Panel ID="PanelLinhaFora" runat="server" Width="974px" BorderColor="#DDDDDD" BorderWidth="3px" CssClass="content"> <asp:ContentPlaceHolder ID="MainContent" runat="server"> </asp:ContentPlaceHolder> <br /> </asp:Panel> </div> <table> <tr> <td style="text-align: center; width: 980px"> <br /> <asp:Label ID="LabelDataAtual" runat="server" Font-Size="10pt" Font-Bold="True" Font-Italic="True" ForeColor="GradientActiveCaption" Text=" "></asp:Label> </td> </tr> </table> </div> <div class="bottom"> <ul> <li style="border-left: medium none;"><a href="Default.aspx">Bem Vindo</a></li> <li><a href="PagSobreNos.aspx">Quem Somos</a></li> <li><a href="PagParceiros.aspx">Parceiros</a></li> <li><a href="PagServicos.aspx">Serviços</a></li> <li><a href="PagOrcamentos.aspx">Orçamentos</a></li> <li><a href="PagContatos.aspx">Contactos</a></li> </ul> <p> Copyright © 2013</p> </div> </div> </div> </div> </form> </body> </html>
78
Anexo 3
<script type="text/javascript"> function ValidateNIF(sender, args) { args.IsValid = IsValidNIF(args.Value); } function IsValidNIF(nif) { var c; var checkDigit = 0; var x = ""; var y = ""; //Verifica se é nulo, se é numérico e se tem 9 dígitos if (nif != null && IsNumeric(nif) && nif.length == 9) { //Obtem o primeiro número do NIF c = nif.charAt(0); //Verifica se o primeiro número é (1, 2, 5, 6, 8 ou 9) if (c == '1' || c == '2' || c == '5' || c == '6' || c == '8' || c == '9') { //Calculo do Digito de Controle checkDigit = c * 9; var i = 0; for (i = 2; i <= 8; i++) { checkDigit += nif.charAt(i - 1) * (10 - i); } checkDigit = 11 - (checkDigit % 11); //Se o digito de controle é maior que dez, coloca-o a zero if (checkDigit >= 10) checkDigit = 0; //Compara o digito de controle com o último numero do NIF //Se igual, o NIF é válido. if (checkDigit == nif.charAt(8)) //alert("nif valido"); document.getElementById("nifvalido").innerHTML = (x = "NIF Válido!"); document.getElementById("nifinvalido").innerHTML = (y = ""); return true; } } else { //alert("nif invalido"); document.getElementById("nifinvalido").innerHTML = (y = "NIF Inválido!"); document.getElementById("nifvalido").innerHTML = (x = ""); return false; } } function IsNumeric(ObjVal) { return /^\d+$/.test(ObjVal); } </script>
79
Anexo 4
Como já foi referido, optamos pelo desenvolvimento de uma aplicação web, mas existiu o
problema de implementar o projeto numa aplicação web ou desktop. Para auxílio da decisão
foram estudadas as vantagens e desvantagens de cada uma.
Aplicações web:
Vantagens:
A principal vantagem é a facilidade de acesso, em qualquer local pode facilmente ter
acesso as informações contidas na aplicação.
Possibilidade de ter acesso à aplicação sem que seja necessário instalar nada no
computador, basta utilizar o browser.
O custo de manutenção de uma aplicação web é mais económico, uma vez que
depende apenas do servidor que hospeda a aplicação.
Quando se faz uma atualização, não é necessário instalar nada de novo e as
alterações surgem para todos os utilizadores ao mesmo tempo.
Se for preciso aumentar o processamento, basta acionar o servidor que hospeda a
aplicação e realizar o upgrade.
Desvantagens:
Se não houver acesso à Internet, não é possível utilizar a aplicação, e isso pode
tornar-se um enorme problema.
A informação é mostrada de acordo com os diferentes navegadores, pode tornar-se
fatal, uma vez que num navegador é apresentada a página web corretamente e em
outro navegador podem ocorrer erros.
Menor segurança
80
Aplicações desktop:
Vantagens
Uma integração mais fácil com vários periféricos.
A interface permite maior controlo e variedade.
A rapidez de processamento é maior, uma vez que é local.
Maior segurança
Desvantagens
Com a diversidade dos sistemas operativos, implica a criação de várias versões de
software.
Pode ser necessária a instalação de componentes de hardware e software no
computador.
Para a instalação da aplicação pode precisar de drivers e periféricos.
Distribuição critica, e quando surge uma atualização, é preciso voltar a instalar
novamente a aplicação ou o update.
Como existe o objetivo de permitir que utilizador tenha acesso à aplicação em todo o lado,
onde quer que esteja, e atualmente a internet está em todo o mundo, é utilizada por milhões de
utilizadores todos os dias, a melhor solução é a criação de uma aplicação web pois assim
permite divulgação da empresa e serviços online.
E como há uma interação por parte de diferentes tipos de utilizadores, o facto de não ser
preciso instalar nada no computador, facilita a utilização dos intervenientes.
Quando se realiza uma atualização do sistema, esta fica aplicada para todos sem
complicações. Foi também um ponto forte para a escolha do tipo da aplicação.