Download as pdf or txt
Download as pdf or txt
You are on page 1of 61

School of Science, Technology, Engineering and Mathematics (STEM)

Capstone submitted for Bachelor of Science in Computer Science

CAPSTONE PROJECT’ REPORT


WEB ADVERTISEMENT MANAGEMENT
AND REPORTING APPLICATION

EHUI Serge Kadher Romaric

Supervised by: Dr André Claude BAYOMOCK LINWA

Submitted Date: June 11th, 2019

Jury members:
1. Dr. André Claude BAYOMOCK LINWA
2. Dr. Mamadou Tadiou KONE
3. Mr. Moussa DJABATE
4. Mr. Timite GAOUSSOU

1|Page
Contents
DEDICATIONS AND ACKNOWLEDGEMENTS ............................................................. 4
List of tables.............................................................................................................................. 5
List of Figures........................................................................................................................... 6
1 INTRODUCTION............................................................................................................ 7
2 Motivations and WEBLOGY Presentation .................................................................. 8
2.1 Motivations ................................................................................................................ 8
2.2 Presentation of WEBLOGY ..................................................................................... 8
2.2.1 Creation and History ........................................................................................ 8
2.2.2 Services Provided at WEBLOGY................................................................... 10
2.2.3 Major Clients .................................................................................................... 13
2.2.4 Organization structure.................................................................................... 14
3 DETAILED DESCRIPTION OF THE PROBLEM ..................................................... 16
3.1 Problem description ............................................................................................... 16
3.2 Target audience ....................................................................................................... 17
3.3 Outcome ................................................................................................................... 18
4 ANALYSIS AND SOLUTION APPROACH ............................................................. 19
4.1 Solution approach ................................................................................................... 19
4.2 Functional requirements ........................................................................................ 19
4.2.1 User management requirements ................................................................... 19
4.2.2 Client management requirements................................................................. 19
4.2.3 Advertisement order management requirements ...................................... 20
4.2.4 Online display time management requirement .......................................... 20
4.3 Data requirements .................................................................................................. 21
4.3.1 Data requirements ........................................................................................... 21
4.3.2 Creation Requirements ................................................................................... 22
4.4 Security requirements ............................................................................................ 24
4.5 Network requirements ........................................................................................... 26

2|Page
5 Architecture and Overall Solution .............................................................................. 27
5.1 Architecture ............................................................................................................. 27
5.1.1 Overview .......................................................................................................... 27
5.1.2 Orchestration of advertisement process ...................................................... 30
5.2 Functional Solution................................................................................................. 31
5.2.1 Use case Diagram ............................................................................................ 31
5.2.2 Use case description ........................................................................................ 32
5.2.3 Data solution .................................................................................................... 43
5.2.4 Class diagram................................................................................................... 48
6 BUILD AND DEVELOPMENT ................................................................................... 49
6.1 Folder of software components ............................................................................ 49
6.2 Folder distribution per architecture layer ........................................................... 50
6.3 Navigation Diagram............................................................................................... 51
7 RESULTS......................................................................................................................... 54
7.1 Functional results.................................................................................................... 54
7.1.1 Web pages......................................................................................................... 54
7.2 Summary statements .............................................................................................. 57
8 CONCLUSION .............................................................................................................. 60

3|Page
DEDICATIONS AND ACKNOWLEDGEMENTS

Special thanks to all my IUGB instructors. During the last 4 years, they did provide to
my colleagues and I, necessary tools (practical and theoretical concepts) for a great
future and professional life preparation.

When I did start my BS in computer science program in IUGB, I was an enthusiast and
inexperienced in computer science and engineering. But with the help of Dr. Andre
Claude Bayomock, Dr. Martin Dwomoh-Tweneboah, Dr. Mamadou Tadiou Kone and Dr. Jean
Marc Lebi, I became a passionate of computer science. I then increased my computer
skills and obtained a great know-how in computer software and hardware. I am
feeling myself ready embrace a new challenge realizing success professional project
stories.

I did have a great opportunity to measure and share my know-how with a company
named WEBLOGY in Abidjan. I did work in this company for my Internship and topic
being interesting, I did complete my Capstone with the same company as well. I met
and work with an awesome team, from which I’m very grateful for hints, advices and
shared experiences. A special thanks to Mr. Kassi Emmanuel who integrate and use me
as full team member as well as Mr. Jil-Alexandre N’Dia for the opportunity he gave me
to work in his company.

4|Page
List of tables

Table number Table title Page


1 Data requirements 23
2 Visualize statistics use 33
case
3 Add a client use case 33
4 Consult an order use case 35
5 Add an order use case 35
6 Validate an order use case 36
7 Modify an order use case 37
8 Modify a client use case 38
9 Delete a client use case 39
10 Delete an order use case 40
11 Add an account use case 41
12 Validate an account 42
13 Modify an account use 43
case
14 Deactivate an account use 43
case
15 Send result use case 44
16 Results comparison 59

5|Page
List of Figures

Figure number Figure title Page


1 Organizational chart 15
2 Architecture diagram 30
3 Interaction server client 31
4 Use case diagram 32
5 Entity diagram 45
6 Class diagram 49
7 Folder hierarchy 50
8 Navigation diagram 53
9 Order waiting list 55
10 Home page 56
11 Add an order page 56
12 Statistics per year 57
13 Statistics per client 57
14 Signup page 58

6|Page
1 INTRODUCTION
Advertisement is generally known or defined as a notice, an announcement in a public
medium promoting a product, service or event. In the 20th century, most
advertisements were done through Radio, TV or Newspapers. At the end 20th century,
the audience of people using computers reached more than billion worldwide, the
computer advertisements became more and more attractive for companies or
governments.

I got the opportunity to do my INTERNSHIP and Capstone in the company named


WEBLOGY, based in Abidjan. WEBLOGY is a Marketing company that has as main
activity “online advertisements”. With the help of my team manager, I picked as
Capstone subject “Web Advertisement Management and Reporting Application”.

This proposed application automates the business processes of the advertisement and
produces important reports required by the managers’ team.

The current document summarizes my achievement report of this project and is


organized as follow:
 After the introduction, the motivations that drive and induct the selection of
current Capstone topic are explained, and WEBLOGY enterprise is presented;
 Then a detailed description of the problem is given;
 Analysis and solution approaches are explored and provided;
 Next, the document stipulates the overall architecture and solution;
 After what, development and build processes are described;
 Then results of built application are shown;
 And finally, conclusion of the overall work is summarized.

7|Page
2 Motivations and WEBLOGY Presentation
2.1 Motivations
While I was progressing in my studies in computer sciences at IUGB, I did figure out
that software application development is still “embryo” level in Cote d’Ivoire. My
dream was then to get and elevate my country as a top homemade software
application development, with great quality and suitable to their needs. WEBLOGY
was as the perfect organization to learn, start showing some of my skills and develop
professional software tool. Main reasons choosing WEBLOGY are:
 Experience accumulation: The company is in software development business
for about 20 years;
 Great reputation: known as top 5% IT Company in Cote d’Ivoire;
 Number of users of their applications: 20 million users in 23 countries

I first start observing and taking notes on how their applications are working. Then, I
did some holes on the way some of those applications behave. The main application
that retain more attention for improvement is the management of their Web
Advertisements. Reasons that led me to choose this subject are:
 My knowledges in database that is one of my favorite software topics.
 My passion for backend Web development.
 Increasing my abilities in new PHP framework named “Symfony” and
learning its new features.

The added value of my project is that is transforming the Web Advertisement


application that was keeping heterogeneous data in different machines, without any
integration module, to a centralized Web advertisement application with
homogeneous data, which will allow users regarding their level of authorization to
Display, Update Delete, and Insert the information and maintain historical data using
same data structure into the platform.

2.2 Presentation of WEBLOGY


2.2.1 Creation and History
WEBLOGY is an e-marketing agency offering a unique blend of creativity and digital
marketing expertise in interactive media since 1998.

Below is a list of their main activities and realizations since its creation:
 1998: Foundation of WEBLOGY and Creation of Abidjan.net
Mr. Daniel Ahouassa and Mr. Jil Alexandre N'Dia created WEBLOGY Group
and released their first website “Abidjan.net”, which is today the most visited
website in Ivory Coast with more than 3 million visitors.
8|Page
 2000: Creation of Jobafrique.com and nouchi.com
o JobAfrique.com is a website that allow encounter between recruiter and
people searching for a job. The platform provides an interface to
exchange information concerning abilities to an interested person.
o Nouchi.com is a humorous website that make the promotion of African
culture through comics, video, music and multimedia content.

 2002: An office in Ivory Coast.


It is the main building of WEBLOGY. The office address is:
Plateau - Av Delafosse, Building A 2nd floor
01 Bp 12324 Abidjan 01
Abidjan

Business hours are from 8:30am to 5:30pm, Monday to Friday.

 2006: An Office in Morocco.


WEBLOGY opens an office in Casablanca for local worker which are more
aware of the reality depicted by North African lifestyle.

 2009: Creation of Monkiosk.com and Live.ci


o MonKiosk.com is an online platform that provide a set of magazine, all
available to be downloaded for a certain amount of money.
o Live.ci depicts is the show business web site. Enjoyable content are
available. The site provides up to date life information on actors,
musicians and/or mostly famous persons in Côte d’Ivoire or Africa.

 2012: Creation of aCotonou.com, aLome.com, aDakar.com, aLibreville.com,


aOuaga.com and Immo.ci
• aCotonou.com, aLome.com, aDakar.com, aLibreville.com, and
aOuaga.com are international version of Abidjan.net using the same
interface but providing local information.
• Immo.ci is an interactive website for people who want to buy or rent a
house. There are several options are enabled in order to find the best
search choices possible.

 2013: Creation of annonces.ci, Afriquefemme.com


o Annonces.ci is based on the concept of Immo.ci but for a more general
purpose.
o Afriquefemme.com regroup a panel of feminist or pro women’s
blossoming with several advices, information and actualities.

9|Page
 2015: Creation of annonces.ci mobile application
The application allows to all people who desire to access to announces.ci, to do
it using their mobile phone, anywhere at any time.

2.2.2 Services Provided at WEBLOGY


WEBLOGY offers the following services to its clients:

 Digital Communication
WEBLOGY manages a large African Media network. The organization offers
advertising spaces and services to reach target audience of client companies in
the most efficient manner. Digital communication department services can be
classified in three main domains:
o Publishers: They are WEBLOGY clients. They are interacting with
WEBLOGY to increase their products visibility through Web technology.
Their main goal is to reach a target audience of potential clients using
Web channel. They receive from WEBLOGY necessary tools to reach
their goals.
o Advertisers: The advertisers are people or organization that publishes
ads to potential customers. Published ads are done through Web portal
and can be consult by people. Abidjan.net is the main WEBLOGY
advertisement website and has more the 3million monthly visitors.
Those visitors are great assets that can be turned to potential product
buyers through Web advertisements.
o Network websites: WEBLOGY offers a set of national and international
websites in order to cover a large geographical area for product visibility.
A combination of ads published in many Web sites help reaching the
maximum range of person regarding the advertiser objective. Some of
WEBLOGY advertisement Websites:
o Abidjan.net (Côte d’Ivoire),
o aOuaga( Burkina Faso),
o aLome (Togo),
o annonce.ci,
o AfriqueFemme.com.

 Consulting
o Online presence Audit
The main gain of this service is relative to collected performance and
business metrics that helps analyzing strengths and identify threats to
target objectives.

10 | P a g e
The audit includes assessing the overall visibility on search engines, the
activity on social networks, and the effectiveness of client’s internet
strategy.

o Market research
WEBLOGY develops market researches and provides results analysis.
An effective strategy and appropriate measures are applied to reduce
failure risks for online marketing businesses.

o Competitive Analysis
WEBLOGY’s competitive analysis service helps anyone interested being
pro-active online in the short and long term. WEBLOGY technical teams
collect useful information about given client competitors’ presence on
the internet and allow to identify threats and opportunities.

 Web and Mobile development


Mobile devices became an important way to reach customers whenever and
wherever they are. WEBLOGY’s team has technical and functional expertise in
developing iOS, iPad, and Android applications. The organization supports as
well clients in all stages of mobile applications development from conception
to production.

 Advertising Network
o Ad Server
No need to change a client website’s architecture to integrate code every
time an advertiser wishes to display ads. WEBLOGY’s ad server takes
care of ads integration in client web pages. WEBLOGY manages the full
advertisement project campaign from client requirements to deliveries.

o Inventory Management
WEBLOGY is responsible for managing and optimizing advertising
additional code on your website. This code integration is taking in
account client objectives and guarantees its satisfaction. Technically,
appropriated XML tags and data are inserted in client web pages. In case
of multiple client web sites, distinct XML tags are integrated to identify
uniquely the source web site and their revenues.

 Web services

11 | P a g e
WEBLOGY includes some Web services for customers that are looking to make
more analysis of their activities. Below are main offered Web Services:
o Domain Name: Choosing a domain name is a crucial step in website
creation. Having the right domain name is essential since it represents
the first contact with visitors and a way to acquire a positive first
impression.
During the creation of your website, WEBLOGY’s team will help you
choosing your domain name ensuring that it is consistent with your
business and easy to find and remember.
o Content Management: It is necessary to update your website regularly
so that you reflect a positive image of your company and keep a good
ranking on search engines. WEBLOGY creates and manages the content
of your website. They create quality editorial content to boost your site
and make it more effective.
o Hosting: WEBLOGY’s hosting packages are tailored to your needs in
terms of size, bandwidth and resources. They provide you with the
possibility to host all or only parts of your IT services. Their dedicated
team supports you to determine the most appropriate choice.
o Google Apps: WEBLOGY provide you with Google Apps integration
and technical support as well as trainings on its various features.
Google Apps allows you to benefit from a range of powerful
applications:
o Gmail: Give your business customized email addresses with
30GB storage capacity, chat, and search features

o Google Hangouts: Communicate with your team without having


to move. You can start a group chat, voice, or video conversation.

o Google Agenda: Organize your schedule and share events with


your contacts. Receive reminders and publish your calendar on
the web.

o Google Drive: This is the online Google office suite. Save your
documents, presentations, and spreadsheets on cloud. Share them
with your contacts, and access the mat any time.

o Google Sites: Create shared websites, restricted to your company


or to some users only

12 | P a g e
o Google +: a social network for sharing pictures, videos, and
discussions.

Google Apps is compatible with all browsers and is available in offline


mode. It also works on iOS and Android.

2.2.3 Major Clients


The major clients of WEBLOGY are:

 WEBLOGY media:
 Business relation: WEBLOGY media is the main branch of
WEBLOGY that has in charge most of the website depicted above.
 19 common projects: aBamako, Abidjan.net, aCotonou,
aDakaraLome, aNiamey, aOuaga, AfriqueFemme, Automobile.ci
,Immo.ci, JobAfrique, Live.ci, MonKiosk.com,
Nouchi.com,aLibreville, aBangui, Necrologie.ci, Linfodrome,
PolitikAfrique.info.
 Western Union:
 Business relation: Wester Union contacted the company to
increase their visibility online, in order to make their money
transfer business more accessible for the public.
 1 common project: Back to school Campaign (2012)
 Orange: Sponsoring of Abidjan.net
 Business relation: WEBLOGY has a page dedicated to sport that
has great visibility. Aware of this asset, Orange felt the occasion
to promote a special sport related event
 1 common project: Africa Cup of Nations advertisement (2013)
 Modibo Sidibé:
 Business relation: The website created by WEBLOGY “aBamako”
has a great reputation in Mali, the country of the politician
Modibo Sidibé
 1 common project: Presidential elections in Mali (2013)
 SIB: sponsoring of “Chiffre Clé”
 Business relation: Attracted by the visibility of Abidjan.net in Cote
d’Ivoire where their office is located.
 2 common project:
• One year sponsorship of “Chiffre Clé"
• publications on the website’s premium spaces: Articles,
press releases , “Qui est qui?”, and advertorials

13 | P a g e
 RTI
 Business relation: RTI is an TV channel that wanted to extends
their advertisement policy to the web through the expertise of
WEBLOGY
 2 common project :
• RTI’s website
• RTI’s mobile applications (ios, android)

2.2.4 Organization structure

Figure1: Organizational Chart

14 | P a g e
 Both CEO are the co-founder of the company. They manage the whole business,
take decisions concerning the activities of the business are act like the brain for
WEBLOGY.
 The technical service manager receives instructions directly from the CEO and
is responsible of the execution of order in the technical service. He has a team
with abilities in different IT field for the execution of these orders.
 The Head of commercial service deals more with customer in order to provide
to his team advertisements contract that will are necessary for the running of
the company.
 The Commercial service manages the relationship with the clients, finds new
market and acts as link with the advertisers.
 The Technical service works on the execution of order from the commercial
service. This team is in charge of building the solution of a specific problem
faced by a client.

15 | P a g e
3 DETAILED DESCRIPTION OF THE PROBLEM
3.1 Problem description
My first objective when I did start my CAPSTONE with WEBLOGY, was to find a
project subject of my interest. I was looking for a challenged project that meets
software domains that I like: Web and Database design/development. I got the
opportunity during first weeks of my activities in WEBLOGY to go through quick
introduction of different applications and systems that the organization is offering.

One of the system applications that captures my attention was the advertisement
system. Existing advertisement business process can be summarized as follow:

As many WEBLOGY web sites are very popular, the company offered opportunities
to other business to make their services or products being known by people consulting
their web sites by adding Ads. There is fee associated adding Ad in WEBLOGY web
site. To display an Ad on WEBLOGY websites, an Ad has to go through a process. The
commercial service receives first the order from an interested advertiser or client. Then
the order is registered in an Excel file by a commercial agent. After this recording, the
order is transmitted to the technical service. The technical service design, develop and
integrate the advertisement in WEBLOGY web sites using the Ad requirements. Then
the added Ads are tested and validated by commercial team. And finally, the Ad is
published and users of WEBLOGY web sites have access and may consult them.

After analyzing the current advertisement business process, I found some areas of
improvements summarized below.

 Decentralization of the data


Existing advertisement system uses a flat file or Excel file per client application.
This may lead with several files to manage that are not structured adequately
to do intelligent data queries. Knowing high level management of companies,
wants to have a global view or picture of their business performances, this
storage data model is not adapted to meet their goals.

 Access control
Using flat files or Excel files generates a security challenge. In fact, flat files or
Excel files access data granularity is at the level of the file. We mean that the
administrator applies the access control at the file level. To provide access to
data of a specific that do not require a security, administrators duplicate files by
removing sensitive data on those. Meanwhile, in most cases, as sensitive data

16 | P a g e
may be only a portion of the file, it is preferable to use database technology to
store data and apply security at a field granularity level.

 Archiving of data
Archiving is one of the important service activities of big organization. It helps
removing data from operational systems and upload them to archive systems.
The operational systems keep data that are
added/consulted/retrieved/updated in real time when the advertisement
system received user requests. In other side, the archive systems keep historical
data that have been generated first by operation systems. Those data are called
historical data because of their age considering the difference between today
date and the date when the data was originally created.

The existing advertisement archive process analysis leads me to the conclusion


important information are lost when operational data are uploaded in archiving
system.

One aspect of the problem is that the operational system server and the
archiving system server collocated in the same physical machine.

Second aspect is that the advertisement application server machine is generally


updated, advertisement data migration from previous machine to the new
server machine is not conducted appropriately and to get a global archive
picture, an archive request has to interact with different physical machines. This
is inefficient and may lead to wrong collected data.

Third issue, is when the advertisement data structure did change, as previous
archive copies are in different machines and different formats, retrieving an
archive request is a great challenge with high risk interpreting non reliable data.

 Data integrity
Modifying data field information based specific integrity rules is not currently
allowed in the existing advertisement application system. This may be solved
by using database technology.

3.2 Target audience


The users of the “Advertisement management and reporting” application are:
 The head of the technical service;
 The head of the commercial service;
 The members of the technical service;
17 | P a g e
 The members of the commercial service;
 And the CEO.

3.3 Outcome
The added values of the “Advertisement management and reporting” application are:
 Identify user with personal credentials
The platform should be able to know who manipulates the information and to
display them.
 Give application access regarding on user’s role
Some actions are specific to some roles in the company then, the platform
should be able to identify these roles and to provide them the link for the
appropriate actions.
 Manage the application based on their profile
When a user is certified to have access in one of the operations of the data upon
a certain record, the platform should be able to provide him the necessary
resources to do it.
 Provide key report information to users
Performance are very important for a company; our application should provide
the accurate information in order to the company to visualize their performance
through graphics.

18 | P a g e
4 ANALYSIS AND SOLUTION APPROACH
4.1 Solution approach
In order to solve the problems described above, problem requirements have been
captured and described, then the requirements analysis has been conducted and
advertisement application has been built.

First, the solution approach consisted to capture the advertisement business process
of current advertisement application, then determine our objectives, after what the
requirement specification has been produced, then architecture and the requirement
solutions are expressed, and finally the application is built and tests are completed.

The solution approach is based on linear life cycle and has been done using UML
(Unified Modeling Language) methodology. The following UML artefacts have been
used:
 Use case diagram
The use case diagram is a representation of interaction between actors and the
application system, and vice versa. A good example of a use case description ca
be found in section 5.1.1 “add an account”.
 Class diagram
A class diagram shows object relationships.

4.2 Functional requirements


4.2.1 User management requirements

FR1: Application should allow to a specific user to add new user’s last name, first
names, email, and roles. The new user will now, be able to access to platform
FR2: The application should allow each user registered to modify his password by
using his mail
FR3: The application should provide an interface to each user on the platform to
modify his/her first name, and last name.
FR4: The application should allow to a specific user, to remove temporally other users
that is no longer part of the system using the deactivate function, or definitively using
the delete function.
FR5: The application should be able to display users, sorted regarding to their roles.
FR6: The application should display a confirmation message for each of the actions
below to state that the task is done

4.2.2 Client management requirements

FR7. The application should allow to display, update, delete, and add of a specific
client.

19 | P a g e
FR8. The application interface “adding a new client” should provide to user
opportunity to add a new client on the platform with his business name, representative
name, email, landline, mobile phone, rib, trade register, and an optional image.
FR9. The application should provide to users, an interface with the previous
information of a specific client, and in this interface, allow them to update this
information.
FR10. The application should allow client to be displayed and sorted by their business
name
FR11. The application should allow to client retrieved form the system, to be deleted
from the data base by users.

4.2.3 Advertisement order management requirements

FR12. The application should allow orders to be added, displayed, updated, and
deleted by users.
FR13. The application should provide a list of clients, previously added, to be
associated with a new order.
FR14. The application should allow new order to be added into the system by
providing order’s type, description, comments, execution date, website, and trade
method.
FR15. The system should display order in a “fresh” section, sorted by their date of
registration, with the state “current”, waiting to be executed
FR16. The application should provide an interface with the current order information,
waiting to be updated.
FR17. The application should allow users to delete order’s information.
FR18. The application should allow to users, to change the order’s state from “current”
to “done”, when the work is finished
FR19. The applications should sort order that have the state “done”, with this
characteristic, and display them in an “archive” section.

4.2.4 Online display time management requirement

FR20. The application should provide some online display time range, to be associated
with a new order.
FR21. The application may assign many online displays time range to a single order,
while for each new of them, providing the date of the first display and the date of
retirement.
FR22. The application should show, display time’s date of an order, when a user selects
a particular order.

20 | P a g e
FR23. The application should allow the display time date of an order to be deleted or
modified while doing the update of the corresponding order.

4.3 Data requirements


4.3.1 Data requirements

Entity Attributes Type Constraints


User Email Chain of unique, xxxx@xxx.xx
Characters
Enabled Boolean True/False
Password Chain of Encrypted
Characters
last login Date Time YYY-MM-DD HH-mm-
ss
Last name Chain of No special characters
Characters
First Name Chain of No special characters
Characters
Roles Chain of Cumulative
Characters
Client Business Name Chain of None
Characters
Representative Chain of No special characters
Characters
Email Chain of unique, xxxx@xxx.xx
Characters
Landline Integer None
Mobile phone Integer None
Rib Chain of None
Characters
trade register Chain of None
Characters
Order Type Chain of None
Characters
Description Chain of None
Characters
State Boolean True/False

21 | P a g e
Comment Chain of None
Characters
Registration Date Date Time YYYY-MM-DD HH-mm-
ss
Execution’s start Date Time YYYY-MM-DD HH-mm-
date ss
Execution’s end Date Time YYYY-MM-DD HH-mm-
date ss
Result Chain of Must be a link
Characters
Website Chain of http://www.xxxxxx.xxx
Characters
Display Time Start Date Date Time YYYY-MM-DD
End Date Date Time YYYY-MM-DD

Table 1: Data requirements

4.3.2 Creation Requirements


4.3.2.1 User

DR1: The user data must be fulfilled with the following fields:
 Email: That help to identify uniquely the user, at the time of
identification for example
 Enabled: That tell if the user account is active or not
 Password: Only known by the user itself, it provides access
 Last login: Register each time the user is logged on the platform
 First Name/Last name: Identity of the user
 Roles: Define the level of access of users
DR2: The user business data must match the following data type:
 Email: Chain of character
 Enabled: Boolean
 Password: Chain of character
 Last login: Date time
 First Name/Last name: Chain of character
 Roles: Chain of character
DR3: The User data fields’ subset must fulfill the corresponding constraints:
 Email: The email must be unique and with the format “xxxxx@xxx.xx”
 Enabled: can only be true of false
 Password: Must be encrypted

22 | P a g e
 Last login: Must be at the format YYYY-MM-DD H:m:s
 First Name/Last name: They must be no special character in the chain
such as “@”
 Roles: Can be cumulative

4.3.2.2 Client

DR3: The client data must be fulfilled with the following requirements:
 Business Name: Represent the name used to designate the client
 Representative: The name of the only represent that deal with the
company WEBLOGY
 Email: Contact of the client
 Landline: Contact of the client
 Mobile Phone: Contact of the client
 RIB: Bank Status of the client
 Trade register: Legal information about the business
DR4: The following client business data must fulfil the following data type:
 Business Name: Chain of character
 Representant: Chain of character
 Email: Chain of character
 Landline: Integer number
 Mobile Phone: Integer number
 RIB: Chain of character
 Trade register: Chain of character
DR5: The following user data must have some specifics constraints:
 Business Name:
 Representative: No special character such has “@”
 Email: Must be unique, and at the format xxxx@xxx.xxx

4.3.2.3 Order

DR6: The client data must be fulfilled with the following requirements:
 Type: Describe what format of advertising will be on the website
 Description: Provide details about the customer’s need
 State: Indicate if the order is done or note
 Comment: Indicate special recommendation for the technical service
 Registration Date: Save the date at which the order is register
 Execution’s start date: State when the technical service should start the
order

23 | P a g e
 Execution’s end date: State when the technical service should finish the
order
 Result: Indicate the link of the result of the order when it’s done
 Website: Indicate in which website the result will be display
DR7: The following order business data must fulfil the following data type:
 Type: Chain of character
 Description: Chain of character
 State: Boolean
 Comment: Chain of character
 Registration Date: Date Time
 Execution’s start date: Date Time
 Execution’s end date: Date Time
 Result: Chain of character
 Website: Chain of character
DR8: The following user data must have some specifics constraints:
 State: Must be true of false
 Registration Date: Must follow the format YYYY-MM-DD H:m:s
 Execution’s start date: Must follow the format YYYY-MM-DD
 Execution’s end date: Must follow the format YYYY-MM-DD
 Result: Must be a link
 Website: Must be a link

4.3.2.4 Display time

DR9: The display time data must be fulfilled with the following requirements:
 Start date: Describe the date at which the result of the order must be
online
 End date: Describe the date at which the advertising must be removed
from the website
DR10: The following display the date and time when business data must fulfil the
following data type:
 Start date: Date time
 End date: Date time
DR11: The following display the date and time when data must have some specifics
constraints:
 Start date: Must be at the format YYY-MM-DD
 End date: Must be at the format YYY-MM-DD

4.4 Security requirements

24 | P a g e
The implementation of all solutions described above, require providing data safety to
the company to preserve private or confidential information. Therefore, the security is
an important part of the target advertisement application.
 Sensitive data: All information on the platform are, by default, sensitive.
Then to have access to the platform and to it functionalities, each user
should provide a validated password and username. The most sensitive
data are:
 User: The user’s account data are crucial information
because they determine the level of access;
• Roles: The role of a user cannot be determined by
the user itself since he could allow to himself access
he shouldn’t have.
• Username and personal data: The username, is, in
the application, the email of the user. This one will
be used for account verifications. Using this system,
we have a proof of the identity of the user and we
allow them now to modify his/her personal data in
the application.
 Password: Knowing that most of people use the same
password for different access, they shouldn’t be recorded
using plain text. The encryption used for the password in
this application is sha512.
 Client: Anybody shouldn’t have the right the make link
between WEBLOGY and their clients, unless it’s the
company will. To achieve this statement, a strict access to
the platform is reserved only to the company’s employees.
 Order: The order contains professional information about
the client and the company such as the client’s contact and
personal information of the WEBLOGY’s employee which
registered the order.
 Method restriction: To manage correctly the problem, I used the
information related to the users account to determine the access control:
 Adding, Remove, or Deactivate a user: The employee’s
usage of the application is restricted to the running of the
advertisement process. Indeed, only the admin users,
(users that have the token ROLE_ADMIN in their account)
are allowed to add; deactivate or remove a user.
 Modify a client: The data entered into the record of the
client are the responsibility of the user which entered them.
The application allows to modify a client only if the client
was registered by the user connected, unless the user has
an admin account.
 Modify an order: The data entered into the record of an
order are the responsibility of the user which entered them.
From this fact then, the application allows to modify an

25 | P a g e
order only if the order was registered by the user
connected, unless the user has an admin account.
 Remove a client/order: The remove option is an action that
cannot be undo. Moreover, when a client is deleted, all the
associated orders are deleted also, then it’s a really
sensitive manipulation. Only the admin users are allowed
to remove a client or even an order.

4.5 Network requirements


There’s no particular network requirement. In spite of a good internet connection is
required. This criterion is met by WEBLOGY. All users of the application are located
inside the WEBLOGY’s office that has full internet access.

26 | P a g e
5 Architecture and Overall Solution
5.1 Architecture
5.1.1 Overview
Software Application Architecture can be classified in 4 main types:
 2-Tiers architecture
 3-Tiers Architecture
 N-tiers Architecture.

The 2-Tiers Architecture are used when the presentation layer (Web Layer) interact
directly with the Data Layer. This type is great for rapid development. Meanwhile is
strongly coupling the WEB Layer and the Data Layer as SQL code is incorporated in
the WEB language (e.g. HTML, XHTML, etc.).

The 3-Tiers Architecture has three main layers: WEB, Application and Data. The WEB
layer contains the presentation files and may use in case of dynamic WEB interactions
with Application objects. The WEB layer use generally listeners to capture events of
the user behavior during its WEB page navigation. Actions on captured events are
implemented in the Application layer. The Application layer interacts with Data Layer
using entities classes that are one to one mapped a database table. The Data Layer
interacts with physical database using database connectivity protocols as ODBC.

The N-Tiers Architecture has than 3 layers. Most of N-Tiers Architectures are
implemented in 4 layers. The 4 layers includes an intermediary layer named Services
between the WEB and the Application layers. The Services layer goal is to allow
interoperability between Enterprise applications. All Services (common and distinct)
are published in this layer. Any new application will reuse any of those services their
implementations are required.

In this project, the 3-Tiers Architecture has been selected as there was already an
advertisement application. Below the description of the implemented 3-Tiers
architecture:
 Web layer: The web tier is the front-end layer in the 3-tier system and
consists of the user interface. This user interface is a graphical one
accessible through a web browser or web-based application and which
displays content and information useful to an end user. Technologies as
HTML5, JavaScript, or CSS are used in this layer. Another aspect
consisted to manage sent information by the application layer into the
web layer. The “twih” template engine was used to simulate the basic php
function such as loop or condition in a goal to display an appropriate user
interface. Moreover, since we’re using the framework Symfony, a cache
is created on the user’s machine and stores repetitive data in order to
improve performance.
 Application Layer: The application tier contains the functional business
logic which drives an application’s core capabilities. Here the goal is to

27 | P a g e
make necessary computation. Since I’m using Symfony, the heart of the
application layer is located into the controller file which is a PhP file.
Indeed, the technology used into this layer is PhP. All the computations
are made on the server. User performance is improved at the server side
by the cache implementation described above. The application layer acts
like a bridge between the web layer and the data layer.
 Data Layer: The data tier comprises of the database/data storage system
and data access layer.
 Data Access layer: Data access is strictly controlled. Indeed,
all user requests reach the application through the web
layer, then are dispatched to the application layer and if
database data are required, the data layer checks access
rights and allow user requests to interact with the database.
In Symfony, data are directly represented by entities.
Symfony has a package named “Doctrine” that manages
data entities. This package implements all basic operations
of MySQL and also different method with several
parameters in order to build easily MySQL query. The goal
of the use of this system is that entity (which is mapped in
one to one to a class) constraints are directly implemented
in his class object. The data integrity is then safe.
 Database / data storage: The data are stored using an
apache server, formatted by the provider which is Plesk
(The web hosting used by WEBLOGY). Data management
orchestration involved all layers. Note that, the web hosting
platform has an interface PHPMyAdmin that help
visualizing or managing database data using basic database
functions (create, select, alter, etc.).

28 | P a g e
Figure 2: Architecture Diagram

29 | P a g e
5.1.2 Orchestration of advertisement process
As described above, in the diagram the process to display a response follow several
steps and involve all the layers of the 3-tiers architecture. The technology PhP use the
HTTP protocol and involve first:
 The web layer: The HTTP protocol imply to send request to the server.
There’s a lot to say about the HTTP protocol, but the fact that is relevant
to the subject is that the client will be able to use 4 types of HTTP request.
Indeed, the web layer will allow to the client to send either a request:
 GET: Asking for a particular data to the application layer.
 POST: Sending new data to the application layer.
 PUT: Sending new data to the application layer but asking
them to replace a precise record stored by the data layer.
 DELETE: Asking to the application layer to remove data,
through the data layer, while identifying uniquely the
record.
 The application layer: The application layer does not interact directly to
the user, but receive HTTP request from the web layer. In this part we
talk about serialization/deserialization of data.
 Serialization: While the server can execute the PHP
operation required for the running of the application, the
bowser, at the level of the web layer then, does not
understand them. This process consists at transforming the
PHP array, atomic data, and data structure into the HTTP
format before sending them to the web layer.
 Deserialization: The information sent by the web layer are
in HTTP format. These are not the kind of data the PHP can
manipulate. By receiving the HTTP request, Symfony
transform it into array, atomic data, or data structure
required to perform the server’s operation.

To summarize, the interaction between the web layer and the application layer is
described as follow:

Figure 3: Interaction Server Client

30 | P a g e
 The data layer: Since data are deserialized, on the side of the
server the data layer can now execute his logic. Incoming data and
requests to data layer are from the application layer. Data layer
interpreted the requests and allows database interactions.
Database engine executes the requests and sent back the results in
application objects. The concerned objects are then serialized and
sent to the Web layer.

5.2 Functional Solution

5.2.1 Use case Diagram

Figure 4 : Use case diagram

31 | P a g e
5.2.2 Use case description

5.2.2.1 Visualize statistics

Use case name Visualize statistic


Primary Actor WEBLOGY’s staff
Secondary Actor WEBLOGY advertising management
system
Brief Description This use case allows to users to see the
performance of the staff regarding to the
number of advertising online. Solves
FR12
Pre-conditions 1) User successfully login as a staff
employee

Normal Flows 1. The user clicks on the link


“Statistic” inside the navigation
bar
2. The system displays by default
the bar chart of the result per
year since the first record
3. The user selects a year in the field
4. The system displays the weight
of each client on this year
Alternate Flows There’s no alternate flow for this use
case
Post-Condition If the use case was successful, the
application will retrieve the previous
data on the system to display graphical
view of the results.
Exceptions • There are not previous record of
the order and the system display
blank session.

Table 2: Use case “Visualize statistics”

5.2.2.2 Add a client

Use case name Add a client


Primary Actor WEBLOGY’s staff
Secondary Actor WEBLOGY advertising management
system
Brief Description This use case allows user to add to the
system a new client. Solves FR7 , FR8

32 | P a g e
Pre-conditions 1) User successfully login as a staff
employee

Normal Flows 1. The user add data concerning the


user such as:
a) business name,
b) representative name,
c) email,
d) landline,
e) mobile phone,
f) rib,
g) trade register,
h) and an optional image
2. The user hit the button add a
client at the bottom of the
page(FR7 , FR8)
3. The System display a message
that state that the client has been
correctly added
Alternate Flows 1. The user didn’t enter the required
data
2. The system displays a message
stating this error
Post-Condition A new user is registered inside the
system and available to be associated
with an order.
Exceptions • Network bandwidth not enough
to send data to the server

Table 3: Use case “Add a client”

5.2.2.3 Consult an order

Use case name Consult an order


Primary Actor WEBLOGY’s employee
Secondary Actor WEBLOGY advertising management
system
Brief Description This use case display the information
registered about a particular order.
Solves FR12
Pre-conditions 1) User successfully login as an
employee

Normal Flows 1) The user selects a particular order

33 | P a g e
2) The system displays all the
previously added data about this
order (FR 12)
Alternate Flows There’s no alternate flow for this use
case
Post-Condition The information related to the order are
displayed on the screen
Exceptions • Network bandwidth not enough
to retrieve data from the server

Table 4: Use case “Consult an order”

5.2.2.4 Add an order

Use case name Add an order


Primary Actor Commercial service employee
Secondary Actor WEBLOGY advertising management
system
Brief Description This use case, allow to add a new order
inside the system. Solves FR 14
Pre-conditions 1) User successfully login as a
commercial service employee

Normal Flows 1) The user enters related data such


as:
a) Client
b) Order’s Type
c) Description
d) Comment
e) Trade Method
f) Online display time
2) The user validates the data by
clicking the “validate” button
(FR14)
3) The application displays a
message stating that the order is
now on the database
Alternate Flows 1. The user didn’t enter the required
data
2. The system displays a message
stating this error
Post-Condition The application is now filled, with a
new record of order

34 | P a g e
Exceptions • Network bandwidth not enough
to send data to the server

Table 5: Use case “Add an order”

5.2.2.5 Validate an order

Use case name Validate an order


Primary Actor Commercial service employee
Secondary Actor WEBLOGY advertising management
system
Brief Description This use case allow to the user to
modify the state of an order from
“current” to “done”. Solves FR18
Pre-conditions 1) User successfully login as a
commercial service employee
2) User identified as the one which
registered the order
Normal Flows 1) The user clicks on the button
“Validate this order” (FR18)
2) The system redirects the user to
the main page while noticing that
the order has now the state
“done”
Alternate Flows There is no alternate flow for this use
case.
Post-Condition The order has now the state “done” and
is displayed into the archive section.
Exceptions • Network bandwidth not enough
to send data to the server

Table 6: Use case “Valiadate an order”

5.2.2.6 Modify an order

Use case name Modify a client


Primary Actor Commercial service employee
Secondary Actor WEBLOGY advertising management
system
Brief Description This use case allow user to modify the
previously added data on a record. Solves
FR16

35 | P a g e
Pre-conditions 1) User successfully login as a
commercial service employee
2) User identified as the one who
registered the order

Normal Flows 1) The previous information of an


order is displayed
2) The user modifies each required
information on the fields
3) The user hit the button modify and
all modifications are registered
(FR16)
4) The system redirects the user to the
main page while noticing that the
modifications are done.
Alternate Flows 1) The user enters an inappropriate
data into the system
2) The system displays a message to
notice this error
Post-Condition The order has now new data registered in
the system that are more accurate
Exceptions • Network bandwidth not enough to
send data to the server

Table 7: Use case “Modify an order”

5.2.2.7 Modify a client

Use case name Modify an order


Primary Actor Commercial service employee
Secondary Actor WEBLOGY advertising management
system
Brief Description This use case allows to the user to modify
the data of a particular client. Solves FR9
Pre-conditions 1) User successfully login as a
commercial service employee
2) User identified as the one
which registered the client

Normal Flows 1) The user is logged on the system


2) The system displays the
navigation bar that include the link:
a) User
- Add a user

36 | P a g e
- List of User
b) Update Account
c) Order
d) Client
-Add a client
-List of clients
e) Archives
f) Statistics
g) Logout
with on below, the list of previously
added order
3)The user clicks on list of clients
The user clicks on modify a client on the
client’s row.
4) The previous information of a
client is displayed
5) The user modifies each required
information on the fields
6) The user hit the button modify
and all modifications are registered
(FR9)
4) The system redirects the user to
the main page while noticing that the
modifications are done.
Alternate Flows 1) The user enters an inappropriate
data into the system
2) The system displays a message to
notice this error
Post-Condition The client has now new data registered
in the system that are more accurate
Exceptions • Network bandwidth not enough
to send data to the server

Table 8: Use case “Modify a client”

5.2.2.8 Delete a client

Use case name Delete a client


Primary Actor Admin user
Secondary Actor WEBLOGY advertising
management system
Brief Description This use case allows to the user to
remove a particular client’s record on the
system. Solves in FR11

37 | P a g e
Pre-conditions 1) User successfully login as an
administrator

Normal Flows 1) The user is logged on the system


2) The system displays the
navigation bar that include the link:
a) User
- Add a user
- List of User
b) Update Account
c) Order
d) Client
-Add a client
-List of clients
e) Archives
f) Statistics
g) Logout
with on below, the list of previously
added order
3)The user clicks on list of clients
The user clicks on delete a client on the
client’s row.
4) The system redirects the user to
the main page while noticing that the
deletion is done. (FR11)
Alternate Flows There’s no alternate flow for this
case.
Post-Condition The record of the specific client is
no more on the system.
Exceptions • Network bandwidth not enough
to send data to the server

Table 9: Use case “Delete a client”

5.2.2.9 Delete an order

Use case name Delete an order


Primary Actor Admin user
Secondary Actor WEBLOGY advertising management
system
Brief Description This use case allows to the user to
remove a particular order’s record on the
system. Solves FR17
Pre-conditions 1) User successfully login as an
administrator

38 | P a g e
Normal Flows 1)The user is logged on the system
1) The system displays the
navigation bar that include the
link:
a) User
- Add a user
- List of User
b) Update Account
c) Order
d) Client
-Add a client
-List of clients
e) Archives
f) Statistics
g) Logout
with on below, the list of previously
added order
2) The user click on the button delete
located on the row of the desired
order
3) The user click on delete on the
corresponding row (FR17)
4) The system redirects the user to
the main page while noticing that
the deletion is done.
Alternate Flows There’s no alternate flow for this case.
Post-Condition The record of the specific order is no
more on the system.
Exceptions • Network bandwidth not enough
to send data to the server

Table 10: Use case “Delete an order”

5.2.2.10 Add an account

Use case name Add an account


Primary Actor Admin user
Secondary Actor WEBLOGY advertising management
system
Brief Description This use case allows to add a new user
on the system. Solves FR1.
Pre-conditions 1) User successfully login as an
administrator

39 | P a g e
Normal Flows 1) The user is logged on the system
2) The system displays the
navigation bar that include the
link :
a) User
- Add a user
- List of User
b) Update Account
c) Order
d) Client
-Add a client
-List of clients
e) Archives
f) Statistics
g) Logout
with on below, the list of
previously added order
3) The user clicks on the link add a
new user

4) The user enters related data such


as:
a)
First name
b)
Last name
c)
email
d)
Roles
5) The user validate the data by
clicking the “validate button”. (FR1)
3) The applications displays a
message stating that the user is now on
the database
Alternate Flows 1) The user enters an inappropriate
data into the system
2) The system displays a message to
notice this error
Post-Condition A new user receive a link to confirm his
identity
Exceptions • Network bandwidth not enough
to send data to the server

Table 11: Use case “Add an account”

5.2.2.11 Validate an account

Use case name Validate an account

40 | P a g e
Primary Actor WEBLOGY’s employee
Secondary Actor WEBLOGY advertising management
system
Brief Description This use case allow to a new user to
confirm his identity and have access to
the platform. Solves FR2
Pre-condition 1) Receive the confirmation email
from the system
Normal Flows 1) The user clicks on the link inside
the confirmation mail
2) The user is now redirected on the
platform. (FR2)
3) The system notifies to the user
that he has now access to the
platform
Alternate Flows 1) The registration link is older than
a day
Post-Condition The new user has access to the platform
and to the functionalities related to his
roles
Exceptions • Network bandwidth not enough
to send data to the server

Table 12: Use case “Validate an account”

5.2.2.12 Modify an account

Use case name Modify an account


Primary Actor WEBLOGY’s employee
Secondary Actor WEBLOGY advertising management
system
Brief Description This use case allow user to modify his
personal data. Solves FR3
Pre-conditions 1) Account already created
2) user successfully login as an
administrator

Normal Flows 1) The user enters related data such


as:
a) First name
b) Last name
2) The user validates the data by
clicking the “validate button” (FR3)

41 | P a g e
3) The application displays a
message stating that the user’s data have
changed
Alternate Flows 1) The user enters an inappropriate
data into the system
2) The system displays a message to
notice this error
Post-Condition The user’s information are updated and
more accurate
Exceptions • Network bandwidth not enough
to send data to the server
Table 13: Use case “Modify an account”

5.2.2.13 Deactivate an account

Use case name Deactivate an account


Primary Actor Admin user
Secondary Actor WEBLOGY advertising management
system
Brief Description This use case allows to remove access
from a user. Solve FR4
Pre-conditions 1) Account already created
2) user successfully login as an
administrator

Normal Flows 1) The user clicks on delete on the


corresponding row. (FR4)
2) The system redirects the user to
the main page while noticing that the
deletion is done.
Alternate Flows There is no alternate flow for this case
Post-Condition The user is no more on the system
Exceptions • Network bandwidth not enough
to send data to the server

Table 14: Use case “Deactivate an account”

5.2.2.14 Send result of an order

Use case name Send result of an order


Primary Actor Technical service employee
Secondary Actor WEBLOGY advertising management
system

42 | P a g e
Brief Description This use case allow to a technical service
staff to notify the result of his work.
Solves FR19
Pre-conditions 1) Account already created
2) user successfully login as an
administrator

Normal Flows 1) The user clicks on the button


“Send result”
2) The user enter the link of the
result inside the field provided
3) The user send the link by clicking
on validate button (FR19)

Alternate Flows 1) The user enters an inappropriate


data into the system
2) The system displays a message to
notice this error
Post-Condition An email is sent to the commercial
service noticing that the work is done
Exceptions • Network bandwidth not enough
to send data to the server

Table 15: Use case “Send result of an order”

5.2.3 Data solution


Design of data has been realized using entity diagram and Data Definition Language
(DDL). Entity diagram show how business data has related together. The DDL solves
some technical challenges as primary keys, foreign keys or constraints’ requirements.
Data type requirements expressed in business words (Section 4.3.2: DR2, DR4, etc.)
have been to corresponding MySQL data types as follow:
 Chain of Character: VARCHAR
 Integer Number: INT
 Boolean: TINYINT
 Date Time: DATETIME

5.2.3.1 Entity diagram

43 | P a g e
Figure 5: Entity Diagram

44 | P a g e
5.2.3.2 Design and development of entities using DDL
 User
To create User table, DDL Create User Table (DR1) has been applied with
associated fields, primary keys, foreign keys and constraints.
 Fields:
 ID
 Email
 Enabled
 Last Login
 First Name
 Last Name
 Roles
 Primary key: An ID attribute has been created in order to identify
uniquely the user.
 Foreign Keys: The table user is linked to other table but is all time at the
one into the one-to-many relation. Then does not hold foreign key.

 Email:
 Description: The email must be unique and with the
format xxxxx@xxx.xx
 Constraint:
• Unique: The application layer sends the new email
to the data layer that search for previous record of
the email into the database.
• Format: The application layer requires the format
mail using the constraint of the Doctrine ORM,
which verify the data using regular expression
 Enabled:
 Description: can only be true of false
 Constraint: First the application layer requires the field
enabled to be Boolean using the constraint of the Doctrine
ORM, next, inside the DDL of MySQL the field is declared
TINYINT that record only two value: 1 for true and 0 for
false
 Password:
 Description: Must be encrypted
 Constraint: The application layer allows to declare that the
field password will be encrypted using SHA512
 Last login:
 Description: Must be at the format YYYY-MM-DD H:m: s
 Constraints: The application layer requires the format date
using the constraint of the Doctrine ORM, the date must

45 | P a g e
match the PhP definition of date ("YYYY-mm-
ddTHH:ii:ssP") then is converted to the DDL of MySQL
(“YYYY-MM-DD H:m: s”)
 First Name/Last name:
 Description: There must be no special character in the
chain such as “@”
 Constraints: The application layer requires no special
character using the constraint of the Doctrine ORM

 Order
To create Order table, DDL Create Order Table (DR3) has been applied with
associated fields, primary keys, foreign keys and constraints.
 Fields:
 ID
 Description
 State
 Comment
 Registration date
 Execution’s start date
 Execution’s end date
 Result
 Website
 Primary key: An ID attribute has been created in order to identify
uniquely the user.
 Foreign Keys:
 ClientID: Holds the identifier of the client linked to the
order
 UserID: Holds the identifier of the user who stored the
order
 State:
 Description: Can only be true or false
 Constraint: First the application layer requires the field
state to be Boolean using the constraint of the Doctrine
ORM, next, inside the DDL of MySQL the field is declared
TINYINT that record only two value: 1 for true and 0 for
false
 Registration date/ Execution’s end date / Execution’s end date:
 Description: Must be at the format YYYY-MM-DD H:m:
s
 Constraint: The application layer requires the format date
using the constraint of the Doctrine ORM, the date must
match the PhP definition of date ("YYYY-mm-
ddTHH:ii:ssP") then is converted to the DDL of MySQL
(“YYYY-MM-DD H:m: s”)

46 | P a g e
 Result/website:
 Description: Must be at the format http://www.xxxx.xx
 Constraint: The application layer requires the format link
using the constraint of the Doctrine ORM,

 Client
To create Client table, DDL Create Client Table (DR6) has been applied with
associated fields, primary keys, foreign keys and constraints.
 Fields:
 ID
 Business name
 Representative
 Email
 Landline
 Mobile phone
 RIB
 Trade Register
 Primary key: An ID attribute has been created in order to identify
uniquely the user.
 Foreign Keys:
 UserID: Hold the identifier of the user which recorded the
client

 Representative:
 Description: There must be no special character in the
chain such as “@”
 Constraints: The application layer requires no special
character using the constraint of the Doctrine ORM
 Email:
 Description: The email must be unique and with the
format xxxxx@xxx.xx
 Constraint:
• Unique: The application sends the new email to the
data layer that search for previous record of the
email into the database.
• Format: The application layer requires the format
mail using the constraint of the Doctrine ORM,
which verify the data using regular expression

 DisplayTime
To create DisplayTime table, DDL Create Client Table (DR9) has been applied
with associated fields, primary keys, foreign keys and constraints.
 Fields:
 ID
 Start date
47 | P a g e
 End date
 Primary key: An ID attribute has been created in order to identify
uniquely the user.
 Foreign Keys: The table user is linked to other table but is all time at the
one into the one-to-many relation. Then does not hold foreign key.

 Start date/End date:

 Description: Must be at the format YYYY-MM-DD H:m: s


 Constraint: The application layer requires the format date
using the constraint of the Doctrine ORM, the date must
match the PhP definition of date ("YYYY-mm-
ddTHH:ii:ssP") then is converted to the DDL of MySQL
(“YYYY-MM-DD H:m: s”)

5.2.4 Class diagram

Figure 6: Class Diagram

48 | P a g e
6 BUILD AND DEVELOPMENT
6.1 Folder of software components
The development tool uses to build the Web advertisement application Symfony. After
a successful completion of Symfony installation, a generic format of folder structures
is created that enable adding and manipulating files. The installation takes care of
previously installed files in order to interact smoothly with precious work or projects.
Below diagram shows the folder architecture of a Symfony project. For WEBLOGY’s
Advertising management project, created files are listed at the right of their parent
folder.

Figure 7: Folder Hierarchy

49 | P a g e
 APP: The “app” folder contains the configuration of the whole application and
whole component. In this folder we will define the configuration for added
plugins in addition to the main routing system
 BIN: The “bin” folder contains the file “console” that will allow to the command
prompt to be able to run the PhP function necessary for the application
 SRC: The “src” folder contains the website codes and is described below
 VENDOR: The folder vendor hosts the addition plugins that the application
will use to run
 WEB: The “web” folder contains the files stored by the users, such as image for
avatar.
6.2 Folder distribution per architecture layer
We remark that all the logic of the website is located inside the \SRC folder, while the
others folders remains extremely important. This folder regroups the files of the
project regarding to the layer they involve:
 Web layer:
 Config: This folder hosts the file which set up the
different navigation the website will take. In the file
for each route, we specify the controller and also the
view, doing then the relation between the Web layer
and the Application layer. The file mentioned before
is the file: routing.yml.
 Views: The view folder hosts our view file in the
MVC configuration. These files are html files and
receive HTTP response from the controller by using
the different defined route. The files used for the
view are:
• AddOrder.html.twig (Description provided
into section 7.1.1)
• -AddClient.html.twig (Description provided
into section 7.1.1)
• -Index.html.twig (Description provided into
section 7.1.1)
• -ClientList.html.twig (Description provided
into section 7.1.1)
• -Search.html.twig (Description provided
into section 7.1.1)
• -Statistic.html.twig (Description provided
into section 7.1.1)
• -Order.html.twig (Description provided into
section 7.1.1)
 Application layer:
50 | P a g e
 Controller: All the logic of the website is located
her. Precisely, into the file OICController.php. Into
this file, each method is obliged to return a
response. These responses will constitute the
element a view file will display or merely a
redirection. To complete the response the controller
will have to search into the database using the web
layer
 Data Layer:
 Entity: The entity folder is a basic or plain class
representation in a relational database design. Class
attribute is matched to an entity field, PhP
annotation is matched to a constraint (PhP
comment that are read by the Symfony system).
 Repository: The repository folder holds for each
entity a repository file, that will do all the SQL query
in order to communicate with the data base. But the
in the Symfony conception, the main queries needed
to interact with the database are already
implemented, and we just need to call them.

6.3 Navigation Diagram

51 | P a g e
Figure 8: Navigation Diagram

In the navigation diagram, all entities represent a page, and the arrow represents the
links between these pages. They are described as follow:
 Pages:
o Process class: These classes are those that involve the controller
resources then computation from the server.
 Login: Verify credentials to allow access
 Add an order: Insert an order inside the system
 Add a client: Insert a client inside the system
 Add a user: Insert a user inside the system
 Sort order: Make distinction among several orders
 Order deletion: Remove an order
 Order update: update an order
o Menu: Display the different option on the platform
 Main Menu: Crossroad of all application features.
o Index: Display a list of order
 Order list: List of order are displayed regarding to several
features as stated above.

 Links: There are two type of link


o Navigation link: The link makes a simple redirection to another page

52 | P a g e
o Process Link: The link involves passing through the control and
perform some operation before redirection.

53 | P a g e
7 RESULTS
7.1 Functional results
7.1.1 Web pages
7.1.1.1 Main page
The first page to be displayed represent the stack of the work that should be done by
the technical service. Each order that’s not executed yet and registered as done, is listed
in this part. There’s also the list of every commercial service’s employee to allow to
each user to make sort with this characteristic.

Figure 9 : Order waiting list

54 | P a g e
Figure 10: Home page

7.1.1.2 Add an order


This page provide a form with all information needed to the commercial service
employee to enter a new order. It allows user to relate information from different
section of the platform in order to have the most complete order data possible.

Figure 11: Add an order page

55 | P a g e
7.1.1.3 Statistics
The statistics page rely on previous data entered until now to provide visual
representation using chart. We can use pie chart to visualize the weight of each client
in the company and also bar chart to compare the evolution of order from year to year.

Figure 12: Statistics per year

Figure 13: Statistics per client

56 | P a g e
7.1.1.4 Register
The register pages, present a different design from the previous pages, used before.
But in all these page we have the required data in order for example to add a new user
into the data base.

Figure 14: SignUp page

7.2 Summary statements


Activities conducted in this capstone cover the full life cycle of software engineering
process from the problem description to the implementation of WEBLOGY’s Plesk
server. The proposed application solves the data storage problem. The activities done
by employees through the application can now be visualized with consistent data. In
the previous advertisement application, data were saved in excel files, and their data
structures were not maintained in the historical changes of the application. The
proposed application has the ability to retrieve information from the previous data
structures. Those new features would help the company to get new market and stored
data in database can be used in business intelligence analysis, data analytics or data
mining.

Indeed, from the registration of an order to the notification by the technical service,
the execution time is less than an hour. Moreover, there exist no archive service
currently in WEBLOGY. By using the proposed application, the company can

57 | P a g e
implement archive policy using advertisement application database as an operational
database.

 Result comparison :

OIC excel files Advertisement management


application
Retrieve the • Require to • Done by a click on search
previous order remember
who save it
• Require to
have the same
machine
• Can take days
Have • Impossible • Included into system design
homogeneous
stored data
Compare result • Require to • Done by clicking on the statistic
from years to years find all link
separated
excel files
• Can take
weeks even
months
Retrieve work • Require to • The sort by client option is
from a previous find all available on the platform
client separated
excel files
• Then to
sorted then
manually
See the • Impossible • Click on the employee link
performance of provide the list of all his
each employee previous advertising order
Retrieve client • Require to • Done by using the client search
information find an engine
appropriate
excel

58 | P a g e
• Can take
hours to find
the good one
Table 16: Results comparison

59 | P a g e
8 CONCLUSION

Looking to the accomplishments: project planning, project organization, software


engineering notions (business process, architecture, analysis/design, development
and test), it is really great to have covered all these aspects in my Capstone project.

At the beginning of the project, challenges that I was looking were to match my passion
(Web and Database areas). The project helps me develop and masters more skills than
expected (UML Modeling, smooth communication between application and database
using appropriate protocols, design and development in 3-tiers).

The developed application and all rigorous software engineering phases that I did
implement, help achieving the project main goal realization: helping organization to
handle advertisement data structures over years. In the previous application,
advertisement data were stored in Excel files, and the evolution the application was
not considering the maintainability of previous excel files. Making the system dealing
with heterogeneous data that were not included in global and historical analysis.

Time performance has been considered by users /employees that did test the
developed application as excellent (almost all requests are taking less 2 minutes to
deliver answer which is exceptional compared to the performance requirement less
than 1 hour) .

User experience with web page navigations is great too. All users that provide
feedback find it easy to use, well organize and did not even took them more than 3
hours to work without assistance and use the application.

I may like to express again to my Capstone Director, to all instructors and to IUGB
personnel that have contributed transforming myself to a real software/hardware
problem solver. WEBLOGY did appreciate my production on this project and their
contributions to my problem solver skills and team member qualities are tremendous.

60 | P a g e
61 | P a g e

You might also like