0% found this document useful (0 votes)
37 views78 pages

Grad Report Final 0318

This document contains: 1. A bibliography section listing 9 references used in the document. 2. An outline of the document contents which includes 6 chapters and their subsections covering topics like key concepts, analysis and design, construction, product development, and a general conclusion. 3. Figures are included throughout the document to illustrate organizational charts, software screenshots, diagrams, and more. These supplement the information in the text.

Uploaded by

Yesser Bakhouche
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
37 views78 pages

Grad Report Final 0318

This document contains: 1. A bibliography section listing 9 references used in the document. 2. An outline of the document contents which includes 6 chapters and their subsections covering topics like key concepts, analysis and design, construction, product development, and a general conclusion. 3. Figures are included throughout the document to illustrate organizational charts, software screenshots, diagrams, and more. These supplement the information in the text.

Uploaded by

Yesser Bakhouche
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
You are on page 1/ 78

Bibliography

[1] Mukund Chaudhary and Ankur Kumar. PhpStorm Cookbook. Packt

Publishing Ltd, 2014.

[2] You-Shyang Chen, Chienwen Wu, Heng-Hsing Chu, Chien-Ku Lin, and

Huan-Ming Chuang. Analysis of performance measures in cloud-based

ubiquitous saas crm project systems. The Journal of Supercomputing,

74(3):1132–1156, 2018.

[3] Michael Kofler. What is mysql? In The Definitive Guide to MySQL,

pages 3–19. Springer, 2004.

[4] Rasmus Lerdorf, Kevin Tatroe, and Peter MacIntyre. Programming

Php. " O’Reilly Media, Inc.", 2006.

[5] Sergio Maffeis and Ankur Taly. Language-based isolation of untrus-

ted javascript. In 2009 22nd IEEE Computer Security Foundations

Symposium, pages 77–91. IEEE, 2009.

[6] Mathieu Peltier. Développement d’applications web avec le framework

php symfony 2.

[7] Baishakhi Ray, Daryl Posnett, Vladimir Filkov, and Premkumar De-

vanbu. A large scale study of programming languages and code qua-

lity in github. In Proceedings of the 22nd ACM SIGSOFT internatio-

nal symposium on foundations of software engineering, pages 155–165,

2014.

[8] Ken Schwaber and Jeff Sutherland. The scrum guide. Scrum Alliance,

21(19):1, 2011.

[9] François Zaninotto and Fabien Potencier. The definitive guide to Sym-

fony. Apress, 2007.


Contents

General introduction 1
1 GENERAL PRESENTATION OF THE PROJECT 3

1.1 Context of the project . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3

1.2 Presentation of the host organization . . . . . . . . . . . . . . . . . . . . . . . . . . 3

1.2.1 organizational chart . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4

1.3 State of art . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5

1.3.1 Study of the existing . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5

1.3.2 Critique of the existing . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7

1.3.3 Problematic . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 8

1.3.4 Project planning (Gantt diagram) . . . . . . . . . . . . . . . . . . . . . . . . 10

1.3.5 Meetings . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 10

1.3.6 Product backlog . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 11

1.4 Conclusion . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 12
2 Key concepts and technologies 13

2.1 CRM for small Businesses and its importance . . . . . . . . . . . . . . . . . . . . 13

2.2 Development and DevOps Environment . . . . . . . . . . . . . . . . . . . . . . . . 15

2.2.1 Development Environment . . . . . . . . . . . . . . . . . . . . . . . . . . . 15

2.2.1.1 Hardware Environment . . . . . . . . . . . . . . . . . . . . . . . . 15

2.2.1.2 Software Environment : Frameworks and Technologies . . . . . 15

2.2.2 Cloud and DevOps environment . . . . . . . . . . . . . . . . . . . . . . . . 18

2.2.2.1 Cloud and DevOps Presentation . . . . . . . . . . . . . . . . . . . 18

2.2.2.2 DevOps Philosophy . . . . . . . . . . . . . . . . . . . . . . . . . . 19

2.2.2.3 Why DevOps is important . . . . . . . . . . . . . . . . . . . . . . 19

2.2.2.4 DevOps process and principles . . . . . . . . . . . . . . . . . . . 20

2.2.2.5 DevOps Tools . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 23

internship report ii
CONTENTS

3 Analysis and design 28

3.1 Analyses of needs . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 28

3.1.1 Functional specification . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 28

3.1.1.1 Identification of actors . . . . . . . . . . . . . . . . . . . . . . . . 28

3.1.1.2 Functional requirements . . . . . . . . . . . . . . . . . . . . . . . 29

3.1.1.3 Non-Functional requirement . . . . . . . . . . . . . . . . . . . . 32

3.2 Business Use Case . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 32

3.2.1 Business Use Case Model . . . . . . . . . . . . . . . . . . . . . . . . . . . . 32

3.2.2 Whole project Use Case diagram . . . . . . . . . . . . . . . . . . . . . . . . 32

3.2.3 My Use Case diagram . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 34

3.2.4 Event’s Flow . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 34

3.2.5 The class diagram . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 35

3.2.6 Deployment Diagram . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 37

4 Construction phase 38

4.1 application architecture . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 38

4.2 Symfony and MVC . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 40

4.2.1 Symfony’s MVC Implementation . . . . . . . . . . . . . . . . . . . . . . . . 41

4.3 deployment on azure . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 42

5 Product development process and implementation 43

5.1 Development part : . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 43

5.1.1 First Sprint . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 43

5.1.1.1 Sequence diagram (registration) . . . . . . . . . . . . . . . . . . . 44

5.1.1.2 Implementation (registration) . . . . . . . . . . . . . . . . . . . . 45

5.1.1.3 Sequence diagram (login) . . . . . . . . . . . . . . . . . . . . . . . 45

5.1.1.4 Implementation (login) . . . . . . . . . . . . . . . . . . . . . . . . 46

5.1.1.5 Sequence diagram ( user management) . . . . . . . . . . . . . . . 46

5.1.1.6 Implementation user management . . . . . . . . . . . . . . . . . 49

5.1.1.7 Sequence diagram (client management ) . . . . . . . . . . . . . . 50

5.1.1.8 Implementation client management . . . . . . . . . . . . . . . . . 52

5.1.2 Second Sprint . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 53

5.1.2.1 Sequence diagram (Tasks management) . . . . . . . . . . . . . . 53

internship report iii


CONTENTS

5.1.2.2 Implementation . . . . . . . . . . . . . . . . . . . . . . . . . . . . 54

5.1.3 Third Sprint . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 58

5.2 Cloud and DevOps part : . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 58

5.2.1 Forth Sprint . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 58

5.2.2 Implementation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 59

5.2.3 Fifth Sprint . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 62

5.2.3.1 Implementation . . . . . . . . . . . . . . . . . . . . . . . . . . . . 63

6 General Conclusion 66

internship report iv
List of Figures

1.1 Cloud Innovation Partner Logo . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4

1.2 Cloud Innovation Partner establishment . . . . . . . . . . . . . . . . . . . . . . . . 4

1.3 Cloud Innovation Partner organizational chart . . . . . . . . . . . . . . . . . . . . 5

1.4 Main Page BoondManager . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6

1.5 Axonaut software . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7

1.6 Scrum process . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 10

1.7 CloudPSM Backlog . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 12

2.1 Laptop Specifications . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 15

2.2 PhpStorm Logo . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 16

2.3 MySQL Workbench . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 16

2.4 Symfony logo . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 17

2.5 PHP logo . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 17

2.6 jQuery logo . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 17

2.7 JavaScript logo . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 18

2.8 Mysql logo . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 18

2.9 Understanding DevOps . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 19

2.10 Wall of confusion . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 20

2.11 AWS Vs Azure Vs GCP Market share . . . . . . . . . . . . . . . . . . . . . . . . . 25

2.12 GitHub Logo . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 25

2.13 Azure DevOps . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 26

2.14 Azure Portal . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 27

3.1 Whole project Use Case diagram . . . . . . . . . . . . . . . . . . . . . . . . . . . . 33

internship report v
LIST OF FIGURES

3.2 My Use Case diagram . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 34

3.3 Class Diagram . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 36

3.4 Class Diagram . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 37

4.1 3-tier-architecture . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 39

4.2 MVC pattern . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 40

4.3 request workflow . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 41

5.1 Registration Sequence diagram . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 44

5.2 registration interface . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 45

5.3 log In Sequence diagram . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 45

5.4 log In interface . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 46

5.5 sequence diagram create new user . . . . . . . . . . . . . . . . . . . . . . . . . . . 47

5.6 sequence diagram create new user . . . . . . . . . . . . . . . . . . . . . . . . . . . 48

5.7 add new user interface . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 49

5.8 edit user interface . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 50

5.9 list users interface . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 50

5.10 sequence diagram add client . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 51

5.11 edit user interface . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 51

5.12 Client list interface . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 52

5.13 New client interface . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 52

5.14 edit client interface . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 52

5.15 Add Task Sequence diagram . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 54

5.16 Edit Task Sequence diagram . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 54

5.17 Task’s creation interface . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 55

5.18 Tasks list interface . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 55

5.19 project’s list interface . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 56

5.20 projects list interface . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 56

5.21 Opportunities list interface . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 56

5.22 Opportunitie info interface . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 57

5.23 Contacts list interface . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 57

5.24 Contact info interface . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 57

internship report vi
LIST OF FIGURES

5.25 Dashboard . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 58

5.26 GitHub Repository . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 59

5.27 YAML Script . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 60

5.28 overview of azure DevOps project . . . . . . . . . . . . . . . . . . . . . . . . . . . 60

5.29 pipeline’s runs history . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 61

5.30 pipeline’s steps . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 61

5.31 Flow of the release . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 62

5.32 Azure portal home page . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 63

5.33 Azure subscription for students . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 63

5.34 Azure Application . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 64

5.35 MySql for azure database server . . . . . . . . . . . . . . . . . . . . . . . . . . . . 64

5.36 Local and azure databases . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 65

internship report vii


List of Tables

1.1 Methodologies comparison . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 9

1.2 Gantt Plan of the project . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 11

2.1 AWS Vs Azure Vs GCP : Compute . . . . . . . . . . . . . . . . . . . . . . . . . . . 24

2.2 AWS Vs Azure Vs GCP : DataBase . . . . . . . . . . . . . . . . . . . . . . . . . . . 24

2.3 AWS Vs Azure Vs GCP : pricing . . . . . . . . . . . . . . . . . . . . . . . . . . . . 24

3.1 The ACtors of CloudPSM . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 28

5.1 First sprint tasks . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 44

5.2 Second sprint tasks . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 53

5.3 Third sprint tasks . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 58

5.4 Forth sprint tasks . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 59

5.5 Fifth sprint tasks . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 62

internship report viii


General introduction

oday, IT has become an invaluable tool in all fields, considering the exponential evolution

T of application growth, as it allows work simpler, more reliable and, above all, well con-

trolled. Indeed, the field managing businesses and their relation with clients is an area softened

by the computerized environment

All businesses need to have an organized way of keeping track of clients prospects as they

move through their customer journey , customer relationship management (CRM) is a tool

or a solution that helps businesses track and manage interaction with customers . A simple

internet search will reveal hundreds of CRM providers offering tons of useful features. But

when we are running a small business, we likely don’t need all those features . CRM software

for small businesses, on the other hand, is designed to meet your customer, sales app, and sales

management requirements without weighing you down with extra tools you don’t need and

can’t afford.

Enterprise CRM platforms often come loaded with features like business intelligence and

call center management, which can require teams of dedicated IT personnel to run. But CRM

for small businesses is built for simplicity. It’s scaled to operate with the resources you have on

hand providing only those features you need and are equipped to use, while still giving you

room to grow.

With better access to data, improved organization, and a more complete view of your cus-

tomer journey from lead to conversion, even small businesses can operate with big-business

efficiency

internship report 1
General introduction

On the grounds that its a team’s project my particular mission in the team is to do the initial

part of the project witch we will describe along this report.

We’re now in the automation era, that’s why we consider to use DevOps which is a new

methodology that has evolved to lighten the cycle of deliveries and increase team performance.

Globally ,the purpose of this report is to describe and review the used methods, and make clear

the implementation of the DevOps process with the development process , for sake to make the

main principles obvious to the reader. So, to illustrate the approach of the work, i present in

the following the organization of this report , which is arranger in five main chapters.

The purpose of this report is to review and evaluate the methods currently used, and de-

scribe the implementation of DevOps we use and its impact on the development and operation

of this report, so that readers can understand more internal principles.

First chapter entitled "General presentation of the project" include presentation to the host

organization and its need , summarize the project and methodology .Second chapter en-

titled "Key concepts and technologies" clarify the workflow concept ,used technologies

and frameworks, as well as discussion about DevOps and its requirements. third chap-

ter entitled "Analysis and design", will focus on the design of the project, functional and

non-functional needs and the different UML diagrams forth chapter entitled "Construc-

tion phase" present the general and logical architectures with certain details about every

part of the project. Fifth and last chapter entitled "Product development process and

implementation include different development stages and implementation of different

modules

internship report 2
Chapter 1

GENERAL PRESENTATION OF THE


PROJECT

Introduction
e present the general scope of our project in this chapter. We will therefore begin by

W presenting the context of the project and the ‘Cloud Innovation Partner’ host organi-

zation. Then, we will address the current research and criticism, and we will discuss the issue.

Finally, as well as the methods followed, we will identify our project. Finally, it is about our

project preparation.

1.1 Context of the project


Our project entitled " web development of a SaaS solution" is carried out as part of the

preparation of the end of studies project, at the Private Superior School of Engineering and

Technologies - (Universite centrale de Tunis), and produced within "Cloud Innovation Part-

ners". The project includes designing developing and implementing a SaaS solution (CRM )

for small businesses and implementing the Microsoft Azure DevOps process on it with a de-

ployment on azure.

1.2 Presentation of the host organization


Cloud Innovation Partners a human sized organisation operating in 3 countries (UK, FR,

IN) and 8 Cities, providing a positive environment where passionate people can exercise their

internship report 3
CHAPTER 1. GENERAL PRESENTATION OF THE PROJECT

Figure 1.1 – Cloud Innovation Partner Logo

talent and be empowered and supported to excel in their respective field. Operate as a flat

organisation where all team members are respected for their skills, knowledge, experience,

drive ownership.

Cloud Innovation Partners offer Digital, Cloud based solutions enabled by Open-source.

Contribute to innovations by creating SaaS solutions and make them accessible to communities

of experts. Also keep in sync with customers and the market to ensure that provide solutions

which add value and are loved by customers.

Figure 1.2 – Cloud Innovation Partner establishment

1.2.1 organizational chart

The organizational chart is a schematic representation of the functional, organizational and

hierarchical links of a company. Figure 1.3 below represents the organization chart of the com-

pany

internship report 4
CHAPTER 1. GENERAL PRESENTATION OF THE PROJECT

Figure 1.3 – Cloud Innovation Partner organizational chart

1.3 State of art


Before embarking on any project, it is essential to make a study of the existing situation and

to underline the problems encountered to which this project will lead to solutions.

1.3.1 Study of the existing

Work cannot be started without having a clear and precise idea of what exists. A good

understanding of the environment and an profound study of current tools is an essential step

in order to detect the failures and the shortcomings which we must remedy. In the following,

we study two existing SaaS Solutions namely Boond Manager and Axonaut.

Boond Manager

BoondManager is an ERP business dedicated to consulting engineering companies (ESN,

SSII, consulting companies, etc.). In a few words, BoondManager, allows to control:

— prospecting and customer monitoring activity

— recruitment and employee monitoring activity

— management of projects in management, contract, recruitment and sale of products

internship report 5
CHAPTER 1. GENERAL PRESENTATION OF THE PROJECT

— Managing employees’ time, expenses and absence requests

— Invoicing customers

— The cost plans of employees and reporting of commercial, HR and administrative activity!

Figure 1.4 – Main Page BoondManager

Following the study of BoondManager, we noticed a major problem linked to its difficulty

in understanding and using it. You have to spend a lot of time during out how to use your tools.

In addition, process management is a bit complicated for non-developers. furthermore boond-

Manager is limited in these functionalities, especially for the management of the commercial

activity as well as for being able to follow the leads, it lacks global visibility

Axonaut CRM

Axonaut CRM is the French leader in business management software for TPE and PME

Already 5,000 entrepreneurs use this all-in-one management tool with simple and complete

features (both CRM software, ERP software, quotation software, billing software, treasury soft-

ware and accounting software). This application allows to:

— CRM software: centralize all your contacts in an ergonomic interface.

— Billing software: create your quotes and invoices in one click and unlimited.

— Accounting software: give free access to your accountant, where all your expenses and

invoices will already be listed on a dedicated portal.

— Human Resources: management software makes it possible to centralize all important

documents of employees in their dedicated interfaces (work contracts, pay slips, etc.)

internship report 6
CHAPTER 1. GENERAL PRESENTATION OF THE PROJECT

Figure 1.5 – Axonaut software

After studying the Axonaut application, we noticed that there are many missing points.

Sometimes the load of the process is very slow, and the creation of the workflow requires a

project analysis, which is often long and difficult, so we noticed that when the company grows

the needs also grows therefore the necessity to change the tool . In addition the software is

designed only for the French market

1.3.2 Critique of the existing

A customer relationship management (CRM) software helps companies develop and main-

tain successful relationships with their customers. A simple Internet search will reveal hun-

dreds of CRM providers offering tons of useful features. But if you run a small business, you

probably don’t need all these features - and you certainly don’t want to pay for them. The

CRM software for small businesses, on the other hand, is designed to meet the requirements

of your customers, your sales application and sales management without burdening yourself

with additional tools that you don’t need and can’t afford. When it comes to managing cus-

tomer relationships, many small businesses tend to stick to what they know: spreadsheets,

calendars, emails and (if necessary) human resources. And although these may serve you at

first, at some point, something will fall through the cracks. The CRM software allows you to

internship report 7
CHAPTER 1. GENERAL PRESENTATION OF THE PROJECT

bring all these tasks together on a single platform and helps eliminate human errors that can

prevent your business from successfully connecting to customers. Enterprise CRM platforms

often have features such as business intelligence and call centre management, which may re-

quire teams of dedicated IT staff to execute. But CRM for small businesses is designed for

simplicity. It is dimensioned to work with the resources you have, providing only the features

you need and are equipped to use, while allowing you to develop. With better data access,

improved organization and a more complete view of your customer journey, from prospect to

conversion, even small businesses can operate with the efficiency of large businesses.

1.3.3 Problematic

Proposed Solution

Every business faces various challenges and issues in maintaining and managing their op-

erations and processes on a regular basis. To cope with these challenges, they all find solutions

that can make their life easier and better. Customer relationship management software is an

effective tool that could greatly help them in such situations. It has the capability to solve most

of the challenges that they face and allows their business to grow forward. It is an all-in-one

solution that helps businesses to increase sales and revenue by eliminating the issues that pre-

vent them from elevating their business performance to the next level. All businesses, large

and small, need a customer relationship management system (CRM). If you manage an PME ,

you may think that an Excel spreadsheet or some sort of desktop application is enough to keep

track. But even if your information is well recorded, it can also fragment, be stored in differ-

ent places. How then can we be sure that everyone who needs this information can access it?

Spreadsheets are no longer enough. Only one solution: CRM systems. By bringing all your cus-

tomer data together in one place, the CRM strategy gives you the best possible understanding

of your customers and their experience with your business.

Work Methodology

In software engineering, a software development process is a method of breaking down

software development activity into stages to make architecture, product management, and

project management easier [8]. The process of conceiving, developing, reviewing, and then

implementing a project is covered by the software development approach. There are a few

internship report 8
CHAPTER 1. GENERAL PRESENTATION OF THE PROJECT

distinct mixes of what individuals and businesses consider are good development strategies.

comparative study of methodologies

Methodology Description Strong points Week points


2TUP Target all sizes projects .Pre- -Good risk man- -week latency de-
sented by a cycle of develop- agement - Aspects tection
ment in Y , which separates separation
the technical aspects from the
functional aspects
SCRUM Agile development method- -Simplify the process - -repeatable pro-
ology based on an itera- easy to use -most pop- cess which affect
tive and incremental pro- ular a big pressure on
cesses Based on time phases the team
called sprints.
RUP It’s used for object oriented -Specify the communi- -expencive to
software. It’s generic and cation between diferent personalize
incremental method. Target members of the project.
the projects that include more
than 10 peoples.
CASCADE Each phase must be dened The schedule is estab- The very low tol-
precisely, which means that it lished in advance and erance to the er-
corresponds to the specifica- the project manager ror , the anoma-
tions, and has a xed deadline. knows precisely what lies are detected
will be delivered to late wich can in-
him and when he will duce a hight cost
take that delivery. in the event of an
anomaly.

Table 1.1 – Methodologies comparison

The chosen : SCRUM

Definition

In our project, we choose an agile method, more accurately the Scrum method. This is

team based In order to maximize cooperation, increase communication and productivity it is

based on Break down the project into short-term duration’s called iterations (Sprints) so that

you can intervene quickly when problems arise. Each iteration can last 2 to 4 weeks and end

with a demonstration Achievements already achieved. Before starting a new iteration, the

team reviews the goal is to improve the practice of the iterations that have been completed. We

illustrate in Figure below The life cycle of Scrum methodology.

internship report 9
CHAPTER 1. GENERAL PRESENTATION OF THE PROJECT

Illustraion

Figure 1.6 – Scrum process

The implementation of the SCRUM method requires:

•First of all identify the maximum functionality to be achieved and assign them a priority

to constitute the product backlog or even the product backlog call.

•Thereafter, focus iteratively on all the functionalities to be carried out in the Sprints called

user story. A sprint always results in delivery of a functional partial product called increment.

Thus, towards the end of each Sprint, a meeting will take place to review the iteration. The

purpose of this meeting is to validate the increment product during the iteration.

1.3.4 Project planning (Gantt diagram)

1.3.5 Meetings

Four meetings are defined in the Scrum model:

— The Daily Scrum: a daily meeting to take stock of progress and challenges faced by each

member. Meeting limited to 20 minutes.

— The Sprint planning meeting: meeting which precedes the beginning of each develop-

internship report 10
CHAPTER 1. GENERAL PRESENTATION OF THE PROJECT

Month1 Month2 Month3 Month4 Month5 Month6


Discover the context and Learn

Dev and Document

Cloud and DevOps Process.

Fine-tune, Evolve and Stabilise

Table 1.2 – Gantt Plan of the project

ment cycle and which aims to establish the sprint backlog. Meeting limited to 2 hours.

— The Sprint review meeting: a meeting which concludes a development cycle and which

aims to take stock of the work accomplished, to define a demonstrator for the stakeholder

and the product owner. Meeting limited to 1 hour.

— The Sprint Retrospective: a meeting where all members of the group reflect on the pos-

itive and negative points that characterized the last sprint in terms of organisation and

cooperation. Meeting limited to 1h30.

1.3.6 Product backlog

The product backlog is the list of expected features of a product. More precisely, beyond

this functional aspect, it contains all the elements that will require work for the team. The ele-

ments are classified by priority, which makes it possible to define the order of implementation.

The product backlog is the responsibility of the product owner. Everyone can contribute to col-

lecting elements, but it is the product owner who finally accepts them and it is he who defines

the priorities. The backlog is developed before the sprints launch, in the preparation phase (or

sprint0). It is used to plan the release, then at each sprint, at the sprint planning meeting to

decide which subset will be achieved. So it’s an essential tool for planning. But it is also, by its

nature, a link in the management of requirements, since it collects what the product must do.

internship report 11
CHAPTER 1. GENERAL PRESENTATION OF THE PROJECT

Figure 1.7 – CloudPSM Backlog

1.4 Conclusion
In this chapter, we have described the general context of the project. In the following chap-

ter we carry out the preliminary study of our project and we present the concepts and tech-

nologies that we used.

internship report 12
Chapter 2

Key concepts and technologies

Introduction
n this chapter We will first outline the CRM for small buisnesss concept, related terminology

I and its advantages. Then we will describe the development environment, the tools used in

the project, and we will discuss the DevOps process and tools.

2.1 CRM for small Businesses and its importance


The main importance of customer relationship management for businesses is that it helps

to increase sales, keeps existing customers happy, and can help build a sense of loyalty.

Why Small Businesses should implement CRM software

Businesses that are just starting out have few customers to contend with. As a result, it is

wise for companies to implement several measures to gain trust and cement a lifetime partner-

ship with their existing and prospective customers. While big and medium-sized companies

have many customers who have become long-term clients and have enough resources to sat-

isfy them, small companies tend not to have that luxury. Therefore, they should be looking for

ways to maximize and nurture any leads they obtain to ensure customer satisfaction. [2]

Introducing Customer Relationship Management (CRM)

Businesses must take it as a core responsibility to build a robust relationship with their

potential and existing customers. The core responsibility is usually customer loyalty and reten-

internship report 13
CHAPTER 2. KEY CONCEPTS AND TECHNOLOGIES

tion. The major importance of customer relationship management to businesses is that it helps

increase sales, keeps existing customers happy, and can assist in building a sense of loyalty. To

ensure proper customer service delivery and continuous customer relationship growth, there

is the need to implement tools and software such as customer relationship management soft-

ware. As a result, this CRM software has considerable significance in the general operations of

small businesses.

When you look at the operations and activities of small businesses, you realize that most of

them are new to the business terrain, have few resources to spend, and generally start off with

a limited customer base. Therefore, to ensure they cut down the cost of operation, expand sales

conversion, and nurture customer relationship management lifecycle, they should be imple-

menting CRM software. In addition, to ensure optimal customer service delivery and ensure

customer satisfaction, it is essential to implement CRM software in their customer service and

support-related operations.

What is CRM software?

Having researched the need for Customer relationship management and some of its uses to

businesses (Small businesses in particular), there is a specific requirement. This requirement is

to identify the tools developed to help ease and automate the activities involved in customer

relationship management by the customer support team in various businesses. CRM software

is a tool that helps to create a simple user interface for the collection of data and information (of

your customers) that helps businesses recognize and communicate with customers in a scalable

way.

Most CRM software allows you to design your software with customizable templates or

dashboards that suit your operations and activities. It is a business management system that

helps scale and manage all stages in a business life cycle with ease, from pitching to lead reten-

tion.

How Does CRM Software Help Small Businesses?

■ Connect with ideal customers

■ Proactively manage customer relationships

■ Increase employee productivity

internship report 14
CHAPTER 2. KEY CONCEPTS AND TECHNOLOGIES

■ Deliver better customer service

■ Improve customer retention

■ Have all your information in one place

■ Help to Find new customers using data

■ See every opportunity

■ Shares data within teams

2.2 Development and DevOps Environment


2.2.1 Development Environment

The work on this project need to set up a hardware and software environment. At this stage,

we will present the tools, technologies and languages used for the realization of our project.

2.2.1.1 Hardware Environment

Figure 2.1 – Laptop Specifications

2.2.1.2 Software Environment : Frameworks and Technologies

A variety of software and development tools were used from the early stage to the project

execution stage. Some of the main software and creation tools required to incorporate an online

platform are:

internship report 15
CHAPTER 2. KEY CONCEPTS AND TECHNOLOGIES

■ PhpStorm

Figure 2.2 – PhpStorm Logo

PhpStorm is an innovative, Java-based integrated development environment (IDE) engi-

neered by JetBrains for PHP and web developers. It supports PHP 5.3/5.4/5.5/5.6/7.0/7.1/7.2/8.0,

provides on-the-fly error prevention, best auto-completion and code refactoring, zero-

configuration debugging, and an extended HTML, CSS and JavaScript editor [1]. The IDE

provides smart code completion, syntax highlighting, extended code formatting config-

uration, on-the-fly error checking, code folding, supports language mixtures and more.

Automated refactoring treats your code with care, helping to make global project settings

easy and safe.

■ Mysql Workbench

Figure 2.3 – MySQL Workbench

MySQL Workbench is a visual database design tool that combines SQL programming,

administration, database design, construction, and maintenance for the MySQL database

system into a single integrated working environment.

■ symfony 5.4

Symfony is a set of PHP components as well as a free MVC framework written in PHP.

It provides scalable and adaptable features that facilitate and accelerate the development

internship report 16
CHAPTER 2. KEY CONCEPTS AND TECHNOLOGIES

Figure 2.4 – Symfony logo

of a website [6]. Symfony being based on PHP, it integrates the features brought by the

new versions of PHP.

■ PHP

Figure 2.5 – PHP logo

PHP is a general-purpose scripting language geared toward web development. PHP code

is usually processed on a web server by a PHP interpreter implemented as a module, a

daemon or as a Common Gateway Interface (CGI) executable. On a web server, the result

of the interpreted and executed PHP code [4]

■ jQuery

Figure 2.6 – jQuery logo

jQuery is a JavaScript library designed to simplify HTML DOM tree traversal and ma-

nipulation, as well as event handling, CSS animation, and Ajax.[3] It is free, open-source

software using the permissive MIT License.[4] As of May 2019, jQuery is used by 73% of

the 10 million most popular websites.[5] Web analysis indicates that it is the most widely

deployed JavaScript library by a large margin, having at least 3 to 4 times more usage

than any other JavaScript library.[5][6]

jQuery’s syntax is designed to make it easier to navigate a document, select DOM el-

internship report 17
CHAPTER 2. KEY CONCEPTS AND TECHNOLOGIES

ements, create animations, handle events, and develop Ajax applications. jQuery also

provides capabilities for developers to create plug-ins on top of the JavaScript library

■ JavaScript

Figure 2.7 – JavaScript logo

JavaScript, often known as JS, is a computer language that follows the ECMAScript stan-

dard. JavaScript is a multi-paradigm, high-level programming language that is frequently

compiled just-in-time. Curly-bracket syntax, dynamic typing, prototype-based object ori-

entation, and frst-class functions are all features of this language [5].

■ Mysql

Figure 2.8 – Mysql logo

MySQL is a relational database management system that is free and open- source. "My"

is the name of co-founder Michael Widenius’s daughter, and "SQL" is the acronym for

Structured Query Language [3].

2.2.2 Cloud and DevOps environment

2.2.2.1 Cloud and DevOps Presentation

DevOps was developed out of a desire to speed up the development and deployment of

online applications in order to meet customer expectations.It’s the next step in the growth of

agile development methodologies.It automates the whole application development and main-

tenance process, from start to finish. It necessitates the ability to construct on-demand test

environments, as well as the capability to deploy, test, and monitor applications throughout

internship report 18
CHAPTER 2. KEY CONCEPTS AND TECHNOLOGIES

the entirety of its environment.DevOps need everything that the cloud has to oer. For build-

ing and delivering your application, combining the cloud and DevOps appears to be the best

option.Cloud providers provide a variety of services that decrease the cost of creating and run-

ning applications, but in order to reap the benefits, it’s critical to select the appropriate services

as needed, beginning with the design stage.You may build up an automated chain and save

a lot of time and work by using a well- designed cloud architecture and well-chosen DevOps

technologies to concentrate on the application development.

2.2.2.2 DevOps Philosophy

Patrick Debois, who invented the phrase "DevOps" and is known as "The Father of De-

vOps," came up with the moniker "DevOps" in 2009. The name DevOps was coined by com-

bining the phrases "development" and "operations." DevOps is a collaboration between pro-

grammers and operators.

Figure 2.9 – Understanding DevOps

The term DevOps is a combination of development and operations. It’s a software devel-

opment approach that leads in a merger of the software development and operations teams.

Now is the moment to switch from old to new technologies, such as DevOps.

2.2.2.3 Why DevOps is important

Developers must continually communicate product changes as soon as time allows, but the

operations team demands unwavering product quality and stability. This situation was clearly

clarified in Lee Thomson’s "wall of confusion," which is seen in the pictures below. This wall

of confusion displays two groups’ perspectives as well as the instruments they use. To do

the same work, the Development team utilizes some tools while the Operations team employs

internship report 19
CHAPTER 2. KEY CONCEPTS AND TECHNOLOGIES

others. For better and faster outcomes, DevOps bridges the gap between development and

operations.

Figure 2.10 – Wall of confusion

2.2.2.4 DevOps process and principles

in its simplest terms,DevOps is about bridging the gap between previously segregated

teams, such as development and operations. Development and operations teams collaborate

across the full software application life cycle, from development and testing to deployment

and operations, under the DevOps paradigm. This concept is supported by a few important

principles:

■ Incremental Releases : Before DevOps, teams had to wait their turn to deploy code.Instead

DevOps encourages developers to contribute new code as often as possible,In a DevOps

environment, a single project is divided into small, manageable chunks, and teams sub-

mit their code in increments. That makes it easier to troubleshoot problematic code before

it gets released to production. The development and deployment cycle is more flexible

internship report 20
CHAPTER 2. KEY CONCEPTS AND TECHNOLOGIES

with incremental releases. As a result, teams can react rapidly to unexpected changes and

swiftly correct mistakes and problems. The main objective is to keep faulty code out of

the hands of the end user.

— Automation :

Automating as much of the software development process as feasible is one of DevOps’

most important techniques. Developers may concentrate exclusively on creating code

and building new features by automating operations.

— DevOps Pipeline : A pipeline is a repeatable system consisting of stages that code must

travel through before being sent to production. There are four main steps in a typical

DevOps pipeline:

— Develop : First of all , The developers must write the code.

— Build : The team then checks for problems by compiling the code into a build.

— Test : Following the build process, operations teams test the new code to ensure that

it behaves as expected in the production environment.

— Deploy : The updated code is delivered to the end-user when it has passed the

testing process.

— Continuous Integration CI :

Continuous integration (CI) is a software development method that is usually included

into the DevOps network ow. Developers submit their code modifications into a public

repository on a regular basis, where they are automatically validated. Users may still

access the most up-to-date and verified code thanks to continuous integration. CI helps

minimize costly production delays by enabling many developers to collaborate on the

same source code with confidence rather than waiting until the day of release to integrate

various parts of code all at once. This method is an important element of the DevOps

process ow, which aims to strike a balance between speed and agility and dependability

and safety.

— Continuous Delivery :

Continuous distribution (CD) is the next logical step after CI. Code changes are auto-

matically designed, verified, and packaged for delivery into development. The goal is to

provide customers with information in a timely and consistent manner. CD automates

internship report 21
CHAPTER 2. KEY CONCEPTS AND TECHNOLOGIES

the update process (based on CI’s automated testing) so that new builds may be released

with a single click.

— Continuous Deployment :

For a seasoned DevOps firm, continuous deployment may be the better option than CD.

Continuous deployment is the fully automated form of the CD that requires no human

intervention. In a continuous deployment phase, any verified update is automatically de-

livered to users. This technique eliminates the requirement for anticipated release dates

and shortens the review cycle. Smaller, more frequent updates make it easier for devel-

opers to gather user feedback and

x problems with more variety and precision. Continuous deployment is a fantastic goal

for a DevOps team, but it isn’t implemented until the DevOps process is complete.

— Continuous Monitoring :

The employees should have systems in place to track and assess the items and processes

in the manufacturing pipeline on a regular basis. Again, the majority of the control pro-

cess may be automated to ensure consistent evaluations. This technique aids IT opera-

tions in detecting problems and alerting developers in real time. Continuous feedback

ensures improved device stability and efficiency, as well as more flexible responses to

problems.

— Feedback Sharing :

Feedback is essential in DevOps. Developers want actionable information from a mul-

titude of sources in order to improve the overall quality of the program. DevOps teams

might waste time developing products that don’t add value to stakeholders or consumers

if they don’t get feedback.

— Version Control :

Version control, in a nutshell, is a central code repository where developers submit their

code and track changes throughout the development process. Team members can build

branches of the primary project in most version control systems. Individual developers

can work on branches of the project’s source code without changing the original version.

Each developer works on a different branch of the same project, contributing code modifi-

cations and performing automated tests in a typical situation. Automation will produce a

build of the application before the newly written code is merged with the master branch,

internship report 22
CHAPTER 2. KEY CONCEPTS AND TECHNOLOGIES

ensuring that the new code is compatible with the old code.

Depending on the success of the build, developers merge the new code with the master

branch and push it to production or perform different tests.

— Collaboration :

The primary goal of DevOps is to build trust between developers and operations. Through-

out the development and deployment process, development and operations teams must

interact, exchange input, and cooperate. Both groups are accountable in this situation

for ensuring that the application fulfills its commitments. This necessitates continually

optimizing and enhancing service performance, prices, and delivery while maintaining

consumer satisfaction.

2.2.2.5 DevOps Tools

— Cloud servics comparison: AWS Vs Azure Vs GCP

Cloud service providers (CSPs) deliver high-quality services with a wide range of ca-

pabilities, excellent availability, high performance, high security, and excellent customer

service. The top three cloud service providers which dominate the cloud industry are

Amazon Web Services (AWS), Microsoft Azure, and Google Cloud Platform (GCP). That’s

why we will do a quick comparative study between them.

— AWS Vs Azure Vs GCP : Compute :

The word "compute" refers to physical servers that include the processor, memory, and

storage needed to run an operating system like Microsoft Windows or Linux, as well as

certain virtualized networking capabilities. Based on services provided by the computing

domain the difference is given by this table :

— AWS Vs Azure Vs GCP : Storage :

Cloud storage is basically a data storage and sharing medium, whereas cloud computing

allows you to work on and alter data from a distance. Based on services provided by the

storage domain the difference is given by this table :

— AWS Vs Azure Vs GCP : Pricing

Whether the consumer is an individual or a business, all of these cloud services have a

internship report 23
CHAPTER 2. KEY CONCEPTS AND TECHNOLOGIES

Services AWS Azure GCP


Virtual servers man- Elastic Compute Cloud -Virtual machines - Compute engine
agement and deploy- (EC2) Virtual machines scale
ment sets
Platform-as-a-service Elastic Beanstalk Cloud Google App Engine
services
Automatic scale in- Auto scaling -Azure app service Instance Groups
stances scale capability -
viryual machine scale
sets -auto-scaling
Instance Families 7 4 4
instance Types 38 33 18

Table 2.1 – AWS Vs Azure Vs GCP : Compute

DataBase services AWS Azure GCP


Block storage EBS Page Blops Persistent Disks
Object Storage S3 Blobs and files Google cloud storage
block
Database migration Database migration Database migration -
service service
Relational database as a RDS -SQLdatabase - -Google cloud sql -
service Database for Mysql Cloud spanner
-Database for Post-
gresSQL

Table 2.2 – AWS Vs Azure Vs GCP : DataBase

price strategy for their cloud solutions. Based on services provided by the Pricing domain

the dierence is given by this table :

DataBase services AWS Azure GCP


Block storage EBS Page Blops Persistent Disks
Object Storage S3 Blobs and files Google cloud storage
block
Database migration Database migration Database migration -
service service
Relational database as a RDS -SQLdatabase - -Google cloud sql -
service Database for Mysql Cloud spanner
-Database for Post-
gresSQL

Table 2.3 – AWS Vs Azure Vs GCP : pricing

— AWS Vs Azure Vs GCP : Market share :

internship report 24
CHAPTER 2. KEY CONCEPTS AND TECHNOLOGIES

Figure 2.11 – AWS Vs Azure Vs GCP Market share

According to Canalys, the global cloud industry climbed 35% this quarter to 41.8 billion

dollars as of April 2021. AWS controls 32% of the market, followed by Azure at 19%,

Google at 7%, and 42% for others.

— Chosen solution : Microsoft Azure

We choose to work with Microsoft Azure , not just because its different features and

capabilities , also because the compatibility with the asp.net Web API Application such

they both are Microsoft products.

— DevOps Tools :

The ow of our application start with pushing code to GitHub pass by the pipeline in

Azure DevOps and deploy On Microsoft Azure through Azure portal.

— GitHub :

Figure 2.12 – GitHub Logo

internship report 25
CHAPTER 2. KEY CONCEPTS AND TECHNOLOGIES

GitHub, Inc. is an Internet hosting company that specializes on Git-based software devel-

opment and version control. It includes Git’s distributed version control and source code

management functions, as well as its own. GitHub considered as DevOps tool, bought

by Microsoft in 2018 heighten its focus on open-source development .it works with azure

pipeline through a specific "yaml" script [7].

— Azure DevOps :

Figure 2.13 – Azure DevOps

Azure DevOps enables support teams to organize work, collaborate on code develop-

ment, and create and deploy apps using developer services. Azure DevOps is a culture

and set of practices that brings together developers, project managers, and contributors

to finish software development. Azure DevOps has built-in functionality that you may

access via a web browser or an IDE client. Depending on your business needs, you can

use several of the following stand-alone services:

— Azure Repos : supply Git repositories or Team Foundation Version Control for the

code’s source control .

— Azure Pipelines : hand over build and release services to assist continuous integra-

tion and delivery of your applications.

— Azure Boards : provides a suite of Agile tools to assure planning and tracking work,

code defects, and issues using Kanban and Scrum methods.

— Azure Test Plans : present different tools to test the apps, as well as manual/exploratory

testing and continuous testing.

— Azure Artifacts : grant teams to share packages such as Maven, npm, NuGet, and

more from private and public sources and integrate the shared packages into the

pipelines.

internship report 26
CHAPTER 2. KEY CONCEPTS AND TECHNOLOGIES

— Azure portal :

Figure 2.14 – Azure Portal

The Azure portal is a single web-based console that may be used instead of command-

line tools. The Azure portal provides a graphical user interface for managing your Azure

subscription. Everything from simple web apps to massive cloud deployments can be

built, managed, and monitored.

Conclusion
In this chapter we focused on the different technical terms beside the different tools we

used along with the project time line . Next we will discover the analysis and design and the

different design diagrams .

internship report 27
Chapter 3

Analysis and design

Introduction
The requirements evaluation and design step is an important part of the application life

cycle besides to determine the different functionalities expected from the system. In this sec-

tion, we first present the actors involved in our system. Then we begin the study of functional

and non-functional requirements. Those requirements will be expressed in the form of use case

diagrams that detail possible scenarios that the different actors can achieve.

3.1 Analyses of needs


3.1.1 Functional specification

3.1.1.1 Identification of actors

Any interactive system must ensure and facilitate interaction with its users (human user or

not). An actor represents the role of an external entity operating the system through its different

Therefore, we have identified the following actors shown in the table below [table3-1] :

Actors Description
Admin the person who creates application
on behalf of the clients and check
the documents
Employee the person who creates application
on behalf of the clients and check
the documents

Table 3.1 – The ACtors of CloudPSM

internship report 28
CHAPTER 3. ANALYSIS AND DESIGN

3.1.1.2 Functional requirements

In order to describe the application to be developed, we will identify the functional require-

ments to provide, classified according to the actors mentioned above.

— Registration : The user create a profile by filling several fields in the registration form

that generate a creation a new account .

— Login : The user log into the application through his specific account by entering his

username and password.

— Users management : User management will be driven by the system administrator. This

task will essentially consist of:

— Create and insert details of each employee .

— Edit employee

— Delete employee

— Consult an employee.

— Enable or disable an employee.

— Customer management : Customer management is provided by two categories of users:

— Administrator

It must be able to:

— Insert a new client

— consult the customer’s information

— delete a client

— modify this information

— Employee

— Consult an employee.

— Project management :

— Administrator

It must be able to:

— Create new Project

internship report 29
CHAPTER 3. ANALYSIS AND DESIGN

— Set start and end dates for each project

— Assign the project to the client

— Set the status for each project

— delete a project

— Employee

— Consult project

— Task management : The CRM tasks feature allows you to create reminders in your cus-

tomer accounts that sync with your calendar. You can set up tasks for yourself or assign

them to one of your team, and also send an email reminder. You can set up recurring

tasks. Once a task is completed it will automatically be added to the activities timeline

in your customer account. Outstanding tasks can be viewed by all the team so you’ll al-

ways know the next communication and when it’s due. Task management is performed

by administrator and employees , they must be able to:

— Create new task

— Set start and end dates for each task

— Assign the task to the client

— Assign the task to an employee

— Assign the task to project attached to the client

— Assign the task to the opportunity related to the project

— Assign the task to the ticket related to costumer

— Set the status for each task

— delete a task

— Opportunity Management : An opportunity is a foundation for every possible sale. The

opportunity management process is a sequential set of steps that can help manage op-

portunities at every stage of the sales pipeline. It ensures the track for every viable sale

opportunity and close deals quickly. Task management is performed by administrator

and employees , they must be able to:

— Create new opportunity

internship report 30
CHAPTER 3. ANALYSIS AND DESIGN

— Assign the opportunity to customer

— Set the stage for each opportunity

— delete an opportunity

— Each user can edit just his own opportunities

— Contact Management : Contact management is the act of storing, organizing, and track-

ing information about your customers . Contact management is performed by adminis-

trator and employees , they must be able to:

— Create new contact

— Assign contact to customer

— delete a contact

— edit contact

— Ticket Management : The CRM Software comprises a ticketing system that empowers

businesses to manage their customer database and the tickets raised in a single solution.

Tickets are cases that are submitted by customers requesting a particular service or seek-

ing a solution to their grievance. It can also be from a prospect having sales queries from

any platform. Ticket management is performed by administrator and employees , they

must be able to:

— Create new ticket

— Assign ticket to customer

— delete a ticket

— edit ticket

— set the status of ticket

— select the ticket severity

— Dashboard consulting :

the user can consult a dashboard contained the system elements statistics .

internship report 31
CHAPTER 3. ANALYSIS AND DESIGN

3.1.1.3 Non-Functional requirement

Our application must respond to non-functional needs which do not directly affect the run-

ning and proper functioning of it but which are necessary to achieve perfection and good qual-

ity.

— Portability:

the application must be portable and multi platform, in the event of a change of platform,

the application features remain active.

— Authentication:

To connect, our actors: administrator, client and broker must go through an authentica-

tion phase. Depending on the role of the connected person, the application gives them

access to their personal space.

— HMI:

o The application must be clear, simple and easy to manage and extract information from,

ensuring the most comfortable use with explicit messages and easy-to-understand warn-

ings.

— Ergonomic :

program must have legible, user-friendly, well-structured, and simple human/machine

interfaces.

— Maintainability and extensibility :

To enable for future evolution’s or enhancements, the code must be clear and organized.

3.2 Business Use Case


3.2.1 Business Use Case Model

This section will be devoted to the display of our application’s overall use case diagram, as

well as the ow events.

Here we will present the whole project use case diagram devoted to the whole team , and then

the diagram presenting my part of the work.

3.2.2 Whole project Use Case diagram

internship report 32
CHAPTER 3. ANALYSIS AND DESIGN

Figure 3.1 – Whole project Use Case diagram

internship report 33
CHAPTER 3. ANALYSIS AND DESIGN

3.2.3 My Use Case diagram

Figure 3.2 – My Use Case diagram

3.2.4 Event’s Flow

1. The use case start when the user create a new account via the registration interface by giv-

ing the needed information such as his name, email, password and a role admin affected

to this user .

2. the logical step after registration is login , so the user put in his credentials and log into

the application and redirect to the dashboard interface.

3. The User adds employees by adding all the information needed such as name, Email ,

internship report 34
CHAPTER 3. ANALYSIS AND DESIGN

password , job title and role .

4. The manager start adding clients by full-filling all the needed information

5. The Manager create project for this client by setting its status(active , inactive , review

and completed ) , the start and the end date for the current project and adding all the

information .

6. The user create task for tracking, organizing, and assign them to specific client and the

project related to .

7. The user create a new opportunity for one of the existing customers , track the informa-

tion about each opportunity, such as state and status of the opportunity, and the estimated

closing date. An opportunity contains important sales information that can be used later

in quotes and invoices .

8. The user create contact to track every customer and its information so typically Organizes

contact information for easier searching for all the company team .

9. The user can create ticket for any chosen customer by for understand and manage cus-

tomer demand by setting the severity and the status for each ticket

3.2.5 The class diagram

The central role of class diagrams is object-oriented modeling, it is the only one compulsory

during such modeling. A class diagram is a static representation of the elements that make

up a system and of relationships. The class diagram marks the modeling of the concepts of

the application domain as well as the internal concepts created from all actions within the

framework of the preparation of an application. The main elements of a class diagram are:

classes, packages, associations, inheritances, and dependencies. The figure below (3.3) shows

our class diagram and the different entities and the relationships between them. It is composed

by classes representing the entities of our application.

internship report 35
CHAPTER 3. ANALYSIS AND DESIGN

Figure 3.3 – Class Diagram

From this diagram we can identify the following main classes:

— User: it contains users information except the account which is related to as a foreign key.

— Client : this class has all the information about the customer (name , address and the

VAT number ).

— Project this class has all the information about the project except the client-id and

account-id which are related to as a foreign key , this class including its status that should

be (active , inactive , review or completed).

— Task:this entity contains all the information about the tasks such as its title and its status.

— Opportunity: this entity contains all the information about the tasks such as its name ,the

user who created the opportunity , the stage and the client related to .

internship report 36
CHAPTER 3. ANALYSIS AND DESIGN

— Contact: this entity contains all the information about the potential client

— Ticket: this entity contains all the information about the ticket including its status severity

and the client related to .

3.2.6 Deployment Diagram

The diagram below (Figure 3.4) represents the interactions between the various software

and hardware components of the system .

Figure 3.4 – Class Diagram

internship report 37
Chapter 4

Construction phase

Introduction
The construction stage is all about software architecture, which refers to the underlying

structure of a software system and the principles that go into creating that structure and system

of applications. Each framework has software components, their connections, item character-

istics, and interconnections that we will discover in this chapter.

4.1 application architecture


Our application is based on a 3-third architecture, it aims to model the application as an

assembly of three layers:

— Presentation tier: The presentation tier is the user interface and communication layer of

the application, where the end user interacts with the application. Its main purpose is

to display information to and collect information from the user. This top-level tier can

run on a web browser, as desktop application, or a graphical user interface (GUI), for

example. Web presentation tiers are usually developed using HTML, CSS and JavaScript.

Desktop applications can be written in a variety of languages depending on the platform.

— Application tier : The application tier, also known as the logic tier or middle tier, is

the heart of the application. In this tier, information collected in the presentation tier is

processed - sometimes against other information in the data tier - using business logic, a

specific set of business rules. The application tier can also add, delete or modify data in

the data tier.

internship report 38
CHAPTER 4. CONSTRUCTION PHASE

The application tier is typically developed using Python, Java, Perl, PHP or Ruby, and

communicates with the data tier using API calls.

— Data : The data tier, sometimes called database tier, data access tier or back-end, is where

the information processed by the application is stored and managed. This can be a re-

lational database management system such as PostgreSQL, MySQL, MariaDB, Oracle,

DB2, Informix or Microsoft SQL Server, or in a NoSQL Database server such as Cassan-

dra, CouchDB or MongoDB.

In a three-tier application, all communication goes through the application tier. The pre-

sentation tier and the data tier cannot communicate directly with one another.

The principle of a three-thirds architecture is relatively simple: it consists in separating the re-

alization of the three parts previously seen (data storage, application logic, presentation). This

separation means that it is possible to deploy each party on an independent server, however

this is not mandatory.

Figure 4.1 – 3-tier-architecture

internship report 39
CHAPTER 4. CONSTRUCTION PHASE

4.2 Symfony and MVC


Symfony is based on the classic web design pattern known as the MVC architecture, which

consists of three levels:

— The Model: The Model represents the information on which the application operates–its

business logic.

— The View: renders the model into a web page suitable for interaction with the user.

— The Controller: responds to user actions and invokes changes on the model or view as

appropriate.

Figure 2-1 illustrates the MVC pattern.

The MVC architecture separates the business logic (model) and the presentation (view), result-

Figure 4.2 – MVC pattern

ing in greater maintainability. For instance, if your application should run on both standard

web browsers and handheld devices, you just need a new view; you can keep the original con-

troller and model. The controller helps to hide the detail of the protocol used for the request

(HTTP, console mode, mail, and so on) from the model and the view. And the model abstracts

internship report 40
CHAPTER 4. CONSTRUCTION PHASE

the logic of the data, which makes the view and the action independent of, for instance, the

type of database used by the application [9].

4.2.1 Symfony’s MVC Implementation

Symfony is built according to a MVC (Model/View/Controller) architecture . The model

manages all interactions with the database. It provides an abstraction of data and contains the

business code. The controller is responsible for the control logic of application. In interaction

with the model, it generates the views that represent the interface user . Figure [4.3] describes

the processing flow of each HTTP request. The upstream controller, unique, is called «front

controller». The implementation provided by default web/app.php has only rarely need to be

changed. Depending on the configuration of the routing system, it will delegate the generation

of the response to a given controller and more precisely to a given action (PHP function). Each

request is associated with a «route» which defines the URL to use to access the resource and

the controller that will need to generate the response. A route may also include parameters

and conditions on these parameters or the expected HTTP method. The parameter values are

automatically passed to the controller. Symfony supports virtually any type of URL and allows

you to easily manage «clean» URLs important for user comfort and referencing. The URLs are

indeed never «hardcoded» in the views and can be easily modified

Figure 4.3 – request workflow

By default, Symfony uses the ORM (Object Relational Mapper) Doctrine to interact with re-

lational data. Based on metadata describing the persistent objects of the application, called "en-

tities", provided by the developer by configuration, an ORM allows a correspondence between

internship report 41
CHAPTER 4. CONSTRUCTION PHASE

object-oriented programming and the relational database. The developer is thus relieved of the

persistence management tasks, always complex, and the application is more portable: at any

time the database used can be changed by configuration without modifying the code. Doctrine

is built from a database abstraction layer (Doctrine Database Abstraction Layer) and provides

a SQL called Doctrine Query Language (DQL). Finally, even if the views can still be written in

PHP, Symfony 2 uses by default a new, more flexible and efficient template system called Twig.

For example, this system supports inheritance and a template can redefine parts of a parent

template. Using Twig also protects the developer by default from CSS (Cross-Site Scripting)

attacks

4.3 deployment on azure


Our solution takes a cloud-native approach, which means it takes advantage of all of the

benefits of the cloud delivery paradigm. These benefits are available through cloud providers

such as Microsoft Azure, Google Cloud, Amazon Web Services, and others. In particular,our

choice is Microsoft Azure Cloud provider which is one of the top 3 cloud providers in the

market with more than 200 products and cloud services.

internship report 42
Chapter 5

Product development process and


implementation

Introduction
In this chapter we are going to describe every Sprint (after the designing sprint which we

already describe it in the second chapter) by providing its details and steps , with provisioning

of the implementation.

5.1 Development part :


5.1.1 First Sprint

Each sprint has a time-box, a duration of one month or less during which a functional

“Finished” Product Increment is created .

Planning a sprint results in two artifacts that are the goal of the sprint and the product backlog.

The aim of this sprint is to manage everything concerning users such as the administrator and

employees. Table 3 defines the Backlog of the sprint 1 product, which summarizes the user

stories to be developed

Users stories of first sprint :

— Registration and login (Back-end)

— Registration and login (Front-end)

— User management

internship report 43
CHAPTER 5. PRODUCT DEVELOPMENT PROCESS AND IMPLEMENTATION

— Client management

The table below presents the associate tasks of user stories with time estimation in hours.

Number Tasks estimation(H)


1 creation and adapting of Symfony project 6H
2 creation of user entity 1H
3 Setting up the controller (security controller) 5H
4 Generating of Login and register form 2H
5 Interfaces Development 24 H
6 Template selection and integration 12 H
7 creation of the security layer 1H
8 creation of client entity 1H
9 setting up relationship between entities 1H
10 Roles and ACL’s for a given company 12 H
11 Add , delete , update and show users 4H
12 Add , delete , update and show Clients 4H

Table 5.1 – First sprint tasks

5.1.1.1 Sequence diagram (registration)

The Figure below demonstrate the sequence diagram of the registration process.

Figure 5.1 – Registration Sequence diagram

internship report 44
CHAPTER 5. PRODUCT DEVELOPMENT PROCESS AND IMPLEMENTATION

5.1.1.2 Implementation (registration)

The figure below shows our registration interface.

Figure 5.2 – registration interface

5.1.1.3 Sequence diagram (login)

The Figure below demonstrate the sequence diagram of the login process.

Figure 5.3 – log In Sequence diagram

internship report 45
CHAPTER 5. PRODUCT DEVELOPMENT PROCESS AND IMPLEMENTATION

5.1.1.4 Implementation (login)

The user must log in using his username and password on this interface, and he has the

option of showing his password before submitting the form. And he can go to the registration

interface (sign up) if he haven’t an account

Figure 5.4 – log In interface

5.1.1.5 Sequence diagram ( user management)

A sequence diagram describes the interactions by sequentially showing the messages sent

between objects. An interaction is a sequence of messages between usual instances of classes,

components, subsystems or actors. we find below diagrams in Figure 5.5 and 5.6 represents

respectively the the “Add User” and "update user " user cases

— sequence diagram create new user

internship report 46
CHAPTER 5. PRODUCT DEVELOPMENT PROCESS AND IMPLEMENTATION

Figure 5.5 – sequence diagram create new user

internship report 47
CHAPTER 5. PRODUCT DEVELOPMENT PROCESS AND IMPLEMENTATION

— sequence diagram update user

Figure 5.6 – sequence diagram create new user

internship report 48
CHAPTER 5. PRODUCT DEVELOPMENT PROCESS AND IMPLEMENTATION

5.1.1.6 Implementation user management

The human/machine interfaces of the application are all the means used by man to com-

municate with a machine. They facilitate dialogue between man and machine and improve

the performance of the application. In the design of the interfaces of our application we have

respected a set of ergonomic choices such as readability, comprehensibility, etc.

Interfaces shown in Figure 5.6 , 5.7 and 5.8 respectively allow the administrator to add , search,

delete, modify an employee and to access the list of resources by clicking on the appropriate

button.

Figure 5.7 – add new user interface

internship report 49
CHAPTER 5. PRODUCT DEVELOPMENT PROCESS AND IMPLEMENTATION

Figure 5.8 – edit user interface

Figure 5.9 – list users interface

5.1.1.7 Sequence diagram (client management )

In the figure below we find the sequence diagram of Adding and updating client action.

— sequence diagram add new client

internship report 50
CHAPTER 5. PRODUCT DEVELOPMENT PROCESS AND IMPLEMENTATION

Figure 5.10 – sequence diagram add client

in the next figure we describe the client edit action

— sequence diagram edit client

Figure 5.11 – edit user interface

internship report 51
CHAPTER 5. PRODUCT DEVELOPMENT PROCESS AND IMPLEMENTATION

5.1.1.8 Implementation client management

Interfaces shown in Figure 5.12 , 5.13 and 5.14 respectively allow the administrator to add ,

search, delete, modify an employee and to access the list of clients.

Figure 5.12 – Client list interface

Figure 5.13 – New client interface

Figure 5.14 – edit client interface

internship report 52
CHAPTER 5. PRODUCT DEVELOPMENT PROCESS AND IMPLEMENTATION

5.1.2 Second Sprint

Users stories of Second sprint :

— Projects management

— Opportunities management

— Tasks management

— Contacts management

— Tickets management

The table below presents the associate tasks of user stories with time estimation in hours.

NOTE : here i will combine all the modules(Projects,Opportunities,Tasks,Contact,Tickets) work

to avoid repetition .

Number Tasks estimation(H)


1 Creation of entities and their relationship 8H
2 integration of data Table JQuery 8H
3 setting up the back end Validation 8H
4 setting up and developing the dynamic form 16
5 Interfaces Development 30 H
6 developing the feature of activate or deactivate user 12 H
7 developing and setting up soft delete 16 H
8 developing and setting up batch delete 16 H
9 developing and setting up doctrine Filter 12 H
10 Add , delete , update and show Projects 4H
11 Add , delete , update and show Opportunities 4H
12 Add , delete , update and show tasks 4H
13 Add , delete , update and show contacts 4H
14 Add , delete , update and show Tickets 4H

Table 5.2 – Second sprint tasks

5.1.2.1 Sequence diagram (Tasks management)

here we choose the tasks management user story which combine some feature from other

user stories also to avoid repetition .

In the figure below we find the sequence diagram of Adding a task action.

in the next figure we describe the Task edit action .

internship report 53
CHAPTER 5. PRODUCT DEVELOPMENT PROCESS AND IMPLEMENTATION

Figure 5.15 – Add Task Sequence diagram

Figure 5.16 – Edit Task Sequence diagram

5.1.2.2 Implementation

When the user chooses to create a new Task, he fills all the required fields with valid data .

The figure below shows the Document’s interface :

internship report 54
CHAPTER 5. PRODUCT DEVELOPMENT PROCESS AND IMPLEMENTATION

Figure 5.17 – Task’s creation interface

Figure 5.18 – Tasks list interface

internship report 55
CHAPTER 5. PRODUCT DEVELOPMENT PROCESS AND IMPLEMENTATION

the following interfaces belong to other modules .

— Project management interface’s

Figure 5.19 – project’s list interface

Figure 5.20 – projects list interface

— Opportunities management interface’s

Figure 5.21 – Opportunities list interface

internship report 56
CHAPTER 5. PRODUCT DEVELOPMENT PROCESS AND IMPLEMENTATION

Figure 5.22 – Opportunitie info interface

— Contacts management interface’s

Figure 5.23 – Contacts list interface

Figure 5.24 – Contact info interface

internship report 57
CHAPTER 5. PRODUCT DEVELOPMENT PROCESS AND IMPLEMENTATION

5.1.3 Third Sprint

Users stories of Third sprint :

— Dashboard

The table below presents the associate tasks of user stories with time estimation in hours.

Number Tasks estimation(H)


1 installing and implementing dashboard package 8H
2 developing dashboard’s logic 8H
3 Dashboard design 16 H

Table 5.3 – Third sprint tasks

Figure 5.25 – Dashboard

the dashboard shows the statistics of every system’s elements.

5.2 Cloud and DevOps part :


5.2.1 Forth Sprint

Users stories of forth sprint :

— Code testing and Git preparation

— Azure DevOps project creation and configuration

internship report 58
CHAPTER 5. PRODUCT DEVELOPMENT PROCESS AND IMPLEMENTATION

The table below presents the associate tasks of user stories with time estimation in hours.

Number Tasks estimation(H)


1 Git repository creation and configuration 2H
2 Demand for Azure Devops special subscription (free 7 days waiting
1800 minutes) for response from
Microsoft
3 Create and configure azure devops project 16 H
4 Configure azure and Git connection 16 H
5 Development of YAML file (azure pipeline.yml) 36 H

Table 5.4 – Forth sprint tasks

5.2.2 Implementation

Our pipeline is connected with a GitHub repository with an YAML Script as we see in the

figure below .

Figure 5.26 – GitHub Repository

We consult the Yaml script in the nest figure

internship report 59
CHAPTER 5. PRODUCT DEVELOPMENT PROCESS AND IMPLEMENTATION

Figure 5.27 – YAML Script

The figure below shows the overview of our project on azure DevOps.

Figure 5.28 – overview of azure DevOps project

internship report 60
CHAPTER 5. PRODUCT DEVELOPMENT PROCESS AND IMPLEMENTATION

The figure below shows the pipeline’s runs history . Figure 53:

Figure 5.29 – pipeline’s runs history

The figure below demonstrate the steps executed in the pipeline and their status.

Figure 5.30 – pipeline’s steps

internship report 61
CHAPTER 5. PRODUCT DEVELOPMENT PROCESS AND IMPLEMENTATION

in this figure shows the pipeline the ow of the established release and its deployment on

azure .

Figure 5.31 – Flow of the release

5.2.3 Fifth Sprint

Users stories of fifth sprint :

— Database Deployment

— Deployment

The table below presents the associate tasks of user stories with time estimation in hours.

Number Tasks estimation(H)


1 Azure portal subscription process (free 100 dollars) 9 days waiting
for validation
from Microsoft
2 Create resource on Azure 7H
3 Connecting Azure DevOps pipeline with Azure Por- 16 H
tal
4 Create ressource on Azure (MySql DataBase) 4H
5 Migrate local database to azure 8H
6 Consumin resource from Azure by the Back-end 8H

Table 5.5 – Fifth sprint tasks

internship report 62
CHAPTER 5. PRODUCT DEVELOPMENT PROCESS AND IMPLEMENTATION

5.2.3.1 Implementation

The figure below shows Azure Portal Home page with a list of recent resources

Figure 5.32 – Azure portal home page

Because the self-financing of the cloud and devops part, i become in a position that i have

to do a student subscription on Microsoft Azure.

Figure 5.33 – Azure subscription for students

internship report 63
CHAPTER 5. PRODUCT DEVELOPMENT PROCESS AND IMPLEMENTATION

— Database deployed

— Application deployed

— workbench

The figure below shows the API Application on Azure . Figure 58: Azure API Application

Next the

Figure 5.34 – Azure Application

Next the figure blow shows the mysql for azure database server.

Figure 5.35 – MySql for azure database server

internship report 64
CHAPTER 5. PRODUCT DEVELOPMENT PROCESS AND IMPLEMENTATION

in the figure below there is MySql workbench and the local and azure instance that we

migrate our data on it .

Figure 5.36 – Local and azure databases

Conclusion
At this level, we managed to develop the last sprint of our system to finally arrive at a

functional and complete product. Our application is ready to be exploited by offering users the

possibility of managing the modules of the platform.

internship report 65
Chapter 6

General Conclusion

It was a great opportunity to learn and discover different technologies and skills during the

several months of conception realising my project.

To sum up the project , i design a general conception of a workflow management system

for Axia-Solution and i realise the first part of it (other parts are distributed with rest of the

web team) then implement my back end in a CI/CD pipeline on azure and deploy it on Azure

public cloud.

This report starts by the general context presented by a study of existing in order to extract

a good idea of the work ow concept and build our special solution that respond to the company

needs,Secondly, we analyzed and clarified our functional and non-functional needs. After that,

we went over the environment and the development tools that we utilized to create this so-

lution. We continued with the constructive phase, which represents the architecture used in

our solution, followed by the implementation phase, which provides more information on the

project’s SCRUM sprints .

In addition i was determined to put a well designed DevOps and cloud architecture , so i

used Microsoft Azure to establish the compatible structure with our application.

Furthermore, from a technological standpoint, the project was beneficial be- cause it al-

lowed us to deepen and master different language such as JavaScript and c sharp(asp.net core)

as well as to enhance our web development skills with Reactjs. Additionally, this project as-

sisted us in better mastering and understanding the various Microsoft Azure services. Apart

from the technical aspects, this project provided an opportunity to learn about the functioning

of a professional hierarchy inside a major corporation and the challenges that come with it,

internship report 66
CHAPTER 6. GENERAL CONCLUSION

such as time and effort distribution.

To sum it all up, this project has provided me with a valuable chance to familiarize myself

with the world of Web apps, as well as a little step toward the cloud. It was a great experience

in which I was able to put my skills to use while also learning about new topics like Microsoft

Azure.

Finally, as future perspectives ,our application has a long way to go before it becomes per-

fect, and for that we depend on the efforts of the entire team. in other hand there are more

services on azure to discover and the possibility to implement DevOps open source tools with

it.

internship report 67
Netography

[1] What is Agile methodology [ https://medium.com/@gianpaul.r/software-development-

methodologies-a856883a7630] (06/03/2022)

[2] The general principles of the Agile Method [ https://www.excellon.co.uk/agilesw.html]

(10/03/2022)

[3] Mathieu Peltier. Développement d’applications web avec le framework php symfony 2

[4] Rasmus Lerdorf, Kevin Tatroe, and Peter MacIntyre. Programming Php. " O’Reilly Media,

Inc.", 2006. [5] Mukund Chaudhary and Ankur Kumar. PhpStorm Cookbook. Packt Publishing

Ltd, 2014.

[6] François Zaninotto and Fabien Potencier. The definitive guide to Symfony. Apress, 2007.

[7] Sergio Maffeis and Ankur Taly. Language-based isolation of untrusted javascript. In 2009

22nd IEEE Computer Security Foundations Symposium, pages 77–91. IEEE, 2009

[8]Baishakhi Ray, Daryl Posnett, Vladimir Filkov, and Premkumar Devanbu. A large scale

study of programming languages and code quality in github. In Proceedings of the 22nd ACM

SIGSOFT international symposium on foundations of software engineering, pages 155–165,

2014.

[9] Microsoft Teams [https://www.bdo.com/digital/services/solutions/modern-workplace/microsoft-

teams] (05/04/2022)

[10] What is the cloud [https://www.cloudflare.com/learning/cloud/what-is-the-cloud/] (20/04/2022)

[11] cloud [https://www.ssh.com/cloud/computing/definition]

[12] Cognito [https://aws.amazon.com/cognito/faqs/]

[14 15] AWS Lambda [https://aws.amazon.com/lambda/features/] (03/06/2022)

[16] DevOps philosophy [ https://www.isroset.org/pubpaper/IJSRCSE/15-IJSRCSE-0833.pdf]

(12/06/2022)

[17] what is DevOps [https://www.lucidchart.com/blog/devops-process-flow] (15/06/2022)

internship report 68
CHAPTER 6. GENERAL CONCLUSION

[18] DevOps Principles [https://www.lucidchart.com/blog/devops-process-flow] (15/06/2020)

[https://www.tutorialspoint.com/gitlab/gitlabciconfiguringgitlabrunners] (13/06/2022)

internship report 69
Bibliography

[1] Mukund Chaudhary and Ankur Kumar. PhpStorm Cookbook. Packt Publishing Ltd, 2014.

[2] You-Shyang Chen, Chienwen Wu, Heng-Hsing Chu, Chien-Ku Lin, and Huan-Ming

Chuang. Analysis of performance measures in cloud-based ubiquitous saas crm project

systems. The Journal of Supercomputing, 74(3):1132–1156, 2018.

[3] Michael Kofler. What is mysql? In The Definitive Guide to MySQL, pages 3–19. Springer,

2004.

[4] Rasmus Lerdorf, Kevin Tatroe, and Peter MacIntyre. Programming Php. " O’Reilly Media,

Inc.", 2006.

[5] Sergio Maffeis and Ankur Taly. Language-based isolation of untrusted javascript. In 2009

22nd IEEE Computer Security Foundations Symposium, pages 77–91. IEEE, 2009.

[6] Mathieu Peltier. Développement d’applications web avec le framework php symfony 2.

[7] Baishakhi Ray, Daryl Posnett, Vladimir Filkov, and Premkumar Devanbu. A large scale

study of programming languages and code quality in github. In Proceedings of the 22nd

ACM SIGSOFT international symposium on foundations of software engineering, pages 155–165,

2014.

[8] Ken Schwaber and Jeff Sutherland. The scrum guide. Scrum Alliance, 21(19):1, 2011.

[9] François Zaninotto and Fabien Potencier. The definitive guide to Symfony. Apress, 2007.

internship report 70

You might also like

pFad - Phonifier reborn

Pfad - The Proxy pFad of © 2024 Garber Painting. All rights reserved.

Note: This service is not intended for secure transactions such as banking, social media, email, or purchasing. Use at your own risk. We assume no liability whatsoever for broken pages.


Alternative Proxies:

Alternative Proxy

pFad Proxy

pFad v3 Proxy

pFad v4 Proxy