Internship Report Version Final
Internship Report Version Final
SPECIALTY : TWIN
Supervised by:
To My Father
Who made master in me the love of work and desire to dedicate myself in
order to bring the best of me.
To My mother
Who surrounded me with her love, her assignment and who never ceases to
sacrifice herself for the good of her children
To my sisters
Yassine
TABLE OF CONTENT
CHAPTER 1: SATE OF ART ................................................................................................................... 2
INTRODUCTION ......................................................................................................................................... 2
1.1. Presentation of the host organization .......................................................................................... 2
1.2. Problematic ................................................................................................................................... 3
1.3. Study and criticism of the existing ................................................................................................ 3
1.3.1. Analysis of Jira ....................................................................................................................... 3
1.3.2. Analysis of Gitlab ................................................................................................................... 4
1.4. Proposed solution.......................................................................................................................... 4
1.5. Adopted methodology .................................................................................................................. 5
1.5.1. Choice of the Methodology ................................................................................................... 5
1.5.2. SCRUM Presentation ............................................................................................................. 5
1.5.3. SCRUM Roles ......................................................................................................................... 6
CONCLUSION ............................................................................................................................................. 6
CHAPTER 2: PROJECT SCOPE AND PLANNING...................................................................................... 7
INTRODUCTION ......................................................................................................................................... 7
2.1. Capturing the needs ...................................................................................................................... 7
2.1.1. Identifying actors ................................................................................................................... 7
2.1.2. Identification of Project Needs.............................................................................................. 7
2.1.2.1. Functional requirements ............................................................................................... 7
2.1.2.2. Non-Functional requirements ....................................................................................... 8
2.2. Project management with scrum .................................................................................................. 8
2.2.1. Backlog functionalities........................................................................................................... 9
2.2.2. Global use case diagram ...................................................................................................... 11
2.2.3. Sprint Planning .................................................................................................................... 12
2.2.4. Interface Prototypes ............................................................................................................ 12
2.3. Work environment ...................................................................................................................... 14
2.3.1. Hardware environment ....................................................................................................... 14
2.3.2. Development environment ................................................................................................. 14
2.3.3. Software Environment......................................................................................................... 15
2.4. GENERAL SYSTEM ARCHITECTURE .............................................................................................. 17
2.4.1. Physical System Architecture .............................................................................................. 17
2.4.2. Logical System Architecture ................................................................................................ 17
CONCLUSION ........................................................................................................................................... 18
CHAPTER 3: STUDY AND IMPLEMENTATION OF FIRST RELEASE ......................................................... 19
INTRODUCTION ....................................................................................................................................... 19
3.1. SPRINT 1 BACKLOG ...................................................................................................................... 19
3.1.1. Functional specification ....................................................................................................... 19
3.1.2. identity server ..................................................................................................................... 19
3.1.3. Authentication and Authorization ....................................................................................... 20
3.1.4. Use case diagram ................................................................................................................. 20
3.1.5. Textual description of use cases.......................................................................................... 21
3.1.5.1. Use Case “Authentication” .......................................................................................... 21
3.1.5.2. Use Case “Edit Profile .................................................................................................. 22
3.1.5.3. Use Case “Search Users” ............................................................................................. 23
3.1.6. Modeling and designing ...................................................................................................... 23
3.1.6.1. The Sequence Diagram ................................................................................................ 24
3.1.6.2. Authentication Use Case Sequence Diagram .............................................................. 24
3.1.6.3. Edit Profile Use Case Sequence Diagram..................................................................... 26
3.1.6.4. Search Client Use Case Sequence Diagram ................................................................. 26
3.1.6.5. Sprint 1Class Diagram .................................................................................................. 27
3.1.7. Implementation ................................................................................................................... 29
3.1.7.1. Login Interface ............................................................................................................. 29
3.1.7.2. Users List Interface ...................................................................................................... 30
3.2. SPRINT 2 BACKLOG ...................................................................................................................... 32
3.2.1. Functional specification ....................................................................................................... 32
3.2.2. Use cases diagrams.............................................................................................................. 32
3.2.3. Textual description of use cases .......................................................................................... 33
3.2.3.1. Use case “Add Tasks” .................................................................................................. 33
3.2.3.2. Use Case “Project Manage Teams” ............................................................................. 34
3.2.3.3. Use Case “Synchronize With Gitlab” ........................................................................... 34
3.2.4. Modeling and designing ...................................................................................................... 35
3.2.4.1. Add Task Sequence Diagram ....................................................................................... 35
3.2.4.2. Manage Project Members Sequence Diagram ............................................................ 36
3.2.4.3. Delete Task Type Sequence Diagram .......................................................................... 37
3.2.4.4. Sprint 2 Class Diagram ................................................................................................. 38
3.2.5. Implementation ................................................................................................................... 39
3.2.5.1. Tasks Interface ............................................................................................................. 39
3.2.5.2. Add new Task Form Interface ...................................................................................... 39
3.2.5.3. Projects Interface ........................................................................................................ 41
CONCLUSION ........................................................................................................................................... 42
CHAPTER 4: STUDY AND IMPLEMENTATION OF SECOND RELEASE ..................................................... 43
INTRODUCTION ....................................................................................................................................... 43
4.1. SPRINT 3 BACKLOG ...................................................................................................................... 43
4.1.1. FUNCTIONAL SPECIFICATION .............................................................................................. 43
4.1.2. USE CASES DIAGRAMS ......................................................................................................... 43
4.1.3. TEXTUAL DESCRIPTION OF USE CASE .................................................................................. 44
4.1.3.1. Use Case “Save Time Entry “ ....................................................................................... 44
4.1.4. MODELING AND DESIGNING ............................................................................................... 45
4.1.4.1. Add Time Entry Sequence Diagram ............................................................................. 45
4.1.5. IMPLEMENTATION............................................................................................................... 47
4.1.5.1. Entry Time Interface .................................................................................................... 47
4.1.5.2. Entry Time Interface “Add new Entry Time” ............................................................... 48
4.1.5.3. Entry Time Interface “Day View” ................................................................................. 49
4.2. SPRINT 4 BACKLOG ...................................................................................................................... 50
4.2.1. FUNCTIONAL SPECIFICATION .............................................................................................. 50
4.2.2. USE CASE DIAGRAM ............................................................................................................ 50
4.2.3. TEXTUAL DESCRIPTION OF USE CASES ................................................................................ 51
4.2.3.1. Use Case “Send Report by Email “ ............................................................................... 51
4.2.4. MODELING AND DESIGNING ............................................................................................... 51
4.2.4.1. Add Time Entry Sequence Diagram ............................................................................. 52
4.2.4.2. Sprint 4 Class Diagram ................................................................................................. 53
4.2.5. IMPLEMENTATION............................................................................................................... 54
4.2.5.1. Report Page ................................................................................................................. 54
4.2.5.2. Email Report Form Page .............................................................................................. 55
4.2.5.3. Report In Excel Format ................................................................................................ 56
CONCLUSION ........................................................................................................................................... 56
CHAPTER 5: STUDY AND IMPLEMENTATION OF THIRD RELEASE ........................................................ 57
INTRODUCTION ....................................................................................................................................... 57
5.1. SPRINT 5 BACKLOG ...................................................................................................................... 57
5.1.1. FUNCTIONAL SPECIFICATION ..................................................................................... 57
5.1.2. USE CASE DIAGRAM ...................................................................................................... 57
5.1.2.1. Sprint 5 Use Case Diagram .......................................................................................... 57
5.1.3. TEXTUAL DESCRIPTION OF USE CASE ...................................................................... 59
5.1.3.1. Use case “Add Leave” .................................................................................................. 59
5.1.3.2. Use case “Deny Leave Request” .................................................................................. 59
5.1.3.3. Use case “Export Leaves Report” ................................................................................ 60
5.1.4. MODELING AND DESIGNING ....................................................................................... 60
5.1.4.1. Add Leave Request Sequence Diagram ....................................................................... 60
5.1.4.2. Leave Request State Change State Chart Diagram ...................................................... 61
5.1.4.3. Leave Request State Change State Chart Diagram ...................................................... 62
5.1.5. IMPLEMENTATION ......................................................................................................... 63
5.1.5.1. Calendar View.............................................................................................................. 63
5.1.5.2. Submit leave request form .......................................................................................... 64
5.1.5.3. Pending Requests and Leave Requests ....................................................................... 65
5.1.5.4. Leave Management Reporting .................................................................................... 65
5.1.5.5. Leave Type Management ............................................................................................ 66
5.2. SPRINT 6 BACKLOG ...................................................................................................................... 67
5.2.1. DOCKER............................................................................................................................. 67
5.2.1.1. Docker vs. Virtual Machine.......................................................................................... 67
5.2.2. CONFIGURING DEPLOYMENT PROCESS ................................................................... 67
5.2.2.1. Installing development environment .......................................................................... 68
5.2.2.2. Creation of DockerFile ................................................................................................. 68
5.2.2.3. Creation of docker-compose ....................................................................................... 69
5.2.3. CONFIGURING CI/CD PROCESS .................................................................................... 70
5.2.3.1. Creation of the pipeline ............................................................................................... 70
CONCLUSION ........................................................................................................................................... 71
GENERAL CONCLUSION ...................................................................................................................... 1
LIST OF FIGURES
Figure 1 : Track IT Global Use Case Diagram .......................................................................................... 11
Figure 2 : Sprints Plan ................................................................................................................................ 12
Figure 3 : Time Entry Interface Prototype .................................................................................................. 13
Figure 4 : Physical System Architecture ..................................................................................................... 17
Figure 5 : three-layer application diagram ................................................................................................ 17
Figure 6 : Authentication Use Case Diagram ............................................................................................. 20
Figure 7 : User Management Use Case Diagram....................................................................................... 21
Figure 8 : Authentication Sequence Diagram ............................................................................................. 25
Figure 9 : Edit Profile Sequence Diagram.................................................................................................. 26
Figure 10 : Search Client Sequence Diagram ............................................................................................ 27
Figure 11 : Sprint 1 Class Diagram ............................................................................................................ 28
Figure 12 : TrackIt login Page.................................................................................................................... 29
Figure 13 : Admin Manage Navbar ............................................................................................................ 30
Figure 14 : Users List Page ........................................................................................................................ 31
Figure 15 : Manage Project of a User Modal ............................................................................................. 31
Figure 16 : Admin Management Use Case Diagram .................................................................................. 33
Figure 17 : Add Task Sequence Diagram ................................................................................................... 35
Figure 18 : Manage Project Team Use Case .............................................................................................. 36
Figure 19 : Delete Task Type Sequence Diagram....................................................................................... 37
Figure 20 : Sprint 2 Class Diagram ............................................................................................................ 38
Figure 21 : Tasks View ................................................................................................................................ 39
Figure 22 :Add new Task Form .................................................................................................................. 40
Figure 23 : Project Team management ....................................................................................................... 41
Figure 24 : Time Tracking Use Case Diagram ........................................................................................... 44
Figure 25 : Add time Entry Sequence Diagram .......................................................................................... 46
Figure 26 : Week View Entry Time ............................................................................................................. 47
Figure 27 : Add new Entry time .................................................................................................................. 48
Figure 28 : Entry Time Day View ............................................................................................................... 49
Figure 29 : Generate Report Use case Diagram ........................................................................................ 50
Figure 30 : Generate Report Sequence Diagram........................................................................................ 52
Figure 31 : Sprint 4 Class Diagram ............................................................................................................ 53
Figure 32 : Report page .............................................................................................................................. 54
Figure 33 : Email Report Form Page ......................................................................................................... 55
Figure 34 : Report in Excel Format ............................................................................................................ 56
Figure 35 : Sprint 5 Use Case ..................................................................................................................... 58
Figure 36 : Add Leave Request Sequence Diagram .................................................................................... 61
Figure 37 : Leave Request State Chart Diagram ........................................................................................ 62
Figure 38 : Leave Management Class Diagram ......................................................................................... 62
Figure 39 : Calendar View Interface .......................................................................................................... 63
Figure 40 : Leave Request submit form ...................................................................................................... 64
Figure 41 : Pending and Current Leave Requests ...................................................................................... 65
Figure 42 : Leave Report ............................................................................................................................ 66
Figure 43 : Leave Type View ...................................................................................................................... 66
Figure 44 : Leave Type Edit Form .............................................................................................................. 66
Figure 45 : deployment process .................................................................................................................. 68
Figure 46 : CI/CD pipeline visualization .................................................................................................... 71
Figure 47 : Deployment Diagram ............................................................................................................... 71
LIST OF TABLES
Table 1 : Project Actors ................................................................................................................................ 9
Table 2 : Product backlog ........................................................................................................................... 10
Table 3 : Hardware Environment................................................................................................................ 14
Table 4 : 1st Sprint's Backlog...................................................................................................................... 19
Table 5 : Textual Description of User Authentication ................................................................................ 22
Table 6 : Textual Description of Edit Profile Use Case .............................................................................. 23
Table 8 : Textual Description of Search Entity Use Case ........................................................................... 23
Table 9 : 2nd sprint backlog........................................................................................................................ 32
Table 10 : Add Tasks Use Case Textual Description .................................................................................. 34
Table 11 : Project Manage Teams Use Case Textual Description ............................................................. 34
Table 12 : Synchronize with Gitlab Use Case Textual Description ............................................................ 35
Table 13 : Sprint 3 Backlog ......................................................................................................................... 43
Table 14 : Save Time Entry Textual Description ........................................................................................ 45
Table 16 : sprint 4 backlog.......................................................................................................................... 50
Table 18 : Send Report By Email Textual description ................................................................................ 51
Table 19 : Sprint 5 Backlog ......................................................................................................................... 57
Table 20 : Add leave Textual Description ................................................................................................... 59
Table 21 : Deny Leave Request Textual Description .................................................................................. 60
Table 22 : Export Leaves Report Textual Description ................................................................................ 60
Table 23 : Difference between Docker and VM .......................................................................................... 67
CHAPTER 1: SATE OF ART
GENERAL INTRODUCTION
In an industrial environment determined by fierce competition, the company is found
more than in the past, in the obligation to respect the requirements of productivity, quality, cost
and time. To maintain this balance, it seeks to return all existing distortions to the system of its
work, moving from the principle that any problem is an opportunity for improvement.
From an economic point of view, time management within companies is of enormous importance
in the interests of industrial enterprises. This operation, which is cumbersome in terms of human
resources, represents a vital artery for these companies that seek to best meet the demands of
customers.
In all fields companies seek to improve the management of their activities through computer tools
(website, mobile application) to ensure a potential and large clientele, which would help their
business to grow.
In this context, our graduation project is taking place at “Ecole Sup Privée d'Ingénierie et de
Technologies” (ESPRIT). Our project consists in designing and implementing a web application
dedicated to time tracking and vocation scheduling for employees.
This project is proposed by the company «CASE TUNISIA» and with the aim of enriching our
theoretical computer knowledge acquired throughout our educational journey as well as discovers
the professional field.
This manuscript is organized into five chapters. The first chapter, entitled general introduction of
the project, will be devoted to the description of the host organization and our project, studying
the possible problems while proposing our solution. In the second chapter, entitled Planning and
architecture, we define the Backlog of our product, and we present an architectural and
conceptual overview of our application. We will also present the tools and technologies used to
develop our solution.
The following chapters focus on the study and implementation of the various sprints of our
project, outlined in the previous chapter. In each sprint, we start with the current Sprint Backlog
which describes the tasks to be done and then we present the class diagram and sequence
diagrams. In the latter, we will expose our work through screenshots without forgetting the test
and validation part. Finally, we conclude this report with a general conclusion in which we
evaluate our solution and the objectives achieved, and we present the possible perspectives of our
application.
1
Yassine Bayoudh
CHAPTER 1: SATE OF ART
INTRODUCTION
In this chapter, we present the company CASE Tunisia in which we performed our
internship. The latter also includes the presentation of our project including the study of
the existing and the proposed solution.
2
Yassine Bayoudh
CHAPTER 1: SATE OF ART
1.2. Problematic
A time tracker is a simple solution that can help you solve your employee productivity
and time organization problems. A time tracker app and time tracking tools help you keep
your entire team aligned with the project and with each other’s schedule but tracking time
softwares can sometimes be hard to use and complicated for many employees. First of all,
they end up not using them and forget to track their time so that can cause problems such
as decreasing capacity management, communication progress and time saving. Second of
all many other apps doesn’t remind users with their tasks and time tracking which is a big
disadvantage .Last of all those apps only focus on two things which are tasks and projects
perhaps they need to expand their options to many other management modules.
Vocation scheduling
Reports Generation
System alerts;
4
Yassine Bayoudh
CHAPTER 1: SATE OF ART
Then we have the second design choice. To design our application, we chose UML as the
modeling language, thanks to its strengths and its various diagrams
5
Yassine Bayoudh
CHAPTER 1: SATE OF ART
Then, focus the development team iteratively on the set of features to be performed,
in iterations called Sprints.
A Sprint ends with the delivery of a functional partial product called increment.
The Product Owner (PO) is a person who officially represents our client in a
Scrum project. He is the main contact for the Scrum Master and the members
of the development team. He defines the needs of the product and writes the
specifications. They can be assisted by functional people in writing the
specifications. It is also responsible for defining and prioritizing user stories
for each sprint.
The Scrum master is a facilitator, a facilitator of the technical team. This
person is responsible for implementing the method and meeting its objectives.
This is not a Project Leader, but someone who is responsible for removing any
potential obstacles that would prevent the team and the project from advancing
during the various sprints.
The development team includes the people responsible for achieving the sprint
and a usable product at the end of the sprint. These are the developers, the
architects, and the people who do the various tests. The team communicates
directly with the client.
CONCLUSION
In this chapter, we have presented the general framework of our project by identifying the
problem and proposing the solution envisaged to face the current situation. We have also
unveiled the development methodology that will be used throughout the next chapters in
this report.
The next chapter will be devoted to the study of functional and non-functional
requirements, the specification of the final product backlog and the preparation of the
schedule of our work.
6
Yassine Bayoudh
CHAPTER 2: PROJECT SCOPE AND PLANNING
INTRODUCTION
In this chapter, we will present the planning and architecture adopted in our project. First of
all, we see the actors in our application. Then, we identify functional and non-functional
needs by detailing the work by the methodology chosen in the previous chapter. Finally, we
provide a brief overview of the hardware used, technologies and programming languages
used to implement our solution.
Employee: anyone who works in the company. He can register his own
tasks, create leave requests, consult and edit his profile and consult his leaves
calendar.
Administrator (Manager): is the person who holds the highest level
privilege. He is able to manipulate all the features offered by the application.
It also has the right to manage users and give them roles.
7
Yassine Bayoudh
CHAPTER 2: PROJECT SCOPE AND PLANNING
Our System has a lot of features to define part of them are member’s features
and the other part is administrator so we can mention:
8
Yassine Bayoudh
CHAPTER 2: PROJECT SCOPE AND PLANNING
Product
Definition of the needs and functionalities to
Owner AHMED HABBACHI
And Scrum develop.
Master
Project Validation
It should be mentioned here that the technical stories are excluded namely the technical
model, the design work and test sets, etc...
I present in the table that follows the Backlog of our application. Each user story is
characterized by a rank inferred from its previously explained priority. For the treatment of
our user stories, I have chosen to start with the highest priority use cases. Here I will explain
the meaning of the different terms used.
9
Yassine Bayoudh
CHAPTER 2: PROJECT SCOPE AND PLANNING
10
Yassine Bayoudh
CHAPTER 2: PROJECT SCOPE AND PLANNING
11
Yassine Bayoudh
CHAPTER 2: PROJECT SCOPE AND PLANNING
The figure above presents a complete view of the functional behavior of our application and this
by representing the interactions between our different protagonists and the cases of use of our
system.
Remarque: Every use case has CRUD operations I intentionally added management to the name
of the use cases to put that in place and make it clear to the reader.
12
Yassine Bayoudh
CHAPTER 2: PROJECT SCOPE AND PLANNING
The second interface illustrates the leave calendar for the current connected user so basically a
user can see all his leave requests, leaves, and statistics and of course create a new leave
request. Admins basically can do the same, but only they can see pending leave requests
and eventually accept or deny a leave request
The above Interface represents the main feature of our application. In there you are able to
track your tasks by selecting the date when you want to track your task after selecting the
project , task and time within a form which will appear when you click on create new
entry and finally a task will be created and will be viewable in the calendar as presented
In this interface you are able to switch the view to days or weeks and filter time entries by
projects in order to make your search easier and effective.
13
Yassine Bayoudh
CHAPTER 2: PROJECT SCOPE AND PLANNING
Asus Laptop
Intel(R) Core(TM) i7-7500U CPU @ 2.70GHz 2.90 GHz Processor
NVidia GeForce920M Graphic Card
500GB SSD Hard Drive
Windows 10 Operation System
Table 3 : Hardware Environment
ASP.NET Core (1) is the new version of the ASP.NET web framework mainly targeted to
run on .NET Core platform.ASP.NET Core is a free, open-source, and cross-platform
framework for building cloud-based applications, such as web apps, IoT apps, and mobile
backend. It is designed to run on the cloud as well as on-premises. Same as .NET Core, it
was architected modular with minimum overhead, and then other more advanced features
can be added as NuGet packages as per application requirement. This result in high
performance, require less memory, less deployment size, and easy to maintain.
Entity Framework Core (2) is the new version of Entity Framework after EF 6.x. It is open-
source, lightweight, extensible and a cross-platform version of Entity Framework data
access technology. Entity Framework is an Object/Relational Mapping (O/RM) framework.
Angular (3) is an open-source JavaScript MVC framework for the web applications. It
extends the HTML and makes it dynamic. Angular is used to create Single Page
Applications. These tutorials will help you learn the essentials of the latest version of
Angular 2, starting from the basics to the advanced level. These tutorials are broken down
into sections, where each section contains a number of related topics that are packed with
easy to understand explanations, real-world examples, useful tips, informative notes section.
14
Yassine Bayoudh
CHAPTER 2: PROJECT SCOPE AND PLANNING
Sass (6) (which stands for Syntactically Awesome Style Sheets) is an extension to CSS. It
doesn't really change what CSS can do, you won't suddenly be able to use Adobe Photoshop
blend modes or anything-but it makes writing CSS a whole lot quicker and easier.
Docker (7) is a software platform that allows you to build, test, and deploy applications
quickly. Docker packages software into standardized units called containers that have
everything the software needs to run including libraries, system tools, code, and runtime.
Using Docker, you can quickly deploy and scale applications into any environment and
know your code will run.
Git (8) is a free and open source distributed version control system designed to handle
everything from small to very large projects with speed and efficiency. It is easy to learn and
has a tiny footprint with lightning fast performance. It outclasses SCM tools like Subversion,
CVS, Perforce, and Clear Case with features like cheap local branching, convenient staging
areas, and multiple workflows.
To implement our solution, we used a set of software that are the following:
Balsamiq Mockups (9) is a small software tool to sketch out user interfaces, for websites
and web / desktop / mobile applications. With this service users can quickly come up with
mockups and easily share them with their clients. Balsamiq Mockups is a graphical user
15
Yassine Bayoudh
CHAPTER 2: PROJECT SCOPE AND PLANNING
interface mockup builder application. It allows the designer to arrange pre-built widgets
using a drag-and-drop WYSIWYG editor.
Postman (10) is an application used for API testing. It is an HTTP client that tests HTTP
requests, utilizing a graphical user interface, through which we obtain different types of
responses that need to be subsequently validated. Postman offers many endpoint interaction
methods. The following are some of the most used, including their functions:
Visual Studio Code (12) is a distribution of the Code - OSS repository with Microsoft-
specific customizations released under a traditional Microsoft product license.Visual Studio
Code combines the simplicity of a code editor with what developers need for their core edit-
build-debug cycle. It provides comprehensive code editing, navigation, and understanding
support along with lightweight debugging, a rich extensibility model, and lightweight
integration with existing tools.
SQL Server Management Studio (13) (SSMS) is an integrated environment for managing
any SQL infrastructure, from SQL Server to Azure SQL Database. SSMS provides tools to
configure, monitor, and administer instances of SQL Server and databases. Use SSMS to
deploy, monitor, and upgrade the data-tier components used by your applications, and build
queries and scripts.
Fork (15) gently informs you about GitHub notifications without being annoying. Resolve
your merge-conflicts easily using the merge-conflict helper and built-in merge-conflict
resolver. Edit, reorder and squash your commits using visual interactive rebase. Fork allows
you to see diffs for the common image formats. Fork's Diff Viewer provides a clear view to
16
Yassine Bayoudh
CHAPTER 2: PROJECT SCOPE AND PLANNING
spot the changes in your source code quickly. With history view you can find all commits
where a particular file or directory was changed. With blame view you can find the last
commit which changed a particular file line.
Our system gives the user the opportunity to view the data from our Customer application, first through
the security layer provided by the Identity Server. The latter is responsible for providing access to the
resource in the API to access the database and then returning the requested data to our client application.
Business Objects - Entity(Data Transfer Objects) layer: .NET Core class library
Data Access layer: .NET Core class library
Business Logic layer: .NET Core class library
Presentation Layer: Angular Application
CONCLUSION
In this chapter, I captured the functional and non-functional needs of our application as well as the
roles of the different actors. Then, we detailed the first step the methodology we have chosen,
namely the identification of the work team, the achievement of the product backlog and the list of
sprints. Subsequently, I presented the hardware and software environment I have used throughout
the development of our application. Then, I have clarified the architecture of our application. In
the next chapter, I will begin the development of the first identified sprint.
18
Yassine Bayoudh
CHAPTER 3: STUDY AND IMPLEMENTATION OF FIRST RELEASE
INTRODUCTION
This chapter aims to provide a deliverable, tested and deployed at the end of this sprint. Indeed, I
will show the realization of the first sprint divided into four stages: specification, design, coding,
testing and retrospective.
The purpose of this sprint is to perform the authentication and user management module. Now is
the time to decide which stories from our Backlog will be included in the Sprint Backlog. The
estimates of the stories are defined in day.
19
Yassine Bayoudh
CHAPTER 3: STUDY AND IMPLEMENTATION OF FIRST RELEASE
application types. It can be used to authenticate actual users via sign-in forms and similar user
interfaces as well as service-based authentication that typically involves token issuance,
verification, and renewal without any user interface. Identity Server is designed to be a
customizable solution. Each instance is typically customized to suit an individual organization
and/or set of applications' needs.
The User Management Use Case Diagram is shown in the figure below.
20
Yassine Bayoudh
CHAPTER 3: STUDY AND IMPLEMENTATION OF FIRST RELEASE
In the rest of this part, we I will describe in textual form the use cases of the diagrams
above, but I will limit myself to a few.
Title Authenticate
Actor Member
21
Yassine Bayoudh
CHAPTER 3: STUDY AND IMPLEMENTATION OF FIRST RELEASE
Actor Member
22
Yassine Bayoudh
CHAPTER 3: STUDY AND IMPLEMENTATION OF FIRST RELEASE
Actor Administrator
23
Yassine Bayoudh
CHAPTER 3: STUDY AND IMPLEMENTATION OF FIRST RELEASE
the interaction that takes place in a collaboration that either realizes a use
case or an operation (instance diagrams or generic diagrams)
high-level interactions between user of the system and the system,
between the system and other systems, or between subsystems
(sometimes known as system sequence diagrams)
24
Yassine Bayoudh
CHAPTER 3: STUDY AND IMPLEMENTATION OF FIRST RELEASE
25
Yassine Bayoudh
CHAPTER 3: STUDY AND IMPLEMENTATION OF FIRST RELEASE
26
Yassine Bayoudh
CHAPTER 3: STUDY AND IMPLEMENTATION OF FIRST RELEASE
27
Yassine Bayoudh
CHAPTER 3: STUDY AND IMPLEMENTATION OF FIRST RELEASE
Business Analysts can use class diagrams to model systems from a business
perspective
Throughout our sprints, I try to build this diagram as I go along with adding the different classes
deduced. I will present in the following our class diagram relating to this sprint.
28
Yassine Bayoudh
CHAPTER 3: STUDY AND IMPLEMENTATION OF FIRST RELEASE
3.1.7. Implementation
In this part, I will present some screenshots of different interfaces that were developed during
this sprint.
This is entry page to our application, so every user must authenticate with his
email and password in order to access the features of our application and
eventually will receive a jwt token to keep him logged in until he decides to logout
or his session expires.
Once authenticated, the user and according to his rights will have the possibility to
do several tasks that we will describe them in the following.
29
Yassine Bayoudh
CHAPTER 3: STUDY AND IMPLEMENTATION OF FIRST RELEASE
During validation, and if the fields are not empty, a confirmation message will be
displayed and the user will be added to the list and be able to login to his account.
In the following figure is the “Manage” link in the navbar only a user with role
admin is able to see that navigation link. Thus, the user clicks on the user’s link
and it will take him to the page like figure 41 illustrates.
In this page we are looking to the users list I highlighted the different parts to explain which each
one represent:
The blue area represents the link to open a new modal to add a new user which I will
represent in figure 42.
The red area represents which view you want to select which are 2 (Active Users, Inactive
Users).
The green area in a link where you can manage projects users.
30
Yassine Bayoudh
CHAPTER 3: STUDY AND IMPLEMENTATION OF FIRST RELEASE
31
Yassine Bayoudh
CHAPTER 3: STUDY AND IMPLEMENTATION OF FIRST RELEASE
The last figure of this page will be the” project management of a user” interface which allows
the admin to add a project to users so they can only work on the project assigned to them.
The green area represents a search bar where the admin search in the list of available
projects
The blue area represent the projects that already been assigned to that user. The admin has
the possibility to change the user’s access level and delete him from the project.
The red area is the list of projects that an admin can assign to a user.
32
Yassine Bayoudh
CHAPTER 3: STUDY AND IMPLEMENTATION OF FIRST RELEASE
Actor Admin
33
Yassine Bayoudh
CHAPTER 3: STUDY AND IMPLEMENTATION OF FIRST RELEASE
Actor Admin
Actor Admin
34
Yassine Bayoudh
CHAPTER 3: STUDY AND IMPLEMENTATION OF FIRST RELEASE
36
Yassine Bayoudh
CHAPTER 3: STUDY AND IMPLEMENTATION OF FIRST RELEASE
37
Yassine Bayoudh
CHAPTER 3: STUDY AND IMPLEMENTATION OF FIRST RELEASE
38
Yassine Bayoudh
CHAPTER 3: STUDY AND IMPLEMENTATION OF FIRST RELEASE
3.2.5. Implementation
In this part I will present screenshots of various interfaces developed during this sprint.
The blue area represents the data in a data table so by convention our data is sortable by
any column of the user’s choosing for example, if he clicks on the little triangle next to
the column name the data will change order.
The red area is for toggling between archived tasks and unachieved tasks (closed tasks).
The green area is where the admin can perform different actions on the row which can
update, delete or archive the task and mark it as closed.
A search bar is also provided to perform advanced searching mechanism.
The create new task button is for as name saying, which is a form that I will represent in
the next point.
39
Yassine Bayoudh
CHAPTER 3: STUDY AND IMPLEMENTATION OF FIRST RELEASE
The Create new task form is a form that can be called 2 times, which are when clicking on
the button create new tasks and when editing a task that’s when it appears again filled with
information of the clicked row.
40
Yassine Bayoudh
CHAPTER 3: STUDY AND IMPLEMENTATION OF FIRST RELEASE
This interface is for controlling project team members and controlling their roles inside a
project.
41
Yassine Bayoudh
CHAPTER 3: STUDY AND IMPLEMENTATION OF FIRST RELEASE
CONCLUSION
In this chapter, I presented the first Release through the analysis, the design, and the realization of
2 sprints User management & Authentication and Admin Management Module without forgetting
the test part. In the next chapters, we reveal the features of the rest of releases.
42
Yassine Bayoudh
CHAPTER 4: STUDY AND IMPLEMENTATION OF SECOND RELEASE
INTRODUCTION
In this release I’ll be focusing on 2 main sprints. The first sprint is a deliverable of the time
tracking module which is the base feature of trackIt. The second sprint is definitely no less
important than the first one which is the report generating of all time tracking.
43
Yassine Bayoudh
CHAPTER 4: STUDY AND IMPLEMENTATION OF SECOND RELEASE
44
Yassine Bayoudh
CHAPTER 4: STUDY AND IMPLEMENTATION OF SECOND RELEASE
45
Yassine Bayoudh
CHAPTER 4: STUDY AND IMPLEMENTATION OF SECOND RELEASE
46
Yassine Bayoudh
CHAPTER 4: STUDY AND IMPLEMENTATION OF SECOND RELEASE
In conclusion our system does the following to add a new time entry:
Check if exists related entities.
Check Lock Time Entries: User cannot Create Time Entry, if enable Lock Time Entry in
Project settings.
Check correct timing values from TimeEntryView.
Check that total time per day is not greater than 24 hours.
Update values for Time Entry.
4.1.5. IMPLEMENTATION
In this part I will present screenshots of various interfaces developed during this sprint.
The red area allows the user to filter the page based on projects.
The green area represents the view of the calendar as show in (figure 58).
The purple area is the tasks duration of all tasks of every user in every project.
The main page contains a calendar where you can view your entry time and add new ones
47
Yassine Bayoudh
CHAPTER 4: STUDY AND IMPLEMENTATION OF SECOND RELEASE
The red area is where you can choose the project you’re working on and then select one of
48
Yassine Bayoudh
CHAPTER 4: STUDY AND IMPLEMENTATION OF SECOND RELEASE
The green area represents the time taken to finish a task it’s either manually where you
write the start time and the end time or you can start a runner and finishes when you click
it again.
The yellow area is the time taken ( the difference between hours)
The purple area is the estimation time (the estimation time is set when a task is created).
You can track a single or multiple tasks by viewing the day layout where it contains minimum of
information you can still filter by projects as well.
49
Yassine Bayoudh
CHAPTER 4: STUDY AND IMPLEMENTATION OF SECOND RELEASE
50
Yassine Bayoudh
CHAPTER 4: STUDY AND IMPLEMENTATION OF SECOND RELEASE
Actor Admin
51
Yassine Bayoudh
CHAPTER 4: STUDY AND IMPLEMENTATION OF SECOND RELEASE
52
Yassine Bayoudh
CHAPTER 4: STUDY AND IMPLEMENTATION OF SECOND RELEASE
53
Yassine Bayoudh
CHAPTER 4: STUDY AND IMPLEMENTATION OF SECOND RELEASE
4.2.5. IMPLEMENTATION
In this section I will present the end result of our report generation module.
The report page contains 4 main sections which allow us to control and visualize the report before
downloading it.
The Red area is a feature to allow the user to create new query criteria to filter the report
page and get the exact desired result.
54
Yassine Bayoudh
CHAPTER 4: STUDY AND IMPLEMENTATION OF SECOND RELEASE
The Purple area is the actions that can be made on this page. The first element is a
dropdown for months, weeks and days. The second element opens a form to send the
report to an email. The third element is a button to export the report the excel file. And
last but not least the admin can print the report.
The green area contains some dropdown to control the page visualization.
The Blue area is the pre-visualization of the report to export, of course when the admin
exports the report, it will consider all the settings and filters applied on the page.
55
Yassine Bayoudh
As shown in figure 63 we can notice that the generated excel table is the same as the table we have seen in
figure 61.The generated table is depended on what the user has selected as settings and filters.
CONCLUSION
In this chapter, I presented the second Release through the analysis, the design, and the realization
of 2 sprints Time tracking module and reporting module. In the next chapters, we reveal the
features of the rest of releases.
56
Yassine Bayoudh
CHAPTER 5: STUDY AND IMPLEMENTATION OF THIRD RELEASE
INTRODUCTION
In this release I’ll be focusing on 2 last sprints of our application. The first sprint is a deliverable
of the leave management module. The second sprint we will take a look on the deployment
process of track it.
57
Yassine Bayoudh
CHAPTER 5: STUDY AND IMPLEMENTATION OF THIRD RELEASE
58
Yassine Bayoudh
CHAPTER 5: STUDY AND IMPLEMENTATION OF THIRD RELEASE
Actor Admin
Actor Admin
59
Yassine Bayoudh
CHAPTER 5: STUDY AND IMPLEMENTATION OF THIRD RELEASE
Actor Admin
60
Yassine Bayoudh
CHAPTER 5: STUDY AND IMPLEMENTATION OF THIRD RELEASE
61
Yassine Bayoudh
CHAPTER 5: STUDY AND IMPLEMENTATION OF THIRD RELEASE
5.1.5. IMPLEMENTATION
This section will focus on presenting the leave management system using screenshots taken
from the application
The left section represents the calendar where any user can see their leave days in 3 different
layouts: month, week, and day, also they can navigate through all the dates using the arrows as presented
in the figure.
The right side is our statistics by leave types. Means that it shows you how many leaves you have
based on the type of the leave you have taken and just under it you can find how many days you got the
ask for leaves and next to it the number of days that have been left last year which will be eventually
added to this year’s days.
63
Yassine Bayoudh
CHAPTER 5: STUDY AND IMPLEMENTATION OF THIRD RELEASE
In this form you can ask for new leave request as a member so to do so it is important to fill the
required fields. This form contains 4 fields. The first one is for choosing the leave type which can be
configured from another module which I will represent in the next screenshots. The second and third date
selection fields are for choosing the start date and end date and of course a member cannot choose a date
that is already taken before. and last but not least a user has to mention their leave reason in order to make
the admin read it later on and based on that he would accept or reject the request.
64
Yassine Bayoudh
CHAPTER 5: STUDY AND IMPLEMENTATION OF THIRD RELEASE
So as mentioned before every user can make a leave request. In this part I will explain how an
admin can approve or deny a leave request and also will explain the information displayed in the screen
shot.
First of all there’s the pending requests, this section is only visible by the admin.The admin is the
only one who can manage leave requests so on each created leave request he can whether approve or deny
also he can view more readable information like the number of days , dates and leave type also some
details about the user. Each created leave request is initialized as pending until the admin changes its
status.
Second of all we have the requests that are where a user can visualize his requests and track them.
Users can modify a leave request when it’s on pending status but after that they are restricted from any
modification.
It is important to mention that the admin can add leaves directly without configurations. Means
that they can directly add leave without passing through the leave request process.
In order to generate a report in track it the admin must choose which date to generate a report.
65
Yassine Bayoudh
CHAPTER 5: STUDY AND IMPLEMENTATION OF THIRD RELEASE
As shown in the figures 68 you can generate a report in excel file which contains the information about
employees , dates and leave type keys and of course the corresponding day of each leave day.
66
Yassine Bayoudh
CHAPTER 5: STUDY AND IMPLEMENTATION OF THIRD RELEASE
Before diving in the deployment process I would like to present the various advantages of
deployment and the technologies used to deploy our application.
5.2.1. DOCKER
Docker is a tool to make software development and running easier through what we call
a container.
Developers will be only focusing on the code without worrying about the OS that the
software will work on or the tools needed to run the program and avoid any problem
within the OS, libraries and versions.
67
Yassine Bayoudh
CHAPTER 5: STUDY AND IMPLEMENTATION OF THIRD RELEASE
Finally I could connect SQL server express using the username and password
provided
68
Yassine Bayoudh
CHAPTER 5: STUDY AND IMPLEMENTATION OF THIRD RELEASE
FROM: you specify the base image in my case for frontend will be node
and for my backend will be dotnet 2.2.
WORKDIR: sets the working directory.
COPY: copies files from a directory to another.
RUN: runs a Linux command.
We all know that angular works with node. In the first line I am trying to get node image from docker
repository to make my image based on node. Second I created a working directory app to place my
frontend image in it. After that I copied my package.json file in order to install all the dependencies
needed for the execution of the project which explains why I ran npm install just after it. And last but not
least I copy the frontend directory and run the project inside the image.
Figure 81 is basically the same thing as figure 80 but only here we are setting up the image differently
because it contains multiple projects in the same folder. So first I based the image on dotnet2.2 then
created my working directory. Second I copied all the .csproj. Second I ran dotnet restore to install all the
dependencies needed in every project and notice here that I only specified the main project Trackit.csproj
because it contains all the other project references so we don’t need to restore every project dependencies
one by one. Finally I ran the command to build and run the project.
In simple words, docker-compose is a file where you can execute multiple images
in the same container. We use this technique in order to execute a whole app
where this app depends on other images such as database images.
Docker compose is a quite simple file you just have to specifies the images you want to run and it
executes them in the same container.
In my case I needed to execute my database image and project image because trackIt depends on SQL
server db and of course with specifying the proper environment variables to configure the images.
69
Yassine Bayoudh
CHAPTER 5: STUDY AND IMPLEMENTATION OF THIRD RELEASE
Before diving in the process I want to give a small introduction of CI/CD and why do we
need it.
In general there are various number of tools that implements CI/CD such as Jenkins and
Google cloud build In my case I will use Gitlab because it allows to create a pipeline and
run a CI/CD process.
In the build stage all I do is building the frontend and backend to insure that the
application is running without any problem.
70
Yassine Bayoudh
CHAPTER 5: STUDY AND IMPLEMENTATION OF THIRD RELEASE
In this paragraph, I created a diagram to focus on the physical architecture of our application translated by
the deployment diagram provided by the UML language. The latter shows the physical layout of the
materials that make up our system. The material resources are represented as nodes.
CONCLUSION
In this chapter, I presented the third and last release through the analysis, the design, and the
realization of 2 sprints leave module and deployment of the application where I showed the steps
to create DockerFile, docker Compose and the CI/Cd pipeline and the different stages in order to
deploy the application inside Gitlab container.
71
Yassine Bayoudh
GENERAL CONCLUSION
Throughout the preparation of my graduation project, I have tried to put in practice the
knowledge acquired during my university studies in order to achieve an application of tracking
time and leave management. I dedicated the various chapters of this work on the detailed
description of each phase I have gone through.
I started first by understanding the general context of our application and identify the different
requirements of our future system. I then prepared our work schedule in accordance with the
priorities of our needs following a discussion between the development team.
Despite all the difficulties encountered in the development process mainly due to the use of new
technologies and time constraints, I have managed to meet our customer’s requirements while
respecting the safety aspect.
I cannot list the benefits gained from such experience. Except that this is our real opportunity to
experience working life with its constraints and obligations so this work has allowed us to deepen
our knowledge in good development practices.
Finally, my work does not stop at this level, indeed several features can be added to our
application, mainly the improvement of the mailing system, and the architecture of the
application.
REFERENCES
1. ASP. [ONLINE] https://docs.microsoft.com/en-us/aspnet/core/?view=aspnetcore-6.0.
2. [ONLINE] https://docs.microsoft.com/en-us/ef/core/.
3. [ONLINE] https://en.wikipedia.org/wiki/Angular_(web_framework).
4. [ONLINE] https://en.wikipedia.org/wiki/Microsoft_SQL_Server.
5. [ONLINE] https://en.wikipedia.org/wiki/TypeScript.
6. [ONLINE] https://en.wikipedia.org/wiki/Sass_(stylesheet_language).
7. [ONLINE] https://www.docker.com/.
8. [ONLINE] https://git-scm.com/.
9. [ONLINE] https://crozdesk.com/software/balsamiq.