Professional Documents
Culture Documents
1
Signature
2
Dedications
3
Acknowledgment
First of all, I would like to address the members of the jury who
I thank for agreeing to evaluate this project.
Last but not the least, I wanna thank me. I wanna thank me for
believing in me, I wanna thank me for doing hard work, I
wanna thank me for having no days off, I wanna thank me for
never quitting, I wanna thank me for always being a giver and
trying to give more, I wanna thank me for doing more right
and wrong, I wanna thank me for being me all time
4
Table of Contents
CHAPTER I: CONTEXT AND OBJECTIVES OF THE PROJECT……………………………….……………….……………10
1. Introduction.................................................................................................................. 11
2. General context ............................................................................................................. 11
3. Presentation of the host company................................................................................... 11
4. Problematic .................................................................................................................. 12
5. Study of the existing ...................................................................................................... 15
5.1. Existing Solutions................................................................................................... 15
5.1.1. Solutions in Tunisia......................................................................................... 15
5.1.2. Solutions abroad ............................................................................................. 15
5.2. Criticisms of the existing ........................................................................................ 17
6. Proposed solution .......................................................................................................... 18
7. Development methodology ............................................................................................. 19
7.1. Development Methodology Study............................................................................ 19
7.2. Presentation of some methodologies ........................................................................ 19
7.2.1. Agile ............................................................................................................... 19
7.2.2. Scrum ............................................................................................................. 19
7.2.3. 2TUP(Two Track Unified Process): ................................................................. 20
7.2.4. RUP(Rational Unified Process): ....................................................................... 20
7.3. Comparative study between the different methodologies: ........................................ 21
7.4. Choice of methodology ........................................................................................... 22
7.4.1. Putting the 2TUP process into practice ............................................................ 22
8. Gantt chart ................................................................................................................... 24
CHAPTER II: CAPTURE OF NEEDS ……………………………………………………………………………………25
1. specification of requirements ......................................................................................... 26
1.1 Functional requirements ........................................................................................ 26
1.2 Non-functional requirements .................................................................................. 27
2. Technical requirements ................................................................................................. 29
2.1 Technological choice .............................................................................................. 29
2.1.1 Front-End - REACT ....................................................................................... 29
2.1.2 Back-End........................................................................................................ 33
2.1.3 Technological choice of our application ............................................................ 35
2.2 Choice of Data Base ............................................................................................... 36
2.2.1 MongoDB ....................................................................................................... 36
5
2.2.2 Postgres .......................................................................................................... 36
2.2.3 Why MongoDB ? ............................................................................................ 37
Conclusion ..................................................................................................................... 38
CHAPTER III: ANALYSIS AND DESIGN……… .…………………….………………………………………………40
Introduction .................................................................................................................... 40
1. ANALYSIS ................................................................................................................... 40
1.1 Functional Analysis ................................................................................................ 40
1.2 Dynamic Analysis................................................................................................... 41
1.3 Static Analysis ....................................................................................................... 42
2. DESIGN ....................................................................................................................... 43
2.1 Dynamic Design ..................................................................................................... 43
2.2 Static Design .......................................................................................................... 45
2.3 Architectural design ............................................................................................... 48
Conclusion ..................................................................................................................... 49
CHAPTER IV :APPLICATION REALIZATION...……………………………………………………………………51
Introduction .................................................................................................................... 51
1. Development environment ................................................................................. 51
2. Presentation of the web solution ....................................................................... 55
Conclusion ..................................................................................................................... 70
General conclusion ........................................................................................................... 71
6
Table of Figures
7
Figure IV. 8:FAQ interfaces ……………………………………………………………………64
Figure IV. 9:Scientific Stay interfaces ……………………………………………………….. 66
Figure IV. 10:Press interfaces ………………………………………………………………….67
Figure IV. 11:GUI USER interfaces ……………………………………………………………68
Figure IV. 12:Tef & TefAQ interfaces ………………………………………………………….69
Figure IV. 13:Sign Up interface ………………………………………………………………..69
8
Table of tables
9
CHAPTER I: CONTEXT AND OBJECTIVES OF
THE PROJECT
10
1. Introduction
This chapter is a preliminary step to outline the preliminary study before implementing
the envisaged solution. Its purpose is to define the general context of the project and the
problem, as well as to criticize the existing solutions and to propose the orientations of
our future solution. Finally, it presents the working method to be adopted, and the
planning of the application.
2. General context
This part presents the general framework of the project as well as its main objectives.
This work is part of the end-of-study project for obtaining the National Diploma of Computer
Engineering from the university ...... (ESPRIT). Our internship took place within the company
"GPRO Consulting" for a period of six months from 02.01.21 to 30.06.21.
11
The company provides solutions in various fields related to::
ERP system
Industrial and manufacturing management software solutions
Technical assistance in the various industrial processes
Study and consulting in the implementation of information systems
Expertise in terms of certification preparation
Outsourcing
Specific development adapted to customer needs
Outsourcing for the European market, in particular the French market
4. Problematic
Nowadays, current school programs are not always adapted to the reality of companies and
some students who do not have the opportunity to do internships in a company must find ways
to take their training further.
This is the reason why online training is interesting for students, because they can learn things
not taught in school curricula and which meet the real needs of companies. In addition, these
training courses can help them enrich their training without being confined to the school
program by following free online training to complete their course.
Being certified for a student is also proof that he is curious and that he wants to go further in
his learning, which is positive for its employability. A candidate who has followed certifying
training will have more chances of obtaining an internship or his first job, because for the same
training he will have the advantage of having something other than his university degree.
Indeed, the certification represents the best testimony from an independent body that the
candidate has a certain mastery of the sector approached.
12
Thus today an employee will change companies several times in his career so it is important
that he can train and obtain certifications in order to maintain a level of employability that
favors his career in different companies.
Take the example of the sectors where the adoption of AI technologies is the most important,
we find IT (63%), followed by industry (47%) and financial insurance (40%). Certification in
this sector is therefore essential.
The statistics of the curves (I.1, I.2 and I.3) bear witness to this. Indeed, the first represents the
reasons why adults do not participate in training, in other words the percentages of adults who
wanted to participate but did not do so, certainly the constraints of time, schedule and distance
as well as the Financial constraints are among the main obstacles mentioned by those who do
not take any training (Figure I. 1). Almost 28% of adults say that they do not participate in any
training because they lack time due to their professional commitments and 15% say they do not
have time because of their family responsibilities. Finally, 16% mention a lack of financial
means and 12% of adults report that the training took place at an inconvenient time and place.
In coordination with Figure 1, the second displays the percentages of participants in non-formal
training activities who have attended at least one distance training in the past 12 months, despite
the possibilities offered by e-learning, few adults take advantage of this type of education for
training. Only one in five adults participating in non-formal training has taken it online.
However, the percentage of participants who train online varies greatly from country to another,
ranging from 6% in France to over 40% in Lithuania and Poland (Figure I. 2). Finalizing with
the last figure which shows the percentages of participants in adult training activities who
attended at least one distance education in the last 12 months, by level of competence in
numerical problem solving found in the OECD area , on average, 23% of training participants
with high digital problem solving skills took online training, compared to 14% of participants
with very low ICT skills. In the Netherlands and New Zealand, the number of adults with low
13
ICT skills taking online training exceeds the number of adults with strong digital problem-
solving skills (Figure I. 3).
However, learners do not have time to return to school desks for training. This is where online
certifications come in, where they can continue to learn while working, and take training at
their own pace and in addition maintain their employability.
The question that arises is how to overcome this remote certification problem without resorting
to foreign services or payment in foreign currency.
Figure I. 3 : Impact of the use of e-learning among participants in training activities [1]
Figure I. 4 : Incidence of online learning, by level of digital problem solving skills [1]
14
5. Study of the existing
The study of the existing is a preliminary step for project realization. In this section, we conduct
a detailed analysis of the existing, followed by a review and a comparative study of already
existing web platforms in order to identify the weaknesses and strengths and user needs to take
them into consideration during design and production phases. We then propose some solutions
in Tunisia and abroad which offer the same concept as our web portal.
5.1.Existing Solutions
5.1.1. Solutions in Tunisia
Application1: Study.tn
Study.tn is an online teaching platform in Tunisia allowing its members to purchase video
lessons.
The main strengths of Study.tn are the ease of use of the platform and the prices of its courses
are accessible to all. But unfortunately it has weak points such as the uneven quality of the
courses and the lack of certification.
5.1.2. Solutions abroad
Application 1: Coursera
It is an online education platform that allows you to take 2,000 courses for free online.
These are courses from leading universities like Stanford or Harvard, in various fields
such as computer science, humanities or languages.
15
Figure I. 6 : Home page – Coursera [3]
The main advantage of Coursera is that the certificates and the diplomas it provides are
recognized. The platform is also in partnership with very large schools and the courses are of
excellent quality which greatly facilitate learning. But all these good features do not neglect
that some trainings are really expensive.
Application2: OpenClassrooms
It is the largest online training platform in France and in Europe. It allows free training
in digital professions (programming and design).
16
Among the strengths of OpenClassrooms are: the good quality of courses, the possibility of being
followed by a mentor and the diploma certificates. Despite all these advantages, OpenClassrooms
requires great attendance.
Application 3 : Udemy
Udemy is an online learning platform that offers over 60,000 free and paid courses on a
variety of topics.
Udemy's strengths mostly show up in the good UI experience, which makes it easy to use. But
all these advantages do not abandon the presence of many disadvantages such as the uneven
quality of the courses and that there is no certification.
5.2.Criticisms of the existing
We can classify the result of the analysis of the existing web platforms mentioned above
according to six criteria [Cx] taken into consideration in the evaluation process of these
platforms:
[C1] Ergonomic interface: Is the application easy to use and does it present a more or less
attractive visual aspect?
[C2] Certification: The courses are certified.
[C3] Quality of course: The courses are of good quality.
[C4] Training cost: Training costs are affordable.
[C5] Follow-up: Possibility of follow-up by the mentor.
[C6] Dynamicity : The speed of loading of the website according to a test carried out by
www.gtmetrix.com
17
C1 C2 C3 C4 C5 C6
⇨ According to this study, it turns out that none of the previous solutions adequately
responds to our problem and our needs.
6. Proposed solution
Given the analysis of the constraints detected and the fact that there is no 100% online
certification site in the IT sector in Tunisia, we propose to design and implement a
platform that fills these gaps by offering innovative tools encouraging Internet users
either to learn or to teach and by facilitating the mode of education.
Figure
Figure I. 9 : Graphic I. : Pictogramme
representation of the proposed solution
18
7. Development methodology
7.1.Development Methodology Study
The development methodology aims to find the best way to structure, plan and control the
development of an application. It is the act of modeling a system before its realization in order
to better understand how it works and to ensure its consistency. There are several development
methods so in order to choose the most optimal method, it is always obvious to know the
characteristics of each method and then proceed to a multicriteria analysis to detect the most
adequate one. In this part, we will study some methodologies and compare them to make the
right choice.
7.2.Presentation of some methodologies
7.2.1. Agile
Agile is a methodology that anticipates the need for flexibility and applies a level of pragmatism
in the delivery of the finished product. Agile requires a culture change in many companies, it
focuses on the clean delivery of individual parts or parts of the software and not the entire
application, see Figure I.9.
Agile methods advocate 4 fundamental values:
❖ Individuals and Interactions on processes and tools
❖ Work software on complete documentation
❖ Customer collaboration in contract negotiation
❖ Respond to change about a plan
7.2.2. Scrum
Scrum is the best known of the agile methodologies. It provides a project management
framework with roles, meetings, artifacts, business rules, and an iterative development
cycle. The Scrum framework is simple, transparent and pragmatic.
19
Figure I. 11 : The Scrum methodology [7]
2 Tracks Unified Process (2TUP) is a unified process. The principle of 2TUP is that any
evolution imposed on a software can be broken down and processed in parallel, according to
a functional axis and a technical axis. And the realization of the software consists in merging
the results of these two branches of the process.
The Unified Process (PU) method is concerned with the life cycle of software and manages it.
Regarding object-oriented software, she will focus on its development. The RUP method, for its
part, is one of the offshoots of the PU method, which seeks to provide a precise framework for
the development of the software. It is a rather heavy generic, iterative and incremental method
20
but which adapts very easily to the processes and to the development needs.
21
2TUP - Iterative - Does not offer standard
- Emphasizes technology and documents
risk management - Superficial on the phases
- Define stakeholder profiles, located upstream and
deliverables, schedules, downstream of the
prototypes development
7.4.Choice of methodology
Our project is based on a well-defined development process that goes from determining the
expected functional needs of the system through to design and final coding. This is why we
need a development cycle that separates the technical aspects from the functional aspects while
starting with a preliminary study. Thus, following a comparative study, our choice then fell
towards the 2TUP method since it is characterized by a new and original approach and that it
respects the framework of our project.
22
Figure I. 13: The 2TUP methodology [8]
23
Coding and Tests: which describe how the application is carried out and installed
on an execution environment and how the validation strategy is carried out
8. Gantt chart
The Gantt chart, commonly used in project management, is one of the most effective tools for
visually representing the status of the various activities (tasks) that make up a project. The left
column of the diagram lists all the tasks to be performed, while the header row represents the
most suitable time units for the project (days, weeks, months etc.). Each task is represented by
a horizontal bar, the position and length of which represent the start date, duration and end date.
The Figure below therefore allows you to visualize at a glance:
● The different tasks to consider
● The start date and the end date of each task
● The expected duration of each task
Conclusion:
In this first chapter, we made a study of the existing situation allowing us to start our project
well with an illustration of the desired solution. We compared the different development
methods in order to close this chapter with a presentation of the 2TUP methodology that we
will adopt for the development of our project. The next chapter will be devoted to capturing
needs.
24
CHAPTER II: CAPTURE OF NEEDS
25
Introduction
In this chapter we will conduct a preliminary study of the different aspects of our project. We
start by presenting the field of application. Then, we will present a technical study followed by
an in-depth functional study while respecting the 2TUP development methodology.
1. specification of requirements
1.1 Functional requirements
Any interactive system must ensure and facilitate the interaction between users "actors" and the
"system". An actor represents the role of an external entity operating the system through its
various interfaces. For our system, we have identified the following actors:
Internet user: This is a site visitor, he can consult the courses on the home page, as he can search
for them. He also has the right to create a profile and thus become a subscriber to the site.
E-Learner (subscriber): It is an Internet user who has a profile on the site. He can
register for courses, comment on them, and take exams.
Teacher: It is an Internet user who has a profile on the site. He can publish, modify and
delete his courses.
Administrator: This is a site subscriber who can access the site administration area. It
can handle subscriber complaints, block them, and check teacher courses before
posting.
In the following, we will expose the functional needs of our application in close relation with
the actors previously mentioned.
We recall that these needs must meet the requirements of the future system.
Send a complaint: The subscriber can send a complaint to the administrator via a form
in which he explains his request.
26
The administrator has the right to:
Manage published courses: The administrator checks all published courses. He can
either validate them or delete them.
Manage subscriber accounts: The administrator has access to the list of subscribers on
the site. He has the right to delete or block them.
Process complaints: The administrator consults complaints from subscribers. He can
delete the course or block the subscriber who initiated the signaling.
Validate teacher accounts: The administrator must validate teacher accounts.
27
Confidentiality Authentication is mandatory in order to benefit
from the available services.
Availability and Maintainability The website must be accessible at all times and
must be extensible, that is to say easily
maintainable and adapt to new requirements in
the event of modification or addition of a
feature.
28
Simplicity Our application must be simple to the user and
does not require extensive knowledge since it is
aimed at an audience of different ages including
non-computer scientists.
2. Technical requirements
We are interested here in the right branch of the Y-cycle "Capture of technical needs" which
capitalizes technical know-how. In order to fully explain our technological choices, we used a
comparative study between the different technologies that can be used during our project.
2.1 Technological choice
In the following part we present the Front-End and Back-End frameworks that we will use for
the development of our website.
2.1.1 Front-End - REACT
Today, JavaScript (JS) is the only language used to create dynamic user interfaces. But to set up
complex UIs, you have to use what are called JavaScript Frameworks. These are libraries
designed in JavaScript that allow you to build more advanced frontend infrastructures.
29
2.1.1.1. React
React is a free JavaScript library developed by Facebook since 2013. The main purpose of this
library is to facilitate the creation of single page web application (SPA), through the creation
of state dependent components and generating an HTML page. Figure II. 2 illustrates the
architecture of an application using React JS and Redux.
The major benefits of using React are :
DOM virtuel
Easy to learn
High level of flexibility and responsiveness
100% open source JavaScript library
And their basic drawbacks are:
Very little official documentation
Long to master
Requires in-depth knowledge
30
2.1.1.2. Angular
Angular is an open-source JavaScript framework developed by Google in 2016. It allows the
creation of single page web applications (SPA).
The framework is based on the Type Script language and on an architecture of the MVC type,
illustrated in Figure II. 3, allows you to structure the code and separate the view (Interface)
from the models.
Benefits :
Very extensive documentation
MVVM model (Model - View- View Model)
Bid The bidirectional association of data which minimizes the risk of possible errors
New improved features like RX-JS, faster compilation
Disadvantages:
Problems migrating from one version to another
The inability to change frameworks along the way
31
2.1.1.3. Vue.js
Vue JS is a JavaScript framework. It was created by Evan You in 2014, a developer who worked
at Google. It has practically the same functionality as these main competitors React and
Angular. Figure II. 4 illustrates the architecture of an application using Vue JS.
Benefits :
Optimized HTML
Detailed documentation
Impressive integration
Disadvantages:
Lack of resources
There may be integration issues in huge projects
32
2.1.1.4. Comparative study and summary
2.1.2 Back-End
2.1.2.1 Nest Js
Nest (NestJS) is a framework for building efficient, scalable Node.js server-side applications.
It uses progressive JavaScript, is built with and fully supports TypeScript (yet still enables
developers to code in pure JavaScript) and combines elements of OOP (Object Oriented
Programming), FP (Functional Programming), and FRP (Functional Reactive Programming).
Under the hood, Nest makes use of robust HTTP Server frameworks like Express (the default)
and optionally can be configured to use Fastify as well.
Nest provides a level of abstraction above these common Node.js frameworks
(Express/Fastify), but also exposes their APIs directly to the developer. This gives developers
the freedom to use the myriad of third-party modules which are available for the underlying
platform.[12]
33
2.1.2.2 Symfony
Symfony is a set of PHP components as well as a free MVC framework written in PHP. It
provides modular and adaptable features that make it easier and faster to develop a website.
From Figure II. 6 we see that the highest membre of professional Developers use Node Js
And Nest Js is a framework from Node Js .
Our choice was based on the best Backend Technologies that offer a stable relation with React
Js, and depends on my experinice Nest Js was the best choice.
34
2.1.3 Technological choice of our application
React looks like a good choice for someone getting started with front-end
JavaScript frameworks, startups and developers who like some flexibility. The ability to
integrate with other frameworks seamlessly gives it a great advantage for those who would
like some flexibility in their code.
DOM virtuel
Easy to learn
High level of flexibility and responsiveness
100% open source JavaScript library
2.1.3.2 Nest Js
Java as a programming language is more than 20 years old. For many years, it was the main
framework for creating business applications, but recently, the focus shifted towards Node.js.
Because of its speed, Node.js took the developer world by storm allowing to enjoy all the
benefits of JavaScript and writing both frontend and backend in the same programming
language. Since Nest JS is the fastest-growing framework for Node.js, let’s talk about the
reasons why choose Nest JS over your current framework?
35
Nest has positioned itself at a unique crossroad of front end and mid-tier development
that many languages have struggled to find.
The use of TypeScript helps ensure that Nest will remain relevant in the rapidly
changing JavaScript landscape and gives developers less context switching.
Great documentation.
Easy unit testing.
Built for large scale enterprise applications.
Nest provides an out of the box application architecture that allows developers and
teams to create highly testable, scalable, loosely coupled and easily maintainable
applications.
With Nest JS you can build Rest API’s, MVC applications, microservices, Graph QL
applications, Web Sockets or CLI’s and CRON jobs.
It uses the best of Node.js, TypeScript, and bullet-proof architectural patterns.[13]
2.2.1 MongoDB
2.2.2 Postgres
36
This system competes with other database management systems, whether free (like MariaDB
and Firebird), or proprietary (like Oracle, MySQL, Sybase, DB2, Informix and Microsoft SQL
Server). Like the free Apache and Linux projects, PostgreSQL is not controlled by a single
company, but is founded on a global community of developers and companies.[15]
Benefits of MongoDB:
Flexible Data Model: In today's dynamic use cases and ever-changing applications,
having a flexible data model is a boon. A flexible data model means that there is no
predefined schema, and the document can hold any set of values based on any key.
Expressive Query Syntax: the query language of MongoDB is very expressive and is
easy to understand. Many would say that it's not like SQL. But why should we stick to
a SQL-like query language when we can move forward and be more expressive and
simpler.
Easy To Learn: MongoDB is easy to learn and quick to start with. The basic
installation, setup, and execution doesn't take more than a few hours. The more
robust setup might be complex, but I will talk about it later, you should be able to use
the MongoDB database with ease in your project.
Async Drivers: Nonblocking IO using async drivers are essential in all modern
applications that are built for speed. MongoDB has async driver support for most of
the popular languages.
Documentation: all the documentation for MongoDB is available for free on many
websites.
Text Search: if you are building a website needs all of your data, text search is
essential, there no database better than MongoDB for that.
Server-Side Script: If you need some operations to be performed on the server side
and not in your application, you can do that in MongoDB. Put your list of mongo
statements in a .js file and execute mongo yourFile.js.[16]
37
Conclusion
In this chapter we have introduced our functional and non functional reequipment, going next
to represent the technologies that will be used in our project, and type of database.
So, I’m using ReactJS, NestJS and MongoDB as the base of building this project, in the next
chapter I will represent the analysis and design of my project.
38
III CHAPTER III: ANALYSIS AND DESIGN
39
Introduction
This chapter is divided into two important parts: Analysis and Design , And each part is divided
into three parts
As usual we will represent all the graphs that will make the details of project clear.
For the analysis part we go with Functional analysis moving to Dynamic analysis ending with
Static analysis.
For the design part we start with Dynamic design to Static design ending with Architectural
design.
1. ANALYSIS
1.1 Functional Analysis
1.1.1 Use case Diagram
In functional analysis I represent the user case diagram to explain our modules and
objective from creating like :
Functionality visible from outside the system whose operation is to be
described.
Response to a need for a service rendered to the user.
40
Involves more basic series of actions.
Express a service carried out from start to finish, with an initiation, an unfolding
and an end, for the actor who initiates it.
41
1.3 Static Analysis
Analysis: preliminary description of the structure of entities and the name of some
attributes and methods.
Design: detailed description of all classes. The attributes and methods must appear
in detail with all types of parameters and return types.
Representation of the static structure of the system.
Set of classes and relationships between them (associations, generalizations, etc.).
42
2. DESIGN
Training Diagram
Certification Diagram
43
SignIn messenger
Login Diagram
44
2.2 Static Design
React has no opinion on how you order your files within your folders. That said, you may
want to consider one of the popular ecosystem approaches.
45
2.2.2 Nest JS architecture diagram
Nest (NestJS) est un framework MVC permettant de créer des applications côté serveur
Node.js efficaces et évolutives. Il utilise du JavaScript progressif, est construit avec et
prend entièrement en charge TypeScript.
46
2.2.3 MongoDB architecture diagram
47
2.3 Architectural design
2.3.1 Component diagram
48
2.3.2 Deployment diagram
A deployment diagram provides a static view of the topology of the hardware on which
the system is running.
Represents the physical architecture of the system:
Set of nodes
Correspond to physical media (servers, routers, environments, etc.)
Nesting nodes
Connections between nodes
Distribution of artifacts on each node
A deployment diagram does not show interactions between nodes
Conclusion
In this chapter, we have presented the detailed design of both our database and our web
application. At this point, we have completed an important phase which is the general design.
This is how we can approach an essential step which is the application realization. In the next
chapter, we will go into more detail about this phase.
49
CHAPITRE IV : APPLICATION REALIZATION
50
Introduction
The phase which follows a design is possibly the implementation. After the three
previous chapters, we come to gather our information and realize our system.
We begin this chapter by describing the hardware development environment and
software that we adopted. We then present some screenshots of our application.
1. Development environment
To set up our application, we chose to expose the environment of development which allowed
the success of our application and which ensured the good progress of the implementation
phase.
This environment includes hardware software tools.
For the realization of our project, we had an MSI laptop characterized by:
RAM 16GO
This section describes the software environment with which we carried out this project.
React JS is a free JavaScript library developed by Facebook since 2013. The main
purpose of this library is to facilitate the creation of a single-page web application, via
the creation of state-dependent components and generating an HTML page (or portion)
at each change of state.
51
Redux is an open-source state management JavaScript library for web applications. It
is most commonly used with libraries like React or Angular for building user interfaces.
MATERIAL-UI is React components for faster and easier web development. Build your
own design system, or start with Material Design.
52
1.2.3 Other tools used
We used Visual Studio Code as the IDE to edit our application code. It is an extensible
code editor developed by Microsoft for Windows, Linux and MacOs.
❖ Postman
We used it to test the proper functioning of the API. Postman is the collaboration
platform for API development. Postman simplifies every step of building an API and
streamlines collaboration so you can build better APIs, faster.
❖ StarUML
We used StarUML for the UML design of our application. It is a UML modeling software,
StarUML manages most of the diagrams specified in the UML 2.0 standard.
❖ GITHUB
GitHub is built for collaboration. Set up an organization to improve the way your team
works together, and get access to more features.
53
❖ ROBOT 3T
The Robo 3T (formerly Robomongo) tool has been acquired by 3T Software Labs, the
creators of the MongoDB client Studio 3T (formerly MongoChef).
3T will continue development of Robo 3T in parallel with its own MongoDB GUI and
the good news is that it will be making Robo 3T free for all users from now on. This is
an exciting new step for Robo 3T and its community, which will benefit users and the
wider MongoDB ecosystem.
❖ OVH
OVHcloud, formerly OVH, is a French company. She initially practiced server hosting,
and was an Internet service provider, then a telecommunications operator for
businesses. It developed, at the end of the 2010s, in cloud computing.[17]
❖ FileFizella
FileZilla Client is an FTP, FTPS and SFTP client, developed under the GNU General
Public License. It is included in the list of free software recommended by the French
state as part of the overall modernization of its information systems.
54
2. Presentation of the web solution
In this part, we will expose some interfaces of our web application in
trying to present the most important features in our work.
55
Figure IV. 1:Home interfaces
56
Our home page is divded to many parts HeadingBar and TopBar going to an animated
interface, after that we find the top categories of courses moving to upcoming events
ending by footBar that inculdes all the center informations and buttons leads to different
pages.
now moving to training interfaces with register interface that u find it when you open any
courses interface.
57
Figure IV. 2:Training interfaces
In training interfaces we used many of avanced ReactJS modules to create them, also
I add EmailJS API to help the user and the admin to receive all the informations needed
to register or to start the training.
58
2.3 User signIn interface
For SignIn interface we used material ui components to create it , this page is related to nest
API by hooks to use material interface all what you need to do is using “ npm install @material-
ui/core ” and use the needed component from “ https://material-ui.com/ “.
To be able to use this interface you need to have the access to Postman API , This interface
is protected and only the admin have the access to reach it .
59
2.5 Avatar
Avatar is an API that show up after you login and it shows the first letter of your username,
you finds avatar in TopBar of every interface in our web application .
60
In certification interfaces we used many of avanced ReactJS modules to create them,
also we add EmailJS API to help the user and the admin to receive all the informations
needed to register or start the certification
61
Figure IV. 7:Training interfaces
Boot Camp is one of the most important modules in this project , here as we see the
admin can upload pictures and videos also we see here an avanced tool as Rich Text
Editor that offer all the possible text edition.
62
2.8 FAQ interfaces
FAQ interfaces are created to answer some of questions that we receive on our email
63
Figure IV. 8:FAQ interfaces
As the usal every web application needs an FAQ page where you are able to find a possible
answers on many of your questions, these modules like any other modules it starts from
backend to API to admin interface to show up in the end on our frontend Client.
64
2.9 Scientific Stay
65
Figure IV. 9:Scientific Stay interfaces
Scientific Stay is the innovative module in our project, that it created to offer a new
level in E Learning world by adding the travel option in our suggestion not just that it
also help to add a new reward for our county by increase the number of tourists in
Tunisia ( traviling + learning ).
66
Figure IV. 10:Press interfaces
Like any web application , we need a publicity for our app so by creating Press module now
we can show our important events through it.
67
2.11 GUI USER interfaces
These interfaces are only allowed to the admin, it offers him the abilty to create and delete the
fake users, when admin receive an request to register, he create an account and the user
receive an email with all the login details.
68
Figure IV. 12:Tef & TefAQ interfaces
These interfaces are created for the admin to allow the users to register in TEF and TEFAQ
season to be able to pass ( English or French ) exams , also we can add many other languages
by adding them to the enumrated class.
For SignUP interface i used material ui components to create it , this page is related to Gmail
API by EMAILJS. to use material interface all what you need to do is using “ npm install
@material-ui/core ” and use the needed component from “ https://material-ui.com/ “.
69
Conclusion
In this chapter, we have presented the hardware and software environment used during the
implemntation of our web application. Then, we presented some screenshots showing the
proper functioning of our application.
70
General conclusion
This report is produced as part of our end of studies project with a view to
obtaine the National Diploma of Computer Engineering
This work aims to design and develop a website for a training center.
The first chapter was devoted to the general framework of the project. It
began with a research and documentation phase, thus tracing the
benchmarks for the work to be accomplish.
The second chapter was devoted to the study of the existing and the
conceptual study where we identified the shortcomings of the pre-
existing applications and we highlighted the implementation of the
general architecture of our system.
Once our objectives were set in the third chapter we followed in the third
chapter a design study in order to carry out our project. We used UML
as a modeling language.
We end with the fourth chapter which was dedicated to the implementation
aspect containing the choice of the working environment as well as
some interfaces made from the web application.
71
Finally, we hope that we have succeeded in achieving a functional website
that meets the needs of future users and meets their expectations.
72
Bibliography
[1] «Oecd,» 5 Mars 2021. [Online]. Available: http://www.oecd.org/coronavirus/policy-
responses/les-possibilites-de-l-apprentissage-en-ligne-pour-les-adultes-premiers-
enseignements-de-la-crise-du-covid-19-0ef7c9bf/.
[2] «Study.tn,» [Online]. Available: https://www.study.tn/. [Accès le 12 Mars 2021].
[3] «Coursera,» [Online]. Available: https://www.coursera.org/. [Accès le 8 Mars 2021].
[4] «Openclassrooms,» [Online]. Available: https://openclassrooms.com/fr/. [Accès le 8
Mars 2021].
[5] «Udemy,» [Online]. Available: https://www.udemy.com/. [Accès le 8 Mars 2021].
[6] «Embaucherapide,» [Online]. Available: http://www.embaucherapide.com/9-conseils-
de-recrutement-agile-pour-votre-equipe-dembauche/. [Accès le 9 Mars 2021].
[7] «Invensislearning,» [Online]. Available: https://www.invensislearning.com/blog/stages-
of-agile-transformation/. [Accès le 9 Mars 2021].
[8] «Memoireonline,» [Online]. Available:
https://www.memoireonline.com/10/18/10437/m_Developpement-d-une-application-d-
apprentissage-de-langue3.html. [Accès le 9 Mars 2021].
[9] «Ambysoft,» [Online]. Available: http://www.ambysoft.com/unifiedprocess/agileUP.html.
[Accès le 9 Mars 2021].
[10] «Medium,» [Online]. Available: https://medium.com/swlh/vue-vs-react-vs-angular-what-
framework-would-you-choose-5d77a3680b0d. [Accès le 26 03 2021].
[11] «Soat,» [Online]. Available: https://blog.soat.fr/2016/04/larchitecture-flux-avec-react/.
[Accès le 26 03 2021].
73
74