Professional Documents
Culture Documents
Serge Ehui Capstone Accepted Version
Serge Ehui Capstone Accepted Version
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
5|Page
List of Figures
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.
This proposed application automates the business processes of the advertisement and
produces important reports required by the managers’ team.
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.
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.
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.
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.
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 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.
12 | P a g e
o Google +: a social network for sharing pictures, videos, and
discussions.
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)
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.
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.
One aspect of the problem is that the operational system server and the
archiving system server collocated in the same physical machine.
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.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.
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
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.
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.
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.
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
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
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
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.
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:
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.
31 | P a g e
5.2.2 Use case description
32 | P a g e
Pre-conditions 1) User successfully login as a staff
employee
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
34 | P a g e
Exceptions • Network bandwidth not enough
to send data to the server
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
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
37 | P a g e
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
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
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
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”
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
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.
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.
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.
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.
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.
54 | P a g e
Figure 10: Home 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.
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.
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 :
58 | P a g e
• Can take
hours to find
the good one
Table 16: Results comparison
59 | P a g e
8 CONCLUSION
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