Rapport de Stage
Rapport de Stage
2
3
Acknowledgments
for her. Her understanding and tenderness make her a wonderful mother.
I thank her from the bottom of my heart and I dedicate this work to her, hoping
that she will be proud of me. May God preserve her and grant her health and
happiness.
To my dear father
Who is the best father in this world, for his encouragement, his trust, moral and
material support and for his infinite love by expressing
4
Acknowledgments
We would like to express our gratitude to Miss Naouar Nessrine our supervisor
within ESPRIT who agreed to monitor and evaluate this work. We would like to
assure her of our deep respect and thank her for her participation at this
particularly important moment for us. She gave us a lot of advice and advice
during the project.
We would like to thank Slashup Studio and all the team who welcomed us to
carry out our internship in good conditions.
We would also like to thank Ben Abi Zid Mehdi who supervised during this
internship. The extensive knowledge he brought us throughout this project
greatly contributed to its smooth running.
Finally, we warmly thank the members of the jury for their much-appreciated
presence.
5
Table of contents
List of figures 6
List of tables 8
General introduction 9
Chapter 1 : General context 11
I- Introduction 11
II- Project framework 11
III- Hosting organization: 11
IV- Study of the existing 12
1- Analysis of the existing 12
2- Critique of the existing 13
V- Proposed solution: KOORS.io 14
VI- Choice of development methodology 14
1- Comparison between work methodologies 14
2- Scrum methodology 15
VII- Conclusion 17
Chapter 2 : Preliminary Study 17
I- Introduction 17
II- Framing of needs 17
1- Identifying actors 17
2- Functional needs 17
3- Non functional needs 17
III- Needs modeling 18
1- Global use Case 18
IV- Product Backlog 18
V- Release planification 21
VI- Work environment and technical choices 21
1- Work environment 21
2- Technical choices 23
VII- Application architecture 26
1- Physical architecture 26
2- Logical architecture 29
3- Microservice Architecture 30
4- MVC 32
VIII- Conclusion 33
Chapter 3 : Release 1: User Management Module 34
I- Introduction 34
6
II- Release Backlog 34
III- Modelling 35
1- Use case Diagram 35
2- Class Diagram 35
IV- Release deliverable 36
1- Sign In: 36
2- Managing user account 37
3- Creating a new School 39
4- Inviting teachers to join to the school 39
V- Conclusion 40
Chapter 4 : Release 2: Inscription request module and continuous evaluation module 41
I- Introduction 41
II- Release Backlog 41
III- Modeling 42
1- Exam Use case 42
2- Inscription form request use case 43
3- Exam Class Diagram 43
IV- Release deliverable 44
1- Creating the inscription form 44
2- Creating a exam 45
3- Exam update 47
4- Passing an exam 48
5- Final exam correction 51
V- Conclusion 53
Chapter 5 : Release 3: Payment Module 54
I- Introduction 54
II- Release Backlog 54
III- Modeling 55
1- Payment use case diagram 55
2- Payment class diagram 55
IV- Release deliverable 56
1- Setting payment method 56
2- Setting price for training 57
3- Payment history 58
4- Training price management 59
5- Make payments with paymee 60
V- Conclusion 60
Conclusion and perspective 61
7
List of figures
8
Figure 4-4 Inscription form creation 43
Figure 4-5 Student list page 44
Figure 4-6 System sequence diagram 45
Figure 4-7 create exam step 2 46
Figure 4-8 update exam sequence diagram 46
Figure 4-9 update exam screen 47
Figure 4-10 pass exam screen 48
Figure 4-11 pass quiz 48
Figure 4-12 Respond to open question 49
Figure 4-13 display exam result 49
Figure 4-14 display exam sequence diagram 50
Figure 4-15 display exam list 51
Figure 4-16 correct exam screens 51
Figure 4-17 final exam after correction screen 52
Figure 5-1 Payment use case 54
Figure 5-2 Payment class diagram 54
Figure 5-3 setting payment method screen 55
Figure 5-4 setting training price 56
Figure 5-5 payment history screen 57
Figure 5-6 training price management screen 58
9
List of tables
10
General introduction
In addition, traditional education systems impose on all students a unity of place, unity
of time, unity of action, unity of rhythm which implies a rigidity of the mechanisms and a
difficulty of adequacy with the daily reality.
The trend towards improving the system from an educational point of view by resorting
to conventional audiovisual means (slide shows, video sequences) has not resolved the
problem. Indeed, the trainer must both present the course and undertake rather difficult
technical manipulations.
Modern education requires means to facilitate student learning such as the choice of
situation, the clarification of objectives and criteria, the choice of content, the setting
implementing educational procedures, developing tools to help students build and appropriate
knowledge and skills
11
America. Bates declared that the pandemic has shown the inequalities in the system and the
need for universal and low-cost access to the internet for education and that the institutions
must rethink their tuition policies to encourage students to move online by giving them
advantages like discounts. From an economic point of view, this industry of online learning
has grown in the last decades. According to Statista, this industry will be over 243 billion
dollars in 2022.
12
Chapter 1 :General context
I- Introduction
During this chapter, we’re going to present the general contest of the project and the company. In
addition, we’re going to present also the problematic, study of existence, our solution and finally our
choice of development methodology
We can also define it as "the use of new multimedia technologies of the Internet to
improve the quality of learning by facilitating on the one hand access to resources and
services, on the other hand, remote exchanges and collaboration ". It is part of information
and communication technologies for education (ICTE) and allows for non-face-to-face
activities. It is also most often the use of computers or mobile devices (smartphones, tablets,
PDAs, etc.) connected to the Internet.
Distance training or education refers to educational situations and training systems for
which the presence of the teacher or trainer is not necessary for the learning activity.
The development of distance learning responds to concerns and needs that are still
very concrete:
13
IV- Study of the existing
The objective of this section is to study around the most popular E-Learning solutions known
in the market. This study makes it possible to identify the strengths and weaknesses of each of these
solutions. In what follows, we present an analysis of the existing, then we detail the critique of the
existing.
In order to resolve these drawbacks, several tools have been created based on the newest technologies.
Among which we can mention:
360Learning:
360Learning platform for enterprises to form their employees and to evaluate their skills by
giving them courses to study and projects to submit.
Teachable:
14
EDX:
Edx is also an American MOOC provider founded by Harvard University and MIT. It hosts
online university-level courses in multiple ranges of disciplines to the worldwide student
including free courses. It also analyses how people use this platform to evaluate e-learning
experience
Podia :
Podia also a LMS platform for selling online courses by creating the storefront with no third-
party plugins. It handles creating digital content and sending newsletters
As shown in the table below, these E-Learning solutions products and solutions offer various
functionalities however, they have may drawbacks such as:
- The gap in the reviewing student Level quizzes and tests
- There is no platform that combines all features together
15
universities
Dose not accept payments in
Tunisia
Teachable Multilevel levels Doesn’t have webinar for
Admins Unlimited teaching
Videos Unlimited Doesn’t offer sessions
Does not have free but it
Live Classes
offers 15 days trial
Multiple payment methods Doses not accept payments
from Tunisia
When analyzing these platforms, we found that it has many gaps in reviewing student level by
quizzes and tests and it lacks many features that can be added to make the student experience
more efficient
Advantages Drawbacks
Waterfall -complete documentation -large amount of documentation
Model for every step -not flexible
-easy to use -no ability to go back on steps
-stable requirements
V-Model -early place test placement -deficient flexibility for the model
-improved time management -insufficient risk analysis
-immediate testing -no ability to dynamic changes
16
Agile -division of the project on -no define for project costs due
multiple iterations the changes in development for
-flexible process to handle the requirements
changes during the - skilled team members are
development of the product required
-minimized risks -conflicts may come be with the
-consistent interaction with new features
clients
-high degree involvement for
team member
Spiral Model -good documentation -the need of specialist for risk
-early creation of the analysis
product -success of the process depend on
-ability to add features late risk management
in the process -not suitable for small projects
-early prototype -rather expensive to use
2- Scrum methodology
Agile methodology represents the practice that supports continued iteration of product
development and project tests during it lifecycle. It’s considered as one of simplest but
effective software development methodology and scrum in one of its frameworks
Agile methodology focuses on four main values:
1- Individual and interaction between the team over process
2- Software on a full documentation
3- Collaboration with the client rather the contractual negotiation
4- Flexibility to changes over following a blueprint or a plan
Also, there are agile 12 principles:
17
Figure 1-6: 12 agile principals
Scrum can be defined as an agile method or frameworks that focuses on managing tasks in
team environment. It’s based on three main roles:
Scrum Mission
Role
-He is the director of the product.
Product -He communicates with the clients to get
Owner the product functionalities
-
-Team member with the main goal to
Scrum optimize production capacities for the team
Master -Helps the team in work independently with
improving
Operational team which ideally consists of
Team less than ten
people
-The particularity of a Scrum team is that it
is devoid of any internal hierarchy.
-Self-organized
Table 1-1 SCRUM roles
There are also scrum events that has to be done on every iteration that lasts
for 2 weeks to complete:
18
Figure 1-7 Sprint steps
Sprint planning: Happens in the beginning of the sprint where the team choose users stories and task
they will work on during the sprint
Daily Scum: a 14-minutes meeting that synchronize activities between team members
Sprint Review: holds at the end of the sprint for the product adoption if needed
Sprint Retrospective: this is a event where the team inspect themselves in order to identify an
improvement process to be implemented in the incoming sprints
Sprint: is defined as the length of the period to deliver sprint goals
VII- Conclusion
After conducting extensive research on the various existing methods, we chose the agile
development method designed to shorten the software lifecycle by generating multiple versions. also,
agile can be adopted to the team and company needs.
I- Introduction
During this chapter, we’re going to introduce the main actors for our platform, functional and
non-functional needs and finally used technologies to develop Koors
2- Functional needs
To develop Koors, we decided to develop these modules:
- User Management module: this module consists of managing different users in the platform
and their info
- Inscription Request module: Some trainings need a specific skill to get accepted, that why the
teacher creates an inscription request form to evaluate students before enrolling specific
trainings
- Continuous Evaluation Module: During the trainings or at the end of it, the student must
answer to several quiz’s and in the end, he will pass a final exam to evaluate his skills
- Payment modules: not all the trainings are free, that’s why we developed a payment module
to give the student an opportunity to pay for trainings
19
3- Non functional needs
Non functional needs permits to the platform to works correctly after developing the functional needs
and we can mention:
- Security: focuses all assets to be protected throughout the lifecycle
- Developability: refers to adapting systems and the experience in updating and changing the
existence code
- Testability: includes to need to be able to validate requirements of the system
20
IV- Product Backlog
Feature ID User Story ID Task Task Estimation
21
2.3.4 Api Security 1
2.3.5 Api documentation 1
2.4 As professor , I can 2.4.1 Accept/refuse requests (backend) 2
accept or decline 2.4.2 Accept/refuse requests (frontend) 2
requests 2.4.3 Unit / behavioral testing 1
2.4.4 Api security 1
2.4.5 Api documentation 1
3 Continuous 3.1 As professor, I can 3.1.1 Exam creation (back ) 5
evaluation create an exam 3.1.2 Exam creation (front) 3
Module 3.1.3 Api security 1
3.1.4 Unit / behavioral Testing 2
3.1.5 Api documentation 1
3.2 As professor , I can 3.2.1 Open question creation (backend) 3
create questions 3.2.2 Open question (frontend) 2
3.2.3 Api Security 1
3.2.4 Unit / behavioral testing 2
3.2.5 Api documentation 1
3.3 As a student I can pass 3.3.1 Pass quiz (back) 5
quiz’s 3.3.2 Pass quiz (front) 3
3.3.3 Unit / behavioral testing 2
3.3.4 Api security 1
3.3.5 Api documentation 1
3.4 As a student I can pass a 3.4.1 Pass final exam (backend) 3
final exam 3.4.2 Pass final exam (front ) 2
3.4.3 Unit / behavioral testing 2
3.4.4 Api security 1
3.4.5 Api documentation 1
3.5 As teacher, I can 3.5.1 Preview list of exams (backend) 5
preview final exam 3.5.2 Preview list of exams ( frontend) 3
submissions 3.5.3 Preview a specific exam ( frontend) 3
3.5.4 Unit / behavioral testing 1
3.5.5 Api security 1
3.5.6 Api documentation 1
3.6 As teacher, I can set 3.6.1 Set mark for a open question ( 2
marks to open questions backend)
3.6.2 Set mark for open question (front 3
3.6.3 Unit / behavioral testing 2
3.6.4 Api security 1
3.6.5 Api documentation 1
3.7 As student I can preview 3.7.1 Get a specific exam details (backend) 3
my exam or quiz 3.7.2 Display test result 3
submission and mark 3.7.3 Unit / behavioral testing 2
3.7.4 Api security 1
3.7.5 Api documentation 1
4 Payment 4.1 As director, I can fix 4.1.1 Fix content price (back) 5
Module course, session path 4.1.2 Fix content price (front) 3
price 4.1.3 Unit / behavioral testing 2
4.1.4 API security 1
4.1.5 API Documentation 1
4.2 As director, I can 4.2.1 Manage content price (back) 5
manage courses price 4.2.2 Manage content price (front) 3
4.2.3 Unit / behavioral testing 2
22
4.2.4 Securing the API 1
4.2.5 API documentation 1
4.3 As director, I can set 4.3.1 Choose payment method (back) 3
payment method for his 4.3.2 Choose payment method (front) 3
school 4.3.3 Unit / behavioral testing 2
4.3.4 API Documentation 1
4.3.5 Securing API 1
4.4 As director, I can 4.4.1 Consult payment history (back) 5
consult payment history 4.4.2 Consult payment history (front) 3
4.4.3 Unit / Behavioral testing 2
4.4.4 Securing API 1
4.4.5 API documentation 1
4.5 As a student, I can pay a 4.5.1 Paymee payment(Back) 5
training with paymee 4.5.2 Paymee payment(Front) 3
4.5.3 Unit / Behavioral testing 1
4.5.4 Securing API 1
4.5.5 API documentation 1
Table 2-1 Backlog
V- Release planification
After creating the product backlog with all user stories, tasks, sub-tasks and tests tickets, we
have organized planification meeting to divide work into releases and in the end we decided
to go with:
- Release 1: User Management Module
- Release 2: Inscription request Module and Continuous Evaluation Module
- Release 3: Payment module
Vs code is an open open-source and cross-platform editor represented by Microsoft and offers
many features such as debugging, code refactoring and can integrate many extensions from it
marketplace
23
Figure 2-3 Intellij idea logo
IntelliJ idea community is an IDE developed by JetBrains for java programmers and
considered as one top-choices IDE for java developers
Postman:
Postman is a JavaScript application for testing developed APIs that consumes web services to
understand received data structure and values
Figma:
Figma is a victor graphic editor web-based tool with additional features on desktop version
24
Draw io:
Draw Io is an online open-source software for UML modeling, making flowcharts and
process diagrams
Jira:
Jira is project management software developed by Atlassian used to ship product faster that
adapts the agile methodology for product management
2- Technical choices
Java:
Java is one more common programming language released by Sun Microsystems. It’s a
high-level and object-oriented language and it’s designed to let developers to write ones, write
anywhere (WORA) and we are using Java8 because it is long support version (until 2030)
JavaScript:
25
Figure 2-9 JavaScript logo
TypeScript:
Spring Boot represents open java solution for developing back-end application developed by
Pivotal. It offers a pre configurable project application after it creation. With it , programmers
can start quickly without losing time on preparing a spring application
JSON represents textual data structure from the object notation of JavaScript programming
language. It allows to represent structured data like XML
NodeJs:
NodeJS represents an open source, backend JavaScript and cross platform tools running using
V8 engine that executes outside web browsers
JWT is a standard that allows the exchange of secured tokens between different parts that
ensure the integrity in the digital signature
27
PostgreSQL:
Figure 2-15PostgresSQL
Swagger:
Swagger is a library that allows you to describe APIS, helps the design, build REST API and
document it for other developers
Cucumber:
Cucumber is an open-source testing tool used for Behavior Driven Development (BDD)
testing in Java and node
Junit:
28
Figure 2-18 JUnit logo
Junit is an open-source testing framework to execute unit and integration testing for java
programming language
29
EKS and isolation layers: there are many layers that helps with isolation for a Kubernetes
application:
Cluster: is a collection of nodes and represents the management layer for containers that
ensures extreme isolation in network
Node : the node is a physical or virtual machine that contains multiple pods that helps
hardware or hypervisor for the resources isolation
Pods: pods are groups of containers that isolate networks and helps in micro-segmentation of
containers
Containers: it represents the main layer of isolation; however, it can’t isolate the network and
identity but it isolates from noisy neighbors.
master node: with is triggered after a push into one of koors GitLab repositories, the deploy
jobs started, then the new version of code will be pushed into the microservices replicas witch
are founded in pods.
inside the pods we can find secrets keys such as Kong secret key , database passwords, and
api’s keys
welcome node: after the code is deployed, the code will be be used in welcome nodes that will
be used when we call the microservice endpoints
30
2- Logical architecture
Backend Architecture:
31
Frontend Architecture:
Routes represents the entry point which are used to used to display platform pages developed of one or
several components to display data consumed by endpoints or from redux state
3- Microservice Architecture
32
Advantages of microservice:
Orchestration:
33
4- MVC
a- What is MVC
MVC represents a design pattern that assists in building and constructing application
frameworks. It consists of three sections named Models, Controllers and Views. It is a trendy
design used by all types of programming languages like JavaScript, java, PHP….
c- Why MVC?
MVC can give many benefits in software development and we can mention:
- Simultaneous Development: the project can be developed by many developers in the
same time
- High cohesion: it enables the grouping of the logical parts together
- Low coupling: the MVC architecture gives us the possibility to have a simple and
stable interface isolated from the internal implementation
34
- Ease of modification: MVC gives us the possibility to easily update and add code to
the application while the development phase or the bugs fixing
VIII- Conclusion
In this chapter, we have specified our functionalities with mentioning tasks to develops, technologies
to use and architecture we need in order to develop our platform
35
Chapter 3 : Release 1: User Management Module
I- Introduction
For the user management micro-service, we have divided users in two types in order to create schools
and manage users in our platform:
-Natural Person: Represents the ordinary users of the platform such as professors, students…
-Legal Person: Represents schools in our case
36
III- Modelling
1- Use case Diagram
2- Class Diagram
1- Sign In:
In order to access to the platform, the user must sign in to the platform as director, teacher or student.
After choosing the type of inscription, an email is sent in order to verify the mail address . Next , he
complete the sign in by typing general information and uploading a profile photo
37
Pre-conditions any visitor can create an account
Initialization This use case starts when the visitor decides to create an account
Description of the - The user clicks on create account
scenario - The user gives his mail address and password
- The user activates his account by clicking on the link sent to this
mailbox
- The user complete joining to the platform by completing his general
information and uploading his profile photo if he wants
Post-conditions The user will be added to the database
38
In order to complete the sign in process, a verification mail is sent to verify that the mail.
Users can manage their profile information’s like the address, city and profile picture
And for the Security of the account, the users can change their password or mail address by
confirming the changes by clicking the link sent in a mail to make sure that the users themselves
whom changes these information
39
Figure 3-6 Update user general information’s
In Order the build the school team, the director can invite professors to join his school by send them
mails. Next, the professor can access to the school by clicking on link sent
40
Use Case Inviting a new teacher to the school
Actors director
Hypothesis A director wants to add a new teacher
Pre-conditions During setting the list of teachers, the director wants to add a new teacher
Initialization This use case starts when the director clicks on add professor button
Description of the - The director clicks on add teacher button
scenario - The director writes the teacher mail address
- The director clicks on invite button
Post-conditions After clicking on invite button, an invitation mail will be send to the teacher
Table 3-5 Invite teacher to school use case
41
Figure 3-8 Invite professor to join school step 2
An invitation mail will be received in teacher mailbox that will redirect him to sign in form in order to
create account and to log in as professor in the end in the director school
V- Conclusion
In this release, we have developed the frontend and the backend part of the user management module,
also we have corrected declared bugs
I- Introduction
- Inscriptions request module: represents an entry used by the teacher in order to evaluate the
student skills before taking the training
- Continuous evaluation module: represents the evaluation during and in the end of training
42
2.4 As professor , I can accept 2.4.1 Accept/refuse requests (backend) 2
or decline requests 2.4.2 Accept/refuse requests (frontend) 2
2.4.3 Unit / behavioral testing 1
2.4.4 Api security 1
2.4.5 Api documentation 1
3 Continuous 3.1 As professor, I can create an 3.1.1 Exam creation (back ) 5
evaluation exam 3.1.2 Exam creation (front) 3
Module 3.1.3 Api security 1
3.1.4 Unit / behavioral Testing 2
3.1.5 Api documentation 1
3.2 As professor , I can create 3.2.1 Open question creation (backend) 3
questions 3.2.2 Open question (frontend) 2
3.2.3 Api Security 1
3.2.4 Unit / behavioral testing 2
3.2.5 Api documentation 1
3.3 As a student I can pass 3.3.1 Pass quiz (back) 5
quiz’s 3.3.2 Pass quiz (front) 3
3.3.3 Unit / behavioral testing 2
3.3.4 Api security 1
3.3.5 Api documentation 1
3.4 As a student I can pass a 3.4.1 Pass final exam (backend) 3
final exam 3.4.2 Pass final exam (front ) 2
3.4.3 Unit / behavioral testing 2
3.4.4 Api security 1
3.4.5 Api documentation 1
3.5 As teacher, I can preview 3.5.1 Preview list of exams (backend) 5
final exam submissions 3.5.2 Preview list of exams ( frontend) 3
3.5.3 Preview a specific exam ( frontend) 3
3.5.4 Unit / behavioral testing 1
3.5.5 Api security 1
3.5.6 Api documentation 1
3.6 As teacher, I can set marks 3.6.1 Set mark for a open question ( backend) 2
to open questions 3.6.2 Set mark for open question (front 3
3.6.3 Unit / behavioral testing 2
3.6.4 Api security 1
3.6.5 Api documentation 1
3.7 As student I can preview my 3.7.1 Get a specific exam details (backend) 3
exam or quiz submission 3.7.2 Display test result 3
and mark 3.7.3 Unit / behavioral testing 2
3.7.4 Api security 1
3.7.5 Api documentation 1
Table 4-1 Release 2 backlog
III- Modeling
1- Exam Use case
43
Figure 4-1 exam use case
44
3- Exam Class Diagram
Some courses need skills to enroll, that’s why the teacher can create a form to evaluate students and
choose whom have the suitable profiles
45
Figure 4-4 Inscription form creation
To review submissions, the teacher needs to access the list of submissions, consult the profile of
student, his answers to the form and finally choosing if he will be accepted or refused
46
2- Creating a exam
In order to evaluate the level of students, the professor can create quiz’s and exams that they will be
passed during tacking the course
a- Sequence diagram
After clicking on create exam button, a modal will pop out in order to let the professor choose the type
of the exam to create and to choose between a simple quiz or a final exam
47
Figure 4-3 create exam step 1
After choosing the type exam, the professor will be redirect to exam’s dynamic form where he will be
able to create his exam using a dynamic form by setting the exam name, duration and creating exam
questions
48
3- Exam update
After creating the exam, the professor can consult the exam to review it before publishing the training
in order to update the exam content, title or duration. For the scale, a quiz have only 1 point as a mark
and for the open ones, he can choose a scale mark between 1 to 5 points
a- Sequence Diagram
49
Figure 4-9 update exam screen
4- Passing an exam
During pursuing a training, the student must respond to quiz’s or exams in order to have a diploma
after completing the content of this course. After finishing the test, a screen will appear to show the
results. In a case of final exam, a review screen will be appeared until the final exam will be evaluated
by the professor
50
Figure 4-10 pass exam screen
51
Figure 4-12 Respond to open question
The student can pass successfully every evaluation form unless his mark is grater then the half of the
scale note of the exam or else it will be considered failed
52
5- Final exam correction
In case of final exam, some questions must be corrected by the professor. He can have access to this
section by clicking on Exams section in the navbar. After that, the list of exams will appear with the
possibility of choosing the status of the exam (exams to review / completed exams or all exams )
The table below show exams status with it submission date, the name of the student and submission
date and it be filtered by the training name to facilitate the evaluation process by the teacher and
finally it can be exported as a csv file
a- Textual use case
b- Sequence Diagram
53
Figure 4-15 display exam list
To correct an exam, the teacher clicks on the exams, choose a question to correct and giving mark to
students
54
If all questions of the exam are evaluated, his final mark will appear, and its status will change to
completed with the student mark
V- Conclusion
In this release, we have developed the frontend and the backend part of the continuous evaluation
module and inscription form, also we have corrected declared bugs
55
Chapter 5 : Release 3: Payment Module
I- Introduction
In this release, we’re going to develop a payment module to give the student the chance to enroll
in paid trainings of the platform and our choice was Paymee payment engine to make payments in
Tunisia
4 Payment Module 4.1 As director, I can fix 4.1.1 Fix content price (back) 5
course, session path 4.1.2 Fix content price (front) 3
price 4.1.3 Unit / behavioral testing 2
4.1.4 API security 1
4.1.5 API Documentation 1
4.2 As director, I can 4.2.1 Manage content price (back) 5
manage courses price 4.2.2 Manage content price (front) 3
4.2.3 Unit / behavioral testing 2
4.2.4 Securing the API 1
4.2.5 API documentation 1
4.3 As director, I can set 4.3.1 Choose payment method (back) 3
payment method for 4.3.2 Choose payment method (front) 3
his school 4.3.3 Unit / behavioral testing 2
4.3.4 API Documentation 1
4.3.5 Securing API 1
4.4 As director, I can 4.4.1 Consult payment history (back) 5
consult payment 4.4.2 Consult payment history (front) 3
history 4.4.3 Unit / Behavioral testing 2
4.4.4 Securing API 1
4.4.5 API documentation 1
4.5 As a student, I can 4.5.1 Paymee payment(Back) 5
pay a training with 4.5.2 Paymee payment(Front) 3
paymee 4.5.3 Unit / Behavioral testing 1
4.5.4 Securing API 1
4.5.5 API documentation 1
56
III- Modeling
In order to accept payments, the director must choose a payment method and link his account
to the platform, In KOORS case, to accept payments in Tunisia , the director must choose
Paymee as payment engine and to have payment from other countries , Strip payment solution
is right option to choose
57
Hypothesis A director wants to set a payment method
Pre-conditions During configuring the school, the director must choose a payment engine to be
able to have paid transactions
Initialization This use case starts when the director clicks in Payment section or while setting
his first paid training
Description of the - The director clicks in school button in the navbar
scenario - The director clicks in payment section in school info
- The director chooses a payment engine
- The director saves his choice by clicking on save button
Post-conditions After choosing a payment engine, director choice will be stored in the database
and the currency of paid training will be displayed
Table 5-2 Setting payment method textual use case
As director, He can set if the course to publish is free or with fees. First, he chooses the payment
method, then he set the price to every paid course, path or session
He can also manage the price after consulting the list of paid courses in finance section with the
history of price for every course with the possibility to make the course free instead of paid
58
Pre-conditions During reviewing a training, the director sets the training price
Initialization This use case starts when the director clicks on paid button
Description of the - The director clicks on paid option for inscription type
scenario - The director sets the price
- The director saves his choice and approves the training
Post-conditions After approving the training, the data will be stored in the database and the
director will be redirected to the list of courses
Table 5-3 setting training price textual use case
3- Payment history
In order to consult student payments history, the director must go to finance section displayed
in the navbar, A table containing the details of payments transactions will be displayed with
two views: the first using the name of training and the second one using the history of sales by
student’s transactions
59
Initialization This use case starts when the director clicks on finance button in the navbar
Description of the - The director clicks on finance button in the navbar
scenario
Post-conditions After displaying the list, the director can view the course financial history
Table 5-4 payment history screen
Payments can be filtered by multiple filters such as month, name of professor or the
name of training. The footer of the table displays an overview for the table rows that
shows number of enrolled students and total of student’s transactions
As a director, he can manage training price, view it history and statistics and change the
price or change it to free training
60
- The director sets the new training marks
- The director saves the new price by clicking on save button
Post-conditions After clicking on save button, the new price will be stored in the database and
the new price will be displayed for students inscribed in the school
Table 5-5 training price management
As a student, I can buy paid training with Paymee in Tunisia using my credit card or Paymee account
61
- The student pays training fees with Paymee
Post-conditions After Payment, the student will be enrolled in the selected course and he will be
redirected to the start training page
Table 5-6 pay training with paymee textual use case
V- Conclusion
In this release, we have developed the frontend and the backend part of the Paymee payment module,
also we have corrected declared bugs
62
Conclusion and perspective
In this final project, carried out at Slashup Studio, we’ve designed and developed a web application in
e-learning. As a methodology, the choice fell on Scrum as a working method using React for the
Front-end with redux, SpringBoot and NodeJs for the Back-end and PostgresSql for the database.
As a start point, we've began with study of existence to specify our needs and modules. Afterwards,
we've started the modeling and the design part in order to have a clear vision on the platform.
Next, we started the development phase after dividing the work as releases and by the end of each
release, we push the new functionalities into production after fixing bugs.
Integration into a professional work team was very fluid and working with them was a pleasure even
when we have many tasks to accomplish.
And now after developing our platform, it would be worth improving our functionaries to improve
user experience, integrating Kafka and micro frontend in our upcoming versions
This presented work, is developed and done in order to obtain Software engineering degree at ESPRIT
school of engineering as a graduation internship
List of references
63
[1] https://medium.com/chingu/a-short-introduction-to-the-scrum-methodology-7a23431b9f17
[2] https://medium.com/@joespinelli_6190/mvc-model-view-controller-ef878e2fd6f5
[3] https://medium.com/swlh/microservices-architecture-from-a-to-z-7287da1c5d28
64