KEMBAR78
Software Report PDF | PDF | Cloud Computing | Enterprise Resource Planning
0% found this document useful (0 votes)
62 views135 pages

Software Report PDF

The document outlines a graduation project focused on developing an ERP CRM software by Dhia Eddine Snoussi and Mariem Moalla, supervised by Mr. Hafedh Nefzi and Mr. Mohamed Aymen Ben Salah. It discusses the importance of integrating ERP and CRM systems to enhance organizational efficiency and provides an analysis of existing software in the market. The report is structured into chapters covering existing analysis, project planning, technical choices, and project launch details.

Uploaded by

Lajil Adel
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)
62 views135 pages

Software Report PDF

The document outlines a graduation project focused on developing an ERP CRM software by Dhia Eddine Snoussi and Mariem Moalla, supervised by Mr. Hafedh Nefzi and Mr. Mohamed Aymen Ben Salah. It discusses the importance of integrating ERP and CRM systems to enhance organizational efficiency and provides an analysis of existing software in the market. The report is structured into chapters covering existing analysis, project planning, technical choices, and project launch details.

Uploaded by

Lajil Adel
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/ 135

Ministry of Higher Education and Scientific Research

University of Manouba

Higher Institute of Arts and Multimedia

Graduation Project Guide


Code: IM 308

ERP CRM Software

Realized by

Dhia Eddine Snoussi Mariem Moalla

Supervised by

Mr Hafedh Nefzi - ISAMM


Mr Mohamed Aymen Ben Salah - Bitsoft Innovation

Academic year 2020-2021


Acknowledgement

Firstly, we want to thank God who gave us safety in the Covid19 epidemic the
courage and the will to carry out this modest work.

We would like to thank the entire administration staff members and professors
of the Higher Institute of Multimedia Arts of Manouba for helping us with
various administrative tasks.

With great pleasure, we would like to express our entire appreciation to our
Supervisor Mr. Ayman Ben Salah for his valuable effort, guidance and
suggestions that made our mission execution is possible.

We would like to thank our respected Supervisor Mr. Hafedh Nefzi for his
constructive criticism and the time he took to hear us and guide us in keeping us
on the correct path for our internship project.
And, a special thanks to the Microsoft community in Tunisia and university
clubs for increasing our passion and motivating us for a better future.
Finally, we would like to express our most sincere thanks to the members of the
jury who have done us the honour to review and evaluate our work.
Dedications

To everyone who supported me during this journey, to my parents who pushed


me toward my goal and always gave me their full support, friends because if it
weren't for them my field of view would have changed and I wouldn't be able to
go this far, and my partner with whom we built this project together step by
step and cheered up each other all along, I give to all of them my greatest thanks
and regards.
This support was the main reason for this project to go this far.
I dedicate this project to all of these wonderful people, without their existence
no success would be possible.

Mariem Moalla

I offer my dedication to all the people who without them this achievement
wouldn't be possible.
I give my regards to all my family member for trusting me, my partner with
whom I built this project after going together through all difficulties and hard-
working days, if not for the support we gave to each other and the mutual
understanding we share we wouldn't make it this far.
Also a special thanks to Mariem Kharrat for the support she gave me from the
start of my professional path and all advice she gave me, and Safi Negra for
motivating me and his aid.

Dhia Snoussi
Content Table

I
Content Table

II
Content Table

III
Content Table

IV
Content Table

V
List of Figures

VI
List of Figures

VII
List of Figures

VIII
List of Tables

IX
Abbreviation List

X
Introduction

Organizations starting to develop their processes, products, and customers


usually face a lot of problems that prevent them from keeping everything in
order.
Thus, they will have to deal with many customers and at a certain point, they
will need to keep track of their data.
In addition to financial issues, because at some point, each organization needs
to have records of all its withdrawals and spending, provide detailed reports,
and store information about orders, products, and delivery expenses.
On the other hand, each company has its customers and vendors to deal with,
and it would be necessary to keep track of their data to afford better services
and assure a good relationship with them.
Yet another sensitive topic is employee communication and management.
A user may need to get some important information from the other, however, it
would be troubling if the latter's data won't be available.

Therefore, in each company, it is certainly needed to be in touch with one


another to avoid such situations, and it is so important to always track
employees' records, have their contact information, and keep an eye on their
performance.
And as they say “ For a business to run at its best, all teams should be working
within the same network ”[1]

In addition to keeping track of all transfer movement, manufacturing, and


distribution of each product a company has and keeping a record of it, these are
sensitive data that needs to be stored and protected.

14
Introduction

Looking back to all those problems that an organization must deal with; a
solution is required so it can run its business effectively.
In this case, we have to look back at what ERP and CRM systems are.
Starting with CRM systems, they allow an organization to keep in touch with the
customer and all its information so that the latter will be more satisfied with the
company's services.
Adding to this, the possibility to automatically store and organize
confidential data and documents such as invoices, contracts, and offering
complete visibility on purchasing habits, order history, and customer needs.
Introducing next ERP system, this solution will help the organization to avoid
all product, services management, and financial problems we mentioned earlier.
In fact, ERP systems can log all the products and materials as well as
monitoring and managing them.
As it gives an organization the possibility to keep track, report, and store the
information of each withdrawal and spending.
Moving to user management problems, when using an ERP system all users'
data is available and easily in reach, thus it would be an easy task to track their
records.
Another problem, in this case, is the difficulty of an organization using two
systems to manage its data, it is highly not recommended to do so because in
this case we may have duplicated data in both systems.
In fact, "The point of ERP and CRM integration is to ensure that automated
and consistent information is shared between both systems, creating a single
source of truth.“[2]
In simple terms, this combination will help us deal, at the same time , with
managing many core business in one system ( Financials ,Human resources,
Manufacturing management, Inventory management, Purchasing management,
Quality management, Sales management. .
We, in this case, all along the report, will be showing and explaining each step
we took to build such software that combines both ERP and CRM systems.

15
Introduction

This report contains 4 main chapters:


-Existing Analysis:
In this chapter, we will give some examples of other software which are similar
to the one we developed
-Project Initialization & Planification:
This later contains an explanation of the different functionalities of this app
and the methodologies we followed to build it.
-Technical Choice & Functional Specification:
In this chapter, we will justify the technical choice we adapted in our work.
-Project Lunching:
Finally, during this chapter, we will explain each module of this app and break
down each of its functionalities and components.

We had the opportunity to have an internship within BitSoft Innovation, it was


a great chance for both learning and professional development.
It was Founded in 2020 and it is a specialist in the integration of solutions.
A pioneer in supporting its clients in the digital transformation process
(strategy, valuation,...) and software development.
Bitsoft Innovation offers a wide range of services to guarantee you a smooth
and fast digital transformation its domination on web, mobile and cloud
technologies make Bitsoft innovation a major player in the high tech world, as
examples of these services are :

- Integration of solution
- Specific development.
- Development.
- AI and big data.

16
Introduction

This work is a part of our graduation project for our bachelor degree in
computer science and multimedia at the Higher Institute of Multimedia
Arts of Manouba “ISAMM”.
Our internship is done in the start-up BitSoft innovation, and our purpose is
to build an ERP/CRM solution..

A Customer Relationship Management (CRM) system helps manage customer


data. It supports sales management, delivers actionable insights, integrates with
social media and facilitates team communication. CRM systems offer complete
mobility and access to an ecosystem of bespoke apps.[3]
Enterprise resource planning (ERP) refers to a type of software that
organizations use to manage day-to-day business activities such as accounting,
procurement, project management, risk management and compliance, and
supply chain operations. A complete ERP suite also includes enterprise
performance management, software that helps plan, budget, predict, and report
on an organization’s financial results.[4]

we have to develop a system that combines CRM and ERP systems in one
software to facilitate and decrease the number of applications in order to make
the client’s life easier.
Moreover, it would be a problem to not be able to track one organization's
inventory and the stock level, in this case, ERP/CRM systems can log all the
products and materials as well as monitoring and managing them.
In simple terms, this solution will help in tracking every little change that may
happen to whatever module it has within the company and make manipulating
data more easy.

17
Chapter 1: Existing Analysis
1
This chapter is about the Existing Analysis, and it identifies an interesting
viewpoint on the CRM and ERP systems in enterprises.
Generally, the purpose of creating a new system is to enhance an existed system
features in our system.
Thus, we can benefit from analysing existing systems, so this analysis would give
us a better idea of what problems we have to face with better visibility what
customer expects and needs from our software.
Finally, the existing analysis allows us to position concerning what exists in this
field and to form a sufficient background helping us to better master this type of
subject, and to improve the quality of the software functionalities with following
the worldwide competitor's software aspects and advantages.

18
Chapter 2. Existing Analysis

consequently, we are going in-depth in functional, technical and graphic analysis


with extracting the pros and cons of each product based on users reviews and
feedbacks

Dolibarr ERP/CRM is an open-source software package dedicated for versatile


size of companies, foundation, or organizations.
It includes different features that serve the enterprise resource planning and
customer relationship management also other features for different activities.
To put it simply, it helps manage an organization's activity (contacts, suppliers,
invoices, orders, stocks, agenda…).
It's an Open-Source Software suite (written in PHP with optional JavaScript
enhancements) designed for small, medium, or large companies, foundations, and
freelancers.
It can be used, studied, modified or distributed according to its license.
Also, it can be used as a standalone application or as a web application to access it
from the Internet.

19
Chapter 2. Existing Analysis

Here, we will analyse the graphic elements of Dolibarr as shown this Table
below

Element Description
• The name of the
ERP/CRM system
Logo was written in upper
and lowercase letters
in graduated blue,
indicating from above
the used system .

• The rectangular forms


• Dolibarr is fully formed by regular give the interface a
geometric forms: rectangular sense of stability and
Composition
shapes mostly vibes of old app
structure

• Dolibarr has a simple


structure a header
containing the
navigation bar ,a side
Structure
navigation bar and a
body displaying each
content with no
footer

• The colors in
Dolibarr are
customizable, thus
you can choose
between two themes
Colors blue, or purple

20
Chapter 2. Existing Analysis

Dolibarr is a cross-platform software, thus, gives the ability to use in a different


operating system such as Windows, Mac, Linux, etc.
Dolibarr is a web application and uses 1tier architecture, and it offers a different
type of hosting, which means it provides the possibility of using the host on a
local machine or a dedicated virtual machine.
Dolibarr base on PHP 5.6+ programming language with JavaScript
enhancements, also, supports different database types which are MySQL 5.0.3+,
MariaDB 5.0.3+ and PostgreSQL 8.1.4+, and by default, it uses MySQL.

Finally, Dolibarr be extended with a lot of other external application or modules


from third party developers available at the DoliStore.

Dolibarr offers free open-source ERP and CRM features for people with
no need for technical knowledge by providing a simple solution with simple
tools.
Additionally, it offer a highly customizing nav bar menu to facilitate navigating
between pages with no compulsory features.
Furthermore, Dolibarr offers three type of models
• Main application Modules. Which contains these feature below:

- Third-Party Management - Warehouse & Stock management


- Membership management - Manufacturing Orders
- Products & Services management - Bank accounts management
- Commercial proposals management - Direct debit orders management
- Customer & Orders management - Accounting management
- Invoices and payment management - Shared calendar/agenda
- Shipping management - Opportunities management,…

21
Chapter 2. Existing Analysis

• Other Modules. Which contains:

- Bookmarks management - LDAP connectivity


- Donations management - ClickToDial integration
- Reporting - Mass emailing
- Surveys - RSS integration
- Data export/import - Skype integration
- Barcodes support - Payment platforms integration, etc
- Margin calculations

Moreover, it gives a other general feature like customising dashboard, changing


app language, etc

In this part, we are showing the pros and cons of Dolibarr software based on
their community and users

- Ability to use ads


- Good result in shared hosting infrastructures
- Rich plugins that can help to manage better the company

- Lack of updates and fixing bugs


- flaws and bugs in accounting and finance module, and in manufacturing
order

22
Chapter 2. Existing Analysis

Salesforce is a cloud computing software as a service (SaaS) company that


specializes in customer relationship management.
Its services allow businesses to use cloud technology to better connect with
customers, partners, and potential customers.
The software has become the number one for customer success and helps
businesses track customer activity, market to customers, and many more services.
Above all, Salesforce CRM primarily focuses on helping companies with customer
retention, keeping their customers happy, seeking out and executive customer
acquisition, giving companies insights into their customers, and much more.

23
Chapter 2. Existing Analysis

Element Description
• The name of the CRM
system was written in
Logo lowercase letters inside the
cloud. The word was
visually divided into two
halves: on the left gray
“sales,” and on the right –
black “force.” and for “f,”
the designers used italic
font.

Composition
• The application is made purely • The geometric forms keeps
by geometric forms (cercles the features well organized.
and rectangles mostly)
• Like any other application,
salesforce is composed of
the header which contains
each of the search bar and
navigation bar, a body in
Structure which the content is
displayed, and a footer
allowing us to access notes
and history.
• For a Salesforce color
system to be successful, the
team relied on the HSL
color model to identify
Colors
complementary hues, based
on Salesforce blue using a
color algorithm and manual
adjustments

24
Chapter 2. Existing Analysis

Salesforce-based on Apex programming language and uses a powerful


combination of Apex and JavaScript using Visualforce that allows creating a
powerful and customizable view and Oracle to power its databases
Salesforce is a SaaS cloud-computing service that offers the software the
strength distribution model that hosts applications and makes them available
online.
Salesforce Architecture is the multilayer architecture, it contains a series of layers
situated on the top of each other.
The below diagram shows the architectural view of the salesforce:

In the multilayer salesforce architecture, the users are at the topmost layer.
The user can access a layer below the user layer, which means various clouds
offered by the salesforce, such as sales cloud, service cloud, AppExchange, etc.
The third layer is the salesforce App, which allows the user to access the
salesforce on mobile device.
The last layer contains various other salesforce platforms, such as Force.com,
Heroku, Exact TargetFuel, etc.

25
Chapter 2. Existing Analysis

Salesforce is a SaaS ( software as a service ) cloud computing service, and it is


mainly a CRM web application, and it allows the management of accounts and
contacts, hence, the user can have a complete view of all customers and can
access critical data including key contacts, communication history, etc.
The Salesforce CRM product is Customer 360, an integrated platform that
includes modules for sales, service, marketing, commerce, engagement,
analytics, communities, productivity, etc.
Customer 360 also lets you use third-party apps or build your own to extend its
functionality. It includes the MuleSoft Any point Platform to connect any app,
data, or device you use.
Customer 360 offers industry-specific solutions for financial services,
healthcare, and philanthropy.
Companies use Salesforce to keep tracking of customer information to
analysing customer data for marketing and upselling opportunities.
To summarize, Salesforce includes:
• Collecting Data Modules:
- Contact management - Opportunity tracking
- Customer engagement tools - Collaboration tools
- Workflow management - Analytics tools
- Task management

• Marketing Modules

- Marketing leads monitoring


- Social media integration
- Email integration
• Sales Modules
- Sales lead monitoring
- Communities for sales Management
- Sales forecasting tools

26
Chapter 2. Existing Analysis

In this part, we are showing the pros and cons of Salesforce software based on
their community and users

- Navigating between Modules in few clicks


- Highly customizable view setting

- The social media tools needs to upgrade compared by other tools


- Expensive and it force to use familiarity with their software

During this section, we studied two of the most used ERP/CRM systems and
extracted their functionalities, graphical and technical analysis.

27
Chapter 2: Project Initialization
2
& Planification

Most developers would love to start developing without thinking about what
problems they may encounter, In some cases, this may happen, but as always,
there is a set of questions that need to be asked whenever a developer starts a
project like, who is going to be the user of his app, which type of app he must
choose, for example, whether it is a web or a mobile app, another question that
must be asked is if the software needs to be scalable, meaning that whenever
our system grows it will be able to accommodate to that growth, or extensible
which mean that it is easy to add new things to the system without affecting it.

Thus, to best tackling this app, and find a good answer to these questions, it’s
better to take pricing, code quality, and other factors into consideration, this
way it would make a different result.

So, let's discover the steps to realize this project following the previous process.

28
Chapter 2. Project Initialisation & Planification

The first thing that should be taken into consideration while developing any
app, is having to identify well our functional requirements and non-functional
requirements.
Briefly, functional requirements have to do with the functionalities of the
system, and this kind of requirements have in general well-defined satisfaction
criteria.
No functional requirements, conversely, refer to system qualities, this one does
not have clear satisfaction criteria, because it can't be verified as in functional
requirements case...
Both of these are taking charge of understanding the big picture of the project
clearly and improve customer satisfaction.

Based on the product owner’s wishes and how he wants his app to be,
different features will be proposed to give the user the ability to:
• Authentication, this step is just required once every three months per
device, so it won’t bother the user as if he has to login in each day
• Manage different companies, and organization in one single app, and each
one should be able to:
- Sort user companies and choose the current company to supervise.
- Create/modify/delete company details.
- Manage company employees.

29
Chapter2. Project Initialisation & Planification

• Manage users
- Show the company users and add or maintain their details
- Disable or ban a user, which wont makes him able to access sign-in
to account.
- Manage user's permissions.

• Manage members, and it includes:

- Create, modify and delete member subscriptions, affect it to members and


cancelling it instantly.
- The ability to create and delete members and maintain their information.
- Put the members in a draft list or validating him...
• Manage Warehouses, and it requires to:

- Show all warehouses list with the capability to create, modify and delete every
single one of them.
- Make a transfer stock and show the warehouse's movement transfers.
• Manage products, and it demands to:

- Show the products per compony with filtering


- Create a new product, modify and delete it instantly.
- Customize the product properties.
- Show stock details and transfer stock
- Show statistics.

• Manage company services and it includes:

- Showing all services with filtering if needed


- Creating a new service, modify, clone and delete it instantly.
- Customizing service properties.
• Manage Third-Parties, and it includes :

- Showing all third-parties list and filtering is by “Prospect”, “Customer”


and “Vendor”.

30
Chapter 2. Project Initialisation & Planification

- Create, modify and delete the Third-Party and merge third-parties

• Manage contract and subscriptions, and this requires to:

- Show all contract and subscriptions and show their details


- Create a new contract.
- Modify and delete the contract if it is a draft.
- Validate contract and subscriptions.
- Export contract and subscriptions in pdf file.
• Manage Customer and vendor invoices, and it demands to:

- Show all customer and vendor invoices and their details.


- Create a new invoice, Modify and delete the invoice if it is a draft.
- Show draft, not paid, paid and Abandoned list of invoices.
- Export contract and subscriptions in pdf file.
- Add product or service to invoice.
- Classify invoice in different types.
- Show reporting and statistics of invoices.
• Manage compony taxes and this demands to:
- Create/delete/modify tax
- Pay a tax
- Show the paid, no paid and all taxes list and their details.
• Manage compony Expense Report and this demands to:
- Show the paid, no paid and all expense report list and their details.
- Validate report
- Approve/refuse expense report.

The product owner believes that his baby app wont be all about having good
functionalities and features, he must also provide some qualities to push it to
the next level, so it requires:
- Data Security for great data access management .

31
Chapter 2. Project Initialisation & Planification

- Performance, so the user should navigate between tabs within less than 30
seconds.
- Highly ergonomic and user friendly, as it makes the user see the content
without difficulties.
- Adaptable for any kind of organization or enterprise, it’s a white brand app.
- Interoperability and easy to use on different devices.

Every company wants to find a way to improve its productivity in less time
and manage its teams, let it be in single or multiple projects at the same time,
But this would be hard to maintain without planning a certain method to
execute all this process.
Meanwhile, managers after many years of studying developed new working
methods like waterfall and agile.
Most Startups and companies have chosen agile or scrum methodologies to
work with because they perfectly assure both client satisfaction, and especially
team management.
Finally, everything has a limit, and as agile had a lot of advantages, it also had
some disadvantages, so a new methodology, more oriented to IT stuff named
DevOps, has been developed , and many companies now chose this
methodology instead of the others.
So, let's take a deeper see into DevOps and why we're choosing it.

DevOps is a set of practices that combines software development (Dev) and


IT operations (Ops). It aims to shorten the systems development life cycle and
provide continuous delivery with high software quality.[5]

32
Chapter 2. Project Initialisation & Planification

To successfully achieve Work-Life Integration after the end of the study


project, there are some points that a student needs to consider like, how the
working methodology will impact one’s workflow and mindset in the future.
Therefore, we need a method that can adapt to changing markets, so no matter
how markets state evolve the working methodology will helps a person
adopt to it.
Another important point is ,the fast delivery to the customer and the frequent
releases, thus more changes, updates and improvements will happen.
Furthermore ,many issues will be identified and fixed at an early stage and the
complete product will be delivered faster.
To put it simply ,the faster we respond to the customer’s needs the better the
results will be.
CI ( Continuous Integration ) and CD (Continuous Delivery) are practices
that automate the software release process, from build to deploy.
Also, it make sure that the application’s updates and infrastructure change
faster while maintaining a positive experience for end-users using certain
practices like CI and CD to test each change is functional and safe.
Monitoring and logging practices help us stay informed of the performance in
real-time.
The Product owner focus on scalability, thus DevOps is the best choice to
control our infrastructure and its development process, because Automation
and consistency help us manage complex systems efficiently and with risk
reduction.
For all these reasons, DevOps is the one to chose as a working methodology
to implement throw this challenge.

33
Chapter 2. Project Initialisation & Planification

DevOps is a combination between development and IT operations, so here


we're facing a different field in the same methodology thus it would be hard to
ensure we're using DevOps in the right way trying some tools.
For more efficiency, there is a need for one single tool that integrates all the
other tools in one software, and here comes Azure DevOps for being the best
tool to apply DevOps in the right way.

Azure DevOps comprises a range of services that include and summarize


the full development life-cycle which are:

• Azure Boards: agile planning, work item tracking, visualisation


and reporting tool.
• Azure Pipelines: a language, platform and cloud-agnostic CI/CD platform
with support for containers or Kubernetes.
• Azure Repos: provides cloud-hosted private git repos.
• Azure Artifacts: provides integrated package management with support
for Maven, NPM, Python and NuGet package feeds from public or
private sources.
• Azure Test Plans: provides an integrated planned and exploratory
testing solution.

Azure DevOps can also be used to orchestrate third-party tools.[6]

The purpose of choosing Azure DevOps is to minimize the amount of


used software so there will be no waste of time on learning all tricks about each
of them and navigating between one to another.
Just one software can reduce too much time and serves all needs.

34
Chapter 2. Project Initialisation & Planification

1.
4.
3.
2.

After studying and researchers, when an app is ready to be developed the first
step to take is to, take notes, organize and classify its features.
All this is possible thanks to azure DevOps Boards.

As a first step we take is adding epic and their corresponding children(


features) in the 1.work items section, and there we can also specify the
priority, estimated time, and to whom that task or feature is affected.
Next, we organize and divide our sprint according to the criteria we choose
Azure DevOps 2.Sprint sections.

Passing next to the 3.Backlog section where we can have an overview of our
backlog and each sprint and its corresponding epics.

Finally, after our plan is correctly set, we can now start working on our project
and keep the other team members updated by going to the 4.Boards section
and change the state of our task whether it is done, in process, rejected, or to
be done..

35
Chapter 2. Project Initialisation & Planification

2.

1.
3.
4.

The following step is the one where we can start building the project.
By selecting, the 1.File button we are directed to the page where we can
create new repositories and access existing ones and all their files.

When creating a repository, we can also choose the type (Git or TFVC)
then a cloning URL is displayed on the main page of the corresponding
repository.

Also, a 2.Drop down List is given to us upward, so we can switch between


repositories.

Azure DevOps gives us the possibility to check our old and


current 3.commits and 4.pushes in their corresponding section.

36
Chapter 2. Project Initialisation & Planification

2. 3.

5. 4.

37
Chapter 2. Project Initialisation & Planification

After building there is deployment, and this


later, in Azure DevOps, is set in
the Pipeline section.

In fact, after creating a 1.New


Pipeline an 2.option to chose the repository
in which the project exists comes up next.

In our case, it is Azure Repos Git we created in


the Repos section.

1. After choosing the repository from the


given 3.List, we chose with
which 4.technology our project is built.

Finally, an we get overview of


a 5.YAML file which is "a human-readable
data serialization language. It is commonly
used for configuration files and in applications
where data is being stored or transmitted.“[7]

Then this file is delivered to us, containing all


necessary information about the deployment,
and to finish the last step it is necessary to add
a deployment artifact and the service we
created in which our app will be hosted.

38
Chapter 2. Project Initialisation & Planification

A modelling language is any artificial language that can be used to express


information or knowledge or systems in a structure that is defined by a
consistent set of rules. The rules are used for interpretation of the meaning of
components in the structure.[8]
Our choice was based on the strengths and power behind this language
including its adaptability and reusability.
In fact, UML modelling helps external developers to quickly understand the
program’s structure of any software and facilitates its maintenance thanks to
its various diagrams.

The word architecture is commonly known only in building domains, but to


ensure that the software is also built in the right way, will serve all demands
and reduce the risks of fail, it’s required to have a good architecture for the
project.

Software architecture refers to the fundamental structures of a software system


and the discipline of creating such structures and systems. Each structure
comprises software elements, relations among them, and properties of both
elements and relations.[9]

CRM and ERP systems had real complex and versatile management systems,
so developing this project with classic architecture such as 3tier architecture or
monotheistic architecture would be a real challenge that may cause troubles.

39
Chapter 2. Project Initialisation & Planification

SOA ( Service-Oriented Architecture ) defines a way to make software


components reusable via service interfaces. These interfaces utilize common
communication standards in such a way that they can be rapidly incorporated
into new applications without having to perform deep integration each time.
Choosing SOA was based on certain features and benefits such as:

• It enables the development of applications that are easy to handle and better
security since it provides a common infrastructure and documentation to
develop services, with the capability to add new features.
• It reduces losing data, since it offers security and high availability, one can
change its servers anytime he needs, and the client app wont be affected by this
changing.
• SOA helps organizations to improve their agility and flexibility since it is so
flexible when it comes to integrating the client-side with the server-side.

Deployment phase has numerous challenges when it comes to implementing a


new software system.
Let it be a large or small company, or even for regular customers they might
face the same challenges when deploying new enterprise software.
Among these challenges, we can consider:
• Data management and classification.
• Wasting time on learning, training and switching to a new system.
• Lack of support for the implementation phase because a person can run into
some issues during daily operations. Especially for software implementation,
companies might run into system collapse, update failure, system bugs, wrong
response, security issues, etc.
• Hidden costs.
All of these reason make a person realise how much why he needs cloud
computing.

40
Chapter 2. Project Initialisation & Planification

Cloud computing is the on-demand availability of computer system resources,


especially data storage ( Cloud Storage ) and computing power, without direct
active management by the user.
The term is generally used to describe data centres which are available to many
users over the Internet.
Large clouds, predominant today, often have functions distributed over multiple
locations from central servers. If the connection to the user is relatively close, it
may be designated an edge server.[10]
Bravely, Cloud Computing is all about moving the essential systems and
resources of our business to a remote server.
Most IT leaders lately think about migrating their systems to the cloud to use
backup and storage solution and even availability set of servers.
There are specific benefits one would seek that make him think about migrating
its resources to Cloud Computing which are:
• The flexibility of the cloud in providing resources, the ability to change
storage space, VM ( Virtual Machine ) customized toward our needs and that
can fit with our costs capacity.
• Reliability of the cloud, if one server is down, we’ll still be able to access our
data as another server will take its place, which means that all our resources will
be saved always.
• Easy recover, means easy data backup recovery, since the product owner may
face many problems about losing data and difficulties recovering it, Cloud
computing has several solutions to protect and recover the data.
• Cloud is secure, when security matter, the safety of data and information is
one of the main focuses of a cloud host.

They are efficient because they make sure every aspect of the data security
monitored and updated, the cloud uses data encryption to ensure authorizing

41
Chapter 2. Project Initialisation & Planification

data access, also, there are a lot of cloud computing hosts that provide unique
security settings for every user.
For these aspects, we are migrating to the cloud instead of On-Premise to
ensure the project will be delivered without any troubles.

Today, the majority of top cloud service providers offer a ton of services. The
two leaders in cloud computing are Amazon Web Service(AWS) and Microsoft
Azure.
Microsoft Azure, commonly referred to as Azure, is a cloud computing service
created by Microsoft for building, testing, deploying, and managing
applications and services through Microsoft-managed data centres.
It provides software as a service (SaaS), platform as a service (PaaS) and
infrastructure as a service (IaaS) and supports many different programming
languages, tools, and frameworks, including both Microsoft-specific and third-
party software and systems.[11]

Amazon Web Services is a subsidiary of Amazon providing on-demand cloud


computing platforms and APIs to individuals, companies, and governments,
on a metered pay-as-you-go basis.[12]
Both of these provides high quality service and they are recommended thanks
to their offered benefits like capacity solution, security, pay as you go options,
etc.
But the main factor of this project is, the ability to increase productivity in less
time, noticing the high quality and ergonomic UI interface on the Azure portal,
the effortless ability to create resources without having a deep background
knowledge in networking or infrastructure to manage these resources.
Unlikely, in AWS many problems can be found within the same services,
which can takes more time and more effort...
That’s why, Azure Cloud Computing would be the best choice for our
academic project .

42
Chapter 2. Project Initialisation & Planification

In cloud computing there are the three model types that should be known
before getting in-depth which are:
▪︎ Public Cloud.

• Owned by cloud services or


hosting provider.
• Provides resources and services to
multiple organizations and users.
• Accessed via secure network
connection ( typically over the
internet ).

▪︎ Private Cloud.

• The organizations create a cloud environment in their


datacenter.

• The organizations are responsible of operating the


services they possess.

▪︎ Hybrid Cloud.

Combines Public and Private clouds to allow applications to run in the most
appropriate location.

43
Chapter 2. Project Initialisation & Planification

▪︎ Compare Cloud Models

Public • No capital expenditures to scale up.


• Applications can be quickly provisioned and deprovisioned.
Cloud • Organizations pay only for what they use.

Private • Organizations have complete control over resources.


Cloud • Organizations have complete control over security.

• Most flexibility.
Hybrid • Organizations determine where to run their applications.
Cloud • Organizations control security, compliance, or legal
requirements.

Under academic and costs constraints, we cannot choose between hybrid cloud
and private cloud, so we have only one choice that can serve our need which is
the public cloud.

Cloud computing offers users better flexibility in using resources.


This schema provide a big picture of cloud services for great understanding
what each service is responsible of:

44
Chapter 2. Project Initialisation & Planification

▪︎ Compare Cloud Services

IaaS PaaS SaaS

• The most flexible • Focus on • Pay-as-you-go


cloud service. application pricing model.
development.
• You configure and • Users pay for the
manage the • Platform software they use
hardware for your management is on a subscription
application. handled by the model.
cloud provider.

For more productivity, we should focus on application development only, and


the service that can offer this option is PaaS, so whenever it is possible, we’ll
choose PaaS services, if not, IaaS services would be the second choice.

45
Chapter 3: Technical Choice &
3
Functional Specification

Being an important section of the project, this chapter is devoted to the


functional specification and analysis which is divided into four parts.
To begin with, Needs' Specification, is a global representation of the actors,
product backlog, and use case diagram, going next to Sprint planning, which
includes a precise explanation of why and how the choice of each sprint
planning was decided.
In addition to the software architectural choice, showing a big picture of the
microservice architecture of this app and describing each of its services.
Finally finishing with an explanation about the technical choice.

46
Chapter 3. Functional Specification & Analysis

What makes a choice even more difficult is that it isn't possible to say which
language, framework, runtime environment, or stack is better than others, and
each one has its advantages and limitations.
In some projects, different technologies could use interchangeably. In others, it
would be impossible. That’s why it is important to make an information-based
choice instead of depending on those common myths or sticking to the easiest
solution.

Among all various choices of different frameworks and technologies, choosing


the right ones is not an easy decision.
What makes it even harder is that the technology used for building an app
affects its performance and, therefore, can be one of the factors that lead to
the project’s success.
Thus it’s better to consider before developing any software:
- Size and complexity of the project.
- The type of product.
- The cost.

So in this part, we will present and discuss the technical choices in our project.

The backend, also called server-side, remains invisible and not accessible to
users. It’s literally the backbone of the application.
For better choosing the backend environment, first it must provide three main
factors which are:
- Productivity.
- Performance.
- Security.

47
Chapter 3. Functional Specification & Analysis

.NET helps to develop a high-quality app, since it uses a Modern language


construct like generics, Language Integrated Query (LINQ), and asynchronous
programming.
When speaking of performance, the application developed with .NET provide
better response times and requires less computing power.
.NET provides us with immediate security benefits via its managed runtime.
A collection of services prevent critical issues like bad pointer manipulation or
malicious attempts to alter compiled code.
.NET takes security very seriously and releases updates quickly when threats
are discovered.
And another thing that makes .NET one of the best choices to develop our
CRM ERP system, is that it provides a large ecosystem incorporating libraries
from the NuGet package manager and the Visual Studio Marketplace,
and as a technology, it is open source.
The .NET Foundation is an independent non-profit supporting the innovative,
commercially-friendly, open-source Dot Net ecosystem, it has over 100,000
contributions from developers from over 3,700 companies outside of
Microsoft.[13]
As a conclusion, the technology used in backend development is:
• Dot Net Core
It is a free and open-source, managed computer software framework for
Windows, Linux, and macOS operating systems.[14]

• ASP.NET Core:
ASP.NET Core is a cross-platform, high-performance, open-source
framework for building modern, cloud-enabled, Internet-connected apps.[15]

48
Chapter 3. Functional Specification & Analysis

• Ocelot Gateway:
It is an API Gateway for . NET platform. This project is intended for people
using .NET Core running a micro service/service oriented architecture that
needs a unified entry point on their system. However, it will work with
anything that uses HTTP and runs on any platform supported by ASP.NET
Core.[16]

The frontend, which is also called a client-side. It’s the part of the application
that’s displayed on users’ screens .
For smooth user interacting experience, we have used these technologies:
• Angular 10
Angular is a development platform, built on TypeScript.
It includes:
- A component-based framework for building scalable web applications
- A collection of well-integrated libraries that cover a wide variety of features,
including routing, forms management, client-server communication, and more
- A suite of developer tools to help us develop, build, test, and update our
code.
• HTML5
HTML5 is the latest version of Hypertext Markup Language for the structure
and presentation of web content; it is designed primarily for the purpose of
improving accessibility and semantics.[17]
• CSS3
CSS3 is the latest evolution of the Cascading Style Sheets language. It describes
how the elements of an HTML interface should be displayed.

49
Chapter 3. Functional Specification & Analysis

It offers a stylization independent of the document structure which improves


accessibility, change's structure and presentation more easily as well as
reducing the complexity of the architecture.
• bootstrap 4
Quickly design and customize responsive mobile-first sites. It’s the world’s
most popular front-end open-source toolkit, featuring Sass variables and
mixins, responsive grid system, extensive prebuilt components, and powerful
JavaScript plugins.[18]

CRM /ERP system manage two category of data


- Structured Data: for data management and we used MS SQL Server.
- Unstructured Data: for files and pictures and we used Azure Blob Storge.

Since our app follows a Service-Oriented architecture, it's mainly composed of :


• Presentation tier:
It's the front-end layer that consists of the user interface which is accessible
through a web browser or web-based applications.

• Gateway:
Also known as Enterprise Service Bus (ESB).
This later implements the communication system
between different services of the Software application
in an SOA architecture.
In our case, we are using Ocelot, a .NET API Gateway.
It manipulates Http Requests until they reach
a middleware that will make the request itself.

50
Chapter 3. Functional Specification & Analysis

This later is the last thing in the Ocelot pipeline, in other words, it does not call
the next middleware, then the response from the API is retrieved as it goes back
up in the Ocelot pipeline.
During this project, our gateway will be hosted with a cloud-computing
based platform for hosting websites, created and operated by Microsoft ,
Azure web app.
• Services:
They are simply the different APIs we are building,
Each is a representation of a business and data access layer.
In fact, every single one is responsible for a main functionality, and here we
mention the DRY (don't repeat yourself) design principle which is stated as
"Every piece of knowledge must have a single, unambiguous, authoritative
representation within a system", at the same time we tried to improve the
reliability between different services so there would always be an interaction
between them without affecting the system flow if any problem accrues in one
of them.
Our services are also hosted in public cloud with Azure web app.
• Data Tier:
It responsible for storing the application data.
Our data base will be hosted in SQL Server , a cloud database provided as part
of Microsoft Azure.

• Software Choice:
Choosing the software was selected according to some criteria like performance
and security, so we choose:
Microsoft Visual Studio, an integrated development environment from
Microsoft. It is used to develop computer programs, as well as websites, web
apps, web services, and mobile apps
As it is a user-friendly software with all the features it provides and an easy to
explore cross-platform.

51
Chapter 3. Functional Specification & Analysis

It allows us to easily add packages to our project. We just must type one
command line to install whatever package we need.
Also, thanks to its debugger we can easily set breakpoints and run the code
line by line while seeing what values are currently assigned to our variables in
real-time.
Not forgetting to mention, keyboard shortcuts which are so helpful and a gain
of time.
For example, simply type “ try ” then hit the tab button twice to use try-catch
block. The same thing applies for “ CW ” and “ ctor " if it's needed to write
“ Console.WriteLine( ) ” or the constructor of a corresponding class, etc.
Along with Visual Studio, we used Swagger and Postman to test our APIs.
• Swagger:
Is an Interface Description Language for describing RESTful APIs expressed
using JSON. Swagger is used together with a set of open-source software tools
to design, build, document, and use RESTful web services[19]

In Postman's case, testing is done by entering simple or complex HTTP/s


requests, then reading their responses.
Collaborating with OAuth2.0, it's been always easy to get access for a
corresponding request and get data throw out tokens.
On the other hand, Visual Studio code was used to develop the client app in
Anguar10.

52
Chapter 3. Functional Specification & Analysis

Actors can be people, other systems, time triggers, or event triggers.


It may represent roles played by human users, external hardware, or other
subjects.
This project has only two kinds of actors:
• User. the person who will have access to areas and features of the application
depending on a set of permissions .

To look at this another way, ERP/CRM application are mostly role/permission-


based applications, and in this case, there would be two different, yet similar
roles, one is the user of which the permissions vary from one to another user
depending on ERP/CRM app's modules.
And the other role is the second actor that will be explained next.

• Admin. the second actor/role is the admin.


This person will not only have a set of permission like the user, but he will have
them all. He is the actor who will have control over the application and its
permissions.
And all these permissions mentioned previously, are a set of features and
functionalities that will be explained along with the product backlog.

To assure the adoption of an agile approach, in order to manage the app and
maximizes feedback that will assure a continuous improvement, being the most
widely used agile methodology, SCRUM has been the framework adopted to
manage the realization and delivery of the product in this project .

53
Chapter 3. Functional Specification & Analysis

In fact, the product backlog represents the project plan, the roadmap of what
will be delivered.
It's a list of features, epics, bug fixes, or other activities that are usually
represented as a set of user stories being the most common each with
complexity points that describe the estimate made by the team(business values)
and by a priorities assigned by the Product Owner(priority).
• Business Value. Measurement given to user stories of how useful some
feature would be.
Usually depending on some conditions:
- Being sure that the task will be successfully completed.
- The customer should really need it to be done.
- The team itself must be excited bout completing it.
• Priority. A value given to each feature to decide its priority considering some
criteria, in our case we followed the MoSCoW prioritization technique:

54
Chapter 3. Functional Specification & Analysis

After this brief explanation, below is the project’s backlog featuring its epics:

As a I want to be able to So That Priority


User Login I can access my account and the S
application’s features
I can access to user’s info and
User Manage Users manage employees’ information, M
and track their records .
User Manage Member I can create members for my
Types campany depending on a specific S
type
User Manage Member Ican assign contracts to each of the
Subscription Members S
User Manage Members I can manage the person /company
that cooperate with ours S
User Manage Warehouse I can controle and chose the place
in which our products will be M
stocked
User Manage Products I can manipulate, organize, stock
and monitor the produts M
User Manage Services I can decide and controle the
services that will be given to our M
clients
User Manage contact I can organize and save all our
costumers, vendors or others’s S
contacts.
User Manage Third Party I can add costumors /prospects of
our company M
User Manage Contracts I can validate product selling M

55
Chapter 3. Functional Specification & Analysis

As a I want to be able to So That Priority


User Manage Costumor I can distribute invoices to each M
Vendor Invoices costumor and vendor
User Manage Taxes I can add and save company’s taxes M

Manage Expenses I can controle all expenses of our S


User Reports company

After the previous section, here is a breakdown of the backlog to have a clear
understanding of some specific modules.
•Users: the persons who work within the organization and have access to its
data.
•Members: external persons who have a membership or collaboration with the
organization thus they may have a subscription and are organized according to
their types.
•Warehouses: Places where the organization's products are stored.
•Third Parties: persons who either buy or sell products to the organization
may also be neither of them, just external parties whom data may be needed.

Before building a new home, a good plan is an obligation to build a perfect and
proper house.
In fact, it's the same thing with building apps, before starting programming and
developing our solution it's important to understand it and plan for it.
In this case, the first step to take for achieving this goal is Use Case Diagram.
This later is a basic representation of how the user(actor) uses the system and
interacts with it.
This is to say, the main purpose is to describe the system built in this project by
representing who is using the system (actors) and what functionalities they can
or must-do during the app's life cycle (use cases).
:
56
Chapter 3. Functional Specification & Analysis

In Sprint Planification, we have to decide how long working on one sprint is


going to take, the sprint goals, and where we are going to start.

So, the purpose of sprint planning is to define what can be delivered in the
sprint and how it will be achieved.

The planification of every delivery and release in each sprint is based on the
product backlog and the chosen microservices.

57
Chapter 3. Functional Specification & Analysis

Sprint Title Epics Start End


Date Date
Identification
Manage Companies/Organizations
Authentication Manage Users
Sprint 1 25 16
and First Party
Management Manage Members types Mars April

Manage member subscriptions


Manage Members
Manage Warehouse
Manage Products
CRM ERP
Manage service 17 8
System Basics
Sprint 2 Tools April May
Manage contact
Manage vendor
Manage third party
Manage Contracts/Subscriptions

Financial Manage Customer and vendor


Sprint 3 9 25
Management invoices
May May
Basic Tools
Manage taxes
manage Expenses reports

58
Chapter 3. Functional Specification & Analysis

This figure shows the components of a SOA Architecture.

Overall, all services are hosted on Azure Web App, which is PaaS, and
distributing microservice responsibilities were in modular feature.
Each of the following service is responsible of:
• Client App. Is the Client Side application so the user can interact with the
app.
• API Getaway. Is used to decouple the client interface from our backend
implementation.

59
Chapter 3. Functional Specification & Analysis

When a client makes a request, the API gateway breaks it into multiple
requests, routes them to the right places, produces a response, and keeps track
of everything.

• Authentication Service. Is responsible for user authentication and


distributing user token that will give access to other microservices…
• Compony Service. It’s used to manage companies / organizations.
• Account Management Service. It is responsible of managing users.
• Expense management services. It used to manage company expanses
reports.
• Member Management Service. it is required to:
- Manage company’s members.
- Manage member’s subscriptions.
- Manage member types.

• Product Management service. Is used to manage company products.


• Service Management service. Is used to manage company services.
• Warehouse management service. It is required to manage company
warehouses and make stock transfers.
• Third-Party Management Service. It is used for:
- Managing Third-Parties.
- Managing Third-Parties contacts.
- Managing Vendors, Prospects, and Customers.
• Third-Party Billing Management Service. Is used to:
- Manage Third-Party contract/subscription.
- Manage Third-Party invoices.
- Manage Third-Party payments.
• Expense Management Service. Is used to:
- Manage Taxes
- Manage Expense Report

60
Chapter 4: Project Lunching
4
Down to the most important section of this project, here is a detailed
description of each microservice that will be implemented and explained.
Going throw each service, every epic, and its features.
Passing by the explanation of the microservices architecture of each sprint and
it diagrams.

The first sprint includes all the following epics.


It also includes authentication, company, member, and user management
services.

61
Chapter 5. Project Lunching Sprint 1.

The organization of the first sprint was reliant on the priority of each epic.

Service Brief description Epics Estimated


time
This service is
responsible for the 26 Hours
Authentification identification of the - Identification
user and token
generation
Where there is an 64 Hours
Company implementation of - Manage Company/
Management the companies' Organization
features and
properties
User Includes user - Manage Users 51 Hours
Management functionalities
This module - Manage Member Type
Membre includes member,
Management member’s - Manage Member 135 Hours
subscription and - Manage Subscription
type management.

This sprint is the first step for the development process for the software, and it
includes these epics and features, estimation, etc.
- Start Date: 25 Mars
- End Date: 16 April
- Estimation ( hours ): 390 Hours

62
Chapter 5. Project Lunching Sprint 1.

Epic Feature Estimation


Sign In 10 Hours
Sign in Angular Component 5 Hours
Authentication Forget Password 6 Hours
Forget Password Angular Component 2 Hours
Reset Password Angular Component 2 Hours
Show all companies by user 15 Hours
Company list Angular Component 10 Hours
Show company details 5 Hours
Manage Companies / Company Detail Angular Component 20 Hours
Organizations
Create/Modify/Delete compony 10 Hours
Company creation Component 2 Hours
Choose current company to maintain 2 Hours
Show all users by company 15 Hours
Show user details 5 Hours
Manage Users
Create/Modify/Delete user 10 Hours
User Angular Components 20 Hours
Disable User 1 Hour
Show Member type details 5 Hours
Manage Member Types
Create/Modify/Delete Members types 10 Hours
Member Type Angular Components 20 Hours
Create/Modify/Delete subscription 15 Hours
Manage Member
Member Subscription Angular 20 Hours
Subscription
Components
Show subscription list by company 3 Hours
Show subscription details 5 Hours

63
Chapter 5. Project Lunching Sprint 1.

Epic Feature Estimation


Show all members list by company 5 Hours
Filter members by type 8 Hours
Show member details 5 Hours
Manage Members Create/Modify/Delete member 10 Hours
Members Angular Component 20 Hours
Validate member 1 Hours
Create member as a user 8 Hours

The first sprint is composed of 4 microservices and this is an overview of the


first it’s Architecture:

64
Chapter 5. Project Lunching Sprint 1.

As it is shown in the previous schema, each of the company, authentification,


and member services communicate with the account management service.

A closer look at each relation between all of them will be shown


in the next step.
• Authentication/user services communication:

To implement the Single Responsibility Principle (SRP) we must separate both


authentification and user management into two services because they have
different responsibilities, as user account information isn't related to
authentification service.

For example, If one user wants to access some other user's first and last name,
It won't be necessary that the service he is consuming is also responsible for
giving a token or identifying the user of whom data he is getting.

The purpose of the communication between these two services is to get the
user's information from the account management service to identify the user
and generate him a token then send it back.
• Company/User services communication:

A company, as well as a user, have a many-to-many relationship between them,


thus, to access a user account we should be able to see only data of companies
to which he belongs, the same thing goes with the company, when we connect
to it, as we only need to access or see users who work there.

After seeing this specific scenario, it's noticeable that both services have a
connection between them.

Member/User services communication:

A member in ERP/CRM system is a person that deals with our company; thus,
it may become a third-party or a user, in this case with the data of a certain
member I can create thanks it a user having the same information that
represents the later.

65
Chapter 5. Project lunching. Sprint 1. Authentication service

All companies consider authentication the most sensible phase among


software development phases because it offers security for the company's data
and privacy.

For Microsoft, Security was a fundamental attribute of design and structure


which means we can build more secure apps with less complexity and faster
performance by using .Net Core technology and their practices.

ASP.NET Core Identity is an API that allows us to add secured login


functionality to our software, and it offers us the possibility to manage users,
passwords, profile data, roles, claims, tokens, email confirmation, etc.

So this service would use ASP.NET Core Identity to provide a secure way for
logging and a safe way to access other microservices.

66
Chapter 5. Project lunching. Sprint 1. Authentication service

This schema shows the possible use cases of this service.

A class diagram is a set of classes and relationships that describe the structure
of the system by illustrating attributes, operations and relationships between
classes, thus, it works according to the principles of object-orientation.
So we will use this diagram for better visibility to the objects and the way
of interacting.

67
Chapter 5. Project lunching. Sprint 1. Authentication service

This schema represent the class diagram of the authentication service.

The schema below represents the process of the sign-in scenario to our
system.
Briefly, the process would need 6 objects to have a full authentication scenario,
which are the client app, the API Gateway, the authentication service which
responsible for authenticating and generating token to the user, the Account
Management service which responsible for managing users, company
management service because the user, after all, would connect for a certain
company to manage and finally, the MS SQL Server which responsible for the
system database.

68
Chapter 5. Project lunching. Sprint 1. Authentication service

In this part, we will show the screenshots of sign in page interface and the
forget password page interface.

69
Chapter 5. Project lunching. Sprint 1. Authentication service

1. User-Name Input

2. Password Input

3. Sign in Button

4. Forget Password Button

1. User-Name Input

2. Reset Password Button

70
Chapter 5. Project lunching. Sprint 1.

After typing credentials and get logged in, the software would navigate to the
hope page and shows up the sidebar menu, the dashboard which presenting
several company statistics,…

2. 5.
1. 4. 6.
3.

7.

8.

The software has a simple structure to understand by user, and it contain a side
navigation bar and a body displaying each page content with footer.
Each point has their significance which are:
1. Current Company Logo And Name 5. Profile Picture & Name
2. Page Content Title 6. Go To Profile Page Button
3. Side Bar Menu 7. Logout Button
8. Footer Section
4. Page Content

71
Chapter 5. Project lunching. Sprint 1. Account Management

In this service, we must have full control to maintain users info according to
each company, which means, every user in the database should belong to their
own company.
Every user can belong to one or several companies, and in client app, user is
able to switch between companies.

This schema shows the possible use cases of this service that user can user in
this service.

72
Chapter 5. Project lunching. Sprint 1. Account Management

In this part, we will represent the general class diagram of the account
management service, and a detailed description of the attributes and methods
used during the development of this microservice.

73
Chapter 5. Project lunching. Sprint 1. Account Management

In Account Management Service, there’s no complicated scenario to present,


but as a typical scenario, this schema would represent the required steps to
create a user in the ERP CRM system

74
Chapter 5. Project lunching. Sprint 1. Account Management

Finally, we will present the graphic interfaces for the account management.
The first figure represents the list of users in the current company, and the
second schema represents the user profile page.

75
Chapter 5. Project lunching. Sprint 1. Account Management

2. 4.
3.
1.
8. 6
5.
7

9.

This schema shows the main features of Manage Users page, these point below
present each one their significate:
1. Go To Manage Users Button
2. List Content Title
3. Users List
4. Create User Button
5. Clickable Input To Modify User Property
6. Drop Down Button
7. Delete User Button ( Dropped Content )
8. Go To User Profile
9. Page numbers

76
Chapter 5. Project lunching. Sprint 1. Account Management

1. 2.

3. 4. 5.

1. User Properties Section


2. Clickable Profile Picture ( On click, we can modify the picture )
3. Property Title
4. Property Input Name ( Modify Property by clicking on the input)
5. Section Name

77
Chapter 5. Project lunching. Sprint 1. Company Management

Enterprise resource planning (ERP) refers to the software that organizations


use to manage business activities and supply chain operations.
So this service is like a node for our software, so we will present the service
diagrams that describe their functionalities and importance.

This schema shows the possible use cases in this service that can user have in
this service.

78
Chapter 5. Project lunching. Sprint 1. Company Management

Thanks to this diagram a clear picture of the app's structure will be shown, and
an explicit view of the communication between the company and
authentification microservice will be explained.

79
Chapter 5. Project lunching. Sprint 1. Company Management

A quite interesting functionality in this service is the connection to the


company feature.
This ERP/CRM system supports many companies which means that the
admin can connect anytime to whatever company he has and access its data.

In this part, we will present the realise of the company management system
with their details and description.
The first figure represents the list of companies that the user have access to,
and he’s able to connect to each one instantly, and the second figure represent
the company page details for more information.

80
Chapter 5. Project lunching. Sprint 1. Company Management

2. 3. 4.
1.

5. 6.

7.
8.
10. 9.

11.

1. Go To Manage Companies Button


2. List Content Title
3. Companies List
4. Create Company Button
5. Go To Company Details
6. Drop Down Button
7. Dropped Down Content
8. Connect To Company Button
9. Delete Company Button
10. Clickable Input To Modify Company Property
11. Pagination Content List

81
Chapter 5. Project lunching. Sprint 1. Company Management

1.
7.
5.
2.
3. 4.
6.

1. Company Detail Page Content


2. Company Contacts Information Section
3. Input Label
4. Input content
5. Clickable Button to Connect to Company (access all company’s data)
6. Clickable Company Profile Image
7. Delete Company Button

82
Chapter 5. Project lunching. Sprint 1. Member Management

The member management service is a rich microservice that implements many


functionalities like member type, subscription, and member management.
Even though these later can be implemented in 3 different services, they were
represented in a single API because all of them represent a tightly coupled
system, that cannot be isolated into three separates microservices, and if so, a
tightly coupled and dependent relation will be established between each of
those services, thus none of the flexibility and fault tolerance requirements will
be present in our system.

A big picture of this service's main functionality and the way a user interacts
with it will be delivered throw this diagram.

83
Chapter 5. Project lunching. Sprint 1. Member Management

The relationship between different components of this app will be better-


explained thanks to this diagram.

84
Chapter 5. Project lunching. Sprint 1. Member Management

In this diagram, the functionality “ Create Member As a User" that invoke


the communication between both member and account management service
will be explained

85
Chapter 5. Project lunching. Sprint 1. Member Management

In this part, we will present the realise of the member management system
with their details and description.

The first figure represents the member profile interface to show the member
detailed information and to provide different actions for the user, and the
second figure represents the pop up we would use if we want to create a new
member in the current company.

86
Chapter 5. Project lunching. Sprint 1. Member Management

1.
2. 3. 4.

5.

6. 7. 8.
13.

9.
10.

11.

14.

12.

87
Chapter 5. Project lunching. Sprint 1. Member Management

15.
16.

17. 18.

1. Member Profile Picture 10. Input Label


2. Create Member Button 11. Input Content
3. Edit Member Button 12. Add Subscription button
4. Delete Member Button (On click open Pop up Screen)
5. Go to Previous Page Button 13.Member Detail Information
6. Terminate Button 14.Current Member Subscription list
(On Click any Modification Wont be 15. Create Member As User Pop up
Possible ) Screen
7. Create Member as a Third party 16. Exit Button
Button
17. Cancel Button
8. Create Member as a User Button
9. Page Title 18. Create Subscription Button

88
Chapter 5. Project lunching. Sprint 1. Member Type Management

Member type management is a part of the member management microservice.


This latter is the most important component of this service since each created
member requires a member type whereas it won't be created.
Its values dynamically change depending on the organizations ' needs and
purpose.

In the following diagram, we will be showing the relation between the member
and its member type and how it is established.

89
Chapter 5. Project lunching. Sprint 1. Member Type Management

In the given diagram the relationship between different components of this


epic will be better-explained.

90
Chapter 5. Project lunching. Sprint 1. Member Subscription Management

Member Subscription is a part of the member management microservice.


It represent the contract each member has when dealing with the organization.

In the following diagram, we will be showing the relation between the member
and its member subscription and how it is established.

91
Chapter 5. Project lunching. Sprint 1. Member Subscription Management

In the given diagram the relationship between different components of this


epic will be better-explained.

92
Chapter 5. Project Lunching. Sprint 2.

The second sprint includes products, services, and warehouse management also
third-party and contacts management services.
The organization of the second sprint was reliant on the priority of each epic.
In each of the next sections an explanation of each service and component will
be given.

Service Brief description Epics Estimated


time
This service deals
Product with managing a - Manage Products 53 hour
product across its
complete life cycle.
This service deals
Service with managing a - Manage Services 53 hour
Management service across its
complete life cycle.
This service offers
Warehouse visibility into a
Management business's -Manage Warehouse 65 hour
inventory and
supply chain
Is the service
where an
organization - Manage Third-party
Third-party monitor 132 hour
Management interactions with - Manage Contact
all external parties
with which it has a
relationship.

93
Chapter 5. Project Lunching. Sprint 2.

This sprint is the second step in the development process for the software, and
it includes these epics and features, estimation, etc.
- Start Date: 25 Mars
- End Date: 16 April
- Estimation ( hours ): 390 Hours

Epic Feature Estimation


Show All Products 10 hour
Filter Product List 5 hours
Manage Product
Show Products Details 5 hour
Customize Product Columns 3 hours
Create/Modify/Delete Products 10 hour
Products Angular Components 20 hours
Show All Services 10 hour
Filter Service List 5 hours
Manage Service Show Service Details 5 hour
Customize Service Columns 3 hours
Service Angular Components 20 hours
Create/Modify/Delete Service 10 hour
Show Warehouse List 10 hour
Create/Modify/Delete Warehouse 15 hour
Manage Warehouse Show Warehouse Details 10 hour
Make a product transfer 5 hours
Warehouse Angular Components 20 hours
Show Movement List By Warehouse 5 hours

94
Chapter 5. Project Lunching. Sprint 2. Warehouse Management

Epic Feature Estimation


Create/Modify/Delete Third-Party 15 hour
Show Third-Party List 10 hour
Show Third-Party Details 10 hour
Change Prospect Status 2 hours
Add Third Party To Company 3 hours
Manage Third-Party Third Party Angular Components 25 hours
Filter Third-Party List 5 hours
Disable Third Party 2 hours
Clone Third Party 5 hours
Show Costumers List 5 hours
Show vendors list 5 hours
Show others list 5 hours
Show all contacts 10 hour
Show contact details 5 hour
Manage Contact
Create/Modify/Delete contact 10 hour
Contact Angular Components 5 Hours
Create contact as a user 10 hour

95
Chapter 5. Project Lunching. Sprint 2. Warehouse Management

This sprint represents some of the main features of our application.


Third-party management, which is the service that represents what we call
CRM system, product, warehouse, and service management.
And in this section, we will give a brief and clear description of how the
communication of these services is built.

.Third-party/Account services communication


Our app gives the possibility to create a user from a third party so that any
customer, vendor, or others can easily go from a third party to a user of this
software.

.Product/Warehouse services communication


products sometimes depending on one's needs have to be stored inside
warehouses and the movement of a product to a warehouse either for the first
time or even more needs to be recorded inside the database thus each time a
transfer movement is made the warehouse service needs to communicate with
the product service to get access to its data.

96
Chapter 5. Project Lunching. Sprint 2. Warehouse Management

A warehouse management system (WMS) allows organizations to control and


administer warehouse operations from the time goods or materials enter a
warehouse until they move out.
This schema describes the architecture components that can provide the WMS
for our software.

As it is shown in the previous schema, The Warehouse Management Service


implement their functionalities depending on communication with the
Company Service, Product Service and Upload File Service.
In the next step, we will get in depth to provides a clearer vision of the tasks to
be carried out in these service.

97
Chapter 5. Project Lunching. Sprint 2. Warehouse Management

In this illustration, we will show the use cases and the functional needs that
Warehouse Management Service responsible on

98
Chapter 5. Project Lunching. Sprint 2. Warehouse Management

This scheme would illustrate the relationship and data structure between
components in Warehouse Service.

99
Chapter 5. Project Lunching. Sprint 2. Warehouse Management

In this part, we will present the


realise of the warehouse
management system with their
details and description.
The first figure represents the
make product transfer between
two warehouses, and the second
figure represents the warehouse
detailed information page.

100
Chapter 5. Project Lunching. Sprint 2. Warehouse Management

1.

3. 4.

2.

7. 6. 5.

1. Warehouse Details Section 5. Make new Transfer Button


2. Current Warehouse Transfer List 6. Arrived Transfer List Section
3. Go to Previous Page Button 7. Sorted Transfers List
4. Delete Warehouse Button

101
Chapter 5. Project Lunching. Sprint 2. Product Management

The need Product Management exists in all organisations that involve people
and resources. It is necessary to achieve a result and operational management
ensures a long-term transformation of strategic plans into operational plans of
actions.
Operational management is quite a complex process of coordinating and
directing operational activities. Operational product management must ensure
the required quality of the structure and resources, and these resources should
be directed towards the desired goal.
So we will present the service diagrams that describe their functionalities and
importance.

This schema is a representation of the possible use cases a user can user.

102
Chapter 5. Project Lunching. Sprint 2. Product Management

103
Chapter 5. Project Lunching. Sprint 2. Product Management

104
Chapter 5. Project Lunching. Sprint 2. Product Management

1. 6.

2.
4.

5.
8. 7.
3.
3.

9.

105
Chapter 5. Project Lunching. Sprint 2. Product Management

12. 13. 14. 15.

10. 11.

16. 18.
17.

1. Page Title 10. List of Products That Belong to


2. Product categories Section the corresponding Category
3. Products List 11. Main Categories List
4. Product Category Button 12. Page Title
5. Sub Categories List 13. Category types
6. Button To access Categories list 14. Go to Services List
7. See list of All Products 15. Go to Products List
8. Create Product Button 16. Add New Sub Category
9. Products pages numbers (Pop up Screen)
17. Buttons to Show only Main
Categories
18. Add New Category
(Pop up Screen)

106
Chapter 5. Project Lunching. Sprint 2. Service Management

Some organizations don’t have products or warehouses to manage. They base


on selling their services or both services and products.
Thus, we are integrating a service management service that can make user
manage them all in one software.
In the next step, we will representing the different diagrams that describe
functionalities to the following service.

This schema shows the possible use cases a user can use..

107
Chapter 5. Project Lunching. Sprint 2. Service Management

108
Chapter 5. Project Lunching. Sprint 2. Service Management

109
Chapter 5. Project Lunching. Sprint 2. Third-Party Management

Third-Party service is responsible for the management of each of customers,


vendors, contacts, and other third parties (third parties who ate customers and
vendors at the same time, or those who are neither costumers nor vendors).

A big picture of this service's main functionality and the way a user interacts
with it will be delivered throw this diagram.

110
Chapter 5. Project Lunching. Sprint 2. Third-Party Management

111
Chapter 5. Project Lunching. Sprint 2. Third-Party Management

1.
5. 7.
6.
4.
8.
9. 10. 11.
1.

2.

12.

3.

13.

1. Third Party profile picture 8. Delete Button


2. Third Party Detail Content 9. Personal Information Section
3. Current Third Party Contacts 10. Global Information's Section
List 11. Payment Information’s Section
4. Create New Third Party 12. Button to access current Third
5. Clone Current Third Party party’s corresponding Member
6. Edit Current Third Party 13. Add Contact to Current Third
7. Go To Previous Page Button Party (Pop up Screen)

112
Chapter 5. Project Lunching. Sprint 2. Contact Management

Contact management belongs to third party microservice.


Each costumer, vendor, or other third party may have a set of contacts

A big picture of this service's main functionality and the way a user interacts
with it will be delivered throw this diagram.

113
Chapter 5. Project Lunching. Sprint 3

The third and the last sprint includes Contract and Subscriptions, Customer
and Vendor invoices, Taxes, and Expense Report managements.
The organization of the last sprint was reliant on the priority of each epic.
In each of the next sections, an explanation of each service and component
will be given.

Service Brief description Epics Estimated


time
This service is
responsible of
managingFinancial
the Management
- Manage contract and
Bill arrangement each suscriptions
Management
Basic
third party has with
Tools 136 hour
the organization. - Manage Costumer and
It also deals vendor invoices
with managing a
service across its
complete life cycle.
Is a service that
includes all
Expense expenses of a -Manage Taxes
Reports certain company 93 hour
Management like taxes and -Manage Expense Reports
others
Chapter 5. Project Lunching. Sprint 3

This sprint is the second step in the development process for the software, and
it includes these epics and features, estimation, etc.
- Start Date: 17 April
- End Date: 25 May
- Estimation ( hours ): 280 Hours

Epic Feature Estimation


Show all Contracts/Subscriptions 15 hours
Show Contracts/Subscriptions Details 10 hours
Manage Contracts and Create/Modify/Delete Contracts & 10 hours
subscriptions Subscriptions
Contracts and Subscriptions Angular 20 hours
Components
Generate PDF 2 hours
Add Service/Product 5 hours
Show all Costumer & Vendor Invoices 15 hours
Show Costumer & Vendor Invoice 10 hours
Details
Create/Modify/Delete Costumer & 10 hours
Manage Costumer & Vendor Invoices
Vendor Invoices Invoices Angular Components 20 hours

Filter Costumer & Vendor Invoices 3 hours

Generate PDF 2 hours


Add Contract/Subscription 2 hours
Classify abandoned 2 hours

115
Chapter 5. Project Lunching. Sprint 3

Epic Feature Estimation


Create/Modify/Delete Tax 5 hours
Taxes Angular Components 20
Manage Taxes
Show Tax List 10 hours
Filter Taxes 3 hours
Validate Tax 2 hours
Create/Modify/Delete Expense Reports 10 hours
Expense Report Angular Components 20 hours
Show Expense Reports list 5 hours
Show Expense Reports Details 8 hours
Manage Expense Reports Change Prospect Status 2 hours
Validate an Expense Reports 2 hours
Send Approvement Email Expense Reports 5 hours
Approve Or Refuse Expense Reports 2 hours
Show Expense Line List 2 hours
Create Expense Line 2 hours

The first sprint is composed of 4 microservices and this is an overview of the


first it’s Architecture:
.Billing/Sprint 2's service services communication
So that a bill can be created and validated it is necessary to choose the right
product or service it contains, in this case, bill management service needs to
communicate with each of the product and service services.
On the other hand, to create an invoice for either the costumer or vendor this
service needs also t get both their data from their corresponding microservice.
.Expense/Company services communication
Expense management service is responsible for reporting each of the
expenses one or more users spend and in this case a VAT value may be
selected to calculate the correct amount to pay thus it is needed for the
expense service to communicate with the company service to gate all VAT
value needed.
116
Chapter 5. Project Lunching. Sprint 3. Contract & Subscription Management

Contract management is managing contract creation, execution and analysis


to maximize operational and financial performance and reducing
financial risks.
Since the company should sell or buy products, it verifies the process and
validates it by creating a contract with the third-party.
The process starts when a customer signs up for the subscription of the
company service temporarily depends on the subscription period, or the
customer cancels it.

This epics provides different features that a user can use to manage
subscriptions and contracts, so this schema will present the use cases
of this epic.

117
Chapter 5. Project Lunching. Sprint 3. Contract & Subscription Management

118
Chapter 5. Project Lunching. Sprint 3. Contract & Subscription Management

119
Chapter 5. Project Lunching. Sprint 3. Contract & Subscription Management

120
Chapter 5. Project Lunching. Sprint 3. Contract & Subscription Management

1.

8. 10.
7.
6. 9.

2. 3.

11. 12.

4.

13.

5.

1. Contract Title Section 7. Validation Button


2. Company Detail Section 8. Go Back to previous Page
3. Third Party Detail Section 9. Print Contract
4. Product List 10. Delete Contract
5. Cost Section 11. Visit Company
6. Current Contract Title 12. Visit Third Party
13. Add product or service to
Contract

121
Chapter 5. Project Lunching. Sprint 3. Invoice Management

An invoice management system is a business system that manages invoice


documents from vendors and customers based on their contracts
and used subscriptions.
Finally, an invoice is a document that resumes billing information and can
accept customer payments, providing the ability to divide the payment phases
into many splits with offering traceability of the full process.

The use cases of this service is similar to the previous epic, and this schema is
a representation of the possible use cases

122
Chapter 5. Project Lunching. Sprint 3. Invoice Management

123
Chapter 5. Project Lunching. Sprint 3. Invoice Management
Chapter 5. Project Lunching. Sprint 3. Expense Report Management

The expense microservice is responsible for each company's spending and its
reports.
It includes taxes, taxes rate which change according to the country this
application belongs to.
It also includes expense reports, and as their names refer to, they are proof
what and when an organization did spend during regular working days.
In this section, an explanation of the expense report management will be
delivered.
Each report is composed of two main sections, total expense, and payment.
each time an Expense line is added to a report the amount of INC
Tax(tax imposed on the net income of the company) will increase and
depending on the VAT value choosing the value of the EXCL Tax will be
calculated.

The previous values are calculated according to these formulas:

• INC Taxe: 𝑆𝑢𝑚𝐼𝑛𝑐𝑇𝑎𝑥 = Σ 𝐼𝑛𝑐𝑇𝑎𝑥𝑒


𝑆𝑢𝑚𝑉𝑎𝑡𝐴𝑚𝑚𝑜𝑢𝑛𝑡 = Σ
𝐼𝑛𝑐𝑇𝑎𝑥𝑒 .𝑉𝑎𝑡𝑉𝑎𝑙𝑢𝑒
• Vat Amount:
100

• EXCL Taxe: 𝑆𝑢𝑚𝐸𝑥𝑐𝑙𝑇𝑎𝑥 = Σ 𝐼𝑛𝑐𝑇𝑎𝑥 − 𝑉𝑎𝑡𝐴𝑚𝑜𝑢𝑛𝑡

125
Chapter 5. Project Lunching. Sprint 3. Expense Report Management

The use cases of this service is similar to the previous epic, and this schema is
a representation of the possible use cases

126
Chapter 5. Project Lunching. Sprint 3. Expense Report Management

127
Chapter 5. Project Lunching. Sprint 3. Expense Report Management

1.

2. 3.

4.

1. Expense Report Details


2. Total Expense Values
3. Payment Section
4. Expense Lines List

128
Chapter 5. Project Lunching. Sprint 3. Tax Management

Tax management is one of the components that belong to the expense report
microservice.
For each settled period, a tax is added to a company's database containing all
needed information including the amount of money.
Following the split payment mechanism, the organization has the freedom to
pay its taxes with specifying the date of the payment and without exceeding the
end period.

A big picture of this service's main functionality and the way a user interacts
with it will be delivered throw this diagram.

129
In this diagram the relationship between different models will be better
explained and .

130
In the previous sections, we explained each of the modules of our ERP/CRM
application.
And In this section, we will give a global conclusion of what we already
delivered, by representing the following two diagrams.

131
General Conclusion

This thesis is part of the end of studies project to obtain a bachelor's degree in
computer science and multimedia at the Higher Institute of Arts and
Multimedia of Manouba.
This internship represents the fruit of our work during the three-month
internship within the company BitSoft Innovation, and it was supervised by Mr
Hafedh Nefzi and Mr Mohamed Ayamen Ben Salah.
The purpose of this project is to design and carry a white brand app that can fit
different type of organizations and companies to use an ERP CRM system to
enhance their data visibility and lowering costs with increasing revenue
throughout the business.
This report describes the results of our work in different phases, therefore we
first carried out an in-depth representation of some popular ERP CRM
application that allowed us to fully understand the needs of using them with,
given a clearer vision on our duty in this internship and the purpose of
generating a solution that meets BitSoft’s needs and expectations.
In fact, we encountered some difficulties in this project because of covid
problem, we had to work remotely, and our meeting in the internship was all
online, that made our challenge harder with lack of information in ERP and
CRM systems that makes searching and analysing a compulsory step to
complete this project and to satisfy our technical supervisor.
On a professional level, this internship was a great opportunity for us to practice
new technologies and methodology like DevOps, Angular, ASP.NET Core,
SOA architecture, hence we learned how to adapt quickly and to learn new
things in a limited time while challenging our self to enhance our time
management the right way, and controlling daily stress and pressure.

132
General Conclusion.

On a personal level, we got the chance to work on our communication skills


and more practising teamwork as well as acquire patience, adaptability and
discipline.
This Software have an infinity of features to upgrade it to the next level, for
example, it could have as a priority, a permission management system that gives
users their permission freely, also it could have an email management system to
automate emails to speed up prospecting customers.
Later, this app can include an alert system that shows to the user the stock
management or new third-party interventions for more tracking business and
deciding to solve problems before it even accrues.
Furthermore, the app could include a recycle bin management system in case of
deleting a mistakenly deleted document or item and we want to have a backup
in few seconds.
Lastly, we can include extending plugin method that can help user to install
different management system to help in business and for increasing the software
community to develop and sell their plugins within our software.

133
Netnographic Resources Table

Ref Link Date of


Consultation
[1] https://www.oneadvanced.com/ 01/02/2021

[2] Understanding the Need for CRM & ERP Systems 03/02/2021
Integration | Cleo
[3] https://www.salesforce.com/eu/learning- 04/02/2021
centre/crm/crm-systems
[4] https://www.oracle.com/erp/what-is-erp 10/02/2021

[5] https://en.wikipedia.org/wiki/DevOps 15/03/2021

https://www.devopsgroup.com/insights/resources 30/03/2021
[6] /tutorials/all/what-is-azure-devops
[7] YAML - Wikipedia 15/04/2021

[8] https://en.wikipedia.org/wiki/Modeling_language 15/04/2021

[9] https://en.wikipedia.org/wiki/Software_architectu 17/04/2021


re
[10] https://ieeexplore.ieee.org/document/8114187 17/04/2021

[11] https://en.wikipedia.org/wiki/Microsoft_Azure 17/04/2021

[12] https://en.wikipedia.org/wiki/Amazon_Web_Serv 18/04/2021


ices

I
Nosographic Resources Table.

Ref Link Date of


Consultation
[13] Why choose the .NET developer platform? 20/04/2021
(microsoft.com)
[14] https://en.wikipedia.org/wiki/.NET_Core 20/04/2021

[15] https://docs.microsoft.com/en-
us/aspnet/core/introduction-to-aspnet-core 24/04/2021
[16] https://dzone.com/articles/ocelot-the-api- 24/04/2021
gateway-framework-for-net
[17] HTML5 – Wikipedia 25/04/2021

[18] Bootstrap · The most popular HTML, CSS, and JS


library in the world. (getbootstrap.com) 25/04/2021
[19] Swagger (software) - Wikipedia 30/04/2021

[8] https://en.wikipedia.org/wiki/Modeling_language 15/04/2021

[9] https://en.wikipedia.org/wiki/Software_architectur 17/04/2021


e
[10] https://ieeexplore.ieee.org/document/8114187 17/04/2021

[11] https://en.wikipedia.org/wiki/Microsoft_Azure 17/04/2021

[12] https://en.wikipedia.org/wiki/Amazon_Web_Servi 18/04/2021


ces

You might also like