1
ADOBE EXPERIENCE MANAGER
(ENTERPRISE CONTENT MANAGEMENT SYSTEM)
Project report submitted in fulfilment of the requirement for the
degree of Bachelor of Technology
in
Computer Science and Engineering/Information Technology
By
MUNISH THAKUR
(161306)
Under the Supervision of
Dr. Geetanjali Rathee
to
Department of Computer Science & Engineering and Information
Technology
Jaypee University of Information Technology Waknaghat, Solan-
173234, Himachal Pradesh
2
DECLARATION BY THE SCHOLAR
I hereby declare that this project report titled Adobe Experience Manager
(Enterprise Content Management System)‟ in fulfilment of the requirements for the
award of the degree of Bachelor of Technology in Computer Science and
Engineering/Information Technology submitted in the department of Computer
Science & Engineering and Information Technology, at Jaypee University of
Information Technology, Waknaghat, Solan is an authentic record of my work
carried out under supervision of Dr. Geetanjali Rathee . I have not submitted this work
elsewhere for any other degree or diploma. I am fully responsible for the contents of my
B.Tech. Industrial Project.
Munish Thakur
161306
Department of Computer Science
Jaypee University of Information Technology
May, 2020
3
SUPERVISOR’S CERTIFICATE
This is to certify that the work reported in BTech. Industrial Training entitled “Adobe
Experience Manager (Enterprise Content Management System)” submitted by
Munish Thakur at Jaypee University of Information Technology,
Waknaghat, India is a bonafide record of his original work carried under my supervision.
This work has not been submitted elsewhere for any other degree or diploma.
Dr. Geetanjali Rathee
Assistant Professor (SG)
Department of Computer Science
Jaypee University of Information Technology
May, 2020
Mr. Pankaj Bansal
Managing Partner
ArgilDX , Noida, India
4
TABLE OF CONTENT
INNER FIRST PAGE 1
DECLARATION BY THE SCHOLAR 2
SUPERVISOR’S CERTIFICATE 3
ACKNOWLEDGEMENT 6
ABOUT THE COMPANY 7
ABSTRACT 8
LIST OF ACRONYMS AND ABBREVIATIONS 9
LIST OF FIGURES 11
CHAPTER 1
INTRODUCTION 14
1.1. INTRODUCTION 14
1.2. PROBLEM STATEMENT 15
1.3. EXISTING SYSTEMS AND IT‟S LIMITATIONS 15
1.4. SCOPE OF THE PROJECT 16
CHAPTER-2
LITERATURE SURVEY 17
2.1. GIT 17
2.2. MAVEN 19
2.3. AEM 22
2.4. HTL 24
2.5. JAVASCRIPT 25
2.6. JAVA (SLING MODELS) 26
2.7. CLIENTLIBS IN AEM 27
2.8. AEM FORMS 30
2.9. LOGS IN AEM 37
2.10. REPORTS IN AEM 39
2.11. AGILE METHODOLOGY (SCRUM) 39
5
CHAPTER 3
SYSTEM DEVELOPMENT 43
3.1. AEM BASIC IMPLEMENTATION 43
3.2. PROJECT WORK 50
CHAPTER 4
PERFORMANCE ANALYSIS 58
4.1. OPTIMIZING PERFORMANCE 58
4.2. INTERPRETING REQUEST LOG 59
4.3. CLEARING CACHE 62
CHAPTER 5
CONCLUSIONS 63
5.1. RISK ANALYSIS 63
5.2. FUTURE SCOPE 64
5.3. CONCLUSION 65
REFERENCES 66
6
ACKNOWLEDGEMENT
I was provided this great opportunity to work at Argil DX that helped me put my theoretical
learning in use and learn professional development. I would like to express my deepest
gratitude and special thanks to the founder and CEO of the company Mr. Ankur Mittal who
despite of being extraordinarily busy with his duties, took time out to hear, guide and keep me
on the correct path of learning and developing.
I express my deepest thanks to Mr. Pankaj Bansal, Managing Partner for taking part in useful
decision & giving necessary advices and guidance and arranged all facilities in the office.
It is my radiant sentiment to place on record my best regards, deepest sense of gratitude to my
mentors, Mr. Nishant Gupta, Vice President, Mr. Arpit Rathi, Software Developer, Mr.
Abhinav Aggarwal, Software Developer for their careful and precious guidance which were
extremely valuable for my study both theoretically and practically.
I would also like to acknowledge guidance of my institute mentor, Dr. Geetanjali Rathee who
constantly guide me during my internship and suggest me to improve on every aspect.
7
ABOUT THE COMPANY (Argil DX)
Argil DX is a new age digital services start-up which focuses to uniquely combine client‟s idea
and requirement with power of Technology, Analytics, Marketing, & Content for digital
transformation. Being a reliable web design agency, ArgilDX transforms your vision into
brand building promotional entity. The company stroke down the best ideas or start from a
blank page to engineer an artefact enabling the client to entice the intended audience [3]. The
web application developers fabricate technically complex yet professional and innovative
web solutions and services that infuse utmost prospective of the latest web technologies to
generate an interactive and appealing plea for your patrons. We are most mindful of your
business objectives, goals and expectations during development. Argil DX‟s support team is
always ready to handle issues, and keep our customers up and running 24×7 and meet all kind
of challenges. Our meaning of support is to go hand in hand with our customers and help them
gain maximum value from our services.
8
ABSTRACT
During my internship duration in Argil DX . I received training for one month on different
kinds of tools and technologies used in the project managing the CMS for our clients. After
the completion of training, I got the opportunity to work in a live project. I was assigned various
tasks under the project that helped me improve technical skills of Java coding, HTML and CSS
basic introduction, learning of Git and Maven, JavaScript and other such technologies. Our
organization uses Agile Scrum methodology, Thus the entire project is divided into different
sprints which in turn contain various stories and bugs to be completed and my task was to
complete some of the stories in each sprint. Meanwhile, I learned real world application of my
theoretical knowledge. I also learnt making of components that render on the web pages and
present the final website. I learnt about various kind of Forms and different ways to create
them. I learnt to use front end logic with the back end code and integrate them together to
display the final output to the users.
9
LIST OF ACRONYMS / ABBREVIATIONS
AEM
Adobe Experience Manager
CMS
Content Management System
CTA
Call To Action
DOM
Document Object Model
URL
Uniform resource Locator
VCS
Version Control System
WCM
Web Content Management
API
Application Program Interface
ECM
Enterprise Content Management
CSS
Cascading Style Sheet
ECMA
European Computer Manufacturers Association
JCR
Java Content Repository
XSS
Cross Site Scripting
JSON
JavaScript Object Notation
POJO
Plain Old Java Object
DAM
Digital Asset Management
OOB
Out Of the Box
OSGI
Open Services Gateway Initiative
POC
Proof Of Concept
POM
Project Object Model
REST
Representational State Transfer
HTL
HTML Templating Language
10
MIME
Multi-purpose Internet Mail extension
MVCC
Multi Version Concurrency Control
HTTP
HyperText Transfer Protocol
SEO
Search Engine Optimization
UI
User Interface
11
Figure ID
Fig 2.1
Fig 2.2
Fig 2.3
Fig 2.4
Fig 2.5
Fig 2.6
Fig 2.7
Fig 2.8
Fig 2.9
Fig 2.10
Fig 2.11
Fig 2.12
Fig 2.13
Fig 2.14
Fig 2.15
Fig 2.16
Fig 2.17
Fig 2.18
Fig 2.19
Fig 2.20
Fig 2.21
12
Fig 2.22
JIRA Issue creation.
Fig 2.23
Bug report in JIRA.
Fig 3.1
AEM Start Screen
Fig 3.2
AEM Touch UI
Fig 3.3
AEM homepage
Fig 3.4
DAM Admin for AEM
Fig 3.5
AEM User Admin
Fig 3.6
User Access Rights
Fig 3.7
AEM DAM admin
Fig 3.8
AEM Replication Agents
Fig 3.9
Replication Agent Configuration
Fig 3.10
AEM Template Creation
Fig 3.11
Templates Allowed Paths
Fig 3.12
Content Repository Extreme DE
Fig 3.13
Dialog for component
Fig 3.14
Component (socialSharing)
Fig 3.15
Various components used in a webpage.
Fig 3.16
HTL with Sling Models
Fig 3.17
JCR properties (Key : Value pairs)
Fig 3.18
Async JS code
Fig 3.19
Custom Multifield
Fig 3.20
Custom Multifield(b)
Fig 4.1
Log Requests (Rank).
13
Fig 4.2 Log requests (Filter)
Fig. 4.3 Invalidate cache
14
CHAPTER 1
INTRODUCTION
1.1.
INTRODUCTION
A CMS is an application that has programs and relatable logics and are used in the management
and creation of content in digital experience. They work mainly in 2 ways named as website
content management (WCM) and enterprise content management (ECM). CMS helps in
providing a straightforward, accessible, transparent and reliable web page for the maximum
clients which is used in the end addition of contents to a web page to be present in a high
structured way and smart usage of components there [13]. Hence, the gist of what a CMS is
that it helps standard content to be present in any web page in a great way. Adobe Experience
Manager (AEM) is nothing but an extension to the CMS which is actually a webpage-based
server-client structural system created and used for creating, storing, building, deploying as
well as managing a high technology league of websites that are running commercially. It is
module-based and a package for application level features and functionalities and several
infrastructure .AEM structure comprises of some building blocks namely:
Webapp Structure/Framework: AEM lives on the Sling Framework doing a job to
communicate structure that redefines the making of API based on REST.
Webapp Server: AEM can be used either as a stand-alone mode using a Jetty web server
integrated within and on an online application that lives inside 3rd-party application servers
like WebSphere, WebLogic, etc. \\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\
Central Database: Java content repository or JCR is provided in AEM as for the use of
hierarchical databases specially created and designed for taking care of data that is semi-
structured as well as unstructured data. This repository saves the client digital content which is
going to be on the web site, along with all the code, templates, pages, internal information as
well as attachment information used by the user.
AEM provides amicable range of web based features and applications for the usage of
different type of web pages deployed in this recent time including facilities like AEM
Websites, AEM‟s Phone Apps, Digital experience Publications, Communities, DAM, Forms
15
based on , internet based Commerce [10]. AEM works on java and java is platform independent
It can work on any OS. Webpage systems created through AEM (which is a CMS) has a highly
bundled, decoupled (loosely coupled) as well as a structure where each and every bundle
created could be an OSGI bundle (it is a jar with data about data (metadata) with it)- This can
either be given in a default AEM module or personalized modules for personalized editable
functions. The complete structure of the web page system is created using existing as well as
available components or even personalized components. Adobe Experience Manager
provides a really amazing authoring which is similar to publishing experience for users that
show their utter most satisfaction and adds to their value of the business project. Adobe
Experience Manager gets installed on any working computer system which usually involves
installation of at least 2 modes on different port numbers. They are different environments like
testing, publish, author etc that any machine can handle, usually on different systems. Author
Instance: this is an AEM instance that helps you create, update, edit, upload etc to basically for
the major content on the web page. This is all done by giving the user the admin functionalities.
The content here is finalized before going to any other environments. Once content is stated
final and approved, it is prepared to travel live, it‟s duplicate is created and posted on the
opposite publish mode. Publish Instance: this is an AEM instance that provides the end result
on the web page to the users of the web page system. This works within the modular bundle
called osgi bundles that shows changes done to any bundle is immediately shown on the
page[3] without producing even a small latency.
1.2.
PROBLEM STATEMENT
Client has been, traditionally, using paper schedule to collect information in its surveys. This
leads to various drawbacks like larger processing times, problems in data scrutiny and
transcription, higher costs etc.
1.3.
PRESENT SYSTEMS AND THEIR SHORTCOMINGS
Currently client has been using paper forms for conducting their survey. These forms were later
compiled back together at a central station and then further newer survey forms were developed
on the basis of previous forms and then these new forms were also redistributed for survey and
recompiled, after which results were drawn out for the surveys on the basis of all the compiled
16
information at a single place. Collection of information through paper schedule suffers from a
plethora of disadvantages:
Longer processing time: Since the forms are paper forms they need to be
transcribed and compiled thus a long processing time is caused due to data
transcription
Accuracy and quality of the data: Since the paper forms were filled by individuals
and there is no form of validation , moreover no two users fill the form in the exact
same format there is always a loss in accuracy and quality of data.
Execution of data scrutiny: Execution of data scrutiny requires a lot of manual effort
and requires lots of time , since scrutinizing data and organizing it in different formats
requires lots of manual work and is highly dependent on the speed of the users.
Validation program: The validation process subsequent to data transcription in paper
forms takes a lot of time. Since each of the fields in the form had to be manually
validated by a separate user.
High Cost: The cost associated with maintain survey forms and training users for
manually completing various processes in the forms like data scrutiny, transcription,
validation is very high.
Non eco-friendly: Since for every new location and every area to be surveyed in that
location new forms were required, moreover various different forms were also to be
filled depending on the previously filled forms and if there is an error in some important
fields in the form the whole form has to be discarded a lot of paper was used and wasted
which is non eco-friendly.
All these result in delay in bringing out the results of the survey.
1.4.
SCOPE OF THE PROJECT
The scope of the project is to develop a web portal and android application to run and manage
surveys conducted by the client. This would provide them immediate and fast access to all the
forms and help monitor their progress at various stages in the form lifecycle. The mobile
application requires the capabilities to operate in offline mode and then sync later as per
availability of network. End goal of the system is to create generic survey solution so that there
was minimum dependency on the code implementation.
17
CHAPTER 2
LITERATURE SURVEY
2.1.
GIT
A type of distributed version control system (VCS) is Git, which is helpful to track every
change made to the project such as creation, modification, deletion [3] etc. It is helpful for
developers operating from different geographical locations pertaining to a project work on
those files which can be distributed and linked with git repository. It monitors and records the
changes made to files that need to be tracked, but it‟s main focus lies in software development
and tracking. Also utilized for distributed revision control, git‟s focus lies at data
integrity, improved productivity, support for all the distributed, modular, structural, non-linear
workflows and speed. Thi Git directory that is created on a machine is like a full-
fledged repository (storehouse) having detailed history and log and full capability for version
tracking which does not require any connection with a central server or internet.
The main states included in Git for the files are: staged (tracked changes), modified (untracked
changes), and committed (ready to be sent) [3]. Committed implies the data is final and is
stored securely on your machine‟s database and can be directly uploaded to the final repository.
Modified is a state in which the developer has made some changes to the project but has not
saved (committed) it to the machine‟s local database until yet. In „Staged‟ state, the developer
developing the file markers or flags a modified file (deleted, created, or modified file) in its
present version in a locally created repository and proceeds to the next commit snapshot (which
can be central or remote repository).
A vast array of options for Git command can be applied for working on projects, ranging from
very small to large, that utilize git and also manage it easily project-wide.
To create an empty Git repository in your local machine: git-init - a local, hidden folder
named “.git” is created in the present working directory.
To add the modified files to staging/queue to commit at a later point in time: git-add -
files don‟t get committed at this point, but only get added so they can be tracked by the
Git file system.
18
To commit the files previously added to the queue: git commit - a new revision is
created with a log, and also, syncs the changes to the remote repository.
To move/switch among the active branches: git checkout
To create a new branch: git checkout -b branch_name - where branch_name is the
name on local repository (local machine)
To obtain the current status: git status.
To fetch a log detailing all the previous commits: git log - commit message, commit id,
time, name and every detail record.
git remote add origin sets path path github repository. The repository contains the
codes which need to be committed. “origin” is a variable having the url of the remote
git repository where the code needs to be uploaded and aligned to the project.
To fetch the last code/version from the specified branch “branch_name”: git pull origin
branch_name.
To send the changes to the remote repository branch: git push origin branch_name -
creates a new branch if not already present.
To save all the changes made in the current branch, so as to safely switch between the
branches: git stash.
Fig. 2.1 Various Git commands
19
Many other commands, depending on the use case, are useful such as rebase, reflog, reset etc,
are also present in git.
2.2.
MAVEN
Apache Maven is tool for project management. It is based on the concept of project object
model and it is utilized for the assignments of venture's work just as reliance goals. A structure
device takes care for everything from code compilation to defining the structure of a project.
This tool first compiles all the files in the project structure and the install and make these files
into bundles which are managed by the osgi bundles lifecycle.
If any errors are faced while building the file then we can find the error source file with specific
command and after rectifying those mistakes we can again run the command to compile all the
files and resume our work.
Maven has a local repository where it stores the dependencies and plugins used and if it does
contain those dependencies then it fetches it from a central repo and stores it in a local
repository.
Maven follows a build life cycle which is as follows:
Validate
Compile
Test
Package
Integration Test
Verify
Install
Deploy
20
21
Fig. 2.2. POM.xml
From the above snippet of the code, properties like group id, dependencies, version, artifact id,
modules, repositories, plugins etc are saved in a parent‟s POM.xml file. Any Maven project
requires this main file to complete the build functionalities and run. Another file, child POM
or apps and core have a likewise architecture and design, only difference being that it does not
declare the scope or the version.
Source code is deployed and built using all the properties of POM.xml and also fulfils the task
of a management tool.
22
2.3.
AEM (ADOBE EXPERIENCE MANAGER)
Adobe experience manager is a tool that gives a us more liberty to change the content of a
website without making any changes to the code base [3]. It comprises of many libraries, api,
and framework which allows easy management of a project and at the same time provides us
many features for a wide range of components (inbuilt as well as user made components) to
fulfill any clients demands.
As any of the previous frameworks like tomcat, etc. It provide us with a feature where every
part of a program (known as bundles) can act independently.
Fig 2.3: Stack
Adobe experience manager empowers web and portable applications to be worked in a manner
that is snappy, simple and repeatable. Utilizing this structure, associations can construct web
apps, responsive sites, versatile applications and structures. It contains some extremely
valuable highlights, similar to formats with predefined designs, or the capacity to install
standard and exceptionally manufactured segments that show content from its digital asset
manager.
We will probably not just assist associations with capitalizing on AEM applications, yet
additionally give knowledge on the best way to work inseparably with a Quality Engineering
(QE) approach. The information inside AEM (client made information, site information,
custom information) is put away in the crx, which is a specification executed as Oak. It is a
23
vault actualized by Jackrabbit. Oak is execution of an adaptable and various leveled content
utilized for websites.
Adobe experience manager works upon a framework which works upon a principle which
treats a project file as a combination of small modules. Each module is independently
executed and if any of the module fails we can stop that module individually and make the
changes accordingly, whereas the rest of the application runs as an independent comodity.
Each module in AEM known as a bundle goes through a lifecycle which is handled by the
OSGI bundle. Its lifecycle involves:
Installed
Resolved
Starting
Active
Stopping
Uninstalled
Fig 2.4 Dispatcher
24
2.4.
HTL (HTML TEMPLATING LANGUAGE)- SIGHTLY
HTML template‟s language, which is support by (AEM) like a template, (HTL) purpose is, is
to provide a business-friendly framework on web which maximizes safety that is compared to
the javascript files usage previously, and allows HTML developers to host and take part in
AEM projects and interact with java without much language technical knowledge.
The HTML template language is introduced in AEM 6.0 only, and replaces Jsp (Javaserver
pages) as the recommended Server-Side html information system also at the end of
deployment. Designed for website developers, to built powerful businesses and company
websites, such as Sightly. HTML Template language helped to achieve safety and is efficient.
Benefits of being small includes weightlessness - lack of dependency, quickness to offer;
Secure - Automatic XSS protection compared to the Server-Side language which is used and
URL-free installation that enhances website [6]; codebase-sub-feature.
HTL contains things that must be known to developer by including the frontend and the back
end such as statements like (usage, tests, resources, including) and language, property objects
(properties, page Properties, Current Page.
The snippet of codebase that follows uses global objects produced by Sightly to access some
properties.
Fig. 2.5. Sightly Codebase
25
Fig. 2.6 Sightly Objects
2.5.
JAVASCRIPT(JS)
It is a simple, translated language of programming used in AEM to handle writing scripts for
consumer side(Css). JS is easy to use because of it‟s integration with html and is used for a
variety of operations. Itis open source and also used as a cross-platform. JS can be executed
using JS statements embedded in <script> ... </script>.
In AEM, all JS codebase is put into ClientLibs clusters. ClientLibrary functionality manage all
JS and Css resources in the app. and project. It requires management, minimizing the content
before sending it to the network to ease the burden. We have ClientLibs folder in applications
where all JS files are installed and used.There will be a JS.txt and css.txt file that contains the
names of files to use. clientlibs folder has properties called categories that uniquely identify
clientlibs i.e. can be a unique identifier in a folder. clientlibs is used in the component that
contains the usage statement and the driver statement to drive css or JS or all files of
thatentlentlib. ClientLibs are also embedded and rely on facilities that will list all the club's
commitments and all other boards that need to be embedded before using them. Depending on
something you eat but embedding is not the best in the case of klentlibs i.e. the position of the
confident individuals will be loaded but not in the case when the asset is embedded. The
ClientLibs library folder is the cq-type repository: ClientLibraryFolder, stored anywhere within
/ applications, / Libs and / etc (can be configured in the AEM configuration manager); Class
Properties is a valuable asset. There is a list of other client libraries that you depend on. For
example, given two cqs: ClientLibraryFolder node a and b, if the JS file in „a‟ requires other
file in ClientLibs B to work or upload content, then at least one of the b class components
should are included in A's dependency; embedding: It is used to embed codebase from other
26
client libs. If node a embeds nodes b and c, the resulting Html will be a collection of a content
from locations b and c.
2.6.
JAVA (SLING MODELS)
Sling models are classes of java like POJO (Plain Old Java Object) is connected to Sightly
containing multiple objects which are implicit and featured to perform a certain task on the
component that are rendered in Html.
There are annotation that are given by the sling-model like as inject, sling object and AEM
object etc. that have an access to object obtained by APIs. Sling models are called as in the
slightly codebase by the use of command. Few APIs that are used are Page, Resource,
PageManager, Node, Navigation etc. We can change the property of the component using Sling
model as entire logic lies in .
Fig. 2.7. Sling Model Annotations.
Java logic can be used into forms like that Sling models. They can be like POJO (Plain Old
Java Object) classes (models),OSGi services,servlets,Sling Services,Workflow classes,
constant maintaining classes,APIs,Utility classes etc.
27
2.7.
CLIENTLIB IN AEM
Websites depend on consumer process handling by JS codebase. AEM provide Client-Side
library folders to put JS and css (UI) codebase at one place to make it un-tangible and effective
for loading.
ClientLibs in AEM provided by adobe will manage all JS and Css resources in the app. User
can change the Clientlibs folder in //apps, //libs, //etc but AEM recommends to change only
in //etc folder. The process of making CL is listed below
Fig. 2.8. ClientLib in AEM
Open Crx
In etc ClientLibs make a new folder
In that new folder create a new node
Mention the name of the node as any ClientLib, for e.g. ABC and type as
ClientLibFolder
To that clientlib node add category as of type String and value “apps.aem.training”
28
Now make a js and css folder. All the css and Js files will be kept here
Now make js.txt and css.txt in it
Fig. 2.9. ClientLibs Properties
Add JS and CSS resources
Adding the CSS and JS files in CSS and JS folder.
For instance,
header.css
headerfont.css
example.JS
29
test.js
css.txt
Example:
JS.txt
Example:
30
This codebase allows addition of ClientLib to the file (sightly).
.
2.8.
AEM FORMS
AEM Forms is another great tool provided by Adobe in AEM, that helps us in making and
managing forms with great efficiency. This tool helps us in making dynamic and
comprehensive forms that are responsive in nature. We can author them in a similar way as we
do our AEM websites under our AEM forms and Documents tab of Adobe Experience
Manager. These forms can even be divided into fragments where each fragment can be
developed individually by different developers concurrently, plus even bigger survey forms
can be loaded faster on our AEM Forms using a technique called Lazy Loading. AEM forms
can also be used offline by downlading the AEM forms app from playstore and configuring
your forms on the App.
They come with many different components like.
Electronic-Signatures
Features to attach different files
Form fragmentation.
Various functionalits that come Out of the Box in AEM Forms are.
Pre filling data in our forms from xml and json files.
A panel completely designated to design themes for our Forms.
Different actions to save submitted data in various file formats.
Feature to e-mail data to a specific person or a group of people on successful submittion
of a form.
The figure below is a demonstration of the basic structure of an AEM Form.
31
Fig. 2.10. Forms in AEM
1. A form can be disintegrated into different sections and tabs to provide data in a better
format..
2. Some OOB field configuration in AEM Forms are place-holder text, field label, name,
input type,. They are realy easy to use and help in configuring each field.
3. More fields can be added into the Form by dragging and dropping thme into the
Paragraph System of a form.
4. Logo for our forms can be configured by just clicking on it and changing it like a profile
picture in our favorite social media app.
5. Similarly all the heading s for our Form can be configured.
6. Description for each of the fields can be added using the help content in the configure
tab.
7. We can even modify the front-end using HTML and backend using JavaScript and Java.
The different widgets that are provided by default in AEM Forms are shown in the figure
below.
32
Fig. 2.11 Default Components in Forms
Rule Editor : Rule Editor helps us in places where we want some special conditions to be
applied to specific fields in our form.. For example for selecting country codes for different
33
countries we need to apply different type of rules for different country codes Instead of writing
the code ourselves we can use AEM Forms prebuilt functionalities. For creating a rule for a
specific field select a field then select the rule editor icon as shown in the figure below
Fig. 2.12 Form Rule Editor
34
Select the section from sidekick in the left
Fig 2.13 Form Rule Editor(b)
Click on the create icon as demonstrated above
We can choose from the various forms of operations from the dropdown
Fig 2.14. Rules
35
Select any operation that you want.
Fig. 2.15. Rules (b)
An adaptive form can be considered as a generalized fragment like basic details of a person
like name ,age, gender, email and contact info etc. It is the duty of a AEM Forms Expert to
develop such segments that can be standalone or resuable. Such reusable components in a form
can be created using adaptive form functionality of AEM Forms. The steps to create an adaptive
form are as follows.
Choose create an adaptive-form from AEM Forms create button.
36
Fig. 2.16. Adaptive Forms in AEM
Add the name and a short description. of the adaptive form.
An empty form with a paragraph-system would be created.
Even when we are developing our forms , we can see how they would look and feel at different
screen sizes by selecting various breakpoints. It can be done by selecting the rightmost logo on
top as shown in the figure below.
Fig. 2.17. Breakpoints for devices
37
We get options to select different kinds of devices and view them in both portrait and
landscape mode.
2.9.
AEM LOGS
Fig 2.18. Different device screens
One of the soughed feature in AEM is troubleshooting and AEM-logs helped in troubleshooting
them bygiving detail about the functions of AEM. AEM-logs are present in CRX-
quickstart>AEM-Logs path in the system-file..\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\
1. REQUEST Request contains responses and requests for instance of AEM.
2. ACCESS Access gives the details of the resource which is accessing the instance along
with its time.
3. STDOUT Stdout stores all the logger messages.
38
4. STDERR Stderr file contains detailed error messages.
5. UPGRADE Upgrade is the default log that contains the information of the upgrade
operation being performed.
6. ERROR error log contains error, this log can be accessed using the command tail -f
error.log in command prompt.
Fig. 2.19 Stdout.log(File)
Fig. 2.20. Stderr.log(File)
39
2.10.
AEM REPORTS
AEM gives a functions to give the access of reports that are default that can be configured by
the user.
Component, health check, disk usage, Workflow instance, workflow, page activity, user report
are few examples of AEM-Reports.
localhost:4502/miscadmin#/etc/reports path to see the report
2.11.
AGILE METHODOLOGY
In Software Developmenmt, Agile methodology refers to a practice of development that
revolves around iterative development, timely deliveries, adaptation and improvement. Many
different variations of Agile methodology are in use. Some of more popular ones are Scrum,
Kanban and Extreme Programming(XP). ArgilDX has chosen to follow Scrum as their
methodology. All variations of agile follow some common values highlighted in the Agile
Manifesto. The values differ from traditional software development methodologies in the
following way. Agile values working software over extensive documentation. From the
customer‟s perspective agile values collaboration over negotiation. Agile prefers adapting to
changes instead of sticking to plans. In terms of resources, agile values interactions over
processes.
In Agile, the product evolves over time. The development of the product is divided into a series
of tasks. These tasks include a cycle of planning, developing and testing. These tasks are subject
to change and improvisation as and when required. These changes are dictated by the values
mentioned in the Agile manifesto as well as changes brought about by changing requirements
or tools. This makes these tasks easy and lightweight. This is where Agile get its name from.
Agile makes an effort to get the entire team to utilize their tools and bandwidth in the most
productive way to help the team in rolling out deliverables as early as possible. This raises the
morale of the team and increases the productivity considerably.
Why Agile is preferred over other methodologies:
Agile makes the entire team functional at the same time. Since Agile works in iterations a lot
of the risks and drawbacks of the project are avoided since they can be fixed in the next
iteration. Shorter delivery times increases the business value of the product. Agile is open to
using newer technologies and platforms which can help a team keep up to the times. Agile pays
an importance to acceptance of the product by the end user.
40
The Scrum Process
The Scrum Framework is an agile framework which helps the team in working together
effectively to achieve their common goal. Scrum is easy to implement and gives significant
increase in productivity and results. In this framework, all the features and bugs are compiled
into a list, from which they can be picked on the basis of their priority and be developed at any
time in development of the product. Scrum includes frequent team meetings meant to be
attended by each and every team member to discuss the status of the project. The agenda of
these meetings in not only to discuss and distribute work meant to be done parallely but also to
remove hindrances being faced by the team. The features and bugs can have their priority
changed at any point in the development, they can either be worked on earlier or later as decided
by the team . Scrum features the following principles :
The entire project is divided into small iterations.
Prioritization of features in any given iteration.
Daily Scrum calls to discuss and remove obstacles in the development cycle.
Regular retrospective meetings to discuss improvements for later iterations.
Fig. 2.21 Agile Model
The first step when following Scrum is Sprint planning. In this step, the tasks are compiled into
the product backlog, they are prioritized and assigned to team members. Sprint includes
scoping of tasks to focus on the end product.
41
Daily scrum calls are frequent meetings facilitated by the scrum master .In these meetings, the
scrum master reviews the work done by each member to help him plan the next sprints in a
better way.
At the end of each sprint a Scrum retrospection meeting is held. In this meeting the entire sprint
is reviewed in hindsight to help make future decisions. Scrum uses many charts and plots such
as the Velocity Chart and the Burndown Chart in the retrospective meeting to make future
decisions and also serves in making the client more aware of the work being done by the team.
Keeping track of the project is a complicated task yet it remains to be a really important one.
There are many tools that help in managing an enterprise level project. JIRA is one such tool.
JIRA is a tool developed by Atlassian which helps in project management and issue tracking.
It fully supports Agile development in many ways such as user stories appearing in the
dashboard, planning sprints and visualizing the product backlog. JIRA also has full support for
Scrum dashboards, namely the Scrum Board. JIRA provides the developer with an effective
way to visualize, summarize and prioritize the various tasks at hand with the developer.\\\\\\\
\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\
Fig. 2.22. JIRA Issue creation.
42
Fig. 2.23. Bug report in JIRA.
43
CHAPTER 3
SYSTEM DEVELOPMENT
3.1. AEM BASIC IMPLEMENTATION
The following screen is shown when we start AEM‟s jar file.
Fig. 3.1 AEM Start Screen
AEM‟s Touch UI screen, that allows us to navigate through the various features present in
AEM is displayed in the figure below.
Fig. 3.2 AEM Touch UI
44
Fig. 3.3 AEM homepage
The above figure shows us the welcome homepage in Adobe‟s Experience Manager that gives
us access to various functionalities that are present in AEM. It can be used to access the
following in AEM:
Siteadmin: It provides us access to the different website and the webpages present in a project
Damadmin: It is a digital assets repository used for storing and managing files, images,videos,
etc. which are used in various projects.
Campaigns: It provides us integration with Adobe‟s Marketing tool. Adobe Campaign.
Inbox: It provides us access to mail inbox of all the users that have logged in..
Useradmin: It gives us access to various profiles of users and their different level of access
rights.
The right side console has different features that include, replication, workflows, many
publications of different kinds. Replication is a method in which changes are made to the
page‟s environment from author instance to a different instance called publish instance and the
numerous changes are shown in realtime.
45
Fig. 3.4 AEM Site Administrator
We can see a hierarchy of pages for our sample project provided in the above figure
46
Fig 3.5 AEM User Admin
The above figure shows us the Useradmin console where we can check the various users and
the groups which they belong to.
47
Fig 3.6 User Access Rights
We can see the different types of permissions for all the directories provided to a user in the
above figure.
Fig. 3.7 AEM DAM admin
48
The above figures shows us the DAM admin hierarchy where all the images, files, folders,
videos and all the other assets related to a project are stored.
Fig 3.8 AEM Replication Agents
This figure shows us the pane about task‟s-replication. It contains a screen that displays the
configuration of agents on author instance namely replication-agent and reverse-replication
agent. Every agent can be configured in accordance our project‟s requirement. Moreover
different categories exist as there are different types of agents.
49
Fig 3.9 Replication Agent Configuration
The figure below shows creation of Templates in AEM. Templates in AEM have following
properties:
Label: It can be considered as the name of the template
Title: It can be considered as the name with which the template gets saved and is referenced in
the JCR.
ResourceType: It can be defined as a reference that links a page component to a predefined
resource in the JCR repository which helps in rendering the pages that are created with these
templates when they are selected.
Rank: It defines the order in which the template would be seen when we create a page using
it.
Allowed Paths: This property allows a template to be used in specific paths and not others.
50
Fig 3.10 AEM Template Creation
Fig 3.11 Templates Allowed Paths
3.2. PROJECT WORK
The project that we worked on served a client in India. We developed a survey form for them
that was made using AEM Forms. We follow Agile methodology for developing the project,
where we develop the project to a particular point and then give demo to the client. After the
demo we work on the feedback provided by the client and this cycle continues till the complete
project is developed. The project has been divided into 4 major parts, we have delivered 2 parts
of the project and now the last 2 parts are meant to be submitted by 15
th
June 2020. For making
any form there are basically three steps involved:
51
Firstly creating the XSD for the form that can be defined as the outline for the entire
structure of the form. It contains various fields and panels for a form. It also helps in
storing the data filled in the form in a XML format, which can be used to later to prefill
new forms or update the database.
Second step includes authoring the form so that we have a proper visual interface to
interact with. Which includes labelling the fields and deciding the final view of the
Form.
The third step includes writing various rules on the form for different validations, soft
checks and functionality of the form. This helps us in automating various user
experiences in the Form and mitigating human error while filling the form.
Other than Forms other major projects in our organization include developing AEM sites. For
creating sites AEM sites is used. It consists of various reusable components that are made by
various members of our team using AEM. The components give power to even non-technical
users to drag and drop them on the different pages of the website which then become ready to
be published, thus enabling them to author their own websites. There are generally two
environments: The author environment and the Publish environment. Author does the changes
to the website which is also termed as authoring, the author decides the content to be shown on
the website . This instance is then sent to the publisher whose job is to verify the components
on the page and the structure of the page. Then the project‟s final build would be uploaded on
prod. server that ensures that the website is visible to the general public and customers. The
various parts in Adobe Experience Manager are built using:
HTML/ CSS : It is used in making the design and look of a website .
Sightly: It is a HTML Templating Language to create a connection with the backend and front
end of our website
JavaScript: It is used to build the clientside functionality of the website.
Java: It is used in various things like OSGI services, Servlets, Models, Sling Models, OSGI
Configurations, Workflows etc. for creating the backend code that is executed hidden behind
the components. This is basically used to write the business logic that resides on the server.
Components provide dialogs, which are used as an interface for editing and configuring them.
Dialouges are made in Content Repository Extreme as nodes where a specific structure is
52
followed in creating them. The content is provided by the creators which gets pushed as the
final view of the website. Also CSS is used to change the design and look of web pages as
given int the SRS. JavaScript helps in handling client side actions and various events on the
frontend.
IntelliJ is made use of for the Java coding however, Eclipse can be used too to implement
backend code.
Firstly templates are created whenever we want to create a new project, after which pages
are created which decides the overall structure of our project. To make a new page it is
necessary to make a template and page-component in our website. Basically the
template is the foundation and therefore decides the overall structure for a selected sort
of web-page. For making a page within the website-tab every user has got to make a
selection for the type of template to be used, it can be either present by default or made
exclusively according to the requirement by various Java-developers. A template contains
various components that are dragged on to a page whenever a page is created using that
template.
Fig 3.12: Content Repository Extreme DE
53
The above figure shows the component‟s html page and its hierarchy is given on the left panel.
Fig 3.13 Dialog for component
Fig 3.14 Component (socialSharing)
54
The image above shows a component in the project. This component presents the user with
social media links. The component is a container with a special resource type and a dialog. The
dialog contains various widgets. The widgets are usually taken from the Touch UI Library.
This project uses the „Granite‟ version of the Touch UI Library. Different widgets are used to
provide different features. At the bottom of the hierarchy, a textfield’ and a ‘pathbrowser’
widgets are used. The textfield’ widget is used to specify the name that renders on the webpage
and the pathbrowser’ widget is used to specify the URL for the given social media link. The
dialogs can contain any number of widgets from the Granite Library. The information stored
in dialog is used to render the webpage. The layout of the dialog varies with the requirements
of the clients and the structure being used in the project etc.
Fig 3.15 Various components used in a webpage.
Following is an example of code using both front-end HTML and back-end logic written in
HTL (HTML Template Language).
55
Fig. 3.16. HTL with Sling Models
HTL is also known as Sightly. The code example shared above is very minimalist example
where an Image is rendered along with a caption using HTML. Sightly can check whether a
property exists or not in the JCR. Sightly can also be used the fetch those values from the
component and get that content across to the DOM where front-end libraries can do their work.
The „fileReference’ property in the above example is used to store the path where the image is
found.
Fig 3.17. JCR properties (Key : Value pairs)
The components developed during the internship were similar to the ones found in most
modern websites such as a navigation bar, modified multifield components, logo, login, hero
component, latest feed and various other modifications to improve the authoring experience.
Navigation Bar Component uses many APIs provided by AEM such as the Page API. AEM
provides numerous Java APIs to provide back-end logic to the components. Using these Java
56
APIs along with the front-end code complete a component. If logic is written on the front-end
it is done so with the help of Javascript. In the logo component, the HTML in the DOM needs
to be integrated with the Sightly code written in the component. Generic Components can also
be developed. These components can be used at more than one place depending on how they
were authored. AEM also provides a feature called „ClientLib‟ short for Client Library Folder
where the client side libraries can be loaded directly from the server. Styling defined in the
ClientLib can be used in the front-end with the help of Sightly. The Latest feed component
shows the most recent posts shared on the site. This component uses Java code, Javascript
logics as well as front-end templates.
Fig. 3.18. Async JS code
The above code shows a simple HTTP GET Request to send data to Java servlet. Using HTTP
GET Requests, we can retrieve information from the back-end without refreshing the page. The
above example shows a asynchronous request to a JAVA servlet which sends response in JSON
format. The JSON in the response can be parsed which can be passed on to the HTML.
Many a times, the features provided by AEM are not enough to meet the requirements of the
project. In such cases developers are required to write JavaScript classes on their own to
overcome the specific issue. For example we can make a custom implementation of the nested
multfield component to store information about the countries and the also the information about
the states inside the country. This way we do not limit the number of states being stored, also
we make the data more organized and structureThe code in the example above creates a
property with the name of ‘maxlinksallowed’ to be used in the custom implementation.
57
Fig. 3.19. Custom Multifield.
Also custom checkboxes will require custom Javascript written to validate their values as
shown in the ‘isCheckBox’ funtion in the code below
Fig. 3.20. Custom Multifield(b)
58
CHAPTER 4
PERFORMANCE ANALYSIS
In Web Content Projects, performance is measured by the amount of time a web server takes
to respond to all of the client‟s requests
4.1. OPTIMIZING PERFORMANCE
To optimize performance, the following five points help.
1. Load Planning
Before the actual launch of the product, an early access version of the product is made available
to a smaller audience to gather performance data in a real-life setting.
2. Simulating Real Load
To avoid performance drops after the launch of the product, the performance of the product
can be tested with real-life like environment. A “Real-life like environment means that the
size of the content, the traffic and the size of the code needs to be similar to their counterparts
after the launch of the product.
3. Performance Benchmarks
To compare the performance achieved by the product, it must be compared to a benchmark
result obtained on a similar product.
4. Relevance to Optimization
Only those things should be optimized that are relevant to bringing about improvements to the
performance
5. Iterative Optimization ( The Agile Way)
Parallelization and optimization should be done in small iterative steps so that the affect of the
optimization can be measured. As a rule of thumb, optimizing and parallelizing every single
thing in a project is not recommended
59
Reference Page Loading Times Recommended by Adobe.
70% of the page requests should get a response in less than 100ms. 25% of the page requests
should be responded within 100ms-300ms. 4% of the page requests should be responded within
300ms-500ms. 1% of the page requests should be responded within 500ms-1000ms. No pages
request should get a response in more than 1 second.
General Steps to Improve Performance
Using Queries inside display templates increases the inefficiency of the dispatcher cache leads
to performance issues. Tuning the parameters of the OS and JVMdoes not impact performance.
Keeping Track of Performance
Performance can be monitored by tracking the various performance attributes.
1. Backup plan in case things don‟t go as planned.
2. A ticket based bug handling system like JIRA should be available for reporting
problems.
3. Monitoring File systems and Log files.
4. Version Purging
4.2 INTERPRETING THE REQUEST.LOG
In AEM the request logs are analyzed using „rlog.jar‟. This tool can filter and rank the
requests, since AEM can log thousands of requests in an hour.
There are more such tools available in AEM in the location
„/crx-quickstart/opt/helpers,
60
Command to rank log requests
java -jar ../opt/helopers/rlog.jar -xdev request.log | less
Fig. 4.1 Log Requests (Rank).
The above command shows the number of requests logged, sorted by the duration it takes to
respond to them in descending order. It is clear from the log that the first request is not cached
since it keeps appearing in the log again and again. It can also be noted from the above log that
some requests which are not cached can take a lot of time to respond and bring down the
performance.
Command to filter log requests
java -jar ../opt/helpers/rlog.jar -xdev request.log | grep "/companyservice/contact.html " | wc
-l
61
Fig. 4.2 Log requests (Filter)
The above command filters the requests made to the webpage "/companyservice/contact.html
. As we can see the requests to this page are served in a shorter time, this page must have
been cached by the dispatcher.
Command to Save the filtered requests
java -jar ../opt/helpers/rlog.jar -xdev request.log > demo.txt. This command saves the filtered
requests to a text file called ‘demo.txt’
This is shows us a part of page in the project which helps in making the component wherethe
links for going to other websites are provided.
62
4.3. CLEARING CACHE
Fig 4.3. Invalidate cache
In all of Adobe Experience Manager structures, the client experiences multiple layers of cache
when visiting your site. There are 4 different cache layers to consider in a standard Adobe
Experience Manager structure. This includes the Web Browser, CDN, Dispatcher and
AEM instances. The above figure shows how to clear cache from your AEM‟s instance.
63
CHAPTER 5
CONCLUSIONS
5.1. RISK ANALYSIS
We should keep numerous things in mind when we are coding in AEM as it requires unique
ability in numerous fields. There are numerous dangers related with the execution.
In adobe manager experience we have different “Out of the boxsegments accessible for the
utilization of authors which are prone to some errors and requires some changes as per the use
case of a real time project. Since, this product was initially developed by Day CQ and then
acquired by Adobe after sometime, thus some of the new changes made by Adobe are not
completely prepared to-utilize or heated at this point. This makes the reconciliations bulky and
present different imperfections. Adobe Experience Manager device isn't a lot of reasonable for
independent venture or new businesses making their sites because of the expense brought about
in acquisition of the product and significant level of designer skill. Debugger in AEM doesn't
work each time as required in light of some unmanaged mistakes.
Some functions of custom components which are not required sometimes in the real case
scenario and Javascript should be composed to make the components as per the requirement.
Each new form of adobe experience manager has little errors which is caused by current
adaptation..
For the ClientLibs in AEM there may be situations when JS does not functions properly on
console because of certain parameters which probably won't be bolstered on the programs.
There may be situations where cross-site scripting may sneak in and break the code. There are
many issues related with JS which can be program explicit, run modes explicit, condition
explicit, server explicit and so on. So these issues have to be kept in mind while working on a
project.
While working on git and submitting our code to the remote repository one must keep in mind
to take pull from the remote repository to remove the conflicts, as it may produce errors in the
main project.
64
5.2. FUTURE SCOPE
The current task has been discharged and the current work is going around altering the
functionalities to make them progressively conventional & adaptable. Then further arrivals of
a task which will is sensibly separated into parts according to the agile methodology. Thus the
procees of the development of websites will change as we can provide the client an ability to
change and modify the content on the website without making any major change in the code
base of the project. For actualizing it have to adjust the discourse structure and the current
segments or the look and requirement of a client according to its needs. This may change the
ideal conduct of the current parts by doing a few adjustments in the backend rationale executed
in the particular segments. Additionally, numerous new sites are written which has a
requirement of extraordinary parts that are layout explicit to expand the pages and substance
of the site.
Crafted by the designers will incorporate creation some new segments to satisfy requests of a
customer. Additionally, the working of this center involving about the alteration of current
parts and inclusion of improved functional requirements by means of front-end and back-end
code. It consist of utilization of services and servlets calls as per the the usefulness which is
explicit to some prerequisite or actively dependent on certain conditions. These current
segments are adjusted as a piece of enhancements so as to make them adaptable to be relocated
anyplace on the page. Numerous highlights will be robotized as a major aspect of the
arrangement and some powerful highlights will likewise be incorporated for what's to come. It
has joining of Adobe‟s Analytics part and Adobe Campaign with the current system of
computerization and assignment by making distinctive different work processes which will
diminish the coding mediation.
The undertaking is being stretched out further so as to take a shot at the login and logout
features of the current site. This has further incorporation of customizing the whole processes
of login and sin-up that will be classified and taken care of with security layers. It will further
incorporate the email functionality which provide better experiences and a more
communicative front for a user.
The task can incorporate utilization of AEM Forms to change over the current structure
usefulness created with the assistance of HTML and javascript approvals. It can start a process
65
of making the whole site dependent on different AEM product and making reconciliations
exceptionally effective.
The extent of learning will stretch out to learning of different highlights explicit to AEM like
Adobe Campaigns, different API used in AEM, OSGI configurations, services and servlets,
templates, integration of back-end logic with the front-end.
5.3. CONCLUSION
The learning term in this company was advanced with great opportunities as an intern to learn
new concepts and a great deal of new innovations was found out during this period
hypothetically which was actualized in this live undertaking. It not only focused on merely
building our knowledge on high level tools involved in a real time project but also on the
building a firm foundation by helping an intern to understand the very basic concepts of java,
JavaScript and AEM. Interns were also allowed to put forward their ideas and provide their
opinion. Thus this period of internship helped us to understand some very basic concepts and
also introduced us to new concepts that will help us to grow in this industry.
66
REFERENCES
[1]. https://saurabhaem.blogspot.com/2018/07/sling-models.html
[2.] http://www.argildx.com/
[3]. https://docs.adobe.com/content/docs/en/aem/6-2.html
[4].https://docs.adobe.com/docs/en/aem/6-2/develop/ref/granite-
ui/api/jcr_root/libs/granite/ui/index.html
[5]. https://docs.adobe.com/docs/en/htl/overview.html
[6]. https://sling.apache.org/documentation/bundles/models.html
[7]. https://docs.adobe.com/docs/en/cq/5-6-1/exploring/architecture-overview.html
[8]. https://docs.adobe.com/content/help/en/experience-manager-htl/using/htl/expression-
language.html
[9]. http://www.sgaemsolutions.com/2017/06/clientlibs-in-aem-63-part1.html
[10].https://docs.adobe.com/content/help/en/experience-manager-htl/using/htl/use-api-
javascript.html
[11]. Sutherland, J., Schwaber, K., Scrum, C. C. O., & Sutherl, C. J. (2007). The scrum
papers: Nuts, bolts, and origins of an agile process.
[12]. Vishnu, K. (2017). Web Content Management Infrastructure Migration. International
Journal of Research in Computer Engineering & Electronics, 6(2).
[13]. XUE, S. J., & CHENG, M. (2009). Research on Java Content Repository and
Application in CMS [J]. Computer Technology and Development, 1, 067.
67
Please send your complete Thesis/Report in (PDF) & DOC (Word File) through your Supervisor/Guide at
JAYPEE UNIVERSITY OF INFORMATION TECHNOLOGY, WAKNAGHAT
PLAGIARISM VERIFICATION REPORT
Date: ………………………….
Type of Document (Tick): PhD Thesis M.Tech Dissertation/ Report B.Tech Project Report Paper
Name: Munish Thakur Department: ________CSE Enrolment No ____161306_____
Contact No. ______________________________E-mail. ____________munish71[email protected]_______
Name of the Supervisor: _________________Dr. Geetanjali___________________________________
Title of the Thesis/Dissertation/Project Report/Paper (In Capital letters): Adobe Experience Manager
Centerprise Content Management System
________________________________________________________________________________________________________
UNDERTAKING
I undertake that I am aware of the plagiarism related norms/ regulations, if I found guilty of any plagiarism and
copyright violations in the above thesis/report even after award of degree, the University reserves the rights to
withdraw/revoke my degree/report. Kindly allow me to avail Plagiarism verification report for the document
mentioned above.
Total No. of Pages =66
Total No. of Preliminary pages = 13
Total No. of pages accommodate bibliography/references =1
(Signature of Student)
FOR DEPARTMENT USE
We have checked the thesis/report as per norms and found Similarity Index at ……18…………..(%). Therefore, we
are forwarding the complete thesis/report for final plagiarism check. The plagiarism verification report may be
handed over to the candidate.
(Signature of Guide/Supervisor) Signature of HOD
FOR LRC USE
The above document was scanned for plagiarism check. The outcome of the same is reported below:
Copy Received on
Excluded
Similarity Index
(%)
Abstract & Chapters Details
All Preliminary
Pages
Bibliography/
Images/Quotes
14 Words String
Word Counts
Character Counts
Report Generated on
Submission ID
Page counts
File Size
Checked by
Name & Signature Librarian
..……………………………………………………………………………………………………………………………………………………………………………