And with the greatest pleasure in this world?
And to my brothers Habib, Jed and Mounir and my sister Hela.
For all the guidance, and support that they gave me?
For all the sacrifices and the great love?
For all they have endured to satisfy all my needs and wishes?
It is in this testimony that?
Always helping me to succeed?
Always helping me to find self-confidence?
Always pushing me to do anything I put my mind to?
To all of you,?I dedicate this work.
I would like to express my sincere gratitude to the people who have allowed me to carry out my work through their sincere collaborations.
First, I would like to give special thanks to my honourable supervisor Mr. Ahmed Ayari and Ms. Manel Khiari for their proper direction, supporting assistance and guidelines in coordinating during the whole project. I am really grateful for their patience and the trust they have put on me.
Then, I would like to say thank you to all of the staff of Digit-U for their guidance and support and especially Ms. Asma Dridi our talented Scrum Master and project manager, Mr. Abderrahmen Ben Chaâbén, our tester and quality manager and Marwa Ben Salem a mobile developer, who by their judicious advice, criticism, encouragement, availability and their permanent monitoring of work, was able to enlighten me on the route to follow to complete this work and for their criticism, their encouragement, their availability as well as for welcoming me and given the means to complete this course in the best conditions.
Introduction:Insuring Houses or cars by paying for a contract with incomprehensible content and sometime useless option, is what characterize insurance.
Having to understand the needs and apply them in choosing the insurer, is what make it difficult to get the contract that we really need.
Smartphone’s market is in full evolution from year to another. Those phones, who have the intelligence equivalent to a computer, are no longer a mean of communication only, but, they became an inseparable gadget that people are using daily. And by providing internet within them, they went from just a way to communication to a way of getting information, achieving task remotely and even buying and paying without the need of been present physically.
In recent years, the digital transformation has been a major challenge, and one that has not escaped this emergence is the insurance sector. It is now essential to know and adapt to new consumer habits, to propose new relationships between insurers and policyholders, and to meet their needs for simplicity, efficiency and immediacy.
Mobile applications are thus an integral part of the innovation and digitization initiatives that are required in the insurance world, which result the presence of two strong trends standing out today: integrating mobile into an Omni-channel strategy and creating a positive mobile experience.
The essentials: they present the basic features of contract management and claims, which are the heart of the insurance business.
Practices: services that troubleshoot and simplify the lives of users like sending needed document to make contract.
The specific: often the subject of full applications, they are proposals and ancillary services that sometimes address a very specific clientele.
With this project, we aim to solve those issues and put technology in service of insurer and their client by developing an android mobile application: Leocare.
Chapter 2 is about the problem description and the objective of the internship, and also a look at the requirement aimed to be satisfied and goals to be achieved and explains some concepts related to the general context of the project. We will finish by presenting the agile development environment in which I was able to work, by comparing to other developing environment and the means used within the process.
Chapter 3 describes the architecture, the technology used and the steps taken to design and model the application core.
subject, and finally, we present our methodological framework.
Figure 1: Presentation of the logo of OrikamiOrikami is a Dutch data Science Company, it is located in the Center of Nijmegen, which for the most part works on a commission basis. There are about 15 employees and there is a good mutual atmosphere.
Orikami’s mission is to make the data that a company collects transparent to the company itself. They do this with a team of people who each have their own expertise. The way to the comprehensible data is written down step by step, so that it is reproducible for use in studies. Orikami provides results that can be shared directly by the company. Orikami also has two own products; namely MOMALA and MS Sherpa.
1. A mobile app for both iOS and Android. This allows the MS patients to see their personal prediction and do different tests.
2. A dispatcher, this is a server that runs in the background and ensures that tasks and tests for MS patients are scheduled.
3. A wearable application. For the collection of medical data, one can use a fitbit. The data collected from it goes via an application to the database.
to assess walking endurance, that takes less time to perform and is a smaller burden to persons with MS, especially to those with decreased mobility.
In order to facilitate communication between the members of all Orikami teams, we resorted to using the Slack tool.
It is a communication tool that allows each team to gather all their exchanges and documents in a single application.
focus groups according to the teams and projects of each company.
shared and all related conversations.
V.2 TrelloIn Orikami we use Trello to manage Sprints, it is a visual collaboration tool that gives you, and everyone you work with, perspective on what needs to get done. A Trello board is flexible and open to interpretation, meaning you can use it to apply any productivity frameworks you’re learning about here to your daily routine. From creating powerful to-do lists to organizing all of your documents and brainstorms, Trello is a great productivity tool to help you manage your time and projects effectively.
Asana is an online project management system. In Orikami we use Asana to create projects, assign tasks to our team members, comment,share documents and set schedule all in one interface.
In this chapter we exposed the background of the project, the host organism and the context of the internship. The next chapter will cover the State of the art by presenting the problematic and some existent solution, also the aim of this project by the solution proposed and the methodology adopted for our project.
already in the market , what we propose as a solution and what technologies used .We conclude by the chosen methodology to manage our project life cycle.
About half of the MS population is cognitively impaired, affecting their employment status and social functioning. Walking limitations are also among the most visible manifestations of MS.Some people with severe MS may lose the ability to walk independently or at all.
In order to deepen our understanding of the subject and to have a clearer idea of our project, we conducted a study on some mobile applications that fit into the same framework as our work and to achieve a better understanding of Application framework of our project.
Vyntus WALK lets patients perform a six-minute walk test (6MWT) wearing wireless sensors that communicate data to a tablet PC. The workflow-driven application seamlessly integrates with our SentrySuite® diagnostic platform for central data management and reporting.
The six-minute walk test (6MWT) measures the distance an individual is able to walk over a total of six minutes on a hard, flat surface. The goal is for the individual to walk as far as possible in six minutes. The individual is allowed to self-pace and rest as needed as they traverse back and forth along a marked walkway. Clinicians such as Doctors, Nurses, Exercise Physiologists, Physiotherapists and other Allied Health Staff are involved in the process of 6MWT.
This a simple app that makes it easy to calculate predicted 6 minute walk for your patients. You can calculate using metric or imperial system.
As mentioned in the introduction, the 2MWT (2-Minute Walking Test) has been proposed as a variant of the frequently used 6-Minute Walking Test to assess walking endurance.
It takes less time to perform and is a smaller burden to persons with MS, especially to those with decreased mobility.
The 2MWT test will collect more and good quality data (Accelerometer, Battery ,Device Motion, Gyroscope..).
IV.2 Xcode is a Mac application which provides a programming environment (editor, documentation, project manager, debugger and compiler) for writing scripts and applications. It is especially suited for writing programs in C, C++, Objective C, Cocoa, Ruby and Python. XCode is installed on all the CoMPLEX computers and can also be downloaded for free from the Mac Dev Center after you sign up for a free account.
IV.5 CocoaPodsCocoaPods manages library dependencies for your Xcode projects.
The dependencies for your projects are specified in a single text file called a Podfile. CocoaPods will resolve dependencies between libraries, fetch the resulting source code, then link it together in an Xcode workspace to build your project.
Ultimately the goal is to improve discoverability of, and engagement in, third party open-source libraries by creating a more centralized ecosystem.
a mobile developer and want to extend an application across more than one platform, without having to re-implement it with each platform’s language and tool set.
a web developer and want to deploy a web app that’s packaged for distribution in various app store portals.
The AWS Mobile SDK helps you build high quality mobile apps quickly and easily. It provides access to AWS Mobile services, mobile-optimized connectors to popular AWS data and storage services, and easy access to a broad array of other AWS services.
To reduce the complexity of problems and meet business requirements in a shorter time and in a cost-effective way, software development requires following a working methodology that guarantees control throughout the development cycle and provides a clear visibility on projects. At Orikami , we opt for agile methodologies and more specifically the Scrum methodology.
and include changes to the project in a matter of weeks.
are a manageable unit that help to focus on high-quality development, testing andcollaboration, they help on minimizing bugs and solving them in a quick pace.
fix and in many case, final product can be different than original view.
any time and that increase the timeline period.
they must be skilled in a variety of area.
documentation over working software which is the preference of Agile Manifesto.
planning, daily stand-up, sprint demo, and sprint retrospective.
time and that increase the timeline period.
skilled in a variety of area.
As a piece of software is being developed using traditional methods, the release intervals slow down and become less frequent over time. This is a result of having too many features that need to be incorporated and not enough time to implement them. This common occurrence can be avoided with scrum because of techniques like sprints and backlogging. And to conclude, the reason why to choose Scrum is the fact that it’s about humanizing the process so that a team can optimize its pursuit of a goal. It can make your team better and in turn it can make a better product.
This chapter allowed a brief description of the problematic, the presentation of some existent solution and the working environment . this chapter presented the aim of this project by the solution proposed and will conclude by the methodology adopted for our project. The next chapter will cover the the Sprint 0 about Specification Analysis.
Architecture for every Application and Plugins.
? Mobile application and Cordova plugin user: MS Patient plays a main role, he will be the responsible of the 2MWT Test.
next two subsections we will specify the functional and non-functional requirement.
?The plugin and the app should use a a cross-platform library (Sensing Kit) to collect sensor data.
?The app and the Cordova should records sensor data to CSV files.
?Zip files and upload them to S3.
Stage 1: Will send GPS accuracy updates, so we can wait for a good GPS signal.
Stage 2: Will playback countdown audio (5 … 1), so the user can put the smartphone in his pocket.
Stage 3: Will automatically finish after 2 minutes.
. Screen ON or OFF : collecting data from Sensors.
of analyzing a UML system.
system, so they are user-oriented vision of what needs instead of a computer vision.
As a product owner I check if there is other 2mwt Tests in the phone storage and upload all the tests into S3 storage 29 As a product owner I delete all the tests from the phone storage. 30 Table SEQ Table * ARABIC 1: Product BacklogIII.6 Sprint Backlog:After product backlog scrum team and scrum master elaborate the Sprint backlog to specify task to be done for each Sprint. Those tasks are chosen according to priority and information about it. If a task is not clear or depend on other task it will be delayed to the next sprint till all requirement is prepared.
Figure 2 SEQ Figure * ARABIC 3: State Machine Diagram OF the Cordova PluginIII.8 Application Architecture:III.8.1 IOS App Architecture:For our IOS App we use MVC pattern as structure to our project in order to simplify development, testing, and maintenance. However, rather than focusing on the relationship or interaction between specific objects and types, the MVC pattern is applied to the entire application.
III.8.1.1MVC:The MVC pattern is the idea of separation of concerns, which is why this phrase often comes up. Separation of concerns just means keeping the different sections of an application apart from one another and is done to make those parts easier to develop, maintain, and test.
The model, which is the M in MVC. The model contains the application’s data. ?
The view, which is the V in MVC. The view generates the output from the model ?that is shown to the user. ?
The controller, which is the C in MVC. The controller responds to user interaction and is responsible for updating the model and the view to reflect change in the application state. ?
So for that we need to have an object that represent the state of the plugin and we want to change the state by changingthat object so The State Pattern is useful for that.
III.8.2.1State Pattern:The State Pattern allows an object to alter its behavior when its internal state changes. The object will appear to change its class.
The benefit of the State pattern is that state-specific logic is localized in classes that represent that state.
Figure 2 SEQ Figure * ARABIC 5: State PatternContext: • defines the interface of interest to clients, • maintains an instance of a Concrete State subclass that defines the current state.
State: defines an interface for encapsulating the behavior associated with a particular state of the Context.
Concrete State: each subclass implements a behavior associated with a state of Context.
IV. First SprintIV.1 Introduction:The term Sprint is defined as an iteration in Scrum where an application is in a period of production. For this project, each Sprint would finish with a release version that would be tested and delivered to the product owner for revision and feedback. a release is product of sufficient value to the end users that can be used.
Sprint duration vary from 2 to 4 weeks. it is defined during the sprint planning by the different collaborator in a Scrum team. the duration of Sprints are not the same, First sprint is about 3 weeks and the last is about 2 weeks. In this chapter, we will discuss the user stories of our sprints to produce a potentially deliverable product after each sprint.
IV.2 Sprint Backlog:Once we have defined the goal of our sprint, it’s time to decide which stories to include in it. Specifically, what stories from our product backlog will be included in the sprint backlog. The following table summarizes the backlog of our first sprint.
Next, I will define the main four activities in a sprint which are functional specifications, design, coding and testing.
Figure 2 SEQ Figure * ARABIC 6: Sprint 1 Use caseNext, I will describe each use case from the point of view of actors, objectives, pre-condition, post-condition and scenarios.
In the following tables, I will explain precedent points for each use case.
Pre-condition The account to be created does not already exist.
User connected to an internet network.
Main flow of events User launch 2MWT App.
User clicks the ‘LOGIN’ button.
User clicks the ‘Enable’ button.
Pre-condition User have permissions to access to Device Motion, Location.
Main flow of events User set the name of experiment.
Main flow of events 1. User could stop the 2mwt at any seconds.
3. System delete current experiment.
4. System back to form UI.
Table SEQ Table * ARABIC 8: Stop 2mwt Use caseV.3.2 Sequence Diagram:This part implements the sequence diagrams as well as the class diagram.
Sequence diagrams are a dynamic modelling UML presentation as they specifically focus on the processes and objects that live simultaneously, and the messages exchanged between them to perform a function before the lifeline ends. The figures below are sequence diagrams associated with each use case per actor.
Next the sequence diagram for Authentication’s use case. Within this functionality a MS Patient will have the opportunity to register and sign in to 2MWT App.
Next the sequence diagram for Permission’s use case. Within this functionality a MS Patient will enable the Location, Device Motion and Notification Permissions.
Next the sequence diagram for stop 2mwte’s use case. Within this functionality a MS Patient stop the 2mwt.
Figure SEQ Figure * ARABIC 31: STOP Sequence DiagramIV.4 Design:IV.4.1 Class Diagram:A class diagram represents the static aspect of an application. By showing a collection of classes, interfaces, associations, collaborations and constraints, it describes the attributes and operations of a class.
IV.4.2 Sprint Results:IV.5 Conclusion:Throughout this Sprint, we have presented the design and analysis part of the application by putting different diagram and the most important scenarios.?In the next Sprint, we will present in detail Stage One for the Cordova Plugin.
V. SECOND SprintV.1 Introduction:Sprint is the heart of Scrum. it is a block of time during which an increment of product will be realized. All sprints have a constant duration and never overlap, which means that a sprint cannot start until the previous one is finished. In case of a task cannot be done in a specific sprint it should be scheduled during the next one.
This Sprint’s goal is to Create a Cordova plugin containing the function of the first sprint Sending GPS Accuracy, Collect Data from Sensors and save Data to CSV files.
V.2Cordova plugin Role:The Cordova Plugin uses events instead of callbacks.
In the callback model – which is default for Cordova – every method invocation receives a single response through a callback.
In the event model, there is a single event emitter which emits events. Every method invocation emit an event as a response. Native code can emit additional events to notify about matters such as GPS accuracy.
“ERROR” 1 = No Permission After “start()” or “startWalkingExperiment()”, when an error occurs.
This Sprint’s goal is to Create a Cordova plugin containing the function of the first sprint with Sending GPS Accuracy, Collect Data from Sensors and save Data to CSV files.
Next, I will describe each use case from the point of view of actors, objectives, pre-condition, post-condition and scenarios.
2mwt plugin send GPS accuracy updates.
2mwt plugin Create a folder experiment and Stage one.
System show GPS accuracy updates.
2. System call stop function.
3. 2mwt plugin stop sensing.
4. 2mwt plugin delete current experiment.
5. 2mwt plugin send “stopped” message to system.
6. System show GPS UI.
V.3.2 Sequence Diagram:This part implements the sequence diagrams as well as the class diagram.
IV.4 Design:IV.4.1 Class Diagram:A class diagram represents the static aspect of an application. By showing a collection of classes, interfaces, associations, collaborations and constraints, it describes the attributes and operations of a class.
IV.4.2 Sprint Results:IV.5 Conclusion:Throughout this Sprint, we have presented the design and analysis part of the Cordova plugin by putting different diagram and the scenarios.?In the next Sprint, we will present in detail Stage Two for the IOS Application.
VI. Third SprintVI.1 Introduction:This Sprint’s goal is to present the third iteration of this project: Stage two. We continue like previous sprints, by following the same section’s schema.
Next, I will define the main activities in a sprint which are functional specifications, design, coding and testing.
Figure 39: Sprint 3 Use case.
User have confirmed the GPS accuracy.
System Create a Stage two folder into the experiment folder.
User can stop Countdown stage.
System save CSV files into stage two folder.
V.4 Design:V.4.1 Class Diagram:Below we present a partial class diagram that represent application’s class till this Sprint.
V.4.2 Sprint Results:V.5 Conclusion:Throughout this Sprint, we have presented the design and analysis part of the application by putting different diagram and the most important scenarios.?In the next Sprint, we will present in detail Stage Two for the Cordova Plugin.
VII. Fourth SprintV.1 Introduction:This Sprint’s goal is to Continue working with the Cordova plugin, this plugin will have the function of the third sprint Starting Countdown Stage.
V.2Cordova plugin Role:In this sprint The Cordova Plugin will use events instead of callbacks similar to the second sprint.
Figure 43: Sprint 4 Use case.
Pre-condition User have confirmed the GPS accuracy.
2mwt plugin play notification sound and vibration.
V.4.2 Sprint Results:V.5 Conclusion:Throughout this Sprint, we have presented the design and analysis part of the Cordova plugin by putting different diagram and the scenarios.?In the next Sprint, we will present in detail Stage Three for the IOS Application.
VII. Fifth SprintVI.1 Introduction:This Sprint’s goal is to present the fifth iteration of this project: Stage three. Stage three will handle the 2mwt updates and uploading experiment to S3 bucket. We continue like previous sprints, by following the same section’s schema.
Figure 47: Sprint 5 Use case.
The 2mwt running stage will start automatically after the countdown stage.
Post-condition 2mwt running Stage is Finished.
Pre-condition The 2mwt running Stage is Finished.
Post-condition Folder experiment is uploaded to s3 bucket.
System check if there any older experiments in iPhone ‘storage and upload them to s3 bucket and delete them at the end.
V.4.1 Class Diagram:Below we present a partial class diagram that represent application’s class till this Sprint.
V.4.2 Sprint Results:V.5 Conclusion:Throughout this Sprint, we have presented the design and analysis part of the application by putting different diagram and the most important scenarios.?In the next Sprint, we will present in detail Stage Three for the Cordova Plugin.
II Cordova plugin Role:In this sprint The Cordova Plugin will use events instead of callbacks similar to the pervious sprints.
The nextStage method will have another two result one for starting the 2mwt running stage and one for the finish of 2mwt running stage.
The stop method will stop the 2mw test and delete the experiment.
III Sprint Backlog:This sprint will be different from the pervious the experiment will be uploaded automatically after the 2mwt remaining seconds finished.
Figure 52: Sprint 6 Use case.
In this use case we add another role is to stop collecting data from sensors, save stage 3 to our experiment folder and uploading the experiment to s3 bucket using AWS SDK (transfer utility).
Post-condition 2mwt running Stage is Finished and experiment uploaded to s3 bucket.
2mwt plugin send “Running” message.
2mwt plugin create stage Three.
2mwt plugin check if there any older experiments in iPhone ‘storage and upload them to s3 bucket and delete them at the end.
V Design:V.1.1 Class Diagram:Below we present a partial class diagram that represent application’s class till this Sprint.
V.1.2 Sprint Results:VI Conclusion:Throughout this Sprint, we have presented the design and analysis part of the Cordova Plugin by putting different diagram and the most important scenarios.