Rapport V Final
Rapport V Final
Rapport V Final
OPTION:
DEVELOPMENT OF INFORMATION SYSTEMS
Company: Topnet
Résumé
Ce projet implique le développement d'une application web pour le portail client de Topnet.
L'objectif est de créer une interface conviviale permettant aux clients de gérer leurs comptes,
payer leurs factures, demander des services et soumettre des tickets de support en ligne. En
utilisant des technologies web modernes, l'application améliore l'expérience client, optimise
l'efficacité du service et simplifie la communication avec Topnet.
Our fathers
for their support, affection and trust…
Our mothers
for their endless love, encouragement and sacrifice…
Karim Derbali
Mohamed Dhia Elhak El Ouni
Acknowledgements
We wish to express our gratitude through these few lines to all those
who, through their presence, support, and advice, gave us the courage to
accomplish this project.
We also wish to extend our thanks to the faculty and administrative staff
of the Higher Institute of Technological Studies of Rades for the quality of
education provided and the support from the administrative team.
Finally, we express our sincere thanks to the jury members for kindly
agreeing to review and evaluate this work.
Table of Contents
Conclusion .................................................................................................................................................. 59
In this context, and as part of our final year project, we have been tasked with developing a
web application for a client portal at Topnet. This portal aims to provide users with simple
and fast access to information about the services offered by Topnet, while facilitating
communication and feedback.
This report is structured into five chapters, each describing a key stage in the development of
this project.
In the first chapter, we will place the project in its general context by presenting the host
organization and analyzing the existing system. We will then describe the proposed solution,
as well as the chosen methodology and modeling language.
The second chapter, titled "Project Study and Planning," will cover the needs analysis, the
development of the product backlog, the distribution of sprints, the development environment,
the technical choices, and the system architecture.
The next three chapters, "Sprint 1," "Sprint 2," and "Sprint 3," will detail the functional
specifications, design, and implementation of each sprint, presenting the developed interfaces
and the challenges encountered.
This report aims to provide a comprehensive and structured overview of the development of
the Topnet client portal, thereby demonstrating the practical application of the theoretical
knowledge acquired during our studies.
1
Chapter 1
Project Context and Methodology
2
Introduction
The framing aims to establish the scope of the project. It is also a critical step in setting the
project's direction.
Therefore, the first chapter focuses on delineating the project framework, presenting the
hosting organization, and analyzing the current state to propose a suitable solution.
Furthermore, this chapter underscores the methodology and the chosen modeling language
adapted for this project.
The company has experienced sustained growth, holding a market share of 48% with 260,000
ADSL subscribers, a network of over 500 resellers, and 12 commercial branches nationwide.
It became a subsidiary of the Tunisie Télécom (TT) group in June 2010. This acquisition is
considered by Tunisie Télécom as a strategic move to strengthen its leadership through an
entity that, in just a few years, has risen to become a market leader in the Internet Service
Providers (ISPs) market.
3
Figure 1.2 : The Headquarters of TOPNET
TOPNET, which employs 500 staff members, formalized its acquisition by the historic
Tunisian operator, Tunisie Telecom, in June 2010. This acquisition aligns with the strategy of
both companies aimed at bolstering TOPNET's leadership and growth in a highly dynamic yet
fiercely competitive internet market.
4
Our internship took place within the Customer Experience and Digital Transformation
department for a duration of 4 months.
This absence of an online portal limited Topnet's ability to provide timely assistance and
tailored services to its customers, potentially leading to frustrations and delays in addressing
their needs.
This lack of a digital presence also hindered Topnet's ability to gather valuable insights into
customer preferences and behavior, limiting its capacity to personalize services and anticipate
customer needs proactively. Overall, the absence of a customer portal represented a missed
opportunity for Topnet to enhance its competitiveness and strengthen its relationship with its
customer base.
5
2.3. The proposed solution
Topnet has proposed that we focus on developing a comprehensive web application for their
customer portal. This application will be fast, responsive, and prioritize user experience,
ensuring a smooth journey for users. It will serve as a one-stop destination for customers to
manage their accounts, pay bills, request services, and submit support tickets conveniently
online. By leveraging modern web technologies and focusing on delivering a seamless user
experience, the application will foster stronger customer loyalty and satisfaction.
Additionally, the new portal will enable Topnet to streamline its internal processes, improve
service efficiency, and gather valuable customer insights. Overall, this solution represents a
significant step forward in Topnet's journey towards delivering exceptional customer
experiences and maintaining its competitive edge.
6
It recommends setting short-term goals. The project is divided into several sub-projects. Once
the goal is achieved, we move on to the next one until the final objective is accomplished.
This approach is more flexible because it is impossible to predict and anticipate everything; it
allows room for unforeseen events and changes.
Another important point: the Agile method relies on a privileged relationship between the
client and the project team. Since client satisfaction is the priority, total involvement of the
team and responsiveness to changes are essential. Dialogue is privileged. The client validates
each stage of the project, so it is necessary to consider the evolution of their needs.
Adjustments are made in real-time to meet their expectations.
With the Agile approach, nothing is set in stone. The project team must be able to constantly
reassess themselves and continually seek to evolve.
There are several Agile methods, and it is not about choosing the best method among those
available. For our project, we opted for an Agile method, more specifically, SCRUM.
This approach is organized around short cycles, commonly referred to as iterations. In Scrum
terminology, an iteration is called a "sprint." At the beginning of each new sprint, the project
team gathers to list the tasks to be executed. This list is called the "sprint backlog."
The entire process is based on product development logic. This explains why the Scrum
methodology revolves around specific roles, such as the Product Owner. Scrum meetings are
held daily. These are short periods of exchange during which project team members
communicate about their progress and challenges. [1]
7
Figure 1.4 : SCRUM process
UML is not a programming language, but there are tools that can be used to generate code in
multiple languages from UML diagrams. UML has a direct relationship with object-oriented
analysis and design. [2]
Conclusion
This chapter provided me with an overview of the project framework and the appropriate
methodology for the proposed solution. The next step will be devoted to a detailed study of
the project.
8
Chapter 2
Study and Project Planning
9
Introduction
In this chapter, we will first present the identification, structure, and planning of the project.
Secondly, we will detail the work environment, the development languages used, and the
architecture of the system.
1. Requirements Specification
This phase involves understanding the context of the system. It is about determining the most
relevant actors and functionalities.
Customers can securely authenticate and access features such as updating contact info,
viewing bills, paying bills, managing contracts, submitting support tickets, and tracking
requests, including migrations and complaints. They can also participate in surveys, offer
suggestions, and view summaries on the dashboard.
10
For the customer:
Authenticate
Update contact information
View current and past bills
Pay bills
Manage contracts
Create and manage email accounts
Submit support tickets
Track the status of support requests
Submit complaints
Track the status of complaints
Submit a request to migrate to a different service plan
Track the status of migration requests
Request the transfer of a service to a new address
View the history of line transfer requests
Provide suggestions for service improvements
View the history of the suggestions made
Participate in satisfaction surveys
View a summary of the account on the dashboard
11
2. Structure and Project Planning
2.1. Product Backlog
The product backlog is the list of expected features of a product. More precisely, beyond this
functional aspect, it contains all the elements that will require work for the team. The items
are prioritized, allowing the definition of the implementation order. [3]
To estimate the complexity of our user stories, we used:
• 2: Easy
• 3: Simple
• 5: Normal
• 8: Difficult
• 13: Very difficult
12
As a customer, I want to submit support tickets
PFE-9 when I have issues.
9 5
Total 83
13
Figure 2.2 : Theoretical Sprint Estimation
A use case is used to define the behavior of a system or the semantics of any other entity
without revealing its internal structure. Each use case specifies a frequency of action,
including variants that the entity performs by interacting with the entity's actors. The
responsibility of a use case is to specify a set of instances, where an instance of a use case
represents a sequence of actions that the system performs and provides an observable result
for the actor.
14
Figure 2.3: Global Use Case Diagram
15
Table 2.2: Description of the Development Machine
Unit Characteristics
Device MSI GF thin 11SC
11th Gen Intel® core™ i5-11400H
CPU
@2.70GHz
Laptop RAM 16GB
OS Windows 10
SSD 512GB
16
Visual Studio Code: It is an open-source, free, and cross-platform text
editor (Windows, Mac, and Linux) developed by Microsoft. Primarily
designed for application development with JavaScript, TypeScript, and
Node.js, the editor can adapt to other languages thanks to a well-
supplied extension system.
In this section, we will list the various development tools used for the implementation of the
application. The choice is based on their ability to provide results that meet our needs.
Therefore, the development of the platform was carried out using the following tools:
17
Laravel 8: It is an open-source web framework written in PHP
following the model-view-controller (MVC) architectural pattern and
fully developed in object-oriented programming. Laravel is distributed
under the MIT license, with its sources hosted on GitHub. [5]
18
Model: The model represents the core of the application: data processing and interaction
with the database. It describes the data manipulated by the application, manages them, and is
responsible for their integrity. The database will be one of its components. The model
includes standard methods for updating this data (insertion, deletion, value change). It also
provides methods to retrieve this data. The results returned by the model are not concerned
with the presentation.
View: Interfaces with the user. Its first task is to present the results returned by the model,
and its second task is to receive any user action. These different events are sent to the
controller. The view does not perform processing; it simply displays the results of the
processing performed by the model and interacts with the user.
Controller: The controller is responsible for managing synchronization events to update
the view or model and synchronize them. It receives all user events and triggers the actions to
be performed.
Laravel is a framework that follows the MVC architecture, but in this project, it only manages
the model (M) and the controller (C), and React JS only manages the application interface
considered as the view (V) in MVC.
19
Figure 2.4: Application Functionality
5. Release Planning
Conclusion
In this chapter, we have defined the functional and non-functional requirements, the product
backlog, the development environment, the system architecture, as well as the release
planning.
20
Chapter 3: Sprint 1
Account Access, Profile Management & Billing
Management
21
Introduction
In this chapter, we will present the details of the implementation of the first sprint, starting
with the needs analysis and design used in the development, and concluding with a
presentation of the interfaces for the first part of the completed platform.
1. Needs Analysis
1.1. Sprint Backlog
The sprint backlog is a list of tasks that the Scrum team aims to complete during a project
sprint. This work plan is developed during a sprint planning session and is based on the items
in the product backlog. Designing a sprint backlog clearly indicates to the Scrum team which
tasks to focus on during each sprint to avoid any deviation from the objectives. [6]
The table below lists all the functionalities that will be developed during the first sprint:
22
1.2. Use Case Diagram for the First Sprint
To make the view of the functionalities and their ordering clearer and easier, I illustrate the
functional specification with a use case diagram that defines the relationship between the user
and the objects implemented by the system.
The diagram below presents the system use case for the first sprint:
The textual description shown in Table 3.2 presents the scenario for the "Authenticate" use
case illustrated in Figure 3.2:
23
Table 3.2: Textual Description of "Authenticate" Use Case
Title Authenticate
Objective Allow customers to access their spaces.
Actors Customer
The customer must enter his customer code and
Pre-condition
password.
Post-condition The customer is authenticated.
1. The customer enters customer code and
password.
Description of the nominal
2. The customer clicks on the “Log in” button.
scenario
3. The system checks the data entered.
4. The system directs the actor to his space.
1. If the customer forgets to enter the required
fields, the system will display an error message
prompting the user to complete the missing
fields.
Alternative Scenario Description 2. If the customer code or captcha code are not
correct, the system displays an error message.
3. If the customer fails to enter the correct login
credentials after 3 attempts, the system will
block the user from attempting to log in for one
minute.
The textual description shown in Table 3.3 presents the scenario for the "Reset forgotten
password" use case illustrated in Figure 3.3:
24
Table 3.3: Textual Description of "Reset forgotten password" Use Case
The textual description shown in Table 3.4 presents the scenario for the "Manage profile" use
case illustrated in Figure 3.4:
25
Table 3.4: Textual Description of "Manage profile" Use Case
Title Manage profile(View/Update)
Objective Allow customers to update their contact information.
Actors Customer
Pre-condition The actor must access their profile.
Post-condition The profile is updated.
1. The customer clicks on any chosen field.
Description of the nominal 2. The customer enters new information
scenario 3. The customer clicks on “modify”.
4. The system displays a success message.
Alternative Scenario If any field is empty, the system displays an error message.
Description
The textual description shown in Table 3.5 presents the scenario for the "Billing
management" use case illustrated in Figure 3.5:
26
5. The system displays a success message.
6. The bill status changes to “paid”.
Alternative Scenario If any of the payment fields are incorrect, the system displays an
Description error message.
2. Design
In this section, we will present the class diagram and the detailed sequence diagrams for the
first sprint.
The figure below represents the class diagram for the first sprint:
27
2.2. Detailed Sequence Diagrams
To outline the communications between the actors and the components of the sprint, we have
detailed a few use cases below along with their sequence diagrams.
Authenticate
28
Reset forgotten password
29
Paybills
30
Figure 3.11 : Login Interface
In this login interface, customers are prompted to enter their unique customer code and
password to gain access to their individual accounts.
31
This interface streamlines the password reset process by allowing users to request a reset via
their email addresses. Upon submission, a password reset link is promptly dispatched to the
provided email, as illustrated in the accompanying figures. This link grants users the ability to
update their password, ensuring seamless account access.
32
Figure 3.15 : Update Contact Information Interface
This interface empowers cutomers to effortlessly update their contact information. cutomers
can modify essential details such as their address, phone number and email. By ensuring that
their contact information is accurate and up to date.
33
Figure 3.16 : Bills List Interface
These interfaces provide users with a convenient platform to manage their bill payments
efficiently. Users can securely review outstanding bills, select payment methods, and submit
payments seamlessly.
34
3.2. Unit Testing
Unit testing ensures the correct functionality of a specific part of an application. Its objective
is to isolate the behavior of the code segment being tested from external factors and verify
that it meets the expected outcomes.
Therefore, we used the open-source unit testing software Postman to test certain cases.
Conclusion
Throughout this chapter, we presented the product backlog, as well as the requirements
analysis, design, and implemented interfaces. In the following chapter, we will present the
second sprint.
35
Chapter 4: Sprint 2
Contracts Management, Email Account
Management, Support & Complaints
Management
36
Introduction
In this chapter, we will present the details of the implementation of the second sprint, starting
with the requirements analysis and the design used in the development, and ending with a
presentation of the interfaces for the second part of the completed platform.
1. Needs Analysis
1.1. Sprint backlog
The table below summarizes all the features that will be developed during the second sprint:
37
Figure 4.1: Use Case Diagram for the Second Sprint
The textual description provided in Table 4.2 outlines the scenario for the "Manage internship
catalog" use case depicted in Figure 4.2.
Table 4.2: The textual description of the "Manage contracts" use case
Manage Contracts (View/Activate Additional
Title
Features/Services)
Enable customers to activate additional features or
Objective
services by purchasing mini contracts.
Actors Customer
38
Pre-condition The customer must access their contract section.
The additional features or services have been
Post-condition
successfully purchased and activated.
1. The customer clicks on "Options."
2. The system displays the "Options to Activate on
This Contract" page.
3. The customer chooses an option.
4. The customer clicks on "Pay."
Description of the nominal
5. The system displays the payment page.
scenario
6. The customer fills in the required fields and
clicks on "Pay."
7. The system displays a success message
indicating the purchase and activation are
complete.
Alternative Scenario If any of the payment fields are incorrect, the system
Description displays an error message.
The textual description provided in Table 4.3 outlines the scenario for the « Consulter le
catalogue des stages » use case depicted in Figure 4.3
Table 4.3: The textual description of the “Manage emails accounts" use
case
Manage Email Accounts (View/Create Email
Title
Accounts)
Enable customers to create email accounts
Objective
associated with their service.
Actors Customer
Pre-condition The customer must access their email section.
A new email account is successfully created and
Post-condition
associated with the customer's service.
39
1. The system displays the "Email Accounts"
page.
2. The customer clicks on "Add New Email."
3. The system displays the email account
creation form.
Description of the nominal scenario
4. The customer fills in the required fields.
5. The customer clicks on "Send."
6. The system processes the request and
displays a success message confirming the
creation of the new email account.
If any of the required fields are empty, the system
Alternative Scenario Description displays an error message prompting the customer
to fill in all required fields before proceeding.
The textual description provided in Table 4.4 outlines the scenario for the «Submit support
tickets» use case depicted in Figure 4.4.
Table 4.4: The textual description of the “Submit support tickets" use case
Title Manage Support Tickets
Enable customers to submit support tickets when
Objective
they have issues.
Actors Customer
The customer must access their support ticket
Pre-condition
section.
A new support ticket is successfully submitted
Post-condition
and processed.
1. The system displays the support ticket
page.
2. The customer clicks on "Add New
Description of the nominal scenario
Ticket."
3. The system displays the ticket
submission form.
40
4. The customer fills in the required fields.
5. The customer clicks on "Send."
6. The system processes the request and
displays a success message confirming
the submission of the support ticket.
If any of the required fields are empty, the
system displays an error message prompting the
Alternative Scenario Description
customer to fill in all required fields before
proceeding with the ticket submission.
The textual description provided in Table 4.4 outlines the scenario for the «Submit
complaints» use case depicted in Figure 4.4.
Table 4.5: The textual description of the “Submit complaints" use case
Manage Complaints (View/Submit
Title
Complaints)
Enable customers to submit a complaint if
Objective
they're dissatisfied with the service.
Actors Customer
The customer must access their complaints
Pre-condition
section.
A new complaint is successfully submitted and
Post-condition
processed.
1. The system displays the complaints page.
2. The customer clicks on "Submit New
Complaint."
3. The system displays the complaint
Description of the nominal scenario submission form.
4. The customer fills in the required fields.
5. The customer clicks on "Submit."
6. The system processes the request and
displays a success message confirming
41
the submission of the complaint.
If any of the required fields are empty, the
system displays an error message prompting the
Alternative Scenario Description
customer to fill in all required fields before
proceeding with the complaint submission.
2. Design
In this section, we will present the class diagram and the detailed sequence diagrams for the
second sprint.
Sprint 1 Sprint 2
42
2.2. Detailed Sequence Diagrams
To outline the communications between the actors and the components of the sprint, we have
detailed a few use cases below along with their sequence diagrams.
Submit complain
43
Figure 4.8 : Contracts List Interface
These interfaces empowers customers to purchase and manage mini contracts efficiently.
Users can explore available contracts and complete purchases seamlessly.
44
Figure 4.10 : Email Account Management interface
This interface offers customers a centralized platform for effective management of their email
accounts. Here, they have the ability to effortlessly create new email addresses.
45
This interface empowers customers to voice their dissatisfaction with the service provided.
Customers can submit complaints detailing their concerns, ensuring that their feedback is
heard and addressed promptly.
In case of success, the conducted test should return a message displaying the history of
complaints made.
Conclusion
Throughout this chapter, we have completed the second sprint, where we presented the
product backlog, as well as the requirements analysis, design, and implemented interfaces.
Therefore, we will study the implementation steps of the final sprint in the next chapter.
46
Chapter 5: Sprint 3
Service Plan Management, Address Transfer
Requests, Feedback & Dashboard
Enhancement
47
Introduction
In this chapter, I will present the detailed implementation of the third sprint, starting with the
analysis of the requirements and the design used in development, and concluding with a
presentation of the interfaces for the third part of the platform created.
1. Needs Analysis
1.1. Sprint backlog
The table below lists all the features that will be developed during the third sprint:
48
Figure 5.1: Use Case Diagram for the Third Sprint
Figure 5.2: Use Case Diagram " Submit a request to migrate to a different
service plan ' Files
The textual description represented in Table 5.2 illustrates the scenario for the "Submit a
request to migrate to a different service plan" use case depicted in Figure 5.2.
49
Table 5.2: Textual Description of "Submit a request to migrate to a
different service plan" Use Case
Title Submit a request to migrate to a different service plan
Enable customers to submit a request to migrate to a
Objective
different service plan.
Actors Customer
Pre-condition The customer must access their service plan section.
The request to migrate to a different service plan is
Post-condition
successfully submitted and processed.
1. The system displays the service plan page.
2. The customer clicks on "Change Service Plan."
3. The system displays the service plan migration form.
Description of the nominal
4. The customer fills in the required fields.
scenario
5. The customer clicks on "Submit."
6. The system processes the request and displays a
success message confirming the migration request.
If any of the required fields are empty, the system displays
Alternative Scenario an error message prompting the customer to fill in all
Description required fields before proceeding with the service plan
migration request.
The textual description represented in Table 5.3 illustrates the scenario for the "Provide
Suggestions for Service Improvements" use case depicted in Figure 5.3.
50
Actors Customer
Pre-condition The customer must access their suggestions section.
The suggestion for service improvements is successfully
Post-condition
submitted and acknowledged.
1. The system displays the suggestions page.
2. The customer clicks on "Submit Suggestion."
3. The system displays the suggestion submission form.
Description of the nominal 4. The customer fills in the required fields.
scenario 5. The customer clicks on "Submit."
6. The system processes the request and displays a
success message confirming the suggestion has been
received.
If any of the required fields are empty, the system displays an
Alternative Scenario
error message prompting the customer to fill in all required
Description
fields before proceeding with the suggestion submission.
The textual description represented in Table 5.4 illustrates the scenario for the "Provide
Suggestions for Service Improvements" use case depicted in Figure 5.4.
51
1. The system displays the satisfaction survey page.
2. The customer selects their responses for the
survey questions.
Description of the nominal
3. The customer clicks on "Send."
scenario
4. The system processes the responses and displays
a success message confirming the survey has
been submitted.
If any required questions are unanswered, the system
displays an error message prompting the customer to
Alternative Scenario Description
complete all required questions before submitting the
survey.
2. Design
In this section, we will present the class diagram and detailed sequence diagrams for the third
sprint.
Sprint 1
Sprint 2
Sprint 3
52
Figure 5.5: Class diagram for the third sprint
53
2.2. Detailed Sequence Diagrams
To outline the communications between the actors and the components of the sprint, we have
detailed a few use cases below along with their sequence diagrams.
Send Satisfaction
54
3. Implementation and Testing
3.1. Implementation
In this phase, we will present some interfaces related to the second sprint, given the large
number of product parameters that we have implemented.
55
Figure 5.9 : Line Transfer Request Interface
This interface streamlines the process for customers to request the transfer of their service to a
new address. Customers can provide their current service details and specify the new address
where they want the service transferred.
56
Figure 5.10 : Service Enhancement Suggestions Interface
This interface empowers customers to contribute valuable suggestions aimed at enhancing our
service. Customers can provide detailed context, specify the subject of their suggestion, and
compose their message to ensure clarity and relevance.
57
This interface enables customers to actively participate in satisfaction surveys aimed at
enhancing our services. Customers can provide their feedback by responding to specific
questions tailored to measure various aspects of their experience.
In case of success, the conducted test should return a message displaying the history of
service migrations made.
Conclusion
In this chapter, I have presented and detailed the various phases of the final sprint. At this
stage, we have successfully designed a functional product.
58
Conclusion
This report represents the culmination of the work carried out within the company Topnet as
part of our end-of-studies project. It covers the study, as well as the design and development
of a web application for a client portal at Topnet.
In project management and monitoring, we employed Agile methods and opted for the
SCRUM method based on the sprint principle. These sprints were divided as follows: we
started with user stories and their specifics, followed by the schematization of use case
diagrams related to the functionalities. Then, we described the scenarios' flow, and finally, we
concluded with the design and implementation of the interfaces, followed by testing.
This internship provided us with the opportunity to learn new concepts and discover new
technologies such as React JS and Laravel. We also realized the importance of unit testing to
verify the proper functioning of specific parts of the application.
In general, this internship has been a valuable gift for us, allowing us to take a significant step
into the professional world. We will be able to leverage all the best practices and knowledge
gained from this experience in our future jobs and projects.
59
Bibliography & Webography
https://fr.wikipedia.org/wiki/
[1] https://www.planzone.fr/blog/quest-ce-que-la-methodologie-agile
[2] https://www.lucidchart.com/pages/fr/langage-uml
[3] https://www.aubryconseil.com/post/2009/le-backlog-de-produit/
[4] https://veilleperso.com/mailtrap-gerer-facilement-mails-test-5976
[5] https://www.webandcow.com/technologies/laravel/
[6] https://asana.com/fr/resources/sprint-backlog
[7] https://www.lucidchart.com/pages/fr/diagramme-de-classes-uml
60