DataRank - coins-lab.orgpeople.coins-lab.org/ocheikhrouhou/encadrement/pfe-isima/Raport... · Web...

95
DECLARATION We hereby declare that this submission is our own work and that to the best of our knowledge and belief, if contains published or written by another person the source exist in the biography. Further it does not contain material or facts which to a substantial extent has been accepted for the award of any degree of a university or any other institution except where an acknowledgement.

Transcript of DataRank - coins-lab.orgpeople.coins-lab.org/ocheikhrouhou/encadrement/pfe-isima/Raport... · Web...

Page 1: DataRank - coins-lab.orgpeople.coins-lab.org/ocheikhrouhou/encadrement/pfe-isima/Raport... · Web viewC# programming language, ... will be a MySQL database server. The client can

DECLARATION

We hereby declare that this submission is our own work and that to the best of our knowledge and belief, if contains published or written by another person the source exist in the biography. Further it does not contain material or facts which to a substantial extent has been accepted for the award of any degree of a university or any other institution except where an acknowledgement.

Page 2: DataRank - coins-lab.orgpeople.coins-lab.org/ocheikhrouhou/encadrement/pfe-isima/Raport... · Web viewC# programming language, ... will be a MySQL database server. The client can

Abstract

This report details the experience and work done by Rfis Younes and Zaied Ahmed, on the Final year project. The final year project named DataRank. is a Desktop software designed to be used by Claim adjusters to manage their interactions with clients, claimants and vehicles.

DataRank provides an email interface able to contact clients and to send the rapports on Pdf Format, and to be used for other purposes too. DataRank takes advantage of a concept known as Agile System Life cycle, which has several benefits. Being implemented on C# and wpf using MVVM (Models, Views, View Models) Make the application more fixable.Tight integration with a Cloud database guaranties the security of all information and interactions between the application and the data.We hope that this flexible and extensible Project will provide a new perspective how Data can be stored and retrieved, especially when both desktop and information are plentiful.

Page 3: DataRank - coins-lab.orgpeople.coins-lab.org/ocheikhrouhou/encadrement/pfe-isima/Raport... · Web viewC# programming language, ... will be a MySQL database server. The client can

Acknowledgment

DataRank has been developed successfully with a great contribution of many people in a period of three months. We like to appreciate their guidance, encouragement and willingness since without their support the project would not have been a success. We are very grateful to Mr. Cheikhrouhou Omar ([email protected]) who has been behind us guiding all the projects from the very first day and giving us very valuable feedbacks. We would like aslo to give our sincere gratitude to Mr. Chris Wright, who is the supervisor of our project for helping us in many ways to make our project a success. The project was developed with the help of Bazaar version control system that help us merge the team work. Many libraries and software used were either free or open source. We would like to thank all those involved in free/open source software development and we encourage them to continue their good work. A special thank goes to Mr. Frank Bernardi who have worked with us and was an invaluable source of information to overcome many development challenges.

We are also grateful to the whole staff of the “Institut Supérieur Informatique Mahdia” including the head of the department Ms. HAJ M'TIR Riyadh, and all the colleagues for their support.

Special Thanks for our families, those have always support us and give the best to encourage and help us to make this success.

May, 2013.

Page 4: DataRank - coins-lab.orgpeople.coins-lab.org/ocheikhrouhou/encadrement/pfe-isima/Raport... · Web viewC# programming language, ... will be a MySQL database server. The client can

Content listTables List...........................................................................................................................5

Figures List..........................................................................................................................6

General Introduction...........................................................................................................8

1 Introduction:................................................................................................................8

2 Personal motivation:....................................................................................................8

3 Aims and objectives.....................................................................................................8

4 Report structure:..........................................................................................................9

Chapter 1: Project Overview.............................................................................................10

1 Project Mission..........................................................................................................101.1 Overview:.............................................................................................................................10

1.2 Objectives.............................................................................................................................10

2 Study of the existing...................................................................................................112.1 The insurance domain..........................................................................................................11

2.1.1 Claims adjuster:............................................................................................................11

2.1.2 The heavy equipment’s insurance company.................................................................11

2.2 Solution................................................................................................................................11

Chapter 2: Analysis and requirements specification..........................................................12

1 Software development methodologies.......................................................................121.1 Which life cycle is best for the project?................................................................................12

1.2 Agile methodologies:............................................................................................................12

1.3 Why Agile life cycle...............................................................................................................13

1.3.1 The Skeleton and Heart of Scrum.................................................................................14

1.3.2 Scrum Flow...................................................................................................................14

2 Needs assessment......................................................................................................162.1 Claims Management Company, How the Business Work?...................................................16

2.2 The Technical Documents:....................................................................................................16

2.2.1 The Claim......................................................................................................................16

2.2.2 The Claim Estimate:......................................................................................................16

2.2.3 Total Loss:.....................................................................................................................17

2.2.4 The Invoices:.................................................................................................................17

2.2.5 The final report:............................................................................................................17

3 Proposal DataRank:..............................................................................................173.1 Solution Architecture and Constraints..................................................................................17

Page 5: DataRank - coins-lab.orgpeople.coins-lab.org/ocheikhrouhou/encadrement/pfe-isima/Raport... · Web viewC# programming language, ... will be a MySQL database server. The client can

DataRank June 1, 2013

3.2 The Platform.........................................................................................................................17

3.3 Security.................................................................................................................................18

3.4 Reporting..............................................................................................................................18

3.5 User Interface.......................................................................................................................19

4 Project parameters.....................................................................................................194.1 Project parameters document..............................................................................................19

4.2 Approach to the project:......................................................................................................20

4.2.1 Data binding.................................................................................................................21

4.2.2 Clear separation between the UI and logic...................................................................21

4.2.3 Easier implementation for the MVVM pattern:............................................................21

4.2.4 Ability to run in the browser.........................................................................................21

4.2.5 Microsoft firmly switched its focus on WPF..................................................................21

5 Technology Overview.................................................................................................225.1 Target Platform.....................................................................................................................22

5.2 Cloud Data base with MySQL................................................................................................22

5.3 WPF/XAML...........................................................................................................................22

5.4 C# language..........................................................................................................................22

5.5 MVVM Design pattern..........................................................................................................23

5.6 Workstation Requirements...................................................................................................24

Chapter 3: UML Modeling.................................................................................................24

1 Introduction...............................................................................................................25

2 DataRank Modeling: Use case diagram.......................................................................252.1 DataRank Actors...................................................................................................................26

2.2 General Use case diagram....................................................................................................27

2.3 Detailed use case:.................................................................................................................28

3 DataRank Modeling: Data Map..................................................................................313.1 General structure of Data Map consists of these tables below:...........................................32

3.2 Tables definition:..................................................................................................................37

4 DataRank Modeling: Class Diagram............................................................................454.1 General Class diagram..........................................................................................................45

4.2 First detailed group on class diagram (Users & Claims)........................................................46

4.3 Second detailed group on class diagram (Estimate).............................................................47

4.4 3th detailed group on class diagram (Total Loss)...................................................................48

4.5 4th detailed group on class diagram (Invoices & payments)..................................................49

4.6 5th detailed group on class diagram (Contacts).....................................................................50

5 DataRank modeling: sequence diagram......................................................................515.1 Sequence diagram for Adding claim.....................................................................................51

Page 3

Page 6: DataRank - coins-lab.orgpeople.coins-lab.org/ocheikhrouhou/encadrement/pfe-isima/Raport... · Web viewC# programming language, ... will be a MySQL database server. The client can

DataRank June 1, 2013

5.2 Sequence diagram for Adding estimate................................................................................52

5.3 Sequence diagram for Adding invoice..................................................................................55

5.4 Sequence diagram for Adding photo....................................................................................55

Chapter 4: Realization.......................................................................................................56

1 Models Classes...........................................................................................................56

2 ViewModel classes.....................................................................................................57

3 Views.........................................................................................................................59

4 Software....................................................................................................................59

5 DataRank...................................................................................................................60

Conclusion........................................................................................................................67

Abbreviation.....................................................................................................................68

References........................................................................................................................68

Annexe..............................................................................................................................69

Page 4

Page 7: DataRank - coins-lab.orgpeople.coins-lab.org/ocheikhrouhou/encadrement/pfe-isima/Raport... · Web viewC# programming language, ... will be a MySQL database server. The client can

DataRank June 1, 2013

Tables ListTable 1: WHAT TYPES OF RISKS DOES INSURANCE COVER?.................................................................11Table 2 : tblclaims.................................................................................................................................38Table 3 : tblestimates...........................................................................................................................40Table 4 : Tbltotalloss.............................................................................................................................41Table 5 : tblestimatesdetail..................................................................................................................41Table 6 : tblonetimecontact.................................................................................................................41Table 7 : tblinvoices..............................................................................................................................42Table 8 : tblorganizations.....................................................................................................................42Table 9 : Tblindividuals.........................................................................................................................43Table 10 : tblparts................................................................................................................................43Table 11 : tblphotos..............................................................................................................................43Table 12 : tblcompanyinfo....................................................................................................................44Table 13 : tblusers................................................................................................................................44Table 14 : ztbluserlevels.......................................................................................................................44

Page 5

Page 8: DataRank - coins-lab.orgpeople.coins-lab.org/ocheikhrouhou/encadrement/pfe-isima/Raport... · Web viewC# programming language, ... will be a MySQL database server. The client can

DataRank June 1, 2013

Figures ListFigure 1: the various components of an agile life cycle........................................................................12Figure 2 : Scrum Skeleton.....................................................................................................................14Figure 3 : Diagram of the Scrum process..............................................................................................15Figure 4: The General MVVM design....................................................................................................23Figure 5 : Simple scenario to explain how MVVM works......................................................................24Figure 7 : Modeling process.................................................................................................................25Figure 8 : Actors Relation.....................................................................................................................26Figure 9 : General use case...................................................................................................................27Figure 10 : Detailed use case: Normal user..........................................................................................28Figure 11 : Viewer................................................................................................................................29Figure 12: use case details for supervisor.............................................................................................30Figure 13: the general datamap...........................................................................................................31Figure 14 :Tables Related to claim........................................................................................................32Figure 15 : Tables related to estimate..................................................................................................33Figure 16 : Tables related to tblinvoices...............................................................................................34Figure 17 : LookUp Tables....................................................................................................................34Figure 18 : other tables........................................................................................................................35Figure 19 : autoMake and automodel relation.....................................................................................35Figure 20 : Equipement tables..............................................................................................................36Figure 21 : Photos tables......................................................................................................................36Figure 22 : Total Loss Tables.................................................................................................................37Figure 23:General Class Diagram..........................................................................................................45Figure 24: First detailed group on class diagram..................................................................................46Figure 25: Second detailed group on class diagram.............................................................................47Figure 26:3th detailed group on class diagram....................................................................................48Figure 27:4th detailed group on class diagram....................................................................................49Figure 28: 5th detailed group on class diagram....................................................................................50Figure 29: Adding claim sequence (2/3)...............................................................................................51Figure 30: Adding claim sequence (1/3)...............................................................................................51Figure 31: Adding claim sequence (3/3)...............................................................................................52Figure 32: Adding estimate sequence (1/3)..........................................................................................52Figure 33: Adding estimate sequence (2/3)..........................................................................................53Figure 34: Adding estimate sequence (3/3)..........................................................................................53Figure 35: Adding individuals sequence (2/2).......................................................................................54Figure 36: Sequence diagram for Adding invoice.................................................................................55Figure 37: Sequence diagram for Adding photo...................................................................................55Figure 38: MVVM on realization...........................................................................................................56Figure 39: Model Classes......................................................................................................................57Figure 40: Validation Rules...................................................................................................................57Figure 41: ViewModel example............................................................................................................58Figure 42: Views...................................................................................................................................59Figure 43:Bazaar...................................................................................................................................59Figure 44: MySQL Workbench..............................................................................................................60Figure 45:MySql Workbench................................................................................................................60Figure 46:Login interface......................................................................................................................60Figure 47: Connection parameter.........................................................................................................61Figure 48: Main Window......................................................................................................................61Figure 49: Users....................................................................................................................................62

Page 6

Page 9: DataRank - coins-lab.orgpeople.coins-lab.org/ocheikhrouhou/encadrement/pfe-isima/Raport... · Web viewC# programming language, ... will be a MySQL database server. The client can

DataRank June 1, 2013

Figure 50: Claim Details........................................................................................................................63Figure 51: Main claim...........................................................................................................................63Figure 52: Maintenance interface........................................................................................................63Figure 53: Estimate details...................................................................................................................64Figure 54: Total Loss.............................................................................................................................64Figure 55:Photos..................................................................................................................................65Figure 56: Photos.................................................................................................................................65Figure 57:invoices.................................................................................................................................66Figure 58:Contacts................................................................................................................................66

Page 7

Page 10: DataRank - coins-lab.orgpeople.coins-lab.org/ocheikhrouhou/encadrement/pfe-isima/Raport... · Web viewC# programming language, ... will be a MySQL database server. The client can

DataRank June 1, 2013

General Introduction

1 Introduction:Today the software development market has become an essential part of almost every modern

business includes the domain of Insurance company services. The insurance company refers to cover the business against the risks especially against accidents, life insurance, health insurance etc. The insurance is about a legal contract between the company and the insurant, known also as the policyholder; it determinates which claims the insurer is required to pay. That contract meets the specific needs of each business or person.

However, this domain is not fulfilled in term of software that handles this type of service, especially when we are talking about the heavy equipment’s which is different from the normal type of insurance. This shortage due to some problems we will discuss them later.

2 Personal motivation: As developers in desktop applications we have been interested in this field. The experiences of developing led us to ponder many questions as to why there is few software that interest in heavy equipment’s insurance. This project has given us the opportunity to explore the world of professional development to find out the answers to our questions. Our knowledge of this field at the start of the project was casual.

In the project process we were using new features, technologies and techniques resulting the improvement of our skills, such as the design pattern MVVM 1 and WPF 2 and C#.3

The software component constitutes our first true software development culminating in a final project. Our previous knowledge of the C++/JAVA language did not cater for the scale of this work, and our skills in C#, were only of a basic level. Through the development we have learnt everything necessary about these languages and how they can be applied to creating the project application.

3 Aims and objectives The core objectives which have been designated as fundamental to the project are:

Identify, understand and describe a range of database tables, and C# classes. Information gathered from the Client’s Assessment needs.

Suggest methods for providing reports in PDF format. Using the information gathered from database

Research and understand how to secure the connection to the Cloud Database

Stand up against SQL injection and MIM (Man in the Middle) attacks using SSL certificate which will encrypt network traffic.

1 Model, View, View-Model2 Windows Presentation Foundation3 A programming language

Page 8

Page 11: DataRank - coins-lab.orgpeople.coins-lab.org/ocheikhrouhou/encadrement/pfe-isima/Raport... · Web viewC# programming language, ... will be a MySQL database server. The client can

DataRank June 1, 2013

Understand and implement the new design pattern MVVM 4

MVVM separate the user interface from the backend (development), it provides the ability to use easily WPF mechanism (data binding, commands etc.)

4 Report structure:

This report is devised into 4 different chapters:

Chapter 1: Project Overview

This chapter will give an overview about the project and will express the personal motivation. It will discuss also the insurance domain on explaining the role of a claim adjuster. Finally we will present our solution or the project

Chapter 2: Analysis and requirements specification

This chapter will discuss the developing methodologies and express the needs assessment of the client . Then we will show our solution ‘DataRank’ where we will explain the application architecture and platform. Finally we will explain some of the used technologies in the DataRank project.

Chapter 3: UML Modeling

This chapter is the most important chapter because it will contain the project conception part .This chapter will explain and show some of the UML diagrams like class, use case and sequence diagrams. We will also show and explain our database map.

Chapiter 4: Realization

This is the last chapter, where we will show you screen shots of the most important interfaces , also each screen shot we will explained.

4 See MVVM Design pattern on 5.5

Page 9

Page 12: DataRank - coins-lab.orgpeople.coins-lab.org/ocheikhrouhou/encadrement/pfe-isima/Raport... · Web viewC# programming language, ... will be a MySQL database server. The client can

DataRank June 1, 2013

Chapter 1: Project Overview

1 Project Mission

1.1 Overview:

According to recent study made by (celent, 2006) a research and consulting firm focused on

the application of information technology in the global financial services industry; about insurance software market: “Annual enterprise software spending by insurers in North America, Europe, Japan, and China stands at roughly US$10 billion in 2006 and will grow to nearly US$15 billion in 2011. In the US alone, there are over 150 firms serving this market”, this premium growth of software development does not include the needs of heavy equipment’s insurance companies and this make it an open market.

SoTherefore, the Project should deal with all the needs of the heavy equipment’s insurance company and should provide an optimal solution address to these special requirements.

The heavy equipment’s insuring costs a lot of money even if client choose to lease the equipment rather than buy it, that’s why we must insure the high level of security when working with customers data. Also in order to get the customers and the business requirement, the insurance company must spend the time networking and sending reports and estimates about the claims to the contractor and construction companies. Also the heavy machinery contractors perform a variety of jobs including site preparation, septic installation, drainage systems, land grading, moving equipment, and roadwork. There are a few insurance companies that have developed programs especially for heavy equipment operators and their specific needs.

1.2 ObjectivesThe project should address to the insurance adjuster’s data management system specifically

designed for the work of insurance adjusters who specialize in trucks and heavy equipment. The solution will be developed using the following technologies: C# programming language5, WPF, MySQL6, the .NET Framework.

The software will be compatible with computer workstations running Microsoft Windows only. It will be designed to access data from a common location: either on a local network or in the cloud. The software will manage all data and create all reports necessary for the work of a heavy equipment insurance adjuster.

5 5.4C# language on 5.1.36 For more information see Cloud Data base with MySQL on 5.2

Page 10

Page 13: DataRank - coins-lab.orgpeople.coins-lab.org/ocheikhrouhou/encadrement/pfe-isima/Raport... · Web viewC# programming language, ... will be a MySQL database server. The client can

DataRank June 1, 2013

2 Study of the existing

2.1 The insurance domainThe insurance based in the risk management (technofunc, s.d.), and address the possibility of

financial loss. This risk is what insurance companies measure when determining whether to offer the client insurance and how much it will cost. So the insurance is a legal contract that transfers risk from a policyholder to an insurance provider.

Table 1: WHAT TYPES OF RISKS DOES INSURANCE COVER?

2.1.1 Claims adjuster:Claims adjusters investigate insurance claims by interviewing the claimant and witnesses,

consulting police and hospital records, and inspecting property damage to determine the extent of the company's liability. In the United Kingdom, Ireland, Australia, South Africa, the Caribbean and New Zealand the term Loss adjuster is used. Claims adjusters have the knowledge to complete the preparation of a property damage claim which, to an unrepresented homeowner, may be unfamiliar territory. The documents contain technical terms such as depreciation, replacement costs, and actual cash value, which may be unknown to the policyholder and a trained claims adjuster, can ensure a correct completion.

2.1.2 The heavy equipment’s insurance company Heavy machinery contractors perform a variety of jobs including site preparation, septic

installation, drainage systems, land grading, moving equipment, and roadwork. There are a few insurance companies that have developed programs especially for heavy equipment operators and their specific needs. The most important policy to a heavy equipment operator is General liability Insurance. General Liability Insurance is designed to help protect manager and his company when equipment is liable for property damage cause by company operations. General Liability Insurance is a very broad insurance policy and can contain many several exclusions. These exclusions are needed as other policy types are needed to satisfy a more specific insurance need.

Will pay for damage to your car and other damaged vehicles

Auto3.      You have a car accident

NoneNone2.      Your stocks lose value

Will cover your debts for a fixed period while you are unemployed

Mortgage and Credit

 1. You lose your job

CoverageInsuranceRisk

Page 11

omar cheikhrouhou, 05/19/13,
Page 14: DataRank - coins-lab.orgpeople.coins-lab.org/ocheikhrouhou/encadrement/pfe-isima/Raport... · Web viewC# programming language, ... will be a MySQL database server. The client can

DataRank June 1, 2013

2.2 Solution As a solution for these needs we proposed an idea that will satisfy all those needs, we called

it “DataRank”. This solution offers a range of innovative, insurance company solution that meet with the need of the customer.

Chapter 2: Analysis and requirements specification

1 Software development methodologies

1.1 Which life cycle is best for the project?

Which life cycle will work best for your project? This is an important strategic question because

making the wrong choice could lead to disastrous results of catastrophic proportions. Think about delayed deliveries, unhappy clients, project overruns, and canceled projects.

During the 80’s and early 90’s, the waterfall model was the de-facto in project delivery. With the rapid pace in software development and popular use of the Internet, many companies started shifting to more flexible life cycles such as the iterative, incremental, spiral, and agile. These new life cycle methods provide more flexibility and support fast-paced development, giving companies the edge in delivering “the first” in the industry. To date, there are dozens of life cycle methods available to choose from, each having its own advantages and disadvantages.

And those are some of the more popular life cycles:

Waterfall7

Iterative, Incremental8

Agile methodologies

1.2 Agile methodologies:

Agile methodologies (msdn, s.d.) arose from the need to develop software applications that could accommodate the fast-paced evolution of the Internet. Agile is, in some way, a variant of iterative life cycle where deliverables are submitted in stages. The main difference is that agile cuts delivery time from months to weeks. Companies practicing agile are delivering software products and enhancements in weeks rather than in months. Moreover, the agile manifesto covered development concepts aside from the delivery life cycle, such as collaboration, documentation, and others.

Figure 1: the various components of an agile life cycle

7 A traditional life cycle method8 Base on build the system incrementally

Page 12

omar cheikhrouhou, 05/19/13,
Page 15: DataRank - coins-lab.orgpeople.coins-lab.org/ocheikhrouhou/encadrement/pfe-isima/Raport... · Web viewC# programming language, ... will be a MySQL database server. The client can

DataRank June 1, 2013

1.3 Why Agile life cycle

Agile9 development methodology provides opportunities to assess the direction of a project throughout the development lifecycle. This is achieved through regular cadences of work, known as sprints or iterations, at the end of which teams must present a potentially shippable product increment. By focusing on the repetition of abbreviated work cycles as well as the functional product they yield, agile methodology is described as “iterative” and “incremental.” In waterfall, development teams only have one chance to get each aspect of a project right. In an agile paradigm, every aspect of development — requirements, design, etc. — is continually revisited throughout the lifecycle. When a team stops and re-evaluates the direction of a project every two weeks, there’s always time to steer it in another direction.

The results of this “inspect-and-adapt” approach to development greatly reduce both development costs and time to market. Because teams can develop software at the same time they’re gathering requirements, the phenomenon known as “analysis paralysis” is less likely to impede a team from making progress. And because a team’s work cycle is limited to two weeks, it gives stakeholders recurring opportunities to calibrate releases for success in the real world.

Agile methodologies are characterized as ‘agile’ when they exhibit these principles. Some examples are:

Scrum - which focuses on agile management and on how to better organize development teams?

XP (Extreme Programming) – which includes some management elements but emphasizes technical practices more and is therefore more of an agile engineering methodology in my mind.

DSDM – Dynamic Systems Development Method, one of the earliest iterative development methods.

Lean Software Development – which focuses on cutting out as much overhead as possible?

These seem to be the most widely adopted agile methodologies; however there are other agile methodologies, for instance:

Crystal Feature Driven Development Enterprise Agile (previously XBreed) Agile Unified Process

We will be using Agile-Scrum, Scrum is the most perplexing and paradoxical process for managing complex projects. On one hand, Scrum is disarmingly simple. The process, its practices, its artifacts, and its rules are few, straightforward, and easy to learn.

On the other hand, Scrum’s simplicity can be deceptive. Scrum is not a prescriptive process; it doesn’t describe what to do in every circumstance. Scrum is used for complex work in which it is impossible to predict everything that will occur. Accordingly, Scrum simply offers a framework and set of practices that keep everything visible

9 Source (best-project-life-cycle, s.d.)

Page 13

Page 16: DataRank - coins-lab.orgpeople.coins-lab.org/ocheikhrouhou/encadrement/pfe-isima/Raport... · Web viewC# programming language, ... will be a MySQL database server. The client can

DataRank June 1, 2013

1.3.1 The Skeleton and Heart of Scrum

Scrum 10hangs all of its practices on an iterative, incremental process skeleton. Scrum’s skeleton is shown in Figure 1-2. The lower circle represents an iteration of development activities that occur one after another. The output of each iteration is an increment of product. The upper circle represents the daily inspection that occurs during the iteration, in which the individual team members meet to inspect each other’s activities and make appropriate adaptations. Driving the iteration is a list of requirements. This cycle repeats until the project is no longer funded.

Figure 2 : Scrum Skeleton

1.3.2 Scrum Flow

A Scrum project starts with a vision of the system to be developed. The vision might be vague at first, but it will become clearer as the project moves forward. The Product Owner is responsible to those funding the project for delivering the vision in a manner that maximizes their ROI. The Product Owner formulates a plan for doing so that includes a Product Backlog. The Product Backlog is a list of functional and nonfunctional requirements that, when turned into functionality, will deliver this vision. The Product Backlog is prioritized so that the items most likely to generate value are top priority and is divided into proposed releases. All work is done in Sprints.

Each Sprint is an iteration of 30 consecutive calendar days. Each Sprint is initiated with a Sprint planning meeting, where the Product Owner and Team

get together to collaborate about what will be done for the next Sprint. Select from the highest priority Product Backlog The Product Owner tells the Team what is desired, and the Team tells the Product Owner

how much of what is desired it believes it can turn into functionality over the next Sprint.

10 Source (MSF, s.d.)

Page 14

Page 17: DataRank - coins-lab.orgpeople.coins-lab.org/ocheikhrouhou/encadrement/pfe-isima/Raport... · Web viewC# programming language, ... will be a MySQL database server. The client can

DataRank June 1, 2013

Sprint planning meetings cannot last longer than eight hours—that is, they are time-boxed to avoid too much hand-wringing about what is possible. The goal is to get to work, not to think about working.

Together, the Sprint planning meeting, the Daily Scrum, the Sprint review, and the Sprint retrospective constitute the empirical inspection and adaptation practices of Scrum. Take a look at the next figure to see a diagram of the Scrum process.

Figure 3 : Diagram of the Scrum process11

11Source (scrum_faq, s.d.)

Page 15

Page 18: DataRank - coins-lab.orgpeople.coins-lab.org/ocheikhrouhou/encadrement/pfe-isima/Raport... · Web viewC# programming language, ... will be a MySQL database server. The client can

DataRank June 1, 2013

2 Needs assessment

The Needs Assessment Document is a record of the stakeholder needs which motivate the

development of the system. It is essential that these needs be well understood and agreed upon before system development begins. Corrections are far easier and less costly to make at this preliminary stage vs. development or deployment.

Generally, it is not possible to meet all of the needs within the time and budget available for the project. Often the stakeholders may have conflicting needs. For example, transit or emergency response may need signal preemption, which conflicts with traffic management’s need for smooth flow. This means that tradeoffs and prioritizations may need to be made to balance the needs that will be the focus of the system. The Needs Assessment Document will be a record of the process for selecting these key needs.

2.1 Claims Management Company, How the Business Work?

The needs are a solution for a claim center, to manage and the claims adjuster Business who specialize in trucks and heavy equipment. Before introducing what the Product should contain; you have to know how the business works.

In USA, a claims management company is a business that offers claims management services to the public. Claims management services consist of advice or services in respect of claims for compensation, restitution, repayment or any other remedy for loss or damage, or in respect of some other obligation.

This job is supporting the claims adjusters; Claims adjusters investigate insurance claims by interviewing the claimant and witnesses, consulting police and hospital records, and inspecting property damage to determine the extent of the company's liability. Claims adjusters have the knowledge to complete the preparation of a property damage claim which, to an unrepresented homeowner, may be unfamiliar territory. The documents contain technical terms such as depreciation, replacement costs, and actual cash value that may be unknown to the policyholder and a trained claims adjuster can ensure a correct completion.

2.2 The Technical Documents:

2.2.1 The ClaimAn insurance adjuster first reviews a claim, which is basically a document that asks for insurance compensation for injuries or damages. For example, let's say an adjuster reviews a claim for a vehicle that has been damaged due to an accident with another vehicle. The adjuster reviews the policyholder's policy for specifics--such as his liability insurance and property insurance--and then interviews any witnesses who can attest to the policyholder's accident claim. The adjuster also reviews police reports and other documentation of the accident, which may or may not bolster the client's claim.

2.2.2 The Claim Estimate:An estimate is just an estimate of the cost involved to safely repair your vehicle to pre-accident condition. Repair estimates vary depending on several factors including labor rates, parts prices and

Page 16

Page 19: DataRank - coins-lab.orgpeople.coins-lab.org/ocheikhrouhou/encadrement/pfe-isima/Raport... · Web viewC# programming language, ... will be a MySQL database server. The client can

DataRank June 1, 2013

the amount of time necessary to perform certain repairs, but the main elements are the initial estimate, the supplemental estimate and an agreed price.

2.2.3 Total Loss:What is a Total Loss?

In general, we declare your vehicle a total loss when the cost to return the vehicle to pre-accident condition would be as much — or more — than the actual cash value of the equipment.

2.2.4 The Invoices:The invoice or bill, is the document issued by the CCC12, indicate the agreed Prices for the services of the claim. This document details all the services with the date and the price. The payment terms should be included too.

2.2.5 The final report: It’s the closing report where asking the insured to handling the listed loss.

3 Proposal DataRank:

3.1 Solution Architecture and ConstraintsIn order to best meet the custom data management needs of the business as determined by our initial needs assessment, we suggest a custom developed data management solution that Maghreb Services will name DataRank. The solution will be custom designed to Crossroads Claim Center’s (CCC) exact specifications and as such CCC will own the rights to the source code.

DataRank is an insurance adjuster’s data management system specifically designed for the work of insurance adjusters who specialize in trucks and heavy equipment. The solution will be developed using the following technologies: C# programming language, WPF, MySQL, the .NET Framework. The software will be compatible with computer workstations running Microsoft Windows only. It will be designed to access data from a common location: either on a local network or in the cloud. The software will manage all data and create all reports necessary for the work of a heavy equipment insurance adjuster.

3.2 The PlatformDataRank will be programmed with the following parameters and technologies…

1. The front end will be a desktop application for Windows PCs designed to access data from a MySQL database. The program will be installed locally on each workstation, and require access to the database.

2. The solution will provide a dynamic link to the users default email client.3. DataRank will easily accommodate up to 200 simultaneous users.4. The backend (data storage) will be a MySQL database server. The client can choose

whether the database is resident on a local server or in the cloud.5. The source code will be a combination of Microsoft’s Windows Presentation

Foundation (WPF) and the C# programming language.

12 CCC is Crossroads Claim Center’s (the company that needs the solution)

Page 17

Page 20: DataRank - coins-lab.orgpeople.coins-lab.org/ocheikhrouhou/encadrement/pfe-isima/Raport... · Web viewC# programming language, ... will be a MySQL database server. The client can

DataRank June 1, 2013

3.3 SecurityIn any solution there are three types of security to be considered…

1. User Level Security is the functionality that prevents users from accessing the program unless they have a valid user name and password. This basic level of security does NOT secure your data against hackers or individuals who have administrator access to your network, but it does perform two important roles:

a. It prevents the database from being available to unauthorized users by providing a gateway so that only registered users have access and all others are kept out.

b. It allows specific data to be limited to specific users. Data can be identified as view only or it can be entirely off limits to everyone except administrators.

2. Connection Security provides encryption to the data while in transit. It provides protection to data as it is passed to and from the database and it prevents hackers from using “listing software” or “Trojan horses” to capture passwords or view what users are doing. Connection Security can exist for software limited to a local network, but this level of security is mostly an issue for data being transferred over the Internet.

3. Database Encryption provides complete security to data while at rest. By definition administrators or hosts have complete access to any resident database. Data that is highly sensitive can be encrypted, as it is stored, so that even an administrator or host with root level access cannot view or modify it unless they possess a decryption key.

Based on our initial needs assessment we have determined that DataRank will contain user level security with two security levels: A general user level that limits users to viewing and editing only their own data, and an administrator level that provides access to everything. Connection security will also be in place since the database may reside on the internet. Ensuring secure connections to data transferred via the internet is a best practice. Typically only highly sensitive data such as bank records, credit card information or legal data is stored using database encryption so this proposal does NOT include that level of security. Maghreb services would encourage Claim Company to investigate whether there are any legal regulations in place regarding how its data is stored. In the event that privacy laws apply to any of CC’s data, we can provide encryption for selective fields.

3.4 ReportingThe proposed solution includes the following reports.

1. Field Report2. Estimate3. Total Loss4. Claim Letter5. Settlement Letter6. Closing Letter7. Statement of Loss8. Release9. Invoice10. Request for payment11. General Correspondence Letter

All reports will be designed based on the examples provided by CC. Reports will be available for view on screen, print on paper or compile in PDF files. The database will keep a record of all reports whether printed or emailed, and will store reports historically in PDF format.

Page 18

Page 21: DataRank - coins-lab.orgpeople.coins-lab.org/ocheikhrouhou/encadrement/pfe-isima/Raport... · Web viewC# programming language, ... will be a MySQL database server. The client can

DataRank June 1, 2013

3.5 User InterfaceDataRank will be a desktop application installed locally on each employee’s workstation. Although individual workstations will have their own instance of the program no data will be resident locally and the user interface will only work if a valid network connection is present.

Included in the user interface will be spell-check functionality available for all note or memo fields. The spell-check will work very much like it does in a word processor, and using it will be standardized and intuitive.

The user interface will open as all windows programs do, by means of a desktop shortcut or from the program list on the start menu. Maghreb Services prides itself on its commitment to user friendly and intuitive interfaces. The program will be easy to use and require very little training or orientation. We make a commitment to ensuring the user interface is attractive and professional. A sample of our user interfaces can be made available upon CC’s request..

The DataRank user interface will be in entirely in English.

4 Project parameters

4.1 Project parameters document

General Description:

A program used by claim adjusters to manage their interactions with clients, claimants and vehicles.Project Manager:

Frank BernardiPlatform:

Languages/Technologies:

Using Visual Studio we will develop this project in C# and WPF. We will assume availability to .NET Framework 4.0.Other Technologies, Add-Inns, dlls or software interfaces:

The project will need to interface with an email client. We will utilize a reference to the users default email application.

The ability to generate all reports in a PDF format is essential. Additionally, the ability to compile multiple reports along with photographs into a single PDF is desireable.

The project will need to include spell-check functionality, so we will need to ensure MS Visual Studio spelling dll’s are sufficient, otherwise we must purchase and implement 3rd party dlls to make this possible.Database:

The project will utilize MySQL Database in a cloud configurationReports:

All reports will be created using Microsoft Reporting Technology. This solution will

Page 19

Page 22: DataRank - coins-lab.orgpeople.coins-lab.org/ocheikhrouhou/encadrement/pfe-isima/Raport... · Web viewC# programming language, ... will be a MySQL database server. The client can

DataRank June 1, 2013

require intensive PDF functionality for all reports.Web Server/Internet considerations:

Solution will be installed as a desktop application sharing data via connection to a cloud instance of a MySQL database. A constant internet connection will be required for operation.

Front End Consideration:

Languages:

Everything will be in English.

Distinct Interface or Functionality for Administrators:

Appearance standards or client requests for the user interface:

Customer has indicated a desire that the main switchboard incorporate the appearance of file cabinets. This was not promised to them, but we should attempt this.Security Considerations:

User level security for database only.Estimated Project Man-Hours:

1,155Start Date:

1-Nov-2012Number of Developers (FTE):

3.5Projected ‘Beta Window’ Start Date:

1-May-2013Projected ‘Refinement Window’ Start Date:

1-June-2013. Once the refinement window begins the number of developers will drop to a maximum of 1.5 FTE.

4.2 Approach to the project:

Win Forms still coexists with WPF in .NET Framework and Visual Studio. It starts to become quite outdated. Just look at the progression – since its start, not really a lot of developers took it as seriously as Win Forms – after all, WPF was about eye candy and that was the first impression after seeing the existing documentation and presentations. But it wasn’t only for that. Today, WPF is the base for lots of different products, including Yahoo Messenger and Visual Studio (believe it or not, Visual Studio 2010 is based on WPF).

No separate Administrator interface is required. There will be Administrator functionality not available to general users, but this will be limited to adding new users and resetting passwords.

Page 20

Page 23: DataRank - coins-lab.orgpeople.coins-lab.org/ocheikhrouhou/encadrement/pfe-isima/Raport... · Web viewC# programming language, ... will be a MySQL database server. The client can

DataRank June 1, 2013

So what would be the possible reasons to switch to WPF from Win Forms if you didn’t yet decide to do so? I tried to outline 10 most important ones, and it is up to you whether you think these are valid points or not. It just comes from my own experience and all I can say is that I am glad I made the switch.

4.2.1 Data binding

WinForms is not even close when it comes to binding capabilities. Trust me, when you experience what is binding in WPF (how explicit and efficient it is, to be specific), you won’t be able to really go back to WinForms without looking at what WPF can do. It is pretty easy to bind controls to collections, properties and other controls’ properties by simply creating a Dependency Property instance and use some XAML properties to correctly bind to object.

4.2.2 Clear separation between the UI and logic

The UI is designed separately and the code is structured separately. But isn’t it the same you did in WinForms? You designed the form using the visual designer and then you typed the code for each event and method. That is true, however, WPF relies on a bit of a different paradigm. In WinForms, even when you used the visual designer, there was layout code generated in the language of choice (for example - C#, VB.NET, or C++) for the Designer. Extension part of your form. You could not design the form separately without actually having that code – this means that you had to know the language in order to build the UI. In WPF, the UI is based on XAML – extensible application markup language. Using XAML, you can design a specific UI without knowing what language it is going to be used with – either C# or VB.NET. Therefore, the entire UI design can be done (not necessarily) by a person who is not aware of the programming language that is going to be used (even a person who has no programming language knowledge whatsoever).

4.2.3 Easier implementation for the MVVM pattern:

Knowing that the UI is strictly separated from logic, it is pretty common to implement the MVVM pattern (Model – View – ViewModel) in WPF applications. Implementing this pattern in a WinForms application will require a bit more work on the binding layer, while WPF has the needed functionality built-in. All you need to do is to properly design the architecture for your application and implement the three pattern elements.

4.2.4 Ability to run in the browser

A WPF can run inside the browser through XBAP and access a lot of Windows functionality as long as it’s a full-trust application. This gives you the ability to host the application on a remote server and let your clients access it no matter where they are, as long as they have the proper version of .NET Framework installed.

4.2.5 Microsoft firmly switched its focus on WPF

If you look at the improvements that were introduced for WPF and those for WinForms, you can see that Microsoft is re-focusing its development plans to push WPF as the replacement for WinForms. In the latest release of Visual Studio, there were lots of improvements in WPF and Silverlight, while WinForms was standing aside. Taskbar support (jump lists, progress bar in the taskbar, overlay icons), support for touch input, Pixel Shader 3 support - all these were introduced in WPF, but not in WinForms. Platform support and active development is an important factor in deciding which sub-framework to choose. So far, WPF is in the lead.

Page 21

Page 24: DataRank - coins-lab.orgpeople.coins-lab.org/ocheikhrouhou/encadrement/pfe-isima/Raport... · Web viewC# programming language, ... will be a MySQL database server. The client can

DataRank June 1, 2013

5 Technology Overview

5.1 Target Platform The DataRank desktop application will be essentially targeted to Microsoft Windows Systems

5.2 Cloud Data base with MySQLMySQL is one of the most widely used databases today. If you’re a developer, a DBA or an IT manager – chances are your organization already has several existing applications running on MySQL, and that you have several new projects planned where MySQL would be the most natural choice. As more and more applications are being migrated to the cloud, MySQL cloud deployments have come to rule the virtualized infrastructure as well.

A cloud database is a database that typically runs on a cloud computing platform, such as Amazon EC2, Go Grid and Rackspace.

5.3 WPF/XAMLThe WPF (Windows Presentation Foundation): is a computer-software graphical subsystem for rendering user interfaces in Windows-based applications. WPF, previously known as "Avalon", was initially released as part of .NET Framework 3.0. Rather than relying on the older GDI subsystem, WPF utilizes DirectX. WPF attempts to provide a consistent programming model for building applications and provides a separation between the user interface and the business logic. WPF employs XAML to define and link various UI elements.

XAML (Extensible Application Markup Language) : is a declarative XML-based language created by Microsoft it is used extensively on WPF . In WPF, XAML forms a user interface markup language to define UI elements, data binding, evening, and other features. XAML has multiple advantages:

XAML code is short and clear to read Separation of designer code and logic Graphical design tools like Expression Blend require XAML as source. The separation of XAML and UI logic allows it to clearly separate the roles of designer and

developer.

5.4 C# language

C# (C sharp) : is a multi-paradigm programming language encompassing strong typing, imperative, declarative, functional, generic, object-oriented (class-based), and component-oriented programming disciplines. It was developed by Microsoft within its .NET.

C# is intended to be a simple, modern, and general-purpose, the most recent version is C# 5.0, which was released on August 15, 2012.

C# eliminates the use of tedious operators such as -->, and pointers. C# treats inter and Boolean as two different data types, which enable the compiler to recognize the use f = in place of = = with if statement.

Object Oriented: C# supports all the features of object oriented language such as encapsulation, inheritance and polymorphism. It treats everything as an object and there are no global functions, variables and constants in C#.

Page 22

Page 25: DataRank - coins-lab.orgpeople.coins-lab.org/ocheikhrouhou/encadrement/pfe-isima/Raport... · Web viewC# programming language, ... will be a MySQL database server. The client can

DataRank June 1, 2013

Type Safe: C# provides various type safe measures, which are: 1. dynamically allocated objects and arrays are initialized to zero. 2. Products and error message while using an uninitialized variable. 3. Checks the range of an array and warns when the access goes out of bound. 4. Unsafe casts are not allowed. 5. Enforces overflow checking in arithmetic operations.

Versionable: C# supports versioning that enables the existing applications to run on different versions with the help of new and override command.

Compatible: C# contains the .NET specifications and therefore, allows inter operation with other .NET languages.

Flexible: C# does not support pointers but you may use pointers to manipulate the data of certain classes and methods by declaring them unsafe.

Inter-operability: C# enables a program to call out any native API. It also allows the use of COM objects written in different languages.

5.5 MVVM Design patternThe MVVM (Model View View-Model) is an architectural pattern used in software engineering that originated from Microsoft

Figure 4: The General MVVM design

The key feature is that ViewModel knows nothing about View's visual elements guarantees the one way dependency from View to the ViewModel thus avoiding mutual programming ripple effects between UI and the ViewModel. Consequently, it brings the following advantages:

It's suitable for design-by-contract programming13. As long as the contract is made (what data to show and what actions to perform), the UI design and coding of ViewModel can proceed in parallel and independently. Either side will not block the other's way.

Loose coupling with View. UI design can be easily changed from time to time without modifying the ViewModel as long as the contract does not change.

13 (ZK_Developer, s.d.)

Page 23

Page 26: DataRank - coins-lab.orgpeople.coins-lab.org/ocheikhrouhou/encadrement/pfe-isima/Raport... · Web viewC# programming language, ... will be a MySQL database server. The client can

DataRank June 1, 2013

Better reusability. It will be easier to design different views for different devices with a common ViewModel. For a desktop browser with a bigger screen, more information can be shown on one page; while for a smart phone with limited display space, designing a wizard-based step-by-step operation UI can be done without the need to change (much of) the ViewModel.

Better testability. Since ViewModel does not "see" the presentation layer, developers can unit-test the ViewModel class easily without UI elements.

Figure 5 : Simple scenario to explain how MVVM works

5.6 Workstation Requirements

Microsoft Visual Studio 2010 MySQL (Client Only) MySQL Workbench Notepad++ FileZilla FTP Client Bazaar Explorer TOAD for MySQL GIMP Mozilla Firefox No Script Firefox Plugin S10 Password Vault Malware bytes Anti Spyware Putty Crystal reports for .net

Conclusion….

Page 24

Page 27: DataRank - coins-lab.orgpeople.coins-lab.org/ocheikhrouhou/encadrement/pfe-isima/Raport... · Web viewC# programming language, ... will be a MySQL database server. The client can

Activity/SequenceDiagram

ClassDiagram

Use CaseModel

System requirements

DataRank June 1, 2013

Chapter 3: UML Modeling

1 IntroductionThe Modeling is the most important phase in the development cycle of a project.

With Modeling we simplify the reality. We build models so we can better understand the system we are developing.

Aims achieved throughout modeling Model helpModels help us to visualize a system as it is or as we want it to be. Models permit us to specify the structure or behavior of a system. Models givesModels give us a template that guides us in constructing a system. Models document the decision we have mad.

The UML is a language for : Visualizing Specifying Constructing Documenting the artifact of a software-intensive system.

This figure shows the process we are following:

Figure 7 : Modeling process

2 DataRank Modeling: Use case diagramUse case diagrams are considered for high level requirement analysis of a system. So when the requirements of a system are analyzed the functionalities are captured in use cases.

Page 25

Page 28: DataRank - coins-lab.orgpeople.coins-lab.org/ocheikhrouhou/encadrement/pfe-isima/Raport... · Web viewC# programming language, ... will be a MySQL database server. The client can

Figure 8 : Actors Relation

DataRank June 1, 2013

2.1 DataRank Actors In this solution there are three actors considered from the system security types or levels.

So we limit Actors to view and edit only, and an administrator or supervisor that can do all tasks.

To access the application and start working with it, all users need to be authorized with a user name a personal password.

Viewer:

Viewer (Actor) is an authorized actor who uses DataRank to View the information of the claims, the estimate or the total loss. This actor could also View reports and use it in Pdf format. This Person could be a secretary etc...

Normal user:

Is an authorized user share viewer’s action, Also he could edit all the information in claims, estimate total loss, he could also create report and validate invoices and payments.

This person could be the claims adjuster, who could also contact Person (in contacts) and send those created reports, or any other authorized person.

Supervisor :

Or administrator, is an authorized person with access to all screens in the interface, he shares the Normal user action, and also he is the one that maintains the application by adding users, restore password, and also maintains the books and all the information related to database. This Person could be the manager or work chef act... who have has administrator security level.

So the Relation between all theseis users must be like what’s showing in Figure 8figure (16).

Page 26

omar cheikhrouhou, 05/19/13,
Page 29: DataRank - coins-lab.orgpeople.coins-lab.org/ocheikhrouhou/encadrement/pfe-isima/Raport... · Web viewC# programming language, ... will be a MySQL database server. The client can

DataRank June 1, 2013

2.2 General Use case diagramFigure 9 : General use case

Page 27

Page 30: DataRank - coins-lab.orgpeople.coins-lab.org/ocheikhrouhou/encadrement/pfe-isima/Raport... · Web viewC# programming language, ... will be a MySQL database server. The client can

DataRank June 1, 2013

2.3 Detailed use case:Figure 10 : Detailed use case: Normal user

Page 28

Page 31: DataRank - coins-lab.orgpeople.coins-lab.org/ocheikhrouhou/encadrement/pfe-isima/Raport... · Web viewC# programming language, ... will be a MySQL database server. The client can

DataRank June 1, 2013

Figure 11 : use case of Viewer actor

Page 29

Page 32: DataRank - coins-lab.orgpeople.coins-lab.org/ocheikhrouhou/encadrement/pfe-isima/Raport... · Web viewC# programming language, ... will be a MySQL database server. The client can

DataRank June 1, 2013

Figure 12: use case details for supervisor

Page 30

Page 33: DataRank - coins-lab.orgpeople.coins-lab.org/ocheikhrouhou/encadrement/pfe-isima/Raport... · Web viewC# programming language, ... will be a MySQL database server. The client can

Figure 13: the general datamap

DataRank June 1, 2013

3 DataRank Modeling: Data Map

Page 31

Page 34: DataRank - coins-lab.orgpeople.coins-lab.org/ocheikhrouhou/encadrement/pfe-isima/Raport... · Web viewC# programming language, ... will be a MySQL database server. The client can

DataRank June 1, 2013

3.1 General structure of Data Map consists of these tables below:

Figure 14 :Tables Related to claim

Page 32

Page 35: DataRank - coins-lab.orgpeople.coins-lab.org/ocheikhrouhou/encadrement/pfe-isima/Raport... · Web viewC# programming language, ... will be a MySQL database server. The client can

DataRank June 1, 2013

These are the main principle tables that all other tables with move around them. As we can see that we have a tblclaims that has multiple relations, with tblestimates , tblinvoices and tbltotalloss.

Figure 15 : Tables related to estimate

This diagram [Fig2] shows the relations with the table tblestimates, one claim can have one or multiple estimates, but usually one estimate, for an estimate we will add a selected auto Make and

Page 33

Page 36: DataRank - coins-lab.orgpeople.coins-lab.org/ocheikhrouhou/encadrement/pfe-isima/Raport... · Web viewC# programming language, ... will be a MySQL database server. The client can

DataRank June 1, 2013

auto Model coming from the tblautomodel, an every estimate has details that’s why we had the tblestimatedetails table. When adding a vendor (organization) the user has choices, one is to select from the organization from the table tblorganization using the foreign key, or two the user create new organization, in this situation he has again two choices one is to save the new organization permanently in tblorganization or make it OneTimeContact where he does not need it to be in the organization table and it will be stored in tblonetimecontact.

Figure 16 : Tables related to tblinvoices

This diagram shows the interactions with the invoice table. A claim can have multiple invoices but it’s rare, we have descriptions for every service we are paying, multiple charges for one invoice, and this operation is done in tblinvoicescharges table. Table tblinvoices is related also to other table which is tblinvoicessub that describes the quantity of items description and the total price for them, finally tblinvoices table has a relation with tblpayments where the user will complete the invoice steps and make the payment necessary information.

Figure 17 : LookUp Tables

These are what we call ‘look up tables’, they are tables that generally designed for maintenance, and generally represented as combo boxes, and they have relations with almost all other tables.

Page 34

Page 37: DataRank - coins-lab.orgpeople.coins-lab.org/ocheikhrouhou/encadrement/pfe-isima/Raport... · Web viewC# programming language, ... will be a MySQL database server. The client can

DataRank June 1, 2013

Figure 18 : other tables

This diagram has multiple tables, tbladdresses is where we will store common addresses in our contacts, tblcompanyinfo has all information about the company, ztblupdateperformed (or we call it Z tables) is a system table that we need to store all updates made on the database, lutblreports (is a lookup table) is used to store the report name and caption that we will need later for report generation and finally we have the tblcommunication table.

Figure 19 : autoMake and automodel relation

This diagram shows that one auto make can have multiple models, this will be multiple times .

Page 35

Page 38: DataRank - coins-lab.orgpeople.coins-lab.org/ocheikhrouhou/encadrement/pfe-isima/Raport... · Web viewC# programming language, ... will be a MySQL database server. The client can

DataRank June 1, 2013

Figure 20 : Equipement tables

This diagram shows one equipment type(tblpartsequipment) can have one/multiple sections (tblpartssections)using foreign key pEquipmentKey and one section can have one/multiple parts (tblparts)

Figure 21 : Photos tables

This diagram shows that a claim must have one/multiple photos , the table storage.photo is a table stored in a second schema so we don’t slow down the connection , this table is used also to restore deleted images.

Page 36

Page 39: DataRank - coins-lab.orgpeople.coins-lab.org/ocheikhrouhou/encadrement/pfe-isima/Raport... · Web viewC# programming language, ... will be a MySQL database server. The client can

DataRank June 1, 2013

Figure 22 : Total Loss Tables.

3.2 Tables definition:For the look up tables, most of those definition will be on the annex.

tblclaims : is one of our main principle tables, it’s used to store information such as the insured and the claimant information (name, address, phone, city …), the date when the claim is registered, also store the auto make and model and VIN number using the table tblautomodel as lookup Table, this table is related to tblestimates where it do estimate about the accident and return us an predicted amount of money for recover or it will decide that this is a total loss, tblestimates will share some information like auto make , auto model , VIN , deductible, storage, salvage, towing…

Page 37

Page 40: DataRank - coins-lab.orgpeople.coins-lab.org/ocheikhrouhou/encadrement/pfe-isima/Raport... · Web viewC# programming language, ... will be a MySQL database server. The client can

DataRank June 1, 2013

Table 2 : tblclaims

TABLE COLUMN DESCRIPTION DataType

tblc

laim

s

clKey Claim primary key Int(10)clFileNumber A unique identifier for each claim record that is uses

custom identifying features defined by the userVarchar(50)

clDateAssigned Claim date DatetimeclExaminer Examiner name Int(10)clInsuredName Insured name Varchar(45)clInsuredAddress Insured address Varchar(100)clInsuredContact Insured contact Varchar(45)clInsuredHomePhone Insured home phone number Varchar(45)clInsuredBusPhone Insured business phone number Varchar(45)clInsuredFax Insured fax number Varchar(45)clInsuredMobilePhone Insured mobile phone number Varchar(45)clInsuredEmail Insured email address Varchar(45)clInsuranceCo The orgKey of the insurance company that holds the

policy for the given claimInt(10)

clInsuranceClaimNum The claim number assigned by the insurance company Varchar(50)clPolicyNum The unique identifier of the insurance policy (the

account between the insured and the insurance company)

Varchar(50)

clDeductible Quantity of money would be reduced Decimal(19,4)clPolicyDates The ‘from’ and ‘to’ dates of the insurance policy Varchar(50)clDateOfLoss The Date of loss DatetimeclTypeOfLoss Describe the type of loss Varchar(50)clAutoYear Auto year Varchar(4)clAutoMake Auto make Varchar(50)clAutoModel Auto model Varchar(50)clAutoVIN Auto VIN number Varchar(50)clOdometer The reading on the vehicles odometer DoubleclOdometerType Miles/Kilometers/Hours – in most cases it will be miles

but odometers for boats are recorded in hoursTiny int(3)

clLicensePlate The matriculation number of the vehicle Varchar(50)clAutoStatedValue The value of the vehicle as defined in the insurance

policyDecimal(19,4)

clAutoLossPayee The person or organization to whom the payment is made in the case of an insurance claim

Varchar(50)

clOtherPayee Sometimes there are two payees Varchar(50)clAutoLocation Auto location, coordinates Varchar(255)clAutoAddress Auto address Varchar(255)clClaimantName Claimant name Varchar(50)clClaimantAddress Claimant address Varchar(50)clClaimantContact Claimant contact Varchar(50)clClaimantHomePhone Claimant home phone number Varchar(50)clClaimantBusPhone Claimant business phone number Varchar(50)clClaimantMobilePhone Claimant mobile phone number Varchar(50)clClaimantFax Claimant fax number Varchar(50)clClaimantEmail Claimant email address Varchar(50)

Page 38

Page 41: DataRank - coins-lab.orgpeople.coins-lab.org/ocheikhrouhou/encadrement/pfe-isima/Raport... · Web viewC# programming language, ... will be a MySQL database server. The client can

DataRank June 1, 2013

clPhoneContactDate Phone Contact date DatetimeclInspectionDates Inspection date Varchar(50)clOperator The individual operating the vehicle Varchar(50)clCargo A description of any cargo that may have been in the

vehicleVarchar(50)

clGeneralRemarks General Remarks Varchar(50)clDirectionOfPay Indicates how the payment is made Varchar(50)clAccidentDescription Describe the accident description Varchar(50)clAmountOfDamage A brief description of the damage to the vehicle Varchar(50)clActualCashValue The amount that the vehicle is worth if sold as is Decimal(19,4)clActualCashDescription As description of the actual cash value if necessary Varchar(50)clRecommendedSettlement The amount that is being suggested to the insurance

company for settling the claimDecimal(19,4)

clBetterment The amount that the insured is gaining by having the repairs done in the event that after the accident the vehicle is actually worth more than before the accident

Decimal(19,4)

clBettermentDescription Betterment description Varchar(50)clTowing Towing cost Decimal(19,4)clTowingDescription Description of towing Varchar(50)clStorage Cost of storage Decimal(19,4)clStorageDescription Description of storage costs Varchar(50)clSalvage Amount gained from selling the vehicle or some of its

partsDecimal(19,4)

clSalvageDescription Description of salvage amount Varchar(50)clMiscExpense Any extra costs that go into the recommended

settlementDecimal(19,4)

clMiscExpenseDescription A description of these costs Varchar(50)

tblestimatesdetail: will store detailed information about the estimate like estimate worked hours, estimate description, parts cost, if the work is sent to other shop the ‘edsublet’ will have the costs

The tblestimates table will lead us to tblinvoices where we are going to generate the invoice based on our estimate; the invoice has a name, a date of creation and claim key.

If the estimate is a total loss then tbltotalloss is used and it will store data about the loss, such as salvage, towing, storage, deductible, tax rate and tax amount all of these are amounts of money. When adding a vendor (organization) the user has choices, one is to select from the organization from the table tblorganization using the foreign key, or two the user create new organization, in this situation he has again two choices one is to save the new organization permanently in tblorganization or make it Onetime Contact where he does not need it to be in the organization table and it will be stored in tblonetimecontact.

Page 39

Page 42: DataRank - coins-lab.orgpeople.coins-lab.org/ocheikhrouhou/encadrement/pfe-isima/Raport... · Web viewC# programming language, ... will be a MySQL database server. The client can

DataRank June 1, 2013

Table 3 : tblestimates

TABLE COLUMN DESCRIPTION DataType

tble

stim

ates

estKey Primary key Int(11)estClKey Foreign key from claim table Int(11)estYear Estimate year Varchar(4)estMake Auto make Varchar(50)estModel Auto made Varchar(50)estVIN Auto VIN Varchar(50)estInspectDate Date of inspection DatetimeestAppraiser The name of the individual who works for the insurance company

that is reviewing this claimInt(11)

estVendor Foreign key , from organization table Int(11)estVendorOT OT organization , will be stored on onetimecontact Int(11)estVendorContact

Name of organization Varchar(50)

estLaborRate Amount per hour being charged for labor DoubleestPartsDiscount

Discount on parts Float

estTaxRate Rate of tax of parts and labor for the estimate FloatestTaxableAmt The amount that tax applies to DoubleestTaxCalculated

Tax Rate * Taxable Amt Double

estRcmdSttlmnt

Total of all parts, labor and tax Double

estDeductible Deductible as defined in the insurance policy DoubleestBettermentTitle

Same as for the Claim table, but the estimate is the first place where these numbers are indicated. Upon completion of the estimate they are copied to the Claim table, but if they change in the Claim table they DO NOT change in the estimate. Sometimes a supplemental estimate is created because these values have changed. The original estimate must stay as is for legal reasons.

Varchar(50)

estBetterment “ “ “ “ DoubleestTowing “ “ “ “ DoubleestStorage “ “ “ “ DoubleestSalvage “ “ “ “ DoubleestMiscTitle “ “ “ “ Varchar(50)estMiscAmt “ “ “ “ DoubleestTotal Total estimate cost DoubleestSupplement

Return true if this estimate modifies a previous estimate Bit(1)

estFilledIn Return true if the estimate is finished totally Bit(1)estTLoss Return true if this estimates has an associated total loss record. The

total loss record happens when the recommended settlement is greater than clAutoStatedValue

Bit(1)

Page 40

Page 43: DataRank - coins-lab.orgpeople.coins-lab.org/ocheikhrouhou/encadrement/pfe-isima/Raport... · Web viewC# programming language, ... will be a MySQL database server. The client can

DataRank June 1, 2013

Table 4 : Tbltotalloss

TABLE COLUMN DESCRIPTION DataType

Tblto

tallo

ss

tlKey Primary key Int(11)tlEstKey Foreign key from estimate table Int(11)tlAverageQuote An average of all the values in the sub tables called

TotalLossBook and TotalLossDealerDouble

tlMisc1 Expenses used to calculate a recommended settlement from a total loss, these are copied from the comparable values in the estimate table, but if they change in the total loss it does NOT update the values in the estimate

Double

tlTowing “ “ “ “ DoubletlStorage “ “ “ “ DoubletlMisc2 “ “ “ “ DoubletlMisc1Des “ “ “ “ Varchar(50)tlMisc2Des “ “ “ “ Varchar(50)tlSalvage “ “ “ “ DoubletlStatedValue “ “ “ “ DoubletlDeductible “ “ “ “ DoubletlTaxRate “ “ “ “ FloattlTaxableAmt “ “ “ “ Double

Table 5 : tblestimatesdetail

TABLE COLUMN DESCRIPTION Data Type

tble

stim

ates

deta

il

edKey Primary key Int(11)edEstKey Foreign key from estimate table Int(11)edItem Estimate item name/description Varchar(250)edPRO A percentage of the amount an item is pro-rated Tinyint(4)edLabor Hours of working FloatedParts Parts cost DoubleedSublet The much money costs if the job will be outsourced Double

Table 6 : tblonetimecontact

TABLE COLUMN DESCRIPTION DataType

tblo

netim

econ

tact

otKey Primary key Int(11)otName Name of the contact Varchar(45)otAdress Contact address Varchar(100)otCity Contact city Varchar(45)otRegion Contact region Varchar(45)otPostalCode Contact postal code Int(11)otPhone Contact phone Int(15)otFax Contact fax Int(15)otTaxId Unique identifier for businesses assigned to them

from the governmentInt(15)

Page 41

Page 44: DataRank - coins-lab.orgpeople.coins-lab.org/ocheikhrouhou/encadrement/pfe-isima/Raport... · Web viewC# programming language, ... will be a MySQL database server. The client can

DataRank June 1, 2013

Table 7 : tblinvoices

For every invoice there is a charged items, like TRAVALING, PHONE CALLS, TAKING PHOTOS … all of these are items exists in tblinvoicescharges , these items will be added either automatically to any invoice or manually, and every item has a default cost.

tblinvoicessub will be used to store the charge description and it’s quantity and the unit price, after creating the invoice it’s time to call tblpayments, this table as it looks it will be responsible complete the invoice step by storing and managing payment method; it will store invoice key ‘pymInvKey’, payment date, type, amount to pay and the exact time when the payment is affected.

TABLE COLUMN DESCRIPTION DataType

Tblin

voic

es

invKey Primary key Int(10)invClKey Foreign key from claim table Int(10)invNumber

A number used to identify the invoice that coincides with the user’s accounting system

Varchar(15)

invDate Invoice date of creation DatetimeinvName Invoice name Varchar(50)

Table 8 : tblorganizations

tblorganizations is a table where we store the permanent organizations information, organizations that the user work with them all times also has contactType or the type of the organization, tblindividuals this table store data about individuals, names, gender, job, birthday …

TABLE COLUMN DESCRIPTION DataType

tblo

rgan

izatio

ns

orgKey Primary key Int(10)orgName Organization name Varchar(255)orgCurrent Returns Boolean value indicates if the organization is current

or has been retired. This is used in place of deleting an organization because deleting will remove historical data

Tinyint(1)

orgContactType

Organization type Int(10)

orgTimeStamp All time stamps are made automatically by the SQL server upon insert or most recent update

Timestamp

Tblindividualsorgs14 store information about individuals and organizations that’s why we have two foreign keys ‘ioIndviKey’ and ‘ioOrgKey’, which will decide for each individual which organization works for, and his department …

Table 9 : Tblindividuals

TABLE COLUMN DESCRIPTION DataType

14 See annexe

Page 42

Page 45: DataRank - coins-lab.orgpeople.coins-lab.org/ocheikhrouhou/encadrement/pfe-isima/Raport... · Web viewC# programming language, ... will be a MySQL database server. The client can

DataRank June 1, 2013

Tblin

divi

dual

sIndivKey Primary key Int(10)indivTitle Individual title Varchar(20)indivFirstName Individual First name Varchar(25)indivLastName Individual last name Varchar(30)indivGender Individual gender(sex) Varchar(7)indivCitizenship Individual nationality Varchar(25)indivBirthdate Individual birthday date DatetimeindivCurrent Returns Boolean value indicates if the individual is current or

has been retired. This is used in place of deleting an individual because deleting will remove historical data

Tinyint(1)

indivFavorite Allows users to mark a contact as favorite so they show up in a separate list if desired

Tinyint(1)

indivTimeStamp All time stamps are made automatically by the SQL server upon insert or most recent update

Timestamp

tbladdresses 15 is the table that store the common addresses of individuals and organisation s, it will store address, city, region, country, postal code, time zone …

Table 10 : tblparts

TABLE COLUMN DESCRIPTION DataType

Tblp

arts

pPartKey Primary key Int(11)pSectionKey Foreign key from partsection table Int(11)partDes Part description Varchar(50)pPartOrder Part order Smallint(6)

This table will store the parts, this table is followed with tblpartsequiptypes 16, this table is used to store equipment types,(truck, trailer …) , then it comes tblpartssections 17where we choose one/multiple sections for an equipment type using the foreign key ‘pEquipmentKey’ , then we come to add or select one/multiple parts with in tblparts using the foreign key ‘pSectionKey’

Table 11 : tblphotos

TABLE COLUMN DESCRIPTION DataType

tblp

hoto

s

phKey Primary key Int(10)phClaimKey Foreign key from claim table Int(10)phOrder Photo order Tinyint(3)phFileName Photo file name Varchar(100)phDateAdded When the photo is added Datetime

Tblphotos when a claim is registered photos would be taken from the location of the accident, these photos would be stored here, this table will store claimkey ‘phClaimKey’, photo name, and the date of the added photo

15 See annexe16 See annexe17 See annexe

Page 43

Page 46: DataRank - coins-lab.orgpeople.coins-lab.org/ocheikhrouhou/encadrement/pfe-isima/Raport... · Web viewC# programming language, ... will be a MySQL database server. The client can

DataRank June 1, 2013

Table 12 : tblcompanyinfo

tblcompanyinfo this table will store all company general info like company name, address, city, phone, taxrate, it’s generally used one time …

TABLE COLUMN DESCRIPTION DataType

tblc

ompa

nyin

fo

Id Primary key Int(11)companyname The name of the company Varchar(50)address Address of the company Varchar(50)city City Name Varchar(50)state State Name Varchar(2)zip Postal code Varchar(10)phone Phone number Varchar(15)fax Fax number Varchar(15)

Table 13 : tblusers

TABLE COLUMN DESCRIPTION DataType

tblu

sers

username Primary key Varchar(20)UserFirstName User first name Varchar(45)userLastName User last name Varchar(45)userInitials Initials of the user, sometimes used to sign a report Varchar(5)userLicenseNum User license number Varchar(45)userCurrent Boolean indicating whether or not this user is current Tinyint(1)userLevel User level or privilege Int(10)

tblusers it will be used to store user data and their level of privilege.

Table 14 : ztbluserlevels

TABLE COLUMN DESCRIPTION DataTypeztbluserlevels ulKey Primary key Int(3)

ulDescription User level description Varchar(45)ulConstant User level constant as defined in the C# User Class Varchar(30)ulGrantStatement String represents the rights for a user Varchar(200)

Ztbluserlevels This table will assign a level of utilization for every user.

4 DataRank Modeling: Class Diagram

4.1 General Class diagramBecause the diagram it too big and we can’t show it all in one page, this photo bellow represent the general class diagram, the other photo represent the detailed class diagram.

Page 44

Page 47: DataRank - coins-lab.orgpeople.coins-lab.org/ocheikhrouhou/encadrement/pfe-isima/Raport... · Web viewC# programming language, ... will be a MySQL database server. The client can

Figure 24: First detailed group on class diagram.

DataRank June 1, 2013

The global class diagram explains the way all classes interact.

We have partitioned the diagram to five detailed groups according to the importing relation of the main classes in the application. The Claims Diagram could estimate and compose of one or many estimate, and the estimate could have just one Total loss depending on the calculation and the result of search that the adjusted has make. The claim has an insurance company and an examiner, also the total loss class has salvages and dealers those are Individuals or organization.

4.2 First detailed group on class diagram (Users & Claims)

Page 45

Page 48: DataRank - coins-lab.orgpeople.coins-lab.org/ocheikhrouhou/encadrement/pfe-isima/Raport... · Web viewC# programming language, ... will be a MySQL database server. The client can

DataRank June 1, 2013

This diagram shows the class Users that handle the user information like username, firstname, lastname… it has one-one-to-many relation because a user with admin privileges can manage other users; it depends on the field UserLevel. A user can create one or many claims , the claims class is used to store claim details specially claimant details, insured details, claims class has a many relations so the software depend in this class, a claim has a composition relation with photos class, it must have one or many photos.

The claim class has a composition relation with estimates class; therefore we must have one or many estimates for each claim.

The claim is on aggregation with automake class because we still need the auto makes even after the claim remove.

Page 46

Page 49: DataRank - coins-lab.orgpeople.coins-lab.org/ocheikhrouhou/encadrement/pfe-isima/Raport... · Web viewC# programming language, ... will be a MySQL database server. The client can

DataRank June 1, 2013

To facilitate working with claims class we extracted the insured and the claimant details to separate classes; therefore for each claim we have one claimant and one insured and it's going to be a one-to-one relations.

The class reports would generate reports about estimate and claim, so there is a couple of relations, the first one is with claims and it’s one-to-one aggregation relation, the second is with the estimate relation and it’s the same relation as the claim.

4.3 Second detailed group on class diagram (Estimate)

Figure 25: Second detailed group on class diagram

The class estimates has a one-to-many aggregation relation with estimatedetails class.

Estimate details will host details about a specific estimate. For each estimate we can have only one report.

Page 47

Page 50: DataRank - coins-lab.orgpeople.coins-lab.org/ocheikhrouhou/encadrement/pfe-isima/Raport... · Web viewC# programming language, ... will be a MySQL database server. The client can

DataRank June 1, 2013

4.4 3th detailed group on class diagram (Total Loss)

Figure 26:3th detailed group on class diagram

This diagram shows the locally main class which is the TotalLoss class; TotalLoss class has a one-to-many composition relation with Salvage class, so we can have multiple Salvages for one TotalLoss.

TotalLoss have also a one-to-many composition relation with Books class, so we can have many books for each total loss.

TotalLoss have a one-to-many composition relation with Dealer class, so we can have multiple Dealers for one TotalLoss.

TotalLoss have one-to-one composition relation with report class, so we can generate one report for each totalloss.

Page 48

Page 51: DataRank - coins-lab.orgpeople.coins-lab.org/ocheikhrouhou/encadrement/pfe-isima/Raport... · Web viewC# programming language, ... will be a MySQL database server. The client can

DataRank June 1, 2013

4.5 4th detailed group on class diagram (Invoices & payments)

Figure 27:4th detailed group on class diagram

The Invoices class has a one-to-one relation with payment; one invoice can have only one payment.

The Invoices class has a one-to-one aggregation relation with InvoiceSub class, so for each invoice we can have only one InvoiceSub.

InvoiceSub class has a one-to-one relation with InvoiceCharges; one invoicesub can have only one invoicecharge.

Page 49

Page 52: DataRank - coins-lab.orgpeople.coins-lab.org/ocheikhrouhou/encadrement/pfe-isima/Raport... · Web viewC# programming language, ... will be a MySQL database server. The client can

DataRank June 1, 2013

4.6 5th detailed group on class diagram (Contacts)

Figure 28: 5th detailed group on class diagram

Page 50

Page 53: DataRank - coins-lab.orgpeople.coins-lab.org/ocheikhrouhou/encadrement/pfe-isima/Raport... · Web viewC# programming language, ... will be a MySQL database server. The client can

DataRank June 1, 2013

The Individuals class has multiple relations; the first is a one-to-many aggregation relation with class Communication, each individual has one or more record of communication (telephone, email…), the second relation is a one-to-one aggregation relation with class Address, each individual has only one record of address (address line 1 ,address line 2,city, region …), the third relation is a many-to-one composition relation with class IndividualsOrgs, multiple individuals could be included in one organization.

The Organization class can have multiple communication ways, so it has an aggregation relation one-to-many with communication. Organization can have one address record, so it has an aggregation relation one-to-one with address class.

Organization has a composition relation with IndividualsOrgs, every individualOrganization must have an organization so the relation above is one-to-one.

5 DataRank modeling: sequence diagram

5.1 Sequence diagram for Adding claim

Figure 29: Adding claim sequence (2/3)

Page 51

Page 54: DataRank - coins-lab.orgpeople.coins-lab.org/ocheikhrouhou/encadrement/pfe-isima/Raport... · Web viewC# programming language, ... will be a MySQL database server. The client can

DataRank June 1, 2013

5.2 Sequence diagram for Adding estimate

Figure 31: Adding claim sequence (3/3)

Figure 32: Adding estimate sequence (1/3)

Page 52

Page 55: DataRank - coins-lab.orgpeople.coins-lab.org/ocheikhrouhou/encadrement/pfe-isima/Raport... · Web viewC# programming language, ... will be a MySQL database server. The client can

DataRank June 1, 2013

Figure 33: Adding estimate sequence (2/3)

Figure 34: Adding estimate sequence (3/3)

Page 53

Page 56: DataRank - coins-lab.orgpeople.coins-lab.org/ocheikhrouhou/encadrement/pfe-isima/Raport... · Web viewC# programming language, ... will be a MySQL database server. The client can

DataRank June 1, 2013

Figure 35: Adding individuals sequence (2/2)

Page 54

Page 57: DataRank - coins-lab.orgpeople.coins-lab.org/ocheikhrouhou/encadrement/pfe-isima/Raport... · Web viewC# programming language, ... will be a MySQL database server. The client can

DataRank June 1, 2013

5.3 Sequence diagram for Adding invoice

5.4 Sequence diagram for Adding photo

Figure 36: Sequence diagram for Adding invoice

Page 55

Page 58: DataRank - coins-lab.orgpeople.coins-lab.org/ocheikhrouhou/encadrement/pfe-isima/Raport... · Web viewC# programming language, ... will be a MySQL database server. The client can

Figure 38: MVVM on realization

DataRank June 1, 2013

Chapter 4: RealizationDataRank is developed using the MVVM pattern. We have use visual studio 2012 as debugger and that really help us when developing.

Also we are using Prism 4.1 [ref] to rich the user interaction and data visualization and to show data in the User Controls. This framework is really helpful specially when using the binding to relate the view Models with their Views.

The Model-View-ViewModel (MVVM) pattern helps as to cleanly separate the business and presentation logic of the application from its user interface (UI). Maintaining a clean separation between application logic and UI helps as to address numerous development and design issues and have make our application much easier to test, maintain, and evolve.

All the interaction between the ViewModel and the Views comes with the commands.

[1] Models ClassesThe model in the MVVM pattern encapsulates business logic and data. Business logic is defined as any application logic that is concerned with the retrieval and management of application data and for making sure that any business rules that ensure data consistency and validity are imposed. To maximize re-use opportunities, models should not contain any use case–specific or user task–specific behavior or application logic.

Figure 37: Sequence diagram for Adding photo

Page 56

Page 59: DataRank - coins-lab.orgpeople.coins-lab.org/ocheikhrouhou/encadrement/pfe-isima/Raport... · Web viewC# programming language, ... will be a MySQL database server. The client can

DataRank June 1, 2013

Figure 39: Model Classes

Page 57

Page 60: DataRank - coins-lab.orgpeople.coins-lab.org/ocheikhrouhou/encadrement/pfe-isima/Raport... · Web viewC# programming language, ... will be a MySQL database server. The client can

Figure 40: Validation Rules

DataRank June 1, 2013

IDataErrorInfo :

Provides the functionality to offer custom error information that a user interface can bind to.

As the figure shows: show an error message for wrong values or types and deactivate the button if one of required values is not valid.

6[2] ViewModel classesThe view model is a “model of the view” meaning it is an abstraction of the view that also serves in mediating between the view and the model which is the target of the view data bindings.

Page 58

Page 61: DataRank - coins-lab.orgpeople.coins-lab.org/ocheikhrouhou/encadrement/pfe-isima/Raport... · Web viewC# programming language, ... will be a MySQL database server. The client can

DataRank June 1, 2013

The view and the ViewModel communicate via data-binding, method calls, properties, events, and

Page 59

Page 62: DataRank - coins-lab.orgpeople.coins-lab.org/ocheikhrouhou/encadrement/pfe-isima/Raport... · Web viewC# programming language, ... will be a MySQL database server. The client can

DataRank June 1, 2013

messages

Figure 41: ViewModel example

Data Binding

Data binding plays a very important role in the MVVM pattern. WPF provide powerful data binding capabilities. The view model and (ideally) your model classes should be designed to support data binding so that they can take advantage of these capabilities. Typically, this means that they must implement the correct interfaces.

Example from XAML Code:

<Button Content="Next" Command="{Binding DclickTophotoCommand}" Height="23" HorizontalAlignment="Left" Margin="755,47,0,0" x:Name="button4_Copy" VerticalAlignment="Top" Width="75" />

Page 60

Page 63: DataRank - coins-lab.orgpeople.coins-lab.org/ocheikhrouhou/encadrement/pfe-isima/Raport... · Web viewC# programming language, ... will be a MySQL database server. The client can

Figure 42: Views

Figure 43:Bazaar

DataRank June 1, 2013

7[3] ViewsThe view is what most of us are familiar with and the only thing the end user really interacts with. It is the presentation of the data. The view takes certain liberties to make this data more presentable.

8[4] SoftwareWe have also use bazaar to manage the source code in this team work.

Page 61

Page 64: DataRank - coins-lab.orgpeople.coins-lab.org/ocheikhrouhou/encadrement/pfe-isima/Raport... · Web viewC# programming language, ... will be a MySQL database server. The client can

Figure 45:MySql Workbench

DataRank June 1, 2013

MySQL Workbench:

To manage the SQL database in the cloud.

9[5] DataRank The Login interface, using only a valid username and password to Login, we also have a secure connection using SSL Certification.

Page 62

Page 65: DataRank - coins-lab.orgpeople.coins-lab.org/ocheikhrouhou/encadrement/pfe-isima/Raport... · Web viewC# programming language, ... will be a MySQL database server. The client can

DataRank June 1, 2013

Figure 46:Login interface

To change the connection parameter.

Figure 47: Connection parameter

The main interface have 3 parts, the main tab that contain a search tab for claims, individuals or organization and this to fast access the data, also a left panel contain rapid access to add claims or invoices also to users r explore reports folder. The main buttons are on top and those are adaptable for the touchscreen.

Page 63

Page 66: DataRank - coins-lab.orgpeople.coins-lab.org/ocheikhrouhou/encadrement/pfe-isima/Raport... · Web viewC# programming language, ... will be a MySQL database server. The client can

Figure 49: Users

DataRank June 1, 2013

Figure 48: Main Window

The main window has two button, Setting, Users and add users they are activated just when the user have the right as administrator.

Page 64

Page 67: DataRank - coins-lab.orgpeople.coins-lab.org/ocheikhrouhou/encadrement/pfe-isima/Raport... · Web viewC# programming language, ... will be a MySQL database server. The client can

Figure 50: Maintenance interface

Figure 52: Claim Details

Figure 51: Main claim

DataRank June 1, 2013

The Main claim windows have a search bar using the claim file number, and always double click we get more details where we can add estimates and update information.to add a claim we have to select an examiner and a company .the user could also create reports.

Page 65

Page 68: DataRank - coins-lab.orgpeople.coins-lab.org/ocheikhrouhou/encadrement/pfe-isima/Raport... · Web viewC# programming language, ... will be a MySQL database server. The client can

Figure 54: Total Loss

Figure 53: Estimate details

DataRank June 1, 2013

The estimate take information from claims automatically, so the user enter just the vendor information and the estimates details to add. To have details double click on the selected item.

If the estimate is a total Loss this we can access the total loss details when adding or updating we can also add damaged parts the net settlement will calculated automatically.

The total loss compose from Books dealer and salvage we can add them by clicking in the plus button.

Page 66

Page 69: DataRank - coins-lab.orgpeople.coins-lab.org/ocheikhrouhou/encadrement/pfe-isima/Raport... · Web viewC# programming language, ... will be a MySQL database server. The client can

Figure 55:Photos

DataRank June 1, 2013

The user also could add pictures to the claims by selecting the claim and upload it in database. For the delete we have a recycle bin where we can restart those pictures and save them back to the computer.

Page 67

Page 70: DataRank - coins-lab.orgpeople.coins-lab.org/ocheikhrouhou/encadrement/pfe-isima/Raport... · Web viewC# programming language, ... will be a MySQL database server. The client can

Figure 58:Contacts

Figure 57: invoices

DataRank June 1, 2013

The reports are Pdf files creates on the main computer and sauvgarded as pdf files to easy send by email. Those files are protected as system and hidden files.

For each claim there is an invoices could be paid or not and all of this generated in the invoice tab.

Contacts are individuals, or organization the user could also search for the individuals on a organization. There is many options for search. To add a contact it needed just to clock on the plus button.

Page 68

Page 71: DataRank - coins-lab.orgpeople.coins-lab.org/ocheikhrouhou/encadrement/pfe-isima/Raport... · Web viewC# programming language, ... will be a MySQL database server. The client can

DataRank June 1, 2013

Conclusion

Our mission consisted in the design and implementation of a Desktop application for insurance company and for the claims adjuster. The completed application will be used byEmployees of Cross Roads Claims Center, it will give them the opportunity to manage their business in a more convenient and easier than old managing way.

The realization of this project has taken several steps. We began by definingneeds and write the specifications. During the design phase, we presented the different UML diagrams to better understand the communication between different objects in the project. Because of the time constraints, we had to limit our scope of the project to suit it for 3 months. It is never considered to be a drawback since we, young software developers, MUST be able to manage time to get at a target, which is realistic, whatever the time period one has. The development time to is one of the most important resources in any software project.

Finally, we implemented our solution and the work is almost completed in order to achieve acompleted application to generate the output states as PDF files for printing or mailing and fast access to information and also providing a secure base from possible behaviors. Our course was the opportunity to learn new technologies.

Finally, this experience has sharpened our analysis capabilities and synthesis and especially strengthened our motivation, our determination and ambition.

Page 69

Page 72: DataRank - coins-lab.orgpeople.coins-lab.org/ocheikhrouhou/encadrement/pfe-isima/Raport... · Web viewC# programming language, ... will be a MySQL database server. The client can

DataRank June 1, 2013

Abbreviation

Word(s) ExplanationCelent Celent is a research and consulting firm focused on the application of information

technology in the global financial services industry

WPF Windows Presentation Foundation is a computer-software graphical subsystem for rendering user interfaces in Windows-based applications.

MVVM The Model View ViewModel is an architectural pattern used in software engineering that originated from Microsoft as a specialization of the presentation model design pattern.

C# C# is a simple, modern, general-purpose, object-oriented programming language developed by Microsoft within its .NET initiative.

Referencesbest-project-life-cycle. (n.d.). Retrieved from executivebrief : http://www.executivebrief.com/project-

management/best-project-life-cycle/

celent. (2006, May 17). celent. Retrieved from celent: http://www.celent.com/reports/coming-wave-insurance-software-consolidation

msdn magazine. (n.d.). Retrieved from http://msdn.microsoft.com/en-us/magazine/dd419663.aspx

msdn. (n.d.). microsoft msdn. Retrieved from http://msdn.microsoft.com/en-us/library/bb668964.aspx

MSF. (n.d.). Retrieved from kuainasi: http://kuainasi.ciens.ucv.ve/adsi2010-2/msf/MSF.htm

scrum_faq. (n.d.). Retrieved from cprime: http://www.cprime.com/about/scrum_faq.html

technofunc. (n.d.). technofunc. Retrieved from http://www.technofunc.com/index.php/domain-knowledge/insurance-domain

ZK_Developer. (n.d.). books zkiss. Retrieved from http://books.zkoss.org/wiki/ZK_Developer%27s_Reference/MVVM#cite_note-3

Page 70

Page 73: DataRank - coins-lab.orgpeople.coins-lab.org/ocheikhrouhou/encadrement/pfe-isima/Raport... · Web viewC# programming language, ... will be a MySQL database server. The client can

DataRank June 1, 2013

AnnexeOther tables definitions:

Tblautomodel

TABLE COLUMN DESCRIPTION DataTypeTblautomodel modelKey Model key , primary key Int(11)

modelAutoMake Auto make, foreign key ,from tblautomake table Varchar(50)modelAutoModel Auto model name Varchar(50)

tblautovin is a lookup table will be used to store the year of the auto with its vin code which is represented by two characters, tblautomake is also a lookup table it will be used to store auto makes ,it would be called in tblautomodel as a foreign key ‘modelAutoMake’ where we use it to select a auto model according to auto make

tblinvoicescharges

TABLE COLUMN DESCRIPTION DataType

tblin

voic

esc

harg

es

invchKey Primary key Int(10)InvchDescription Invoice charge Description Varchar(45)InvchDefaultRate The default rate of service Decimal(19,4)InvchAutoInclude The default items that will be auto include in the

invoiceTinyint(1)

tblinvoicessub

TABLE COLUMN DESCRIPTION DataType

tblin

voic

essu

b

isKey Primary key Int(10)isInvKey Foreign key from table invoice Int(10)isBudgetLineNum Corresponds to a Budget Line Number –

exists here for the ability to add a finance module to the database, if the client does not want a finance module then this field is not used

Int(10)

isItemDescription Service description Varchar(50)isQuantity Quantity of the service Smallint(5)isUnitPrice Total cost for services done Decimal(19,4)

tblpayments

TABLE COLUMN DESCRIPTION DataTypetblpayments pymKey Primary key Int(10)

pymInvKey Foreign key from invoice table Int(10)pymDate Payment date DatetimepymType Payment type Varchar(50)

Page 71

Page 74: DataRank - coins-lab.orgpeople.coins-lab.org/ocheikhrouhou/encadrement/pfe-isima/Raport... · Web viewC# programming language, ... will be a MySQL database server. The client can

DataRank June 1, 2013

pymNote Note field used to indicate check number or credit card authorization number, etc.

Varchar(50)

pymAmount Payment amount of money Decimal(19,4)pymTimeStamp All time stamps are made automatically by the

SQL server upon insert or most recent updateTimestamp

ztblupdatesperformed

TABLE COLUMN DESCRIPTION DataType

ztbl

upda

tesp

erfo

rmed

upKey Primary key Int(10)upUpdatePackageNum This package number is stored here so that

developers know which updates have been run and which have not been run.

Int(10)

upTimeStamp Time when updates done TimestampupUser Foreign key from users table Varchar(45)

ztblupdateperformed (or we call it Z table) is a system table that we need to store all updates made on the database.

lutbltlbooks

TABLE COLUMN DESCRIPTION DataTypelutbltlbooks TotalLossBook Total loss book primary key, the name of the book is

stored hereVarchar (45)

lutbltypeofloss

TABLE COLUMN DESCRIPTION DataTypelutbltypeofloss TypeOfLoss Description of the various reasons a vehicle is

damaged and claims are madeVarchar (50)

lutblreports

Lutblreports this table is a lookup table that will store reports labels and descriptions, this table will be used when generating reports for claim, estimate, total loss …

TABLE COLUMN DESCRIPTION DataTypelutblreports ReportKey Report primary key Int(11)

ReportName Report Name Varchar(50)ReportCaption Report Caption Varchar (50)

TABLE COLUMN DESCRIPTION DataType

t b l addKey Address primary key Int(10)

Page 72

Page 75: DataRank - coins-lab.orgpeople.coins-lab.org/ocheikhrouhou/encadrement/pfe-isima/Raport... · Web viewC# programming language, ... will be a MySQL database server. The client can

DataRank June 1, 2013ad

dres

ses

addLinkType All addresses in the database are stored in this table (except for ONE TIME addresses – see one time table for explanation). Addresses are stored for Organizations and for Individuals. If the current record is an Org address then this value is 1, if it is an Indiv address then this is a 2

Tiny int(3)

addLinkKey The primary key of either the Org table or the Indiv table, the link is determined based on [addLinkType]

Int(10)

addDescription Address description Varchar(50)addAddressLine1 Address line 1 Varchar(100)addAddressLine2 Address line 2 Varchar(100)addAddressLine3 Address line 3 Varchar(100)addCity City name Varchar(50)addRegion Region name Varchar(50)addPostalCode Postal code Varchar(25)addCountry Country name Varchar(50)addTimeZone Time zone Varchar(10)addStatus The status can be either Primary=1, Current=2

or Retired=3Tiny int(3)

addDateAdded Address added date DatetimeaddDateRetired Address retired date DatetimeaddTimeStamp All time stamps are made automatically by the

SQL server upon insert or most recent updateTimestamp

addLocation Address location, longitude and latitude Point

TABLE COLUMN DESCRIPTION DataTypetblpartsequiptypes pEquipmentKey Primary key Tinyint(4)

pEquipmentType Equipment type description Varchar(50)

TABLE COLUMN DESCRIPTION DataType

tblpartssections pSectionKey Primary key Int(11)pEquipmentKey Foreign key from equipmenttypes table Tinyint(4)pSectionOrder Section order Smallint(6)pSectionName Section name Varchar(50)

Page 73

Page 76: DataRank - coins-lab.orgpeople.coins-lab.org/ocheikhrouhou/encadrement/pfe-isima/Raport... · Web viewC# programming language, ... will be a MySQL database server. The client can

DataRank June 1, 2013

DATARANK: DESKTOP APPLICATION FOR CLAIM ADJUSTER

WITH CLOUD DATABASE

Zaied Ahmed

Rfis Younes

: الخالصة

الدروس ختم مشروع تربص إطار في التقرير هذا شهادة يندرج على للحصولفي التطبيقية , اإلجازة لمدة تربصا أجرينا حيث نظام الحاسوب أشهر 3تالبرمجياو

بإنجاز وقد Maghreb Services شركة اإلطار هذا في خبراء لمساعدة تطبيق قمنالحوادث المعدات الثقيلة المعاينة

C# ,WPF ,MySQL ,XAML, MVVM, Agile, Cloud : المفاتيح .

Résumé   :

Ce rapport s'inscrit dans le cadre du stage de projet de fin d’étude pour l’obtention du diplôme License Appliquée en système informatique et logiciel, où nous avons fait un stage  pendant 3 mois dans la Société  “Maghreb Services”. Dans ce contexte,  nous avons réalisé une application pour aider les ajusteurs pour sauvegarder les réclames d’accidents des équipements lourds.

Mots clés : C#, WPF, MySQL, XAML, Cloud, MVVM, Agile

Abstract:

This report is a part of a final year project to obtain computer system and software license, where we had an internship for three months in “Maghreb Services” Company. In this context, we made a desktop application that helps insurance adjusters who are specialized in trucks and heavy equipment.

Keywords: C#, WPF, MySQL, XAML, Cloud, MVVM, Agile

Page 74