Instituto Politécnico da Guarda Aplicação web de gestão de...

71

Transcript of Instituto Politécnico da Guarda Aplicação web de gestão de...

Page 1: Instituto Politécnico da Guarda Aplicação web de gestão de ...bdigital.ipg.pt/dspace/bitstream/10314/1796/1/João Gonçalves... · O trabalho consistiu em desenvolver uma aplicação
Page 2: Instituto Politécnico da Guarda Aplicação web de gestão de ...bdigital.ipg.pt/dspace/bitstream/10314/1796/1/João Gonçalves... · O trabalho consistiu em desenvolver uma aplicação

Instituto Politécnico da GuardaEscola Superior de Tecnologia e Gestão

Aplicação web de gestão de contactos

João Carlos Dias Gonçalves - No 1009095

Projeto Aplicado no Curso

de Engenharia Informática em contexto de estágio

11 de Janeiro de 2013

Page 3: Instituto Politécnico da Guarda Aplicação web de gestão de ...bdigital.ipg.pt/dspace/bitstream/10314/1796/1/João Gonçalves... · O trabalho consistiu em desenvolver uma aplicação

Instituto Politécnico da GuardaEscola Superior de Tecnologia e Gestão

Aplicação web de gestão de contactos

João Carlos Dias Gonçalves - No 1009095

Projeto Aplicado no Curso

de Engenharia Informática em contexto de estágio

Supervisor: Eng.o Del�m Garcia Pereira - Sócio-Gerente da empresa

MadetoHelp - Tecnologias de Informação, Lda.

Orientador: Eng.o Noel de Jesus Lopes da Unidade

Técnico-Cientí�ca de Informática da ESTG.

11 de Janeiro de 2013

Page 4: Instituto Politécnico da Guarda Aplicação web de gestão de ...bdigital.ipg.pt/dspace/bitstream/10314/1796/1/João Gonçalves... · O trabalho consistiu em desenvolver uma aplicação

Agradecimentos

Gostaria de expressar o meu agradecimento a todas as pessoas que das mais variadasformas me ajudaram neste projeto. Como não é possível enunciar cada um vouapenas salientar algumas das pessoas que não poderia deixar de destacar.

Ao Eng.o Del�m Garcia Pereira por me ter dado a oportunidade de desenvolver esteprojeto e também por toda a disponibilidade e atenção que teve comigo.

Ao Professor Noel de Jesus Lopes por ter aceite ser o meu orientador, por toda adisponibilidade e ajuda nas di�culdades que foram aparecendo guiando-me sempreno caminho mais correto.

À Professora Doutora Maria Clara Silveira por toda a ajuda prestada na parte deanálise de requisitos e conceção da aplicação.

Por �m, mas não menos importantes, gostaria de agradecer à minha família, namo-rada e amigos por todo o apoio que sempre demonstraram e que sem eles teria sidobem mais difícil.

i

Page 5: Instituto Politécnico da Guarda Aplicação web de gestão de ...bdigital.ipg.pt/dspace/bitstream/10314/1796/1/João Gonçalves... · O trabalho consistiu em desenvolver uma aplicação

Resumo

Este documento descreve o trabalho realizado no âmbito da unidade Curricular Pro-jeto de Informática, na Licenciatura em Engenharia Informática da Escola Superiorde Tecnologia e Gestão do Instituto Politécnico da Guarda.

Devido à grande evolução que se tem assistido na tecnologia, nos últimos anos, epor ser possível o acesso em qualquer lugar e hora, todos estes pontos conjugados,fazem com que a procura de aplicações web seja cada vez maior.

O trabalho consistiu em desenvolver uma aplicação web para fazer a gestão de clien-tes (CRM) de um escritório de contabilidade, onde os utilizadores podem consultar,inserir e editar contactos, serviços, bancos, tarefas, consultar os dados de todos osutilizadores e comunicar entre os utilizadores através de correio interno.

Foi também desenvolvida a parte de administração da aplicação, onde os adminis-tradores podem fazer exatamente o mesmo que os utilizadores com o incremento dese poderem gerir os utilizadores, eliminar dados e criar tipos de contactos.

A aplicação foi desenvolvida no Microsoft Visual Studio e as principais tecnologiasutilizadas foram: ASP.NET, C#, SQL Server e JavaScript.

Palavras Chave

Aplicação web, Sql Server, ASP.NET, C#, CRM, JavaScript.

ii

Page 6: Instituto Politécnico da Guarda Aplicação web de gestão de ...bdigital.ipg.pt/dspace/bitstream/10314/1796/1/João Gonçalves... · O trabalho consistiu em desenvolver uma aplicação

Abstract

This document describes the work performed under the discipline Projecto de In-formática in the graduation in Computer Engineering from Escola Superior de Tec-nologia e Gestão da Guarda of Instituto Politécnico da Guarda.

Due to large development that have been made in technology, in the past few years,and because it is possible acess anywhere and any time, all these points combined,cause an increase in demand for web applications.

The work consisted in developing a web application to make customer management(CRM) of an accounting o�ce, where users can consult, insert and edit contacts,services, banks, tasks, consult the data from all users and communicate betweenthem via internal mail.

It was also developed the administration part of the application where administratorscan do exactly the same as the users with the increment that they can manage users,delete data and create types of contacts.

The application was developed in Microsoft Visual Studio and the main technologiesused were: ASP.NET, C#, SQL Server and JavaScript.

Key words

Internet Programming, Sql Server, ASP.NET, C#, CRM, JavaScript.

iii

Page 7: Instituto Politécnico da Guarda Aplicação web de gestão de ...bdigital.ipg.pt/dspace/bitstream/10314/1796/1/João Gonçalves... · O trabalho consistiu em desenvolver uma aplicação

Conteúdo

1 Introdução 1

1.1 Instituição de acolhimento . . . . . . . . . . . . . . . . . . . . . . . . 21.2 Solução . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 21.3 Motivação . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 21.4 Contribuição . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 31.5 Estrutura do documento . . . . . . . . . . . . . . . . . . . . . . . . . 3

2 Estado da arte 4

2.0.1 NetContactos . . . . . . . . . . . . . . . . . . . . . . . . . . . 42.0.1.1 Preços e Características . . . . . . . . . . . . . . . . 52.0.1.2 Capturas de ecrã . . . . . . . . . . . . . . . . . . . . 52.0.1.3 Análise da aplicação . . . . . . . . . . . . . . . . . . 7

2.0.2 Seambox . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 82.0.2.1 Capturas de ecrã . . . . . . . . . . . . . . . . . . . . 92.0.2.2 Análise da aplicação . . . . . . . . . . . . . . . . . . 10

2.1 Análise comparativa . . . . . . . . . . . . . . . . . . . . . . . . . . . 10

3 Metodologia e Análise de requisitos 11

3.1 Metodologia . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 113.2 Planeamento . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 123.3 Resultados esperados . . . . . . . . . . . . . . . . . . . . . . . . . . . 133.4 Problemas iniciais . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 133.5 Diagrama de contexto . . . . . . . . . . . . . . . . . . . . . . . . . . 143.6 Atores e respetivos casos de uso . . . . . . . . . . . . . . . . . . . . . 153.7 Diagrama de casos de uso . . . . . . . . . . . . . . . . . . . . . . . . 163.8 Descrição de casos de uso . . . . . . . . . . . . . . . . . . . . . . . . . 173.9 Diagramas de sequência . . . . . . . . . . . . . . . . . . . . . . . . . 203.10 Diagramas de classes . . . . . . . . . . . . . . . . . . . . . . . . . . . 263.11 Semântica de classes . . . . . . . . . . . . . . . . . . . . . . . . . . . 273.12 Diagrama de atividades . . . . . . . . . . . . . . . . . . . . . . . . . . 343.13 Diagrama de instalação . . . . . . . . . . . . . . . . . . . . . . . . . . 35

4 Tecnologias utilizadas 36

4.1 Introdução . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 364.2 Tecnologias Web . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 36

4.2.1 HTML . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 364.2.2 CSS . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 38

iv

Page 8: Instituto Politécnico da Guarda Aplicação web de gestão de ...bdigital.ipg.pt/dspace/bitstream/10314/1796/1/João Gonçalves... · O trabalho consistiu em desenvolver uma aplicação

4.2.3 JavaScript . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 394.2.4 ASP.NET . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 404.2.5 C# . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 414.2.6 Microsoft SQL SERVER . . . . . . . . . . . . . . . . . . . . . 414.2.7 LaTex . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 42

4.3 Software utilizado . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 434.3.1 Microsoft Visual Studio . . . . . . . . . . . . . . . . . . . . . 434.3.2 Microsoft Visio . . . . . . . . . . . . . . . . . . . . . . . . . . 444.3.3 TeXstudio . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 44

5 Implementação da solução 45

5.1 Aplicação . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 45

6 Conclusões e trabalho futuro 56

6.1 Conclusões . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 566.2 Trabalho futuro . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 56

Bibliogra�a 58

Page 9: Instituto Politécnico da Guarda Aplicação web de gestão de ...bdigital.ipg.pt/dspace/bitstream/10314/1796/1/João Gonçalves... · O trabalho consistiu em desenvolver uma aplicação

Lista de Figuras

2.1 Calendário. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 52.2 Ficha de Projeto. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 62.3 Ficha de Cliente. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 72.4 Relatórios de Comunicações e do Website. . . . . . . . . . . . . . . . 92.5 Dados da empresa. . . . . . . . . . . . . . . . . . . . . . . . . . . . . 10

3.1 Ciclo da metodologia Ágil.[5] . . . . . . . . . . . . . . . . . . . . . . . 113.2 Mapa de Gantt Previsto. . . . . . . . . . . . . . . . . . . . . . . . . . 123.3 Mapa de Gantt real. . . . . . . . . . . . . . . . . . . . . . . . . . . . 123.4 Diagrama de Contexto. . . . . . . . . . . . . . . . . . . . . . . . . . . 143.5 Diagrama de casos de uso da aplicação. . . . . . . . . . . . . . . . . . 163.6 Apagar contacto. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 213.7 Editar contacto. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 223.8 Novo contacto. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 233.9 Ver contacto. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 243.10 Nova tarefa. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 253.11 Diagrama de classes. . . . . . . . . . . . . . . . . . . . . . . . . . . . 263.12 Diagrama de actividade Novo contacto. . . . . . . . . . . . . . . . . . 343.13 Diagrama de instalação. . . . . . . . . . . . . . . . . . . . . . . . . . 353.14 Arquitetura da aplicação. . . . . . . . . . . . . . . . . . . . . . . . . . 35

4.1 Microsoft Visual Studio . . . . . . . . . . . . . . . . . . . . . . . . . . 434.2 Microsoft Visio . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 444.3 TeXstudio . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 44

5.1 Login . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 455.2 Menu Administrador . . . . . . . . . . . . . . . . . . . . . . . . . . . 465.3 Utilizadores . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 475.4 Ficha da empresa . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 475.5 Sub-menu Mensagens . . . . . . . . . . . . . . . . . . . . . . . . . . . 485.6 Nova mensagem . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 485.7 Caixa de entrada . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 495.8 Sub-menu Tarefas . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 505.9 Nova tarefa . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 505.10 Contactos . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 515.11 Ficha de Contactos . . . . . . . . . . . . . . . . . . . . . . . . . . . . 515.12 Novo Contacto . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 525.13 Novo Utilizador . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 53

vi

Page 10: Instituto Politécnico da Guarda Aplicação web de gestão de ...bdigital.ipg.pt/dspace/bitstream/10314/1796/1/João Gonçalves... · O trabalho consistiu em desenvolver uma aplicação

5.14 Ecrã de erro na inserção de um novo utilizador. . . . . . . . . . . . . 53

Page 11: Instituto Politécnico da Guarda Aplicação web de gestão de ...bdigital.ipg.pt/dspace/bitstream/10314/1796/1/João Gonçalves... · O trabalho consistiu em desenvolver uma aplicação

Lista de Tabelas

2.1 Versões NetContactos [11] . . . . . . . . . . . . . . . . . . . . . . . . 5

3.1 Casos de uso do Utilizador . . . . . . . . . . . . . . . . . . . . . . . . 153.2 Casos de uso do Administrador . . . . . . . . . . . . . . . . . . . . . 153.3 Consultar contactos . . . . . . . . . . . . . . . . . . . . . . . . . . . . 173.4 Criar contacto . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 183.5 Editar contacto . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 183.6 Eliminar contacto . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 193.7 Criar tarefa . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 193.8 Fax . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 273.9 Métodos Fax . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 273.10 Bancos . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 273.11 Métodos banco . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 283.12 Bancos/Contactos . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 283.13 Emails . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 283.14 Contactos . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 293.15 Métodos Contacto . . . . . . . . . . . . . . . . . . . . . . . . . . . . 293.16 Mensagens . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 293.17 Métodos Mensagens . . . . . . . . . . . . . . . . . . . . . . . . . . . . 303.18 Tarefas . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 303.19 Empresa . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 313.20 Telefones . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 323.21 Telemoveis . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 323.22 Tipo de contacto . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 323.23 Utilizadores . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 333.24 Serviços . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 333.25 Serviços/Contactos . . . . . . . . . . . . . . . . . . . . . . . . . . . . 34

viii

Page 12: Instituto Politécnico da Guarda Aplicação web de gestão de ...bdigital.ipg.pt/dspace/bitstream/10314/1796/1/João Gonçalves... · O trabalho consistiu em desenvolver uma aplicação

Lista de Listagens

1 Exemplo HTML . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 372 Exemplo CSS. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 383 Exemplo Javascript. . . . . . . . . . . . . . . . . . . . . . . . . . . . 394 Exemplo ASP.NET. . . . . . . . . . . . . . . . . . . . . . . . . . . . . 405 Exemplo C#. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 416 Exemplo SQL. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 417 Exemplo LaTeX . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 428 Menu administrador. . . . . . . . . . . . . . . . . . . . . . . . . . . . 469 Enviar mensagem. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4910 Veri�car número de contribuinte. . . . . . . . . . . . . . . . . . . . . 5411 Inserir utilizador. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 55

ix

Page 13: Instituto Politécnico da Guarda Aplicação web de gestão de ...bdigital.ipg.pt/dspace/bitstream/10314/1796/1/João Gonçalves... · O trabalho consistiu em desenvolver uma aplicação

Glossário

ASP.NET � É a plataforma da Microsoft para o desenvolvimento de aplicaçõesWeb.

Sql Server � É um sistema de gestão de base de dados.

Visual studio � É um conjunto de produtos, ferramentas, e tecnologias para de-senvolver software.

C# � É uma linguagem de programação orientada a objetos.

CRM � É um termo em inglês, Customer relationship management, que pode sertraduzido para a língua portuguesa como Gestão de Relação com o Cliente.

Servidor Web � Um programa de computador responsável por aceitar pedidosHTTP de clientes e servi-los com respostas HTTP, que geralmente são páginas web,tais como documentos HTML com objetos embutidos.

JavaScript � É uma linguagem de programação executada do interior dos progra-mas e/ou de outras linguagens de programação, serve principalmente para estendera funcionalidade de um programa e/ou controlá-lo.

CSS � Cascading Style Sheets, é uma linguagem otimizada para a construção delayouts de websites.

WWW � World Wide Web, é a parte multimédia da Internet, ou seja, possibilitaa exibição de páginas que contenham: textos, fotos, animações, vídeos e sons.

W3C � World Wide Web Consortium, é um consórcio internacional que consisteem estabelecer padrões para a criação e a interpretação de conteúdos para a Web.

PK � Primary Key, é a chave primaria de uma tabela da base de dados.

FK � Foreign Key, é a chave estrangeira de uma tabela que por sua vez é chaveprimária noutra tabela.

IBAN � International Bank Account Number, é um código-padrão internacionalpara a identi�cação de contas bancárias.

NIB � Número de identi�cação bancária.

SWIFT � Society for Worldwide Interbank Financial Telecommunication, é umaentidade que gere os códigos que permitem a identi�cação de um Banco.

IIS � Internet Information Services, é um servidor web criado pela Microsoft, paraser usado com os seus sistemas operativos.

x

Page 14: Instituto Politécnico da Guarda Aplicação web de gestão de ...bdigital.ipg.pt/dspace/bitstream/10314/1796/1/João Gonçalves... · O trabalho consistiu em desenvolver uma aplicação

Capítulo 1

Introdução

O presente relatório descreve o projeto em contexto de estágio desenvolvido peloaluno João Carlos Dias Gonçalves, na empresa MadeToHelp - Tecnologias de Infor-mação, Lda. no âmbito da Unidade Curricular Projeto de Informática, na Licen-ciatura em Engenharia Informática da Escola Superior de Tecnologia e Gestão doInstituto Politécnico da Guarda.

Nos últimos anos tem-se assistido a um enorme avanço tecnológico, um dos quaismais notórios é a Internet. Esta passou a ser, também, um meio para as empresasevoluírem e prestarem serviços com maior qualidade.

O obstáculo geográ�co que existia entre empresas e clientes foi quebrado, o que antesera acessível apenas a nível local passou a ser possível a nível global através destaenorme rede informática.

Face a este progresso, também o cliente passou a ter uma maior escolha de mercadode consumo e a �car mais exigente em relação ao serviço que lhe é prestado. Poroutro lado, face às exigências de consumo e a uma maior concorrência, as empresastendem a investir cada vez mais, na modernização dos seus modelos de gestão ea incluir nos seus objetivos todo um conjunto de soluções para uma apresentaçãode produtos e prestação de serviços de melhor qualidade, indo cada vez mais aoencontro das necessidades de cada cliente.

O projeto consiste em desenvolver uma aplicação Web (ASP.NET/C#) para gestãode clientes de um escritório de contabilidade. A aplicação destina-se apenas aosfuncionários do referido escritório.

1

Page 15: Instituto Politécnico da Guarda Aplicação web de gestão de ...bdigital.ipg.pt/dspace/bitstream/10314/1796/1/João Gonçalves... · O trabalho consistiu em desenvolver uma aplicação

CAPÍTULO 1. INTRODUÇÃO 2

1.1 Instituição de acolhimento

A empresa MadeToHelp - Tecnologias de Informação, Lda. nasceu em Outubro de2007. É uma microempresa, com um capital social de 10.000AC e nasceu da necessi-dade demonstrada por algumas empresas da região, em ter uma resposta rápida aosproblemas informáticos que surgem no dia-a-dia. Assim sendo o objetivo inicial, eque se mantém, é a resolução de problemas informáticos, à pesquisa, apresentaçãoe implementação de soluções caso a caso, tentando satisfazer as necessidades dosutilizadores, quer sejam particulares ou empresas, a nível de software e de hardware.

Cerca de um ano depois, em �nais de 2008, começou a notar-se um aumento desolicitações por parte de novos clientes, o que deu um novo alento aos sócios-gerentespara continuar o projeto acreditando que a assistência técnica é um mercado emcrescimento em virtude da dependência existente em relação aos equipamentos esoftware.

Nesta altura, devido a todas as di�culdades que as empresas passam, na Made-ToHelp também se nota a diminuição da solicitação de assistência e renovação deequipamentos e software. Assim, há uma aposta em criar aplicações por medida deforma a tentar evoluir para outros objetivos.[15]

1.2 Solução

A solução proposta consiste no desenvolvimento de uma aplicação web, tendo comoobjetivo, apoiar um escritório de contabilidade na gestão da organização e na con-sulta dos dados dos clientes.

A aplicação está dividida em duas partes uma acessível apenas pelos utilizadores euma outra de administração que apenas pode ser acedida pelos administradores.

Na parte apenas acessível aos utilizadores é possível consultar, inserir e editar contac-tos, serviços, bancos, tarefas, consultar os dados de todos os utilizadores e comunicarentre os utilizadores através de correio interno.

Enquanto que na parte de administração é possível fazer exatamente o mesmo queos utilizadores com o incremento de se poder gerir os utilizadores, eliminar dados ecriar tipos de contactos.

1.3 Motivação

A principal motivação para o desenvolvimento deste projeto foi a possibilidade de serrealizado num contexto real de trabalho, podendo assim ter uma pequena impressãosobre o que é trabalhar numa empresa, ganhando assim alguma preparação para ofuturo que se aproxima. O facto de ter a oportunidade de explorar e aprofundaros vários conhecimentos adquiridos ao longo do curso foi outro dos pontos que mecativou bastante na realização deste projeto.

Page 16: Instituto Politécnico da Guarda Aplicação web de gestão de ...bdigital.ipg.pt/dspace/bitstream/10314/1796/1/João Gonçalves... · O trabalho consistiu em desenvolver uma aplicação

CAPÍTULO 1. INTRODUÇÃO 3

1.4 Contribuição

A contribuição principal deste trabalho é o desenvolvimento, implementação e testesde uma aplicação web, como já foi acima descrito, ajudando assim a organização nagestão dos dados dos seus clientes.

1.5 Estrutura do documento

O documento compreende cinco capítulos para além do presente capítulo, e estáorganizado da seguinte forma:

• No segundo capítulo é descrito o estado de arte onde apresento algumas apli-cações existentes no mercado e, onde é feita também, uma breve comparaçãocom esta aplicação.

• No terceiro capítulo é indicada e descrita a metodologia utilizada para de-senvolver a aplicação assim como toda a análise pormenorizada de todos osrequisitos necessários na aplicação.

• No quarto capítulo são descritas todas as tecnologias e softwares usados paraa realização deste projeto.

• No quinto capítulo mostra-se a implementação da aplicação através de algumas�guras e de excertos de código.

• Por �m no sexto capítulo é feita uma análise do projeto bem como funçõesque irão ser futuramente implementadas.

Page 17: Instituto Politécnico da Guarda Aplicação web de gestão de ...bdigital.ipg.pt/dspace/bitstream/10314/1796/1/João Gonçalves... · O trabalho consistiu em desenvolver uma aplicação

Capítulo 2

Estado da arte

Hoje em dia é bastante importante uma empresa ter uma boa gestão dos dadosdos clientes pelo que já existem algumas aplicações no mercado para esta �nali-dade. Neste capítulo vou apresentar algumas dessas aplicações e fazer uma brevecomparação com esta aplicação.

2.0.1 NetContactos

A aplicação NetContactos é uma aplicação bastante completa, pois permite não sóa gestão de contactos, como tem também diversas áreas relacionadas diretamentecom os clientes como, por exemplo, marketing e assistência. Para se ter uma ideiadesta aplicação apresento aqui algumas das funcionalidades do NetContactos[11]:

• Contactos e Clientes.

• Multiutilizador com diferentes per�s e permissões.

• Famílias de Produtos, Fornecedores, Produtos e Serviços.

• Criação de oportunidades de negócio tendo por base o seu estado e a proba-bilidade de sucesso.

• Registo de todas as atividades por cliente, tipo e estado.

• Registo de despesas por utilizador baseado na data, no tipo, na quantidade eno valor total da despesa.

• Calendário de empresa e individual com vista mensal, semanal e diária.

• Gestão de Projetos, tarefas e pedidos de suporte técnico.

• Envio de e-mails, newsletters e SMS para utilizadores ou grupos de clientes.

• Visualização de relatórios e grá�cos de despesas, oportunidades por empresaou por utilizador.

• Importação de contactos através de um �cheiro csv.

4

Page 18: Instituto Politécnico da Guarda Aplicação web de gestão de ...bdigital.ipg.pt/dspace/bitstream/10314/1796/1/João Gonçalves... · O trabalho consistiu em desenvolver uma aplicação

CAPÍTULO 2. ESTADO DA ARTE 5

2.0.1.1 Preços e Características

Quanto aos preços, esses variam consoante a versão pretendida. Na tabela 2.1apresento as várias versões assim como os seus preços e características.

Tabela 2.1: Versões NetContactos [11]

Versão No de utilizadores Espaço de Armazenamento Preço Tipo de Licença

Start 5 utilizadores 50 megas 69,90AC Licença AnualEvolution 10 utilizadores 100 megas 149,90AC Licença AnualBusiness 50 utilizadores 200 megas 400AC Licença AnualPrime utilizadores ilimitados 500 megas 1500AC Licença Anual

2.0.1.2 Capturas de ecrã

A �gura 2.1 mostra o calendário incluído nesta aplicação. Este calendário funcionacomo uma agenda, onde é possível adicionar eventos, como por exemplo reuniões ouqualquer outro tipo de evento.

Figura 2.1: Calendário.

Page 19: Instituto Politécnico da Guarda Aplicação web de gestão de ...bdigital.ipg.pt/dspace/bitstream/10314/1796/1/João Gonçalves... · O trabalho consistiu em desenvolver uma aplicação

CAPÍTULO 2. ESTADO DA ARTE 6

A �gura 2.2 mostra a �cha de um projeto, isto é uma tarefa e consequentes subtarefas que estejam a ser realizadas ou que já estão concluídas. No canto superiordireito podemos ver a percentagem total da tarefa, as tabelas em baixo mostram,numa espécie de mapa de Gantt, listas de tarefas com as suas sub tarefas, os camposdas listas de tarefas são: nome da sub tarefa, a data de inicio, a data de conclusãoou de previsão de quando irá estar concluída, os dias que faltam para a data deconclusão, no caso de não estar ainda concluída, a percentagem a que se encontra asub tarefa e último campo o utilizador a quem foi atribuída.

Figura 2.2: Ficha de Projeto.

Page 20: Instituto Politécnico da Guarda Aplicação web de gestão de ...bdigital.ipg.pt/dspace/bitstream/10314/1796/1/João Gonçalves... · O trabalho consistiu em desenvolver uma aplicação

CAPÍTULO 2. ESTADO DA ARTE 7

Na �gura 2.3 mostra a �cha de um cliente, esta é a �cha principal de um CRMpois é aqui que são guardados todos os dados dos clientes para que seja possívelfuturamente a sua consulta.

Figura 2.3: Ficha de Cliente.

2.0.1.3 Análise da aplicação

Após uma breve análise a aplicação NetContactos da empresa OpenSales podemosver que é uma ferramenta bastante complexa e com variadíssimas ferramentas, o queconciliado ao facto de apenas se pagar por uma licença anual poderá ser uma barreirapara algumas microempresas e principalmente para as PME's (Pequenas e MédiasEmpresas) que com estes preços poderá compensar comprar uma outra aplicaçãoque não tenha limitações de utilizadores nem de espaço de armazenamento.

Page 21: Instituto Politécnico da Guarda Aplicação web de gestão de ...bdigital.ipg.pt/dspace/bitstream/10314/1796/1/João Gonçalves... · O trabalho consistiu em desenvolver uma aplicação

CAPÍTULO 2. ESTADO DA ARTE 8

2.0.2 Seambox

O Seambox, tal como o Netcontactos 2.0.1, não se restringe só à gestão de contactose apresenta uma grande variedade de ferramentas de apoio á empresa, tais como:[16]

• Base de Dados de Contactos

• Gestão de Per�s de Contactos

• Segmentação de contactos por áreas de interesse e áreas de negócio

• Gestão de Potenciais Clientes

• Gestão da Comunicação

• Biblioteca de Mensagens

• Solução de email Marketing

• Solução de SMS Marketing

• Solução de Marketing por Newsletter

• Sistema de comunicação online por fax

• Sistema de comunicação por carta

• Gestão e con�guração das funções de comunicação dos utilizadores

• Gestão do contacto pessoal e de reuniões

Page 22: Instituto Politécnico da Guarda Aplicação web de gestão de ...bdigital.ipg.pt/dspace/bitstream/10314/1796/1/João Gonçalves... · O trabalho consistiu em desenvolver uma aplicação

CAPÍTULO 2. ESTADO DA ARTE 9

2.0.2.1 Capturas de ecrã

A �gura 2.4 mostra-nos um dos vários relatórios que são possíveis fazer com estaaplicação, estes relatórios são apresentados com a ajuda de grá�cos, assim comouma tabela com os valores presentes no grá�co para que se torne mais fácil a sualeitura.

Figura 2.4: Relatórios de Comunicações e do Website.

Page 23: Instituto Politécnico da Guarda Aplicação web de gestão de ...bdigital.ipg.pt/dspace/bitstream/10314/1796/1/João Gonçalves... · O trabalho consistiu em desenvolver uma aplicação

CAPÍTULO 2. ESTADO DA ARTE 10

Na �gura 2.5 podemos ver a �cha da empresa onde se pode ter uma ideia dos dadosreferentes a uma empresa.

Figura 2.5: Dados da empresa.

2.0.2.2 Análise da aplicação

Tal como o NetContactos esta ferramenta continua a ser um pouco complexa e comvariadíssimas ferramentas que muitas empresas não irão utilizar preferindo um CRMbem mais fácil de utilizar.

2.1 Análise comparativa

As aplicações de gestão de contactos presentes no mercado são bastante complexas eenglobam não só a gestão de contactos como entram nas áreas de gestão �nanceira eaté mesmo de marketing. Como nem todas as empresas necessitam de aplicações tãocomplexas, foi desenvolvida uma aplicação que permite a sua utilização em qualquerlugar e hora, atendendo aos recursos web, e de acordo com as necessidades solicitadaspela empresa.

Page 24: Instituto Politécnico da Guarda Aplicação web de gestão de ...bdigital.ipg.pt/dspace/bitstream/10314/1796/1/João Gonçalves... · O trabalho consistiu em desenvolver uma aplicação

Capítulo 3

Metodologia e Análise de requisitos

3.1 Metodologia

Para o desenvolvimento deste projeto foi utilizada uma adaptação da metodologiaágil. Esta metodologia valoriza, entre outros, os seguintes princípios:

• Permite efetuar mudanças tardias no projeto sem grandes problemas.

• Software funcional mais do que documentação extensa;

• Simplicidade;

• Responder a mudanças mais do que seguir um plano;

• Garantir a satisfação do consumidor.

Figura 3.1: Ciclo da metodologia Ágil.[5]

11

Page 25: Instituto Politécnico da Guarda Aplicação web de gestão de ...bdigital.ipg.pt/dspace/bitstream/10314/1796/1/João Gonçalves... · O trabalho consistiu em desenvolver uma aplicação

CAPÍTULO 3. METODOLOGIA E ANÁLISE DE REQUISITOS 12

Esta �gura 3.1 representa o ciclo de vida desta metodologia que muito basicamenteresume-se a desenvolver uma ideia, mostrar o produto e receber um feedback queposteriormente irá ser analisado e implementado, recomeçando assim o ciclo atéchegar a uma versão �nal.

3.2 Planeamento

As principais tarefas foram:

• Tarefa 1 � Análise dos requisitos;

• Tarefa 2 � Desenvolvimento da solução proposta.

• Tarefa 3 � Testes da aplicação;

• Tarefa 4 � Elaboração do relatório.

O Mapa de Gantt previsto no início do projeto é apresentado na �gura 3.2.

Figura 3.2: Mapa de Gantt Previsto.

Por ter várias Unidades Curriculares para fazer foi necessário fazer algumas inter-rupções no projeto, o que levou a que o planeamento inicialmente previsto não fossecumprido. A �gura 3.3 mostra o mapa de Gantt real da realização do projeto.

ID Nome da Tarefa Início Conclusão Duração

Ago 2012 Set 2012 Out 2012 Nov 2012

5-8 12-8 19-8 26-8 2-9 9-9 16-9 23-9 30-9 7-10 14-10 21-10 28-10 4-11

1 2,6s17-08-201201-08-2012Tarefa 1

2 9,2s22-10-201220-08-2012Tarefa 2

3 1,6s07-11-201229-10-2012Tarefa 3

4 1s14-11-201208-11-2012Tarefa 4

2h

20h

20h

16h

Horas de trabalho

por semana

Figura 3.3: Mapa de Gantt real.

Page 26: Instituto Politécnico da Guarda Aplicação web de gestão de ...bdigital.ipg.pt/dspace/bitstream/10314/1796/1/João Gonçalves... · O trabalho consistiu em desenvolver uma aplicação

CAPÍTULO 3. METODOLOGIA E ANÁLISE DE REQUISITOS 13

3.3 Resultados esperados

No �nal do projeto espera-se que a aplicação seja capaz de:

• Gerir Contactos (consultar, inserir, editar e eliminar).

• Gerir Serviços (consultar, inserir, editar e eliminar).

• Gerir Utilizadores (consultar, inserir, editar e eliminar).

• Gerir Bancos (consultar, inserir, editar e eliminar).

• Gerir Tarefas (consultar, inserir, editar e eliminar).

• Comunicação entre os utilizadores através de correio interno.

3.4 Problemas iniciais

Os problemas iniciais, que foram necessários resolver, são os seguintes:

• Criar o Diagrama de contexto.

• Identi�car todos os campos necessários que farão parte da �cha de clientes(Ex: Nome, morada, email, etc.).

• Identi�car todos os campos que fossem importantes para a �cha da empresa(Ex: Nome, morada, email, etc.).

• Ter noção do que são e como são compostos alguns campos, como por exemplo:[14]

� IBAN;

� NIB;

� SWIFT;

• Criar um modelo entidade relacionamento consistente.

• Como inserir os telefones, e-mail, telemóveis, fax serviços e bancos na �cha decliente.

Page 27: Instituto Politécnico da Guarda Aplicação web de gestão de ...bdigital.ipg.pt/dspace/bitstream/10314/1796/1/João Gonçalves... · O trabalho consistiu em desenvolver uma aplicação

CAPÍTULO 3. METODOLOGIA E ANÁLISE DE REQUISITOS 14

3.5 Diagrama de contexto

Um diagrama de contexto é um esquema que mostra todo o �uxo de informação entreo sistema e as entidades externas. Este tipo de diagrama é uma forma simpli�cadade representar o projeto em execução.

Figura 3.4: Diagrama de Contexto.

Page 28: Instituto Politécnico da Guarda Aplicação web de gestão de ...bdigital.ipg.pt/dspace/bitstream/10314/1796/1/João Gonçalves... · O trabalho consistiu em desenvolver uma aplicação

CAPÍTULO 3. METODOLOGIA E ANÁLISE DE REQUISITOS 15

3.6 Atores e respetivos casos de uso

Um ator é uma entidade externa que interage diretamente com o sistema.

De seguida é apresentado cada um dos casos de uso para que o seu signi�cado nesteprojeto seja melhor compreendido.

Tabela 3.1: Casos de uso do Utilizador

Caso de uso Objetivos

Consultar utilizadores O objetivo é o utilizador consultar uma lista de utilizadores da aplicação ondetem acesso aos dados de cada utilizador (nome, morada, BI, NIF, número detelefone, etc.).

Consultar dados da empresa O objetivo é o utilizador consultar todos os dados da empresa (nome, morada,NIF, número de telefone, etc.).

Ver mensagens O objetivo é o utilizador poder ver todas as mensagens recebidas e enviadas.Enviar mensagem O objetivo é o utilizador poder enviar mensagens a outros utilizadores.Reencaminhar mensagem O objetivo é o utilizador poder reencaminhar uma mensagem para outro uti-

lizador.Eliminar mensagem O objetivo é o utilizador poder eliminar as mensagens.Consultar bancos O objetivo é o utilizador poder consultar uma lista de bancos com alguns dados

de cada entidade bancária.Criar banco O objetivo é o utilizador inserir um novo banco na aplicação.Editar banco O objetivo é o utilizador poder editar os dados de cada banco.Criar serviço O objetivo é o utilizador inserir um novo serviço na aplicação.Editar serviço O objetivo é o utilizador poder editar os dados de cada serviço.Criar tarefa O objetivo é o utilizador criar uma tarefa.Editar tarefa O objetivo é o utilizador poder editar uma tarefa.Consultar contactos O objetivo é o utilizador consultar uma lista com todos os dados de uma

empresa ou pessoa singular.Criar contacto O objetivo é o utilizador inserir um novo contacto.Editar contacto O objetivo é o utilizador poder editar os dados de cada contacto.

Tabela 3.2: Casos de uso do Administrador

Caso de uso Objetivos

Gerir utilizadores O objetivo é o administrador inserir, editar ou apagar utilizadores da aplicação.Gerir dados da empresa O objetivo é o administrador inserir, editar ou apagar dados da empresa.Apagar bancos O objetivo é o administrador apagar dados dos bancos.Apagar serviços O objetivo é o administrador apagar serviços.Apagar tarefas O objetivo é o administrador apagar tarefas.Apagar contactos O objetivo é o administrador apagar contactos

Para além dos casos de uso indicados na tabela (3.2) o administrador tem, também,acesso a todos os casos de uso presentes na tabela 3.1.

Page 29: Instituto Politécnico da Guarda Aplicação web de gestão de ...bdigital.ipg.pt/dspace/bitstream/10314/1796/1/João Gonçalves... · O trabalho consistiu em desenvolver uma aplicação

CAPÍTULO 3. METODOLOGIA E ANÁLISE DE REQUISITOS 16

3.7 Diagrama de casos de uso

Um diagrama de casos de uso permite ver, de uma forma prática, todas as interaçõesque as funcionalidades do sistema têm entre si assim como todas interações com oator.

Figura 3.5: Diagrama de casos de uso da aplicação.

Page 30: Instituto Politécnico da Guarda Aplicação web de gestão de ...bdigital.ipg.pt/dspace/bitstream/10314/1796/1/João Gonçalves... · O trabalho consistiu em desenvolver uma aplicação

CAPÍTULO 3. METODOLOGIA E ANÁLISE DE REQUISITOS 17

3.8 Descrição de casos de uso

É neste ponto do projeto que vai ser descrito cada caso de uso.A descrição dos casos de uso é feita através de tabelas que são compostas pelos cam-pos: nome, ator, descrição, pré-condições, caminho principal, caminhos alternativos,suplementos e por último, as pós-condições.O campo nome indica a designação do caso de uso que está a ser descrito.No campo ator é indicado quais os atores que estão envolvidos nesse caso de uso.No campo descrição, como o próprio nome indica, será feita uma breve descrição docaso de uso.Os campos pré e pós condições indicam o estado inicial e �nal do sistema na alturada realização do caso de uso.São, também, indicados através do campo caminhos alternativos, quais os caminhosque o sistema tem que seguir no caso de falhar o caminho principal e, por �m, ossuplementos que são as validações necessárias a serem feitas para se poder executaro caso de uso pretendido.

A tabela 3.3 apresenta uma descrição detalhada do caso de uso Consultar contactos.

Tabela 3.3: Consultar contactos

Nome: Consultar contactosAtor: Gerente e UtilizadorDescrição: O ator acede à aplicação para consultar os dados de uma

empresa ou pessoa singular.Pré-Condições: LoginCaminho Principal: 1. O ator seleciona a opção "Contactos"no menu principal.

2. A aplicação mostra um submenu com várias opções.3. O ator seleciona a opção "Ver Contactos".4. A aplicação mostra uma lista com todos os contactos.5. O ator seleciona o contacto que pretende consultar.6. A aplicação mostra uma �cha com os dados desse contacto.

Caminhos Alterna-

tivos:

1.a) Sistema indisponível Mensagem erro, o ator tenta denovo.

Suplementos: Não tem.Pós-Condições: Não tem.

Page 31: Instituto Politécnico da Guarda Aplicação web de gestão de ...bdigital.ipg.pt/dspace/bitstream/10314/1796/1/João Gonçalves... · O trabalho consistiu em desenvolver uma aplicação

CAPÍTULO 3. METODOLOGIA E ANÁLISE DE REQUISITOS 18

A tabela 3.4 apresenta uma descrição detalhada do caso de uso Criar contacto.

Tabela 3.4: Criar contacto

Nome: Criar contactoAtor: Gerente e UtilizadorDescrição: O ator acede à aplicação para criar um novo contacto.Pré-Condições: LoginCaminho Principal: 1. O ator seleciona a opção "Contactos"no menu principal.

2. A aplicação mostra um submenu com várias opções.3. O ator seleciona a opção "Novo Contacto".4. A aplicação mostra um formulário para preencher com os dadosdo contacto.5. O ator seleciona a opção "Guardar".6. A aplicação guarda o contacto e informa o ator.

Caminhos Alterna-

tivos:

O caso de uso é cancelado se o ator pressionar o botão "Cancelar".1.a) Sistema indisponível.Mensagem erro, o ator tenta de novo.4a) A aplicação veri�ca se os campos obrigatórios foram devida-mente preenchidos.6.a) Erro ao guardar contacto.O caso de uso é abortado, avisando o ator que a operação não foibem sucedida.

Suplementos: Não tem.Pós-Condições: Não tem.

A tabela 3.5 apresenta uma descrição detalhada do caso de uso Editar contacto.

Tabela 3.5: Editar contacto

Nome: Editar contactoAtor: Gerente e UtilizadorDescrição: O ator acede à aplicação para editar um contacto.Pré-Condições: LoginCaminho Principal: 1. O ator seleciona a opção "Contactos"no menu principal.

2. A aplicação mostra um submenu com várias opções.3. O ator seleciona a opção "Editar contactos".4. A aplicação mostra um formulário para preencher com os dadosdo contacto.5. O ator seleciona a opção "Guardar".6. A aplicação atualiza o contacto e informa o ator.

Caminhos Alterna-

tivos:

O caso de uso é cancelado se o ator pressionar o botão "Cancelar".1.a) Sistema indisponível.Mensagem erro, o ator tenta de novo.5.a) A aplicação veri�ca se os campos obrigatórios foram devida-mente preenchidos.b) Erro ao atualizar contacto.O caso de uso é abortado, avisando o ator que a operação não foibem sucedida.

Suplementos: Não tem.Pós-Condições: Não tem.

Page 32: Instituto Politécnico da Guarda Aplicação web de gestão de ...bdigital.ipg.pt/dspace/bitstream/10314/1796/1/João Gonçalves... · O trabalho consistiu em desenvolver uma aplicação

CAPÍTULO 3. METODOLOGIA E ANÁLISE DE REQUISITOS 19

A tabela 3.6 apresenta uma descrição detalhada do caso de uso eliminar contacto.

Tabela 3.6: Eliminar contacto

Nome: Eliminar contactoAtor: GerenteDescrição: O ator acede à aplicação para eliminar um contacto.Pré-Condições: LoginCaminho Principal: 1. O ator seleciona a opção "Administração"no menu principal.

2. A aplicação mostra um submenu com várias opções.3. 3. O ator seleciona a opção "contactos"no submenu.4. A aplicação mostra outro submenu com várias opções.5. O ator seleciona a opção "Editar contactos".6. A aplicação mostra uma lista com todos os contactos.7. O ator seleciona o contacto.8. A aplicação mostra uma �cha com os dados do desse contacto evárias opções.9. O ator seleciona a opção "Apagar".10. A aplicação pede para con�rmar.11. O ator con�rma.12. A aplicação atualiza.

Caminhos Alterna-

tivos:

O caso de uso é cancelado se o ator pressionar o botão "Cancelar".1.a) Sistema indisponível.Mensagem erro, o ator tenta de novo.5.a) Erro ao eliminar contacto.O caso de uso é abortado, avisando o ator que a operação não foibem sucedida.10.a) O sistema não permite eliminação se houver ligações abertas.

Suplementos: Não tem.Pós-Condições: Não tem.

A tabela 3.7 apresenta uma descrição detalhada do caso de uso criar tarefa.

Tabela 3.7: Criar tarefa

Nome: Criar tarefaAtor: Gerente e UtilizadorDescrição: O ator acede à aplicação para criar uma nova tarefa.Pré-Condições: LoginCaminho Principal: 1. O ator seleciona a opção "Tarefas"no menu principal.

2. A aplicação mostra um submenu com várias opções.3. O ator seleciona a opção "Nova Tarefa".4. A aplicação mostra um formulário para preencher com os dadosda tarefa.5. O ator seleciona a opção Guardar6. A aplicação atualiza as tarefas e informa o ator.

Caminhos Alterna-

tivos:

O caso de uso é cancelado se o ator pressionar o botão "Cancelar".1.a) Sistema indisponível.Mensagem erro, o ator tenta de novo.5.a) Erro ao criar tarefa.O caso de uso é abortado, avisando o ator que a operação não foibem sucedida.

Suplementos: Enviar mensagem ao destinatário da tarefa.Pós-Condições: Não tem.

Page 33: Instituto Politécnico da Guarda Aplicação web de gestão de ...bdigital.ipg.pt/dspace/bitstream/10314/1796/1/João Gonçalves... · O trabalho consistiu em desenvolver uma aplicação

CAPÍTULO 3. METODOLOGIA E ANÁLISE DE REQUISITOS 20

3.9 Diagramas de sequência

Os diagramas de sequência são utilizados para descrever o �uxo de execução doscasos de uso. Nestes diagramas são representados os atores, os objetos e os métodosnuma sequência temporal. Possibilitam que o �uxo de execução seja, ao mesmotempo, documentado e validado. Oferecem um excelente nível de detalhe e facilitama visualização da dinâmica da aplicação.

Page 34: Instituto Politécnico da Guarda Aplicação web de gestão de ...bdigital.ipg.pt/dspace/bitstream/10314/1796/1/João Gonçalves... · O trabalho consistiu em desenvolver uma aplicação

CAPÍTULO 3. METODOLOGIA E ANÁLISE DE REQUISITOS 21

Odiagramade

sequência3.6representa

asaçõesdo

ator

quando

quer

apagar

umcontacto.

Figura3.6:

Apagarcontacto.

Page 35: Instituto Politécnico da Guarda Aplicação web de gestão de ...bdigital.ipg.pt/dspace/bitstream/10314/1796/1/João Gonçalves... · O trabalho consistiu em desenvolver uma aplicação

CAPÍTULO 3. METODOLOGIA E ANÁLISE DE REQUISITOS 22

Odiagramade

sequência3.7representa

asaçõesdo

ator

quando

quer

editar

umcontacto.

Figura3.7:

Editarcontacto.

Page 36: Instituto Politécnico da Guarda Aplicação web de gestão de ...bdigital.ipg.pt/dspace/bitstream/10314/1796/1/João Gonçalves... · O trabalho consistiu em desenvolver uma aplicação

CAPÍTULO 3. METODOLOGIA E ANÁLISE DE REQUISITOS 23

Odiagramade

sequência3.8representa

asaçõesdo

ator

quando

quer

criarum

novo

contacto.

Figura3.8:

Novocontacto.

Page 37: Instituto Politécnico da Guarda Aplicação web de gestão de ...bdigital.ipg.pt/dspace/bitstream/10314/1796/1/João Gonçalves... · O trabalho consistiu em desenvolver uma aplicação

CAPÍTULO 3. METODOLOGIA E ANÁLISE DE REQUISITOS 24

Estediagramade

sequência3.9representa

asaçõesdo

ator

quando

quer

verum

contacto.

Figura3.9:

Ver

contacto.

Page 38: Instituto Politécnico da Guarda Aplicação web de gestão de ...bdigital.ipg.pt/dspace/bitstream/10314/1796/1/João Gonçalves... · O trabalho consistiu em desenvolver uma aplicação

CAPÍTULO 3. METODOLOGIA E ANÁLISE DE REQUISITOS 25

Odiagramade

sequência3.10

representa

asaçõesdo

ator

quando

quer

inserirum

atarefa.

Figura3.10:Novatarefa.

Page 39: Instituto Politécnico da Guarda Aplicação web de gestão de ...bdigital.ipg.pt/dspace/bitstream/10314/1796/1/João Gonçalves... · O trabalho consistiu em desenvolver uma aplicação

CAPÍTULO 3. METODOLOGIA E ANÁLISE DE REQUISITOS 26

3.10 Diagramas de classes

O diagrama de classes é uma fase muito importante no desenvolvimento de umprojeto, uma vez que é nesta fase que se representa toda a estrutura e as relaçõesentre as classes.

A �gura 3.11 mostra o diagrama de classes da minha aplicação.

Figura 3.11: Diagrama de classes.

Page 40: Instituto Politécnico da Guarda Aplicação web de gestão de ...bdigital.ipg.pt/dspace/bitstream/10314/1796/1/João Gonçalves... · O trabalho consistiu em desenvolver uma aplicação

CAPÍTULO 3. METODOLOGIA E ANÁLISE DE REQUISITOS 27

3.11 Semântica de classes

A semântica de classes permite-nos identi�car os atributos, os seus tipos de dados,os valores que são válidos, o formato que cada atributo tem e as suas restrições. Embaixo é apresentada a semântica de todas as classes deste projeto assim como osalgoritmos mais importantes dos métodos associados a cada classe.

A tabela 3.8 mostra toda a semântica da classe fax.

Tabela 3.8: Fax

Atributo Tipo de dados Descrição Valores Válidos Formato Restrição

Id_fax (PK) Integer Número sequencialque identi�ca cadanúmero de fax

Numérico Maior que 0 Atribuído automatica-mente e não editável

Id_Contacto (FK) Integer Número sequencialque identi�ca cadaContacto

Numérico Maior que 0 Atribuído automatica-mente e não editável

Descricao String Descrição do númerode fax

Caracteres alfanumé-ricos

Até 50 caracteres Obrigatório e editável

Numero Integer Número de fax Caracteres numéricos Até 9 caracteres Obrigatório e editável

A tabela 3.9 mostra toda a semântica de todos os métodos da classe fax.

Tabela 3.9: Métodos Fax

Nome Descrição

Criar() Operação que permite inserir o registo de um novo número de fax.1. Inserir a descrição2. Inserir o número de fax3. Criar um novo número de fax

Editar() Operação que permite editar um registo de um número de fax.1. Escolher o número de fax através do id_fax2. Introduzir uma nova descrição3. Introduzir o novo número de fax4. Atualizar dados

Apagar() Operação que permite Eliminar o registo de um número de fax.1. Escolher o número de fax através do id_fax2. Apagar3. Pedir con�rmação4. Con�rmar5. Eliminar o número de fax

A tabela 3.10 mostra toda a semântica da classe Bancos.

Tabela 3.10: Bancos

Atributo Tipo de dados Descrição Valores Válidos Formato Restrição

Id_Banco (PK) Integer Número sequencialque identi�ca cadabanco

Numérico Maior que 0 Atribuído automatica-mente e não editável

Nome String Nome do banco Caracteres alfanumé-ricos

Até 50 caracteres Obrigatório e editável

Morada_Sede String Morada da sede dobanco

Caracteres alfanumé-ricos

Até 50 caracteres Obrigatório e editável

Contacto_Sede Integer Número de telefone dasede do banco

Caracteres numéricos Até 9 caracteres Obrigatório e editável

Page 41: Instituto Politécnico da Guarda Aplicação web de gestão de ...bdigital.ipg.pt/dspace/bitstream/10314/1796/1/João Gonçalves... · O trabalho consistiu em desenvolver uma aplicação

CAPÍTULO 3. METODOLOGIA E ANÁLISE DE REQUISITOS 28

A tabela 3.11 mostra toda a semântica dos métodos da classe Bancos.

Tabela 3.11: Métodos banco

Nome Descrição

Criar() Operação que permite inserir o registo de um novo banco1. Inserir o nome do banco2. Inserir a morada da sede do banco3. Inserir o número de telefone da sede do banco4. Criar um novo banco

Editar() Operação que permite editar um registo de um banco.1. Escolher o banco através do id_Banco2. Introduzir um novo nome3. Introduzir uma nova morada da sede4. Introduzir o novo contacto da sede5. Atualizar dados

Consultar() Operação que permite consultar um banco1. Escolher o banco através do id_Banco2. Devolve uma �cha com os dados do banco

A tabela 3.12 mostra toda a semântica da classe Bancos/Contactos.

Tabela 3.12: Bancos/Contactos

Atributo Tipo de dados Descrição Valores Válidos Formato Restrição

id_BancoContacto(PK)

Integer Número sequen-cial que identi�ca oserviço/Contacto

Numérico Maior que 0 Atribuído automatica-mente e não editável

id_Contacto (FK) Integer Número sequen-cial que identi�ca ocontacto

Numérico Maior que 0 Atribuído automatica-mente e não editável

NomeBalcao String Balcão do banco ondeestá a conta bancaria

Caracteres alfanumé-ricos

Até 50 caracteres Obrigatório e editável

MoradaBalcao String Morada do balcão Caracteres alfanumé-ricos

Até 50 caracteres Obrigatório e editável

GestorConta String Nome do gestor daconta bancaria

Caracteres alfanumé-ricos

Até 50 caracteres Não obrigatório e edi-tável

ContactoGestor String Contato do gestor daconta bancaria

Caracteres alfanumé-ricos

Até 50 caracteres Não obrigatório e edi-tável

Conta Integer Número da conta ban-cária do contacto

Caracteres numéricos Até 50 caracteres Obrigatório e editável

IBAN String IBAN do contacto Caracteres alfanumé-ricos

Até 34 caracteres Não obrigatório e edi-tável

SWIFT String SWIFT do contacto Caracteres alfanumé-ricos

Até 11 caracteres Não obrigatório e edi-tável

NIB String NIB do contacto Caracteres alfanumé-ricos

Até 21 caracteres Obrigatório e editável

A tabela 3.13 mostra toda a semântica da classe Emails.

Tabela 3.13: Emails

Atributo Tipo de dados Descrição Valores Válidos Formato Restrição

Id_Email (PK) Integer Número sequencialque identi�ca cadaemail

Numérico Maior que 0 Atribuído automatica-mente e não editável

Id_Contacto (FK) Integer Número sequencialque identi�ca cadaContacto

Numérico Maior que 0 Atribuído automatica-mente e não editável

Nome String Nome do titular doemail

Caracteres alfanumé-ricos

Até 50 caracteres Obrigatório e editável

Email String Correio eletrónico dapessoa em questão

Caracteres alfanumé-ricos

Até 50 caracteres Obrigatório e editável

Page 42: Instituto Politécnico da Guarda Aplicação web de gestão de ...bdigital.ipg.pt/dspace/bitstream/10314/1796/1/João Gonçalves... · O trabalho consistiu em desenvolver uma aplicação

CAPÍTULO 3. METODOLOGIA E ANÁLISE DE REQUISITOS 29

A tabela 3.14 mostra toda a semântica da classe Contactos.

Tabela 3.14: Contactos

Atributo Tipo de dados Descrição Valores Válidos Formato Restrição

id_Contacto (PK) Integer Número sequencialque identi�ca cadacontacto

Numérico Maior que 0 Atribuído automatica-mente e não editável

id_Tipo(FK) Integer Número sequencialque identi�ca cadatipo de contacto

Numérico Maior que 0 Atribuído automatica-mente e não editável

Nome String Nome do contacto Caracteres alfanumé-ricos

Até 50 caracteres Obrigatório e editável

Contribuinte Integer Número de contri-buinte do contacto

Caracteres numéricos Até 9 caracteres Obrigatório e editável

Morada String Morada do contacto Caracteres alfanumé-ricos

Até 50 caracteres Obrigatório e editável

Cod_postal String Código postal do con-tacto

Caracteres alfanumé-ricos

Até 8 caracteres Obrigatório e editável

Localidade String Localidade do con-tacto

Caracteres alfanumé-ricos

Até 20 caracteres Obrigatório e editável

Web1 String Site do contacto Caracteres alfanumé-ricos

Até 50 caracteres Obrigatório e editável

Web2 String Site alternativo Caracteres alfanumé-ricos

Até 50 caracteres Não obrigatório e edi-tável

Imagem String Imagem do contacto Caracteres alfanumé-ricos

Até 50 caracteres Não obrigatório e edi-tável

A tabela 3.15 mostra toda a semântica dos métodos da classe Contactos.

Tabela 3.15: Métodos Contacto

Nome Descrição

Consultar() Operação que permite consultar um contacto1. Escolher o contacto através do id_Contacto2. Devolve uma �cha com os dados do contacto

A tabela 3.16 mostra toda a semântica da classe Mensagens.

Tabela 3.16: Mensagens

Atributo Tipo de dados Descrição Valores Válidos Formato Restrição

id_Mensagem (PK) Integer Número sequencialque identi�ca cadamensagem

Numérico Maior que 0 Atribuído automatica-mente e não editável

id_Utilizador(FK) Integer Número sequencialque identi�ca cadautilizador

Numérico Maior que 0 Atribuído automatica-mente e não editável

Remetente String Identi�ca quem en-viou a mensagem

Caracteres alfanumé-ricos

Até 50 caracteres Obrigatório e editável

Destinatario String Destinatário da men-sagem

Caracteres alfanumé-ricos

Até 50 caracteres Obrigatório e editável

Assunto String Assunto da mensagem Caracteres alfanumé-ricos

Até 50 caracteres Obrigatório e editável

Mensagem String Conteúdo da mensa-gem

Caracteres alfanumé-ricos

Até aos dígitos máxi-mos permitidos

Obrigatório e editável

Lida Bool Campo que indica se amensagem foi lida ounão

True/False True/False Atribuído automatica-mente e não editável

Data_Env Date Data em que a mensa-gem foi enviada

Caracteres numéricos dd/mm/yyyy Atribuído automatica-mente e não editável

Data_Lida Date Data em que a mensa-gem foi lida

Caracteres numéricos dd/mm/yyyy Atribuído automatica-mente e não editável

Page 43: Instituto Politécnico da Guarda Aplicação web de gestão de ...bdigital.ipg.pt/dspace/bitstream/10314/1796/1/João Gonçalves... · O trabalho consistiu em desenvolver uma aplicação

CAPÍTULO 3. METODOLOGIA E ANÁLISE DE REQUISITOS 30

A tabela 3.17 mostra toda a semântica dos métodos da classe Mensagens.

Tabela 3.17: Métodos Mensagens

Nome Descrição

Enviar() Operação que permite enviar uma mensagem1. Escolher o destinatário(s)2. Preencher o campo do assunto3. Preencher o corpo da mensagem4. O campo data_env é introduzido automaticamente5. Enviar mensagem6. Pedir con�rmação7. Con�rmar8. Enviar

Responder() Operação que permite responder a uma mensagem.1. Os campos destinatários e assunto são preenchidos automaticamente2. Preencher corpo da mensagem3. Enviar mensagem4. Pedir con�rmação5. Con�rmar6. Enviar

Reencaminhar() Operação que permite reencaminhar uma mensagem1. Os campos assunto e mensagem são preenchidos automaticamente2. Escolher o destinatário(s)3. Enviar mensagem4. Pedir con�rmação5. Con�rmar6. Enviar

A tabela 3.18 mostra toda a semântica da classe Tarefas.

Tabela 3.18: Tarefas

Atributo Tipo de dados Descrição Valores Válidos Formato Restrição

id_Tarefa (PK) Integer Número sequencialque identi�ca a tarefa

Numérico Maior que 0 Atribuído automatica-mente e não editável

id_Utilizador (FK) Integer Número sequen-cial que identi�ca outilizador

Numérico Maior que 0 Atribuído automatica-mente e não editável

Tarefa String Nome da tarefa Caracteres alfanumé-ricos

Até 20 caracteres Obrigatório e editável

Estado String Estado da tarefa Caracteres alfanumé-ricos

Até 20 caracteres Atribuído automatica-mente e editável

Data_Coloc Date Data em que foi colo-cada

Caracteres numéricos dd/mm/yyyy Atribuído automatica-mente e não editável

Data_Cump Date Data em que foi reali-zada

Caracteres numéricos dd/mm/yyyy Atribuído automatica-mente e não editável

Geral Bool Se é para todos os uti-lizadores ou não

True/False True/False Não obrigatório e edi-tável

RealizadaPor String Por quem foi realizada Caracteres alfanumé-ricos

Até 50 caracteres Atribuído automatica-mente e não editável

Observacoes String Observações sobre atarefa

Caracteres alfanumé-ricos

Até aos dígitos máxi-mos permitidos

Não obrigatório e edi-tável

Colocadapor String Por quem foi colocada Caracteres alfanumé-ricos

Até 50 caracteres Atribuído automatica-mente e não editável

Page 44: Instituto Politécnico da Guarda Aplicação web de gestão de ...bdigital.ipg.pt/dspace/bitstream/10314/1796/1/João Gonçalves... · O trabalho consistiu em desenvolver uma aplicação

CAPÍTULO 3. METODOLOGIA E ANÁLISE DE REQUISITOS 31

A tabela 3.19 mostra toda a semântica da classe Empresa.

Tabela 3.19: Empresa

Atributo Tipo de dados Descrição Valores Válidos Formato Restrição

id_Empresa (PK) Integer Número sequen-cial que identi�ca aempresa

Numérico Maior que 0 Atribuído automatica-mente e não editável

Nome String Nome da empresa Caracteres alfanumé-ricos

Até 50 caracteres Obrigatório e editável

Contribuinte Integer Número de contri-buinte da empresa

Caracteres numéricos Até 9 caracteres Obrigatório e editável

Morada String Morada da empresa Caracteres alfanumé-ricos

Até 100 caracteres Obrigatório e editável

Cod_postal String Código postal da em-presa

Caracteres alfanumé-ricos

Até 8 caracteres Obrigatório e editável

Localidade String Localidade onde estásediada a empresa

Caracteres alfanumé-ricos

Até 20 caracteres Obrigatório e editável

Conta Integer Número da conta ban-cária da empresa

Caracteres numéricos Até 50 caracteres Obrigatório e editável

IBAN String IBAN da empresa Caracteres alfanumé-ricos

Até 34 caracteres Não obrigatório e edi-tável

SWIFT String SWIFT da empresa Caracteres alfanumé-ricos

Até 11 caracteres Não obrigatório e edi-tável

NIB String NIB da empresa Caracteres alfanumé-ricos

Até 21 caracteres Obrigatório e editável

Email String Email da empresa Caracteres alfanumé-ricos

Até 50 caracteres Obrigatório e editável

Email2 String Email da empresa Caracteres alfanumé-ricos

Até 50 caracteres Não obrigatório e edi-tável

Email3 String Email da empresa Caracteres alfanumé-ricos

Até 50 caracteres Não obrigatório e edi-tável

Web String Site da empresa Caracteres alfanumé-ricos

Até 50 caracteres Não obrigatório e edi-tável

Web2 String Site alternativo daempresa

Caracteres alfanumé-ricos

Até 50 caracteres Não obrigatório e edi-tável

Telefone Integer Telefone da empresa Caracteres numéricos Até 9 caracteres Obrigatório e editávelTelefone2 Integer Telefone alternativo

da empresaCaracteres numéricos Até 9 caracteres Não obrigatório e edi-

távelTelefone3 Integer Telefone alternativo

da empresaCaracteres numéricos Até 9 caracteres Não obrigatório e edi-

távelFax Integer Fax da empresa Caracteres numéricos Até 9 caracteres Não obrigatório e edi-

táveltelemDe String Identi�cação do tele-

móvelCaracteres alfanumé-ricos

Até 50 caracteres Não obrigatório e edi-tável

Telemovel Integer Número de telemóvel Caracteres numéricos Até 9 caracteres Não obrigatório e edi-tável

telem2De String Identi�cação do tele-móvel

Caracteres alfanumé-ricos

Até 50 caracteres Não obrigatório e edi-tável

Telemovel2 Integer Número de telemóvel Caracteres numéricos Até 9 caracteres Não obrigatório e edi-tável

telem3De String Identi�cação do tele-móvel

Caracteres alfanumé-ricos

Até 50 caracteres Não obrigatório e edi-tável

Telemovel3 Integer Número de telemóvel Caracteres numéricos Até 9 caracteres Não obrigatório e edi-tável

Observacoes String Observações sobre aempresa

Caracteres alfanumé-ricos

Até aos dígitos máxi-mos permitidos

Não obrigatório e edi-tável

Page 45: Instituto Politécnico da Guarda Aplicação web de gestão de ...bdigital.ipg.pt/dspace/bitstream/10314/1796/1/João Gonçalves... · O trabalho consistiu em desenvolver uma aplicação

CAPÍTULO 3. METODOLOGIA E ANÁLISE DE REQUISITOS 32

A tabela 3.20 mostra toda a semântica da classe Telefones.

Tabela 3.20: Telefones

Atributo Tipo de dados Descrição Valores Válidos Formato Restrição

id_telefone (PK) Integer Número sequen-cial que identi�ca onúmero de telefone

Numérico Maior que 0 Atribuído automatica-mente e não editável

id_Contacto (FK) Integer Número sequen-cial que identi�ca ocontacto

Numérico Maior que 0 Atribuído automatica-mente e não editável

Descricao String Campo que identi�cao telefone

Caracteres alfanumé-ricos

Até 50 caracteres Obrigatório e editável

Numero Integer Número de telefone Caracteres numéricos Até 9 caracteres Obrigatório e editável

A tabela 3.21 mostra toda a semântica da classe Telemóveis.

Tabela 3.21: Telemoveis

Atributo Tipo de dados Descrição Valores Válidos Formato Restrição

id_Telemovel (PK) Integer Número sequen-cial que identi�ca otelemóvel

Numérico Maior que 0 Atribuído automatica-mente e não editável

id_Contacto (FK) Integer Número sequen-cial que identi�ca ocontacto

Numérico Maior que 0 Atribuído automatica-mente e não editável

Nome String Campo que identi�cao telemóvel

Caracteres alfanumé-ricos

Até 50 caracteres Obrigatório e editável

Numero Integer Número de telemóvel Caracteres numéricos Até 9 caracteres Obrigatório e editável

A tabela 3.22 mostra toda a semântica da classe Tipo de contacto.

Tabela 3.22: Tipo de contacto

Atributo Tipo de dados Descrição Valores Válidos Formato Restrição

id_Tipo (PK) Integer Número sequencialque identi�ca o tipode contacto

Numérico Maior que 0 Atribuído automatica-mente e não editável

Descricao String Campo que identi�cao tipo de contacto

Caracteres alfanumé-ricos

Até 50 caracteres Obrigatório e editável

Page 46: Instituto Politécnico da Guarda Aplicação web de gestão de ...bdigital.ipg.pt/dspace/bitstream/10314/1796/1/João Gonçalves... · O trabalho consistiu em desenvolver uma aplicação

CAPÍTULO 3. METODOLOGIA E ANÁLISE DE REQUISITOS 33

A tabela 3.23 mostra toda a semântica da classe Utilizadores.

Tabela 3.23: Utilizadores

Atributo Tipo de dados Descrição Valores Válidos Formato Restrição

id_Utilizador (PK) Integer Número sequen-cial que identi�ca outilizador

Numérico Maior que 0 Atribuído automatica-mente e não editável

Nome String Nome do utilizador Caracteres alfanumé-ricos

Até 50 caracteres Obrigatório e editável

Username String Username do utiliza-dor

Caracteres alfanumé-ricos

Até 20 caracteres Obrigatório e editável

BI Integer Número de bi do utili-zador

Caracteres numéricos Até 15 caracteres Obrigatório e editável

Data_Nasc Date Data de nascimentodo utilizador

Caracteres numéricos dd/mm/yyyy Obrigatório e editável

Contribuinte Integer Número de contri-buinte do utilizador

Caracteres numéricos Até 9 caracteres Obrigatório e editável

Imagem String Avatar do utilizador Caracteres alfanumé-ricos

Até 50 caracteres Não obrigatório e edi-tável

Morada String Morada do utilizador Caracteres alfanumé-ricos

Até 50 caracteres Obrigatório e editável

Cod_postal String Código postal da mo-rada do utilizador

Caracteres alfanumé-ricos

Até 8 caracteres Obrigatório e editável

Localidade String Localidade do utiliza-dor

Caracteres alfanumé-ricos

Até 20 caracteres Obrigatório e editável

Telemovel Integer Número de telemóveldo utilizador

Caracteres numéricos Até 9 caracteres Obrigatório e editável

Telemovel2 Integer Segundo número detelemóvel do utiliza-dor

Caracteres numéricos Até 9 caracteres Não obrigatório e edi-tável

Telefone Integer Número de telefone doutilizador

Caracteres numéricos Até 9 caracteres Obrigatório e editável

Email String Endereço de email doutilizador

Caracteres alfanumé-ricos

Até 50 caracteres Obrigatório e editável

Email2 String Endereço de email al-ternativo do utilizador

Caracteres alfanumé-ricos

Até 50 caracteres Não obrigatório e edi-tável

Observações String Observações sobre outilizador

Caracteres alfanumé-ricos

Até aos dígitos máxi-mos permitidos

Não obrigatório e edi-tável

A tabela 3.24 mostra toda a semântica da classe Serviços.

Tabela 3.24: Serviços

Atributo Tipo de dados Descrição Valores Válidos Formato Restrição

id_Servico (PK) Integer Número sequencialque identi�ca o serviço

Numérico Maior que 0 Atribuído automatica-mente e não editável

Nome String Nome do serviço Caracteres alfanumé-ricos

Até 50 caracteres Obrigatório e editável

Link String Link do serviço Caracteres alfanumé-ricos

Até 50 caracteres Não obrigatório e edi-tável

Page 47: Instituto Politécnico da Guarda Aplicação web de gestão de ...bdigital.ipg.pt/dspace/bitstream/10314/1796/1/João Gonçalves... · O trabalho consistiu em desenvolver uma aplicação

CAPÍTULO 3. METODOLOGIA E ANÁLISE DE REQUISITOS 34

A tabela 3.25 mostra toda a semântica da classe Serviços/Contactos.

Tabela 3.25: Serviços/Contactos

Atributo Tipo de dados Descrição Valores Válidos Formato Restrição

id_ServicoContacto(PK)

Integer Número sequen-cial que identi�ca oserviço/Contacto

Numérico Maior que 0 Atribuído automatica-mente e não editável

id_Contacto (FK) Integer Número sequen-cial que identi�ca ocontacto

Numérico Maior que 0 Atribuído automatica-mente e não editável

Username String Username do serviço Caracteres alfanumé-ricos

Até 20 caracteres Obrigatório e editável

Password String Password do serviço Caracteres alfanumé-ricos

Até 20 caracteres Obrigatório e editável

Observações String Observações sobre oserviço

Caracteres alfanumé-ricos

Até aos dígitos máxi-mos permitidos

Não obrigatório e edi-tável

Data_Servico Date Data em que o serviçofoi pedido

Caracteres numéricos dd/mm/yyyy Não obrigatório e edi-tável

3.12 Diagrama de atividades

Este tipo de diagramas é usado para modelar o comportamento de alguns processosda aplicação.

O diagrama seguinte 3.12 mostra o funcionamento do processo adicionar novo con-tacto.

Figura 3.12: Diagrama de actividade Novo contacto.

Page 48: Instituto Politécnico da Guarda Aplicação web de gestão de ...bdigital.ipg.pt/dspace/bitstream/10314/1796/1/João Gonçalves... · O trabalho consistiu em desenvolver uma aplicação

CAPÍTULO 3. METODOLOGIA E ANÁLISE DE REQUISITOS 35

3.13 Diagrama de instalação

Os diagramas de instalação mostram toda a distribuição do hardware, os servidoressão identi�cados como nós e dentro dos nós é representado o software usado paradesenvolver a aplicação.

Os diagramas seguintes 3.13 e 3.14 mostram a arquitetura deste projeto.

Figura 3.13: Diagrama de instalação.

Figura 3.14: Arquitetura da aplicação.

Page 49: Instituto Politécnico da Guarda Aplicação web de gestão de ...bdigital.ipg.pt/dspace/bitstream/10314/1796/1/João Gonçalves... · O trabalho consistiu em desenvolver uma aplicação

Capítulo 4

Tecnologias utilizadas

4.1 Introdução

Neste capítulo vão ser descritas todas as tecnologias utilizadas na elaboração desteprojeto bem como apresentar alguns exemplos de código utilizados na aplicação.

4.2 Tecnologias Web

4.2.1 HTML

HTML é uma das linguagens que se utiliza para desenvolver páginas web. O acró-nimo HTML vem do inglês e signi�ca Hypertext Markup Language. Mesmo cominúmeras linguagens novas para desenvolver páginas web, o HTML, continua a sera base para a produção de páginas Web, mesmo que se utilizem outras linguagenscomo ASP (Active Server Pages), PHP (PHP: Hypertext Preprocessor), entre ou-tras, o conhecimento de HTML também é fundamental, pois é utilizado juntamentecom as outras linguagens. [6] e [2]

A listagem 1 mostra um exemplo de código HTML usado na aplicação para a criaçãoda master page.

36

Page 50: Instituto Politécnico da Guarda Aplicação web de gestão de ...bdigital.ipg.pt/dspace/bitstream/10314/1796/1/João Gonçalves... · O trabalho consistiu em desenvolver uma aplicação

CAPÍTULO 4. TECNOLOGIAS UTILIZADAS 37

Listagem 1 Exemplo HTML1: <!DOCTYPE html PUBLIC -//W3C//DTD XHTML 1.0 Strict//EN

http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd�2: <html xmlns="http://www.w3.org/1999/xhtml"xml:lang="en�3: <head runat="server�4: <title>CRM</title>5: <meta http-equiv="Content-Type"content="text/html; charset=utf-8"/>6: <meta name="title"content="Web site"/>7: <meta name="description"content="Site description here"/>8: <meta name="keywords"content="keywords here"/>9: <meta name="language"content="en"/>10: <meta name="subject"content="Site subject here"/>11: <meta name="robots"content="All"/>12: <meta name="copyright"content="Your company"/>13: <meta name="abstract"content="Site description here"/>14: <meta name="MSSmartTagsPreventParsing"content="true"/>15: <link id="theme"rel="stylesheet"type="text/css"href="style.css"title="theme"/>16: <script type="text/javascript"language="javascript"src="js/addon.js�</script>17: <script type="text/javascript"language="javascript"src="js/custom.js�</script>18: <asp:ContentPlaceHolder ID="HeadContent"runat="server�19: </asp:ContentPlaceHolder>20: </head>21: <body>22: <form runat="server�23: <div id="topWrapper�24: <div id="topBanner�</div>25: </div>26: <div id="wrapper�27: <div id="container�28: <div class="main�29: <asp:ContentPlaceHolder ID="MainContent"runat="server"/>30: </div>31: </div>32: </div>33: </form>34: </body>35: </html>

Page 51: Instituto Politécnico da Guarda Aplicação web de gestão de ...bdigital.ipg.pt/dspace/bitstream/10314/1796/1/João Gonçalves... · O trabalho consistiu em desenvolver uma aplicação

CAPÍTULO 4. TECNOLOGIAS UTILIZADAS 38

4.2.2 CSS

CSS é a abreviatura para Cascading Style Sheets em português Folha de Estilos emCascata. O CSS é uma linguagem para estilos que de�ne o layout de documentosHTML. Por exemplo, o CSS controla fontes, cores, margens, linhas, alturas, larguras,imagens de fundo, posicionamentos. Embora se possa usar HTML para de�nir olayout das páginas web, o CSS, é mais preciso e so�sticado.[9]

A listagem 2 mostra o código CSS usado para de�nir o aspeto da área onde irá �caro banner assim como as características do próprio banner. .

Listagem 2 Exemplo CSS.1: #topWrapper { //nome2: //defenir as caracteristica3: width:1004: height:150px;5: background-color:#6E91D1;6: }7: #topBanner {8: width:920px;9: margin:0 auto;10: height:150px;11: background-image:url(images/css/topBanner.jpg);12: background-repeat:no-repeat;13: }

Page 52: Instituto Politécnico da Guarda Aplicação web de gestão de ...bdigital.ipg.pt/dspace/bitstream/10314/1796/1/João Gonçalves... · O trabalho consistiu em desenvolver uma aplicação

CAPÍTULO 4. TECNOLOGIAS UTILIZADAS 39

4.2.3 JavaScript

JavaScript é uma linguagem de programação utilizada para criar pequenos progra-mas encarregados de realizar ações dentro do âmbito de uma página web.Com JavaScript podemos criar efeitos especiais nas páginas e de�nir interatividadescom o utilizador. O browser do cliente é o encarregado de interpretar as instruçõesJavaScript e executá-las para realizar estes efeitos e interatividades, de modo que omaior recurso, e talvez o único, com que conta esta linguagem é o próprio browser.[1]

A listagem 3 mostra o código em JavaScript que foi usado para validar um númerode contribuinte.

Listagem 3 Exemplo Javascript.1: function IsValidNIF(nif)2: {3: var c;4: var checkDigit = 0;5: //Veri�ca se é nulo, se é númerico e se tem 9 dígitos6: if(nif != null && IsNumeric(nif) && nif.length == 9)7: {8: //Obtem o primeiro número do NIF9: c = nif.charAt(0);10: //Veri�ca se o primeiro número é (1, 2, 5, 6, 8 ou 9)11: if(c == '1' || c == '2' || c == '5' || c == '6' || c == '8' || c == '9')12: {13: //Calculo do Dígito de Controle14: checkDigit = c * 9;15: var i = 0;16: for(i = 2; i < = 8; i++)17: {18: checkDigit += nif.charAt(i-1) * (10-i);19: }20: checkDigit = 11 - (checkDigit % 11);21: //Se o dígito de controle é maior que dez, coloca-o a zero22: if(checkDigit >= 10)23: checkDigit = 0;24: //Compara o dígito de controle com o último número do NIF25: //Se igual, o NIF é válido.26: if(checkDigit == nif.charAt(8))27: return true;28: }29: }30: return false;31: }

Page 53: Instituto Politécnico da Guarda Aplicação web de gestão de ...bdigital.ipg.pt/dspace/bitstream/10314/1796/1/João Gonçalves... · O trabalho consistiu em desenvolver uma aplicação

CAPÍTULO 4. TECNOLOGIAS UTILIZADAS 40

4.2.4 ASP.NET

O ASP.NET é a plataforma da Microsoft para desenvolver aplicações Web e é osucessor da tecnologia ASP. O ASP.NET gera páginas dinâmicas como resultado doacesso a base de dados, que pode ser feito de forma nativa para o SQL Server oucom outro SGBD. Esta tecnologia é diferente de outras uma vez que o ASP.NETpermite usar várias linguagens, como o VB, C#, C++, entre outras. Isto permiteque programadores com diferentes per�s possam usar a linguagem com que estãomais familiarizados.[4]

A listagem 4 mostra um excerto de código ASP.NET usado na aplicação, nesteexcerto foi criado um panel com determinadas características dentro desse panelfoi criada uma tabela com duas linhas e apenas uma coluna, a primeira linha temapenas uma label que posteriormente irá mostrar uma mensagem ao utilizador, asegunda linha tem um LinkButton que serve para fechar o panel.

Listagem 4 Exemplo ASP.NET.1: <asp:Panel ID="PanelMsg"runat="server"BackColor="#E4E4E4"BorderColor="Black"2: BorderStyle="Solid"BorderWidth="2px"Height="75px"Visible="False"3: Width="450px�4: <table align="center"class="style4�5: <tr>6: <td align="center�7: <asp:Label ID="labelMsg"runat="server�</asp:Label>8: </td>9: </tr>10: <tr>11: <td align="center�12: <br />13: <asp:LinkButton ID="lbOk"runat="server"Font-Size=

"Large"onclick="lbOk_Click�Ok </asp:LinkButton>14: </td>15: </tr>16: </table>17: </asp:Panel>

Page 54: Instituto Politécnico da Guarda Aplicação web de gestão de ...bdigital.ipg.pt/dspace/bitstream/10314/1796/1/João Gonçalves... · O trabalho consistiu em desenvolver uma aplicação

CAPÍTULO 4. TECNOLOGIAS UTILIZADAS 41

4.2.5 C#

O C# (CSharp) é uma linguagem de programação orientada a objetos criada pelaMicrosoft, faz parte da plataforma .Net e é baseada em C++ e Java. A linguagemC# foi criada junto com a arquitetura .NET. Embora, como já foi dito, existamoutras linguagens que suportam essa tecnologia (como VB.NET, C++, J#), o C#é considerada a linguagem símbolo do .NET porque foi criada praticamente do zeropara funcionar na plataforma .Net e a maior parte das classes do .NET Frameworkforam desenvolvidas em C#.[12]

A listagem 5 mostra a função em C# que é usado quando ocorre quando se clicanum determinado LinkButton.

Listagem 5 Exemplo C#.1: protected void lbOk_Click(object sender, EventArgs e)2: {3: LimpaCampos(); //Chama a função para limpar os campos.4: Panel1.Visible = false; //Põe o panel não visível5: Response.Redirect(" /TipoContactos/NovoTipoContacto.aspx"); // redireciona o utili-

zador para outra página.6: }

4.2.6 Microsoft SQL SERVER

O Microsoft SQL SERVER é um SGBD, sistema de gestão de Base de dados criadopela Microsoft. Este é o SGBD usado no projeto principalmente por já vir incluídono Microsoft Visual Studio 4.3.1.[13]

A listagem 6 mostra o código SQL utilizado para selecionar as mensagens que cum-pram com as clausulas especi�cadas e no �m mostra-as ordenadas de forma descen-dente pela data de envio.

Listagem 6 Exemplo SQL.1: SELECT id_Mensagem, id_Utilizador, Remetente, Destinatario, Assunto, Mensagem, Lida,

Data_Env, Data_Lida FROM Mensagens WHERE (Destinatario = @destin) AND ((Reme-tente LIKE N'%' + @remetente + N'%') OR (Assunto LIKE N'%' + @assunto + N'%'))ORDER BY Data_Env DESC

Page 55: Instituto Politécnico da Guarda Aplicação web de gestão de ...bdigital.ipg.pt/dspace/bitstream/10314/1796/1/João Gonçalves... · O trabalho consistiu em desenvolver uma aplicação

CAPÍTULO 4. TECNOLOGIAS UTILIZADAS 42

4.2.7 LaTex

O LaTeX (lê-se latec) fornece um conjunto de macros alto-nível que torna mais fácile rápida a produção de documentos em TeX e é utilizado para produzir todo o tipode documentos como por exemplo livros, relatórios e artigos. O LaTeX é muitoutilizado pela comunidade cientí�ca e matemática mundial devido à sua grandequalidade tipográ�ca, entre outros.[7]

A listagem 7 mostra um exemplo de LaTeX usado na elaboração deste relatório.

Listagem 7 Exemplo LaTeX1: chapter{Tecnologias utilizadas} //Cria um capítulo.2: label{cha:Tecnologiautilizadas}3: section{Introdução} //Cria um Secção.4: label{sec:introduca}5: medskip //espaçamento vertical entre parágrafos.6: noindent // sem tabulação.7: Neste capítulo vão ser descritas todas as tecnologias utilizadas na elaboração deste projeto

bem como apresentar alguns exemplos de código utilizados na aplicação.8: section{Tecnologias Web}9: label{sec:TecnologiaWeb}10: subsection{HTML} //Cria uma sub Secção.11: label{sec:html.}

Page 56: Instituto Politécnico da Guarda Aplicação web de gestão de ...bdigital.ipg.pt/dspace/bitstream/10314/1796/1/João Gonçalves... · O trabalho consistiu em desenvolver uma aplicação

CAPÍTULO 4. TECNOLOGIAS UTILIZADAS 43

4.3 Software utilizado

4.3.1 Microsoft Visual Studio

O Microsoft Visual Studio é um pacote de programas da Microsoft, para criaçãode software, é especialmente dedicado, ao framework .NET. É também um grandeproduto de desenvolvimento na área web, usando a plataforma ASP.NET.[10]

A �gura 4.1 mostra o interface principal do Microsoft Visual Studio.

Figura 4.1: Microsoft Visual Studio

Page 57: Instituto Politécnico da Guarda Aplicação web de gestão de ...bdigital.ipg.pt/dspace/bitstream/10314/1796/1/João Gonçalves... · O trabalho consistiu em desenvolver uma aplicação

CAPÍTULO 4. TECNOLOGIAS UTILIZADAS 44

4.3.2 Microsoft Visio

O Microsoft Visio é um software que permite criar diagramas representativos, ouseja, imagens que possibilitam a análise de informação. Com o Visio pode-se auxiliarmodelar os dados através de diagramas extremamente dinâmicos tornando assimmais fácil a realização de projetos.[3]

A �gura 4.2 mostra o interface principal do Microsoft Visio.

Figura 4.2: Microsoft Visio

4.3.3 TeXstudio

O TeXstudio é um editor gratuito de LaTeX.

A �gura 4.3 mostra o interface do TeXstudio.

Figura 4.3: TeXstudio

Page 58: Instituto Politécnico da Guarda Aplicação web de gestão de ...bdigital.ipg.pt/dspace/bitstream/10314/1796/1/João Gonçalves... · O trabalho consistiu em desenvolver uma aplicação

Capítulo 5

Implementação da solução

Depois de fazer toda a análise de requisitos tornou-se bastante mais fácil a realizaçãodesta aplicação. Neste capítulo vou apresentar algumas das partes mais importantesda aplicação assim como algum código que ache relevante.

5.1 Aplicação

Na �gura 5.1 podemos ver a página de login. Cada utilizador da aplicação tem queefetuar o login antes de começar a utilizar a aplicação.

Figura 5.1: Login

45

Page 59: Instituto Politécnico da Guarda Aplicação web de gestão de ...bdigital.ipg.pt/dspace/bitstream/10314/1796/1/João Gonçalves... · O trabalho consistiu em desenvolver uma aplicação

CAPÍTULO 5. IMPLEMENTAÇÃO DA SOLUÇÃO 46

A �gura 5.2 mostra-nos o menu principal da aplicação onde o utilizador pode esco-lher a opção pretendida. O menu representado na �gura corresponde ao login doadministrador, caso contrário o menu não teria a opção "Administração".

Figura 5.2: Menu Administrador

A listagem 8 mostra o código utilizado para esconder ou não a opção "Adminis-tração".

Listagem 8 Menu administrador.1: <asp:LoginView ID="LoginView4"runat="server� //Cria um LoginView.2: <LoggedInTemplate>3: </LoggedInTemplate>4: <RoleGroups>5: // Se o utilizador tiver privilégio de admin mostra o que está dentro do ContentTemplate6: <asp:RoleGroup Roles="Admin�7: <ContentTemplate>8: <div class="bloc rounded�9: //cria um HyperLink10: <asp:HyperLink ID="HyperLink6"NavigateUrl=" /Ad-

min/MenuFerramentas.aspx"runat="server�11: //Cria uma tabela12: <table align="center�13: //Cria uma linha na tabela14: <tr>15: //Cria uma coluna na tabela16: <td>17: //Insere uma imagem18: <img src="images/Icons/Tools2.png"alt="Ferramentas"/>19: </td>20: </tr>21: <tr>22: <td align="center�23: Administra�ÿo24: </td>25: </tr>26: </table>27: </asp:HyperLink>28: </div>29: </ContentTemplate>30: </asp:RoleGroup>31: </RoleGroups>32: </asp:LoginView>

Page 60: Instituto Politécnico da Guarda Aplicação web de gestão de ...bdigital.ipg.pt/dspace/bitstream/10314/1796/1/João Gonçalves... · O trabalho consistiu em desenvolver uma aplicação

CAPÍTULO 5. IMPLEMENTAÇÃO DA SOLUÇÃO 47

Se tivermos o login efectuado como utilizador e escolher-mos a opção "Utilizado-res"poderemos ver uma lista com todos os utilizadores e consultar os seus dadoscomo mostra a �gura 5.3.

Figura 5.3: Utilizadores

Ao escolher a opção "Empresa" vamos para a página onde nos é apresentada uma�cha com todos os dados da empresa, tal como podemos ver na �gura 5.4.

Figura 5.4: Ficha da empresa

Page 61: Instituto Politécnico da Guarda Aplicação web de gestão de ...bdigital.ipg.pt/dspace/bitstream/10314/1796/1/João Gonçalves... · O trabalho consistiu em desenvolver uma aplicação

CAPÍTULO 5. IMPLEMENTAÇÃO DA SOLUÇÃO 48

Ao escolher a opção "Mensagens" irá abrir um sub-menu 5.5 com as várias opçõesrelativas às mensagens, "Nova Mensagem", "Caixa de entrada" e "Caixa de saída".Ao Escolher a opção "Nova mensagem" aparece um formulário 5.6 onde temos queobrigatoriamente escolher um ou mais utilizadores, assim como preencher os camposassunto e o campo destinado ao corpo da mensagem. A data de envio da mensagemé inserida automaticamente pela data do sistema.Na opção "Caixa de entrada" 5.7 mostra-nos todas as mensagens que um determi-nado utilizador recebeu.Enquanto que na opção "Caixa de saída" é mostrado ao utilizador todas as mensa-gens que ele enviou.

Figura 5.5: Sub-menu Mensagens

Figura 5.6: Nova mensagem

Page 62: Instituto Politécnico da Guarda Aplicação web de gestão de ...bdigital.ipg.pt/dspace/bitstream/10314/1796/1/João Gonçalves... · O trabalho consistiu em desenvolver uma aplicação

CAPÍTULO 5. IMPLEMENTAÇÃO DA SOLUÇÃO 49

Figura 5.7: Caixa de entrada

A listagem 9 mostra o código utilizado para enviar uma nova mensagem.

Listagem 9 Enviar mensagem.1: try2: {3: //Cria uma objeto do tipo comando passando como parâmetro a string sql e a string de conexão4: SqlCommand comando = new SqlCommand(sql, conn);5: //Adicionando o valor das textBox nos parâmetros do comando6: comando.Parameters.Add(new SqlParameter("@Remetente", Label3.Text));7: comando.Parameters.Add(new SqlParameter("@Destinatario", listbDestino.Items[i].Text));8: comando.Parameters.Add(new SqlParameter("@Assunto", TextBox1.Text));9: comando.Parameters.Add(new SqlParameter("@Mensagem", TextBox2.Text));10: comando.Parameters.Add(new SqlParameter("@Data_Env", DateTime.Now));11: //abre a conexão12: conn.Open();13: //executa o comando com os parâmetros que foram adicionados14: comando.ExecuteNonQuery();15: msg.Text = "A sua mensagem foi enviada com sucesso.";16: PanelMsg.Visible = true;17: }catch18: {19: msg.Text = "Falhou o envio da mensagem.";20: PanelMsg.Visible = true;21: }�nally22: {23: //fecha a conexão24: conn.Close();25: }

Page 63: Instituto Politécnico da Guarda Aplicação web de gestão de ...bdigital.ipg.pt/dspace/bitstream/10314/1796/1/João Gonçalves... · O trabalho consistiu em desenvolver uma aplicação

CAPÍTULO 5. IMPLEMENTAÇÃO DA SOLUÇÃO 50

Ao escolhermos a opção "Tarefas" no menu inicial vamos para um outro submenu,como mostra a �gura 5.8, onde podemos ver as tarefas pendentes, criar ou editaruma tarefa (�gura 5.9) e ver um histórico de todas as tarefas já efetuadas.Ao criar uma nova tarefa é obrigatório introduzir um nome para a tarefa, quanto àdata em que foi introduzida e quem a introduziu são colocados automaticamente.

Figura 5.8: Sub-menu Tarefas

Figura 5.9: Nova tarefa

Na �gura 5.10 podemos ver uma lista com todos os contactos já introduzidos. Aoselecionarmos um contacto irá aparecer uma �cha com os dados desse contacto,como podemos ver na �gura 5.11.Nesta parte da aplicação temos também a possibilidade de introduzir um novo con-tacto (�gura 5.12), editar um já existente e, no caso da pessoa logada ter privilégiosde administrador, eliminar um contacto.

Page 64: Instituto Politécnico da Guarda Aplicação web de gestão de ...bdigital.ipg.pt/dspace/bitstream/10314/1796/1/João Gonçalves... · O trabalho consistiu em desenvolver uma aplicação

CAPÍTULO 5. IMPLEMENTAÇÃO DA SOLUÇÃO 51

Figura 5.10: Contactos

Figura 5.11: Ficha de Contactos

Page 65: Instituto Politécnico da Guarda Aplicação web de gestão de ...bdigital.ipg.pt/dspace/bitstream/10314/1796/1/João Gonçalves... · O trabalho consistiu em desenvolver uma aplicação

CAPÍTULO 5. IMPLEMENTAÇÃO DA SOLUÇÃO 52

Figura 5.12: Novo Contacto

Na parte de administração da aplicação podemos fazer a gestão dos utilizadores,editar os dados da empresa, criar, editar e eliminar bancos, serviços, tarefas e con-tactos.

Na �gura 5.13 podemos ver o ecrã de inserção de um novo utilizador. Ao adicionaro utilizador a aplicação veri�ca se os campos obrigatórios estão preenchidos e secumprem com as especi�cações da base de dados. Para além destas validaçõesa aplicação veri�ca também outros parâmetros, assim como, na data só insere seestiver correta (o dia ser maior que 1 e menor ou igual a 31, o mês ser maior que 1 emenor ou igual a 12, assim como se o ano é bissexto por causa do mês de Fevereiro)Outra veri�cação é se o número de contribuinte está correto através de uma funçãoem JavaScript.[8]

Na �gura 5.14 podemos ver a mensagem de erro ao inserir um novo utilizador.

Page 66: Instituto Politécnico da Guarda Aplicação web de gestão de ...bdigital.ipg.pt/dspace/bitstream/10314/1796/1/João Gonçalves... · O trabalho consistiu em desenvolver uma aplicação

CAPÍTULO 5. IMPLEMENTAÇÃO DA SOLUÇÃO 53

Figura 5.13: Novo Utilizador

Figura 5.14: Ecrã de erro na inserção de um novo utilizador.

Page 67: Instituto Politécnico da Guarda Aplicação web de gestão de ...bdigital.ipg.pt/dspace/bitstream/10314/1796/1/João Gonçalves... · O trabalho consistiu em desenvolver uma aplicação

CAPÍTULO 5. IMPLEMENTAÇÃO DA SOLUÇÃO 54

A listagem 10 mostra o a função (em JavaScript) utilizada para validar o númerode contribuinte.

Listagem 10 Veri�car número de contribuinte.1: function ValidateNIF(sender, args)2: {3: args.IsValid = IsValidNIF(args.Value);4: }

5: function IsValidNIF(nif)6: {7: var c;8: var checkDigit = 0;9: //Veri�ca se é nulo, se é númerico e se tem 9 dígitos10: if(nif != null && IsNumeric(nif) && nif.length == 9)11: {12: //Obtem o primeiro número do NIF13: c = nif.charAt(0);14: //Veri�ca se o primeiro número é (1, 2, 5, 6, 8 ou 9)15: if(c == '1' || c == '2' || c == '5' || c == '6' || c == '8' || c == '9')16: {17: //Calculo do Dígito de Controle18: checkDigit = c * 9;19: var i = 0;20: for(i = 2; i < = 8; i++)21: {22: checkDigit += nif.charAt(i-1) * (10-i);23: }24: checkDigit = 11 - (checkDigit % 11);25: //Se o dígito de controle é maior que dez, coloca-o a zero26: if(checkDigit >= 10)27: checkDigit = 0;28: //Compara o dígito de controle com o último número do NIF29: //Se igual, o NIF é válido.30: if(checkDigit == nif.charAt(8))31: return true;32: }33: }34: return false;35: }

Page 68: Instituto Politécnico da Guarda Aplicação web de gestão de ...bdigital.ipg.pt/dspace/bitstream/10314/1796/1/João Gonçalves... · O trabalho consistiu em desenvolver uma aplicação

CAPÍTULO 5. IMPLEMENTAÇÃO DA SOLUÇÃO 55

A listagem 11 mostra o código utilizado para inserir um novo utilizador.

Listagem 11 Inserir utilizador.1: protected void RegisterUser_CreatedUser(object sender, LoginCancelEventArgs e)2: {3: CreateUserWizardStep cuws = (CreateUserWizardStep)RegisterUser.FindControl("RegisterUserWizardStep");

4: TextBox tbNome2 = (TextBox)cuws.ContentTemplateContainer.FindControl("tbNome");5: TextBox tbContribuinte2 = (TextBox)cuws.ContentTemplateContainer.FindControl("tbContribuinte");6: TextBox Email = (TextBox)cuws.ContentTemplateContainer.FindControl("Email");7: TextBox tbMorada2 = (TextBox)cuws.ContentTemplateContainer.FindControl("tbMorada");8: TextBox tbCodPostal2 = (TextBox)cuws.ContentTemplateContainer.FindControl("tbCodPostal");9: TextBox UserName = (TextBox)cuws.ContentTemplateContainer.FindControl("UserName");10: TextBox tbLocalidade2 = (TextBox)cuws.ContentTemplateContainer.FindControl("tbLocalidade");11: TextBox tbDataNasc2 = (TextBox)cuws.ContentTemplateContainer.FindControl("tbDataNasc");12: TextBox tbTelemovel2 = (TextBox)cuws.ContentTemplateContainer.FindControl("tbTelemovel");13: TextBox tbTelemovel3 = (TextBox)cuws.ContentTemplateContainer.FindControl("tbTelemovel2");14: TextBox tbTelefone2 = (TextBox)cuws.ContentTemplateContainer.FindControl("tbTelefone");15: TextBox tbEmailAlt2 = (TextBox)cuws.ContentTemplateContainer.FindControl("tbEmailAlt");16: DropDownList funcao = (DropDownList)cuws.ContentTemplateContainer.FindControl("ddlFuncao");

17: SqlDataSourceNovoUtilizador.InsertParameters["Nome"].DefaultValue = tbNome2.Text;18: SqlDataSourceNovoUtilizador.InsertParameters["UserName"].DefaultValue = UserName.Text;19: SqlDataSourceNovoUtilizador.InsertParameters["Data_Nasc"].DefaultValue = tbDataNasc2.Text;20: SqlDataSourceNovoUtilizador.InsertParameters["Contribuinte"].DefaultValue = tbContribuinte2.Text;21: SqlDataSourceNovoUtilizador.InsertParameters["Morada"].DefaultValue = tbMorada2.Text;22: SqlDataSourceNovoUtilizador.InsertParameters["Cod_postal"].DefaultValue = tbCodPostal2.Text;23: SqlDataSourceNovoUtilizador.InsertParameters["Localidade"].DefaultValue = tbLocalidade2.Text;24: SqlDataSourceNovoUtilizador.InsertParameters["Telemovel"].DefaultValue = tbTelemovel2.Text;25: SqlDataSourceNovoUtilizador.InsertParameters["Telemovel2"].DefaultValue = tbTelemovel3.Text;26: SqlDataSourceNovoUtilizador.InsertParameters["Telefone"].DefaultValue = tbTelefone2.Text;27: SqlDataSourceNovoUtilizador.InsertParameters["Email"].DefaultValue = RegisterUser.Email;28: SqlDataSourceNovoUtilizador.InsertParameters["Email2"].DefaultValue = tbEmailAlt2.Text;29: SqlDataSourceNovoUtilizador.Insert();

30: Roles.AddUserToRole(RegisterUser.UserName, funcao.SelectedValue);31: }

Page 69: Instituto Politécnico da Guarda Aplicação web de gestão de ...bdigital.ipg.pt/dspace/bitstream/10314/1796/1/João Gonçalves... · O trabalho consistiu em desenvolver uma aplicação

Capítulo 6

Conclusões e trabalho futuro

6.1 Conclusões

Durante a elaboração do projeto em contexto de estágio tive oportunidade de apren-der novos conhecimentos e aprofundar os já adquiridos ao longo do curso. Por outrolado ao ter a oportunidade de passar algum tempo no seio da empresa MadeToHelppermitiu-me evoluir como pessoa e como pro�ssional.

Na globalidade os objetivos propostos, foram atingidos, estando previsto realizar umestágio pro�ssional na MadeToHelp, tendo esperança que no �m do mesmo possapertencer aos quadros da empresa.

6.2 Trabalho futuro

Como trabalho futuro pretendo, principalmente, melhorar as tarefas com a criaçãode sub-tarefas assim sendo, uma tarefa só �caria concluída quando todas as sub-tarefas fossem �nalizadas.

Outro melhoramento bastante importante é a aplicação avisar o utilizador de algunsaspectos importantes, como o aniversário de um contacto, algo que esteja a expirar,entre outros.

Outra funcionalidade que pretendo também incluir futuramente é a troca de �cheirosatravés das mensagens.

56

Page 70: Instituto Politécnico da Guarda Aplicação web de gestão de ...bdigital.ipg.pt/dspace/bitstream/10314/1796/1/João Gonçalves... · O trabalho consistiu em desenvolver uma aplicação

Bibliogra�a

[1] Miguel Angel Alvarez. O que é javascript. http://www.criarweb.com/

artigos/184.php, 11 2012.

[2] apostilando. Apostilando.com 2012:: Apostilas de HTML. http://www.

apostilando.com/sessao.php?cod=5, 11 2012.

[3] blogbrasil. O que é o microsoft visio professional. http://www.blogbrasil.

com.br/o-que-e-o-microsoft-visio-professional/, 11 2012.

[4] Blog do Luis. O que é aspnet? http://www.luis.blog.br/

tecnologia-asp-net-para-desenvolvimento-web.aspx, 11 2012.

[5] dyve. Agile software development services. http://www.dyve.com/dv/

methodology.htm, 11 2012.

[6] Diego Eis. O que é HTML e para que serve? | tableless. http://tableless.com.br/o-que-html-basico/, 11 2012.

[7] Ricardo Fernandes. O que é o latex? primeiros passos. http://pplware.sapo.pt/tutoriais/o-que-e-o-latex/, 11 2012.

[8] Carlos Gonçalves. Regras validação do contribuinte (nif)asp javascript carlos gonçalves. http://cgoncalves.com/

regras-validacao-do-contribuinte-nif-asp-javascript/, 11 2012.

[9] HTML.net. Lição 1: O que é CSS? http://pt-br.html.net/tutorials/css/

lesson1.php, 11 2012.

[10] Jhonatas. o que é microsoft visual studio ? http://www.tecmundo.com.br/

tira-duvidas/44476, 11 2012.

[11] netfacturaç ao. Netcontactos crm - netfacturação, software CRM, CRM, gestãode clientes, gestão de contactos, software de gestão comercial. http://www.

netfacturacao.pt/netContactos/index.php, 11 2012.

[12] o�cinadanet. C# (csharp) o que é esta linguagem? http:

//www.oficinadanet.com.br/artigo/526/c_sharp_csharp_o_que_e_

esta_linguagem, 11 2012.

[13] o�cinadanet. SQL server. http://www.oficinadanet.com.br/area/13/sql_server, 11 2012.

57

Page 71: Instituto Politécnico da Guarda Aplicação web de gestão de ...bdigital.ipg.pt/dspace/bitstream/10314/1796/1/João Gonçalves... · O trabalho consistiu em desenvolver uma aplicação

BIBLIOGRAFIA 58

[14] online24. IBAN e SWIFT - online24. http://www.online24.pt/

iban-e-swift/, 11 2012.

[15] Del�m Pereira. Instituição de acolhimento, 11 2012.

[16] Seambox. CRM online para pequenas e médias empresas - gestão da rela-ção com clientes - seambox.com. http://www.seambox.com/seambox/pt-pt/

features.aspx, 11 2012.