Grad Report Final 0318
Grad Report Final 0318
[2] You-Shyang Chen, Chienwen Wu, Heng-Hsing Chu, Chien-Ku Lin, and
74(3):1132–1156, 2018.
php symfony 2.
[7] Baishakhi Ray, Daryl Posnett, Vladimir Filkov, and Premkumar De-
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-
General introduction 1
1 GENERAL PRESENTATION OF THE PROJECT 3
1.3.3 Problematic . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 8
1.3.5 Meetings . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 10
1.4 Conclusion . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 12
2 Key concepts and technologies 13
internship report ii
CONTENTS
4 Construction phase 38
5.1.2.2 Implementation . . . . . . . . . . . . . . . . . . . . . . . . . . . . 54
5.2.2 Implementation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 59
5.2.3.1 Implementation . . . . . . . . . . . . . . . . . . . . . . . . . . . . 63
6 General Conclusion 66
internship report iv
List of Figures
internship report v
LIST OF FIGURES
4.1 3-tier-architecture . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 39
internship report vi
LIST OF FIGURES
5.25 Dashboard . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 58
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
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
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
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
modules
internship report 2
Chapter 1
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.
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.
IN) and 8 Cities, providing a positive environment where passionate people can exercise their
internship report 3
CHAPTER 1. GENERAL PRESENTATION OF THE PROJECT
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
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
to underline the problems encountered to which this project will lead to solutions.
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
internship report 5
CHAPTER 1. GENERAL PRESENTATION OF THE PROJECT
— Invoicing customers
— The cost plans of employees and reporting of commercial, HR and administrative activity!
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.
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-
— 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
documents of employees in their dedicated interfaces (work contracts, pay slips, etc.)
internship report 6
CHAPTER 1. GENERAL PRESENTATION OF THE PROJECT
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
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
Work Methodology
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.
Definition
In our project, we choose an agile method, more accurately the Scrum method. This 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
internship report 9
CHAPTER 1. GENERAL PRESENTATION OF THE PROJECT
Illustraion
•First of all identify the maximum functionality to be achieved and assign them a priority
•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.5 Meetings
— The Daily Scrum: a daily meeting to take stock of progress and challenges faced by each
— The Sprint planning meeting: meeting which precedes the beginning of each develop-
internship report 10
CHAPTER 1. GENERAL PRESENTATION 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
— 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
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
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-
internship report 12
Chapter 2
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.
to increase sales, keeps existing customers happy, and can help build a sense of loyalty.
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]
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.
Having researched the need for Customer relationship management and some of its uses to
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.
internship report 14
CHAPTER 2. KEY CONCEPTS AND TECHNOLOGIES
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.
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
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
■ Mysql Workbench
MySQL Workbench is a visual database design tool that combines SQL programming,
administration, database design, construction, and maintenance for the MySQL database
■ 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
of a website [6]. Symfony being based on PHP, it integrates the features brought by the
■ PHP
PHP is a general-purpose scripting language geared toward web development. PHP code
daemon or as a Common Gateway Interface (CGI) executable. On a web server, the result
■ jQuery
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
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
JavaScript, often known as JS, is a computer language that follows the ECMAScript stan-
entation, and frst-class functions are all features of this language [5].
■ Mysql
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
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
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-
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.
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.
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
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
— Automation :
— 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:
— 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
— Deploy : The updated code is delivered to the end-user when it has passed the
testing process.
— Continuous Integration CI :
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
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
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
— 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
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-
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 :
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
— 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
— 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.
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
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
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
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
price strategy for their cloud solutions. Based on services provided by the Pricing domain
internship report 24
CHAPTER 2. KEY CONCEPTS AND TECHNOLOGIES
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%,
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
— DevOps Tools :
The ow of our application start with pushing code to GitHub pass by the pipeline in
— GitHub :
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
— 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
— Azure Repos : supply Git repositories or Team Foundation Version Control for the
— Azure Pipelines : hand over build and release services to assist continuous integra-
— Azure Boards : provides a suite of Agile tools to assure planning and tracking work,
— Azure Test Plans : present different tools to test the apps, as well as manual/exploratory
— 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 :
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
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
internship report 27
Chapter 3
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.
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
internship report 28
CHAPTER 3. ANALYSIS AND DESIGN
In order to describe the application to be developed, we will identify the functional require-
— Registration : The user create a profile by filling several fields in the registration form
— Login : The user log into the application through his specific account by entering his
— Users management : User management will be driven by the system administrator. This
— Edit employee
— Delete employee
— Consult an employee.
— Administrator
— delete a client
— Employee
— Consult an employee.
— Project management :
— Administrator
internship report 29
CHAPTER 3. ANALYSIS AND DESIGN
— 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
— delete a task
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
internship report 30
CHAPTER 3. ANALYSIS AND DESIGN
— delete an opportunity
— Contact Management : Contact management is the act of storing, organizing, and track-
— 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
— delete a ticket
— edit ticket
— Dashboard consulting :
the user can consult a dashboard contained the system elements statistics .
internship report 31
CHAPTER 3. ANALYSIS AND DESIGN
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,
— 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
— 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 :
interfaces.
To enable for future evolution’s or enhancements, the code must be clear and organized.
This section will be devoted to the display of our application’s overall use case diagram, as
Here we will present the whole project use case diagram devoted to the whole team , and then
internship report 32
CHAPTER 3. ANALYSIS AND DESIGN
internship report 33
CHAPTER 3. ANALYSIS AND DESIGN
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
3. The User adds employees by adding all the information needed such as name, Email ,
internship report 34
CHAPTER 3. ANALYSIS AND DESIGN
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
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
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
internship report 35
CHAPTER 3. ANALYSIS AND DESIGN
— 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
— 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
The diagram below (Figure 3.4) represents the interactions between the various software
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-
— 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.
— 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
internship report 38
CHAPTER 4. CONSTRUCTION PHASE
The application tier is typically developed using Python, Java, Perl, PHP or Ruby, and
— 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-
DB2, Informix or Microsoft SQL Server, or in a NoSQL Database server such as Cassan-
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
internship report 39
CHAPTER 4. CONSTRUCTION PHASE
— 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.
The MVC architecture separates the business logic (model) and the presentation (view), result-
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
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
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-
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
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
internship report 42
Chapter 5
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.
Each sprint has a time-box, a duration of one month or less during which a functional
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
— 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.
The Figure below demonstrate the sequence diagram of the registration process.
internship report 44
CHAPTER 5. PRODUCT DEVELOPMENT PROCESS AND IMPLEMENTATION
The Figure below demonstrate the sequence diagram of the login process.
internship report 45
CHAPTER 5. PRODUCT DEVELOPMENT PROCESS AND IMPLEMENTATION
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
A sequence diagram describes the interactions by sequentially showing the messages sent
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
internship report 46
CHAPTER 5. PRODUCT DEVELOPMENT PROCESS AND IMPLEMENTATION
internship report 47
CHAPTER 5. PRODUCT DEVELOPMENT PROCESS AND IMPLEMENTATION
internship report 48
CHAPTER 5. PRODUCT DEVELOPMENT PROCESS AND IMPLEMENTATION
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
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.
internship report 49
CHAPTER 5. PRODUCT DEVELOPMENT PROCESS AND IMPLEMENTATION
In the figure below we find the sequence diagram of Adding and updating client action.
internship report 50
CHAPTER 5. PRODUCT DEVELOPMENT PROCESS AND IMPLEMENTATION
internship report 51
CHAPTER 5. PRODUCT DEVELOPMENT PROCESS AND IMPLEMENTATION
Interfaces shown in Figure 5.12 , 5.13 and 5.14 respectively allow the administrator to add ,
internship report 52
CHAPTER 5. PRODUCT DEVELOPMENT PROCESS AND IMPLEMENTATION
— 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.
to avoid repetition .
here we choose the tasks management user story which combine some feature from other
In the figure below we find the sequence diagram of Adding a task action.
internship report 53
CHAPTER 5. PRODUCT DEVELOPMENT PROCESS AND IMPLEMENTATION
5.1.2.2 Implementation
When the user chooses to create a new Task, he fills all the required fields with valid data .
internship report 54
CHAPTER 5. PRODUCT DEVELOPMENT PROCESS AND IMPLEMENTATION
internship report 55
CHAPTER 5. PRODUCT DEVELOPMENT PROCESS AND IMPLEMENTATION
internship report 56
CHAPTER 5. PRODUCT DEVELOPMENT PROCESS AND IMPLEMENTATION
internship report 57
CHAPTER 5. PRODUCT DEVELOPMENT PROCESS AND IMPLEMENTATION
— Dashboard
The table below presents the associate tasks of user stories with time estimation in hours.
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.
5.2.2 Implementation
Our pipeline is connected with a GitHub repository with an YAML Script as we see in the
figure below .
internship report 59
CHAPTER 5. PRODUCT DEVELOPMENT PROCESS AND IMPLEMENTATION
The figure below shows the overview of our project on azure DevOps.
internship report 60
CHAPTER 5. PRODUCT DEVELOPMENT PROCESS AND IMPLEMENTATION
The figure below shows the pipeline’s runs history . Figure 53:
The figure below demonstrate the steps executed in the pipeline and their status.
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 .
— Database Deployment
— Deployment
The table below presents the associate tasks of user stories with time estimation in hours.
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
Because the self-financing of the cloud and devops part, i become in a position that i have
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
Next the figure blow shows the 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
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
internship report 65
Chapter 6
General Conclusion
It was a great opportunity to learn and discover different technologies and skills during the
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
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
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
methodologies-a856883a7630] (06/03/2022)
(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
2014.
teams] (05/04/2022)
(12/06/2022)
internship report 68
CHAPTER 6. GENERAL CONCLUSION
[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
[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
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