Internship Report Java Script
Internship Report Java Script
Internship Report Java Script
A report submitted in partial fulfillment of the requirements for the Award of Degree of
BACHELOR OF TECHNOLOGY
in
ELECTRONICS AND COMMUNICATION ENGINEERING
by
Yash Gautam
ROLL. No.:
20259
Under Supervision of
Er. Shambhavi M Shukla,
Assistant Professor
Department Of ECE
Institute Of Engineering Technology,
Dr. RMLAU, Ayodhya
(Duration: 20th Jan to 10th Feb)
DEPARTMENT OF
ELECTRONICS AND COMMUNICATION ENGINEERING
INSTITUTE OF ENGINEERING TECHNOLOGY
Dr. RLAU, AYODHYA
i
DEPARTMENT OF
ELECTRONICS AND COMMUNICATION ENGINEERING, IET, Dr.
RAMMANOHAR LOHIA AVADH UNIVERSITY, AYODHYA
CERTIFICATE
This is to certify that the “Internship report” submitted by Yash Gauatam (Roll. No.: 20259) is
work done by him and submitted during 2022 – 2023 academic year, in partial fulfillment of the
requirements for the award of the degree of BACHELOR OF TECHNOLOGY in
ELECTRONICS and COMMUNICATION ENGINEERING, at Udemy.
ii
iii
Acknowledgement
First I would like to thank Udemy for giving me the opportunity to do an internship.
Although quite short, for me this was a great experience I can learn from. It
helped me to explore my skills andincreased my interest in web development.
Special thanks to Ms. Shubham Saurav for being so accommodating and
understanding.
vi
Abstract
The key to having successful and fully functional web applications is in their
communication with the user. It is of no surprise that human/machine interaction is
a popular topic of research and development, as is the main goal at the research
centre for Information Technologies LIRIS, where I had the honour to spend my
first training period.
A solution has been proposed for the internationalisation and customization of web
applications in general. Taking into account web standards and the back-end and
front-end architecture of web development, a method for providing a multi-
language web interface has been planned from scratch and explained in details in
this report.
vi
Table of Contents
i. Acknoledgement ...........................................................iv
ii. Abstract ........................................................................... v
1. Introduction .............................................................................. 1
1.1. Context of Project ....................................................... 1
1.2. Context of Internship .............................................2
1.3. Technical aspect...................................................... 3
2. Solutions
2.1. Trace-Me .................................................................. 4
2.2. Translate and Edit module ................................. 5
3. Discussion
3.1. Overview .................................................................. 6
3.2. JSON ................................................................................ 7
3.3. HTML .................................................................................7
3.4. Style/CSS ........................................................................ 7
3.5. JavaScript ............................................................... 8
3.6. Problems and Suggestions ...................................10
4. Conclusion ................................................................................ 11
5. List of figures ................................................................... 12
6. Appendix A ............................................................................ 13
7. Appendix B ............................................................................ 14
8. Sources ...................................................................................... 17
vi
1. Introduction
One of the projects that my team works on ,COAT, consists of the design and
implementation of a Trace-Base Management System for the web platform
ClarolineConnect.
1
The platform provides highly functional tools for the development of personal
learning environments or educational devices. Thus, users can manage, store,
share and disseminate information while having high level monitoring.
Traces of user activity are collected and stored for further exploration and analysis,
which contributes to the improvement of the learning experience. The so-called
modelled trace (M-Trace) is proposed as a digital object with specified properties,
well defined models, and operators with a precise semantics.
While the implementation of this project requires complex back-end programming
and data management, it is of equally high importance that the delivered data to
the user is understandable and accessible through good design and communication,
or front-end programming.
2
1.3. Technical Aspect
For the completion of the tasks the following web languages and scripts have been
used: HTML for the construction of the layout, CSS for the design of the layout,
JavaScript for dynamic functioning and JSON for data storage.
Kango - a cross-browser extension platform was used to provide compatibility to the
extension for all major browsers. The Kango framework includes useful features.
Along with the options to write background scripts that process large data in
background and browser management, the kango storage has been found useful to
the Trace-Me extension for reasons including storing user made changes, such as
the language preference.
3
2. Solutions
2.1. Trace-Me
During the first half of my internship I was working on the translation of the web
plug-in Trace-Me. The extension consists of a pop-up window which allows the
user to choose when traces are collected by activating/deactivating the
application. Notifications are therefore used to notify the user whether traces
are collected while they are browsing. Additional option page is available in
order to manually add a new trace.
As seen on the figure 1 and 2 (see page *), a list of three flags of the countries of
the languages are displayed on the upper right corner of both pop-up and option
windows. A single click changes the language settings of the extension, storing
the preference in local storage for future reference.
I have used two different strategies for the translation of the windows. However, a
general solution has been developed and will be further explained in the report.
For better display in the po-up I have decided to include the image buttons as
another header cell, whereas in the option window they are stored inside a list
table.
The solution is specific for the extension as all text values are collected and
replaced using id recognition of predefined id’s.
By clicking a flag, a function according to the desired language is called. What the
function does, is create a JSON object which contains the new text values to be
displayed and replace the previous ones by calling the tags by their id’s.
4
2.2. Translate and Edit Module
While the first solution is simple and functional, it is not developer-friendly and
does not give any room for further user and admin configurations.
A more general solution has been proposed for the following scenario:
My main task was to find a solution for this scenario that would also work for other
web applications. What I was striving for is to develop a small extension (in the
form of a folder) that can be built into any web source and provide the
functionality to edit text data on the client side for the users and on server side for
the administrators and give the ability to translate the same data, without
affecting its accessibility levels.
I found myself sifting through large amounts of information trying to find the best
solution for this problem, therefore some aspects of it are not yet fully developed.
In the next chapter you will find more deeper explanation of how I went about
suggesting the above solution.
5
3. Discussion
3.1. Overview
The Translate and Edit application had been planned to consist of two parts-
front-end and back-end development. The front-end is the part of the web that
you can see and interact with (e.g. Client-side programming). While front-end
code interacts with the user in real time, the back-end interacts with a server to
return user ready results. The front-end is a combination of HTML,CSS and
JavaScript coding. By using JavaScript, modifications of the design of a web
page can be made immediately, however only temporary and visible only by the
user.
Normally the user would not have rights to modify web content dynamically on
the server side.
Logically, administrators are the ones who deal with back-end modification of
databases for example, as they often contain sensitive data which should not be
available to see or modify by the general public. Back-end programming
languages include PHP, Python, Ruby and others.
As I have minimal experience with back-end programming, I have initially
focused on the front-end development of the Translate and Edit module.
However, if a developer were to extend its functionality, they would be able to
reuse code that manages user edits for their benefit.
On figure 3 (see page *) it can be seen clearly seen how front-end and back-end
development differentiate and where is their common point. Further explained
you will find out more about each of the components in the above-described
module.
6
3.2. JSON
The database in this case is the JSON library file, stored on the server-side and
parsed upon request. As JSON was used primarily in the Trace-Me web
extension to store data, I have decided it would be a good idea to use it as a
method of internationalisation for the Assistant of Trace-Me, mainly because of
the simplicity of adding data, which is an important part of the module.
By creating an array of objects, each containing default text from the Assistant
and it’s translations, I was able to compare every text attribute on the page with
the existing ones in the library and replace them appropriately.
3.3. HTML
What I had to take in mind prior to starting the project was accessibility issues
and web standards.
I had written a strict XHTML file that contains two sections - one list (<ul>)
section for the flag buttons and another (<div>) for the modification buttons.
One major concern of web accessibility is the use of images.It is considered best
practice to add “alt” and “title” attributes for users who cannot distinct images.
For example the image of the German flag has a title “Deutsch” and alt attribute
set to “german flag”.
The lang attribute is also set as english (lang=”en”) in order to inform the
browser of the default human language of the script, which is essential for the
proper reading of the web page by certain technologies for the disabled.
The main styling is stored in an external spreadsheet, although the HTML DOM
style object has also been used to change some settings while the JavaScript is
being loaded. For example the Save button for the edit module has set visibility
7
to “hidden” in the external stylesheet, but the property changes to “visible”
when the edit button is clicked to avoid potential confusion.
Another method I have used to change properties inside JS is the jQuery .css()
method. I have found it to be effective in changing background and border
properties of objects.
3.5. JavaScript
As AJAX was already used to dynamically load data for the Trace-Me Assistant, I
have found certain AJAX event handlers in jQuery to be useful for my
application.
I used the jQuery.ajax() handler which performs an asynchronous HTTP (ajax)
request. The request is sent to the translation library (or the json file) leading to
the creation of a JSON object upon success. The object, stored in a variable
called libData will be further used to refer to text values in the application.
The idea of the edit module is that once the user decides they want to change
the screen text of a web page, all of the text values would become editable by a
single button click. For this purpose, the following actions need to occur:
✓ Collect all HTML tags on the web page and store them in variables;
8
✓ Perform a check if each tag contains text;
✓ Highlight the tags with found text values upon mouse hover;
✓ Wrap the text inside a text box and allow modification;
✓ Distinct the modified text from the unmodified (e.g. Outline the text
box);
The next step of the edit process would be to save the changes by clicking on
the ‘Save’ button. What happens is the following:
Optionally, the user should be able to reset all text nodes in their original state.
That is made possible by adding another button called ‘Default’, which deletes
the object in local storage.
Some of the main JavaScript code can be find attached as Appendix B on page *.
Explanations of what each bit of code does are provided.
The functionality of the back-end office modifications would be exactly the same
with the only difference that the changes will be made permanent. It would be
possible to reset default(old) values, however that would mean not only changing
data but adding more to the database. This could bring up some complications, the
most obvious one being processing time.
9
3.6. Problems and Suggestions
All in all, the methods proposed in the solution are quite general, however not fully
completed. There is plenty of room left for improvement. For instance, while
accessibility issues have been handled, some JavaScript functions remain accessible
only at user click which could be difficult for those that do not use a mouse output.
I would suggest that tab properties are added to all text that allows modification in
order to make sifting through them easier and on click event handlers are extended
to work on key press events as well.
I have struggled to find the best practice of comparing strings. Not all web
applications are programmed perfectly with text that is always enclosed in tags, or
properly spelled, which means a comparison is not full and might result in a glitch.
10
4. Conclusion
In a nutshell, this internship has been an excellent and rewarding experience. I can
conclude that there have been a lot I’ve learnt from my work at the research centre.
Needless to say, the technical aspects of the work I’ve done are not flawless and
could be improved provided enough time.
As someone with no prior experience in JavaScript whatsoever I believe my time
spent in research and discovering new languages was well worth it and contributed
to finding an acceptable solution to an important aspect of web design and
development. Two main things that I’ve learned the importance of are time-
management skills and self-motivation. Although I have often stumbled upon
these problems at University, they had to be approached differently in a working
environment.
I have yet to complete another two years of studies, in order to achieve a bachelor
degree in Computing (with Honours). Working with web development languages
has increased my interest in them, hence prompting me to transfer to the Web
Design and Development course at my university.
11
List of figures
12
Appendix A - Table of weekly tasks
Translation of the pop-up window and notifications update of the progress on the Trace-Me
2
of Trace-Me plugin
3 discover AJAX, jQuery and JSON
finished translation of the Trace-Me
4 Translate the Trace-View
plug-in
13
Appendix B - Translate and Edit module JS
function searchAndReplace()
{
14
$(libData).each(function(i){
scrVal = attrib.innerText;
libValue = libData[i].oldValue;
(***)
if(scrVal.indexOf(libValue))
//if the screen text is the same as a string in the library,replace it with its translation
{
attrib.innerText = newValue;
}
}
});
$(localdata).each(function(i){
oldinput = localdata[i].oldValue;
function editMode() {
$(attrib).on("click", function()
{ //replace the section with a input on click
scrVal = $(this).text();
15
}
function writeTable() {
for(i=0;i<inputValues.length;i++)
{ //write changes to an object
inputValue = inputValues[i];
oldValue = oldValues[i];
mydata = { oldValue: oldValue, inputValue: inputValue};
myObj.push(mydata);
}
16
Sources
W3schools. 2013. Online]. [Last Accessed 10th June 2014]. Available from:
http://www.w3schools.com/ajax/default.ASP
17