0% found this document useful (0 votes)
31 views33 pages

Destiny IT Report

Uploaded by

kennedymariana64
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as DOCX, PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
31 views33 pages

Destiny IT Report

Uploaded by

kennedymariana64
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as DOCX, PDF, TXT or read online on Scribd
You are on page 1/ 33

REPORT

ON

STUDENTS INDUSTRIAL WORK EXPERIENCE SCHEME

(SIWES)

AT

HIIT PLC, IKEJA LAGOS

PRESENTED BY

IJEDE DESTINY

PSC2003810

SUBMITTED TO THE DEPARTMENT OF COMPUTER SCIENCE,


UNIVERSITY OF BENIN, BENIN CITY
IN PARTIAL FULFILLMENT OF THE REQUIREMENTS FOR
THE AWARD OF BACHELOR OF COMPUTER SCIENCE
(B.Sc. COMPUTER SCIENCE)
JANUARY 2024 TO APRIL 2022
DEDICATION
I dedicate my Industrial Training report to the Almighty God, who has given me the
strength to successfully complete the SIWES program, to my parents, and as many that
have contributed greatly to the success of my Industrial Training.

i
LETTER OF CERTIFICATION
This is to certify that this report put together by IJEDE DESTINY, with Matriculation
number PSC2003810 of the Department of Computer Science, University of Benin,
Edo, has successfully completed her six (4) months Student Industrial Work Experience
Scheme (S.I.W.E.S) at Hiit pls, 27 obafemi awolowo way, ikeja Lagos.

IJEDE DESTINY
(Student) Signature/Date

Mrs PRINCESS
(Institution based Supervisor) Signature/Date

Mr David Ukelere
(Departmental Coordinator) Signature/Date

Prof Godspower ekuobase


(Head of Department) Signature/Date

ii
ACKNOWLEDGEMENT
I thank God who has seen me through my SIWES program and I also thank my
Industrial based supervisors who guided me through my Industrial training. I also send
out my appreciation to my lecturers, friends, and co-interns for their support. And
special thanks to my wonderful parents Mr. and Mrs. Ijede were there for me in terms
of care, prayers and financial support.

iii
ABSTRACT
This report is a summary of all the work experience I have been able to gather during
my SIWES training program at HIIT Agency. It contains all my experience in Web
Development; the various programming languages such as HTML, CSS, JavaScript,
Node Js, and Express Js for building web applications. In the process of working on
some projects, I employed the use of some tools such as Visual studio code, Git /
Github, Medium and Surge for developing, hosting and collaborating with others. This
report also contains some of the challenges I faced during the course of the six (4)
months SIWES training program.

iv
TABLE OF CONTENTS
DEDICATION..............................................................................................................................................i
LETTER OF CERTIFICATION...............................................................................................................ii
ACKNOWLEDGEMENT.........................................................................................................................iii
ABSTRACT.................................................................................................................................................iv
LIST OF FIGURES....................................................................................................................................vi
CHAPTER ONE..........................................................................................................................................1
1.0 BRIEF INTRODUCTION ABOUT SWIES, AIMS AND OBJECTIVES...........................1
1.1 ORGANISATION HISTORY...................................................................................................2
1.2 SUMMARY OF INTERN’S ROLE/RESPONSIBILITIES AND ACTIVITIES.................3
CHAPTER TWO.........................................................................................................................................4
DETAILED INTERN’S ROLE/RESPONSIBILITIES AND DAILY ACTIVITIES......................4
2.1 ORIENTATION DAY...............................................................................................................4
2.2 HTML LEARNING (1 WEEK)................................................................................................4
2.3 CSS LEARNING (2 WEEKS)...................................................................................................6
2.4 ANDELA PROPERTY- PRO PROJECT (2 WEEKS)........................................................11
2.5 JAVASCRIPT LEARNING (2 WEEKS)...............................................................................11
2.6 ALGORITHMS WITH JAVASCRIPT (1 WEEK)..............................................................15
2.7 ALGORITHM CHALLENGE (1 WEEK)............................................................................16
2.8 ES6 LEARNING (1 WEEK)...................................................................................................16
2.9 GROUP PROJECT (2 WEEKS)............................................................................................17
2.10 NODE JS LEARNING (3 WEEKS).......................................................................................17
2.11 EXPRESS JS (4 WEEKS).......................................................................................................18
2.12 TEST ON NODE JS AND EXPRESS JS..............................................................................20
2.13 BLOGGER PROJECT (3 WEEKS)......................................................................................20
CHAPTER THREE...................................................................................................................................21
DISCUSSION, ANALYSIS AND EVALUATION OF TOOLS.......................................................21
3.1 VISUAL STUDIO CODE........................................................................................................21
3.2 GIT AND GITHUB..................................................................................................................21
3.3 MEDIUM..................................................................................................................................22
3.4 SURGE......................................................................................................................................23
CHAPTER FOUR......................................................................................................................................24
4.1 CONCLUSION.........................................................................................................................24
4.2 LIMITATIONS........................................................................................................................24
4.3 RECOMMENDATIONS.........................................................................................................24

v
LIST OF FIGURES
Figure 1 the four parts of an HTML Document................................................................6
Figure 2 styling with Inline CSS.......................................................................................7
Figure 3 styling with Embedded / Internal CSS................................................................8
Figure 4 styling with Embedded / Internal CSS (HTML document)................................9
Figure 5 styling with Embedded / Internal CSS (CSS file)...............................................9
Figure 6 Inline Scripting..................................................................................................11
Figure 7 Embedded / Internal Scripting (Method A)......................................................12
Figure 8 Embedded / Internal Scripting (Method B).......................................................13
Figure 9 External Scripting (Using defer).......................................................................14
Figure 10 External Scripting (Using async)....................................................................15
Figure 11 External Js File, script.js.................................................................................15
Figure 12 Node Js Internals.............................................................................................17
Figure 13 The Node Js System........................................................................................18
Figure 14 Express Js, Middleware...................................................................................19
Figure 15 some of my Medium articles...........................................................................22
Figure 16 list of websites I hosted using surge................................................................23

vi
CHAPTER ONE
1.0 BRIEF INTRODUCTION ABOUT SWIES, AIMS AND OBJECTIVES

The Student Industrial Work Experience Scheme (SIWES) is a program that forms part
of the academic standards in the degree program for Nigerian Universities. The Federal
Government of Nigeria introduced the policy on Industrial training, called the Student
Industrial Work Experience Scheme (SIWES) in 1974. The Industrial Training Fund
(ITF) is in charge of this program which is under the umbrella of the Ministry of
Education. SIWES was designed to help students acquire the necessary practical
education/experience in their fields of study and other related professions.
This is an effort that was created in order to complement the theory taught in the
classrooms of the Nigerian tertiary institutions. The objective of the program is to
expose students to the use of various machines and equipment, professional work
methods, and ways of safeguarding the work areas in industries as well as other
organizations. SIWES was established to impart practical knowledge to students with
respect to their various disciplines.

This training is funded by the Federal Government of Nigeria and coordinated by the
Industrial Training Fund (ITF) and the National Universities Commission (NUC). The
SIWES program involves the student, the universities, and the industries.

OBJECTIVES OF SIWES
1. The program teaches the student how to interact effectively with other workers
and supervisors under various conditions in the organization
2. It will help students to gain increased maturity and understanding of the
workplace.
3. The students will have a chance to evaluate companies for which they might
wish to work
4. It exposes students to work methods and techniques in handling equipment and
machines that may not be available in the educational institution.
5. The program provides students with an opportunity to apply their knowledge in
real work and actual practice.
6. SIWES increases a student’s sense of responsibility.
7. SIWES provides students the opportunity to test their interest in a
particular career before permanent commitments are made.
8. It helps them to gain interpersonal and entrepreneurial skills.

1
1.1 ORGANISATION HISTORY

HIIT was founded 1996

Some of the trainings and programs held at the hub are:

 Training in Basic Microsoft Packages i.e. Microsoft Word, Excel, PowerPoint,


etc.
 Training in Cloud Services in partnership with Amazon Web Services (AWS).
 Web Development, UI/UX Design, and Data Science.
 Microsoft Power Platform training
 Decagon onRamp Bootcamp

MISSION, CORE VALUES AND OBJECTIVES OF ESTABLISHMENT


The mission, core values and objectives of HIIT plc are highlighted below:

Mission of Hiit plc: We are an innovation centre creating the supply of highly skilled
Information and Communication Technology (ICT) talent in Lagos State and improving
greater access to jobs in the ICT sector.

Core Values: Acceptance, Discipline and Teamwork

Objectives of HIIT plc: The objectives of Edo Innovation Hub (Edo innovates) are:

1.) Equip Youth with high demand ICT skill trainings and connect them to jobs in
the ICT sector.
2.) Provide trainings and business expansion opportunities for start-ups through
incubation and acceleration programs.
3.) Provide co-working spaces, training halls, fully equipped ICT labs with fast
internet access for trainings, seminars and boot camps.
4.) Provide new and existing business with Admin support, Accommodation,
mentoring and Tech support services.
5.) Growing the Tech Community in Edo State.

1.2 SUMMARY OF INTERN’S ROLE/RESPONSIBILITIES AND ACTIVITIES

As an intern at the HIIT pls, I worked at their office located at Lagos , ikeja where I
was placed under the guidance of their web specialist Mr. Daniel chukwuka to acquire
skills in web development by my IT supervisor Mrs Princess. It wasn’t required of me
to have any background in the field. I was expected to go through all course materials,
receive series of lectures and complete the tasks and projects assigned to me and my co-
interns by Mr. David. The proposed learning track was:

 HTML
 CSS

2
 JAVASCRIPT
 Front-End with React / Backend with Node js; the interns were required to select
from either of these; I chose to continue my training with node js.

During the course of the training, I was also assigned to some tasks and projects, some
individual, other’s I was placed in a group were. It was also expected of the interns to
help in organizing programs at the hub which include:
 Setting up the venue to be used for the program.
 Assisting the receptionist in directing attendees
 Extra hands in giving souvenirs at the end of the training
 If an intern had substantial skills as concerning the program, they will be
beckoned upon to act as one of the program’s instructor.
I was an instructor for the computer appreciation program, the July edition where I
taught the attendees how to use Microsoft PowerPoint.

3
CHAPTER TWO
DETAILED INTERN’S ROLE/RESPONSIBILITIES AND DAILY ACTIVITIES
As seen in chapter 1, I worked at Hiit plc as an intern; I spent the internship learning
and completing tasks assigned to me by my supervisor, below is a list of some of my
activities during the course of the six-month attachment:

2.1 ORIENTATION DAY


This was done during the first day of the internship program, the interns were
introduced to the IT supervisor in the person of Mrs Princess

The interns were also asked to introduce ourselves and state the field we were interested
in, I introduced myself and stated that I will was interested in learning Web
Development. We were also given rules and regulations, some of the rules were:

 All interns should not in any way disrespect their superiors


 All interns should be at work on or before 8:30am and should be expected to
exit the hub at most 4pm.
 All interns must ensure to come to work for at least four (4) out of the five
(5) working days.
 In the case of absence, the intern was required to take permission from the IT
supervisor Mr Precious.

2.2 HTML LEARNING (1 WEEK)


During the first week of the industrial training, I was introduced to HTML by Mr David,
here’s a list of some of the things I did during that week:

2.2.2 HTML5
We were given a pocket reference textbook on HTML5 to study; I was able to
get accustomed to some HTML semantic tags. HTML stands for Hyper Text
Mark-Up Language, it is the language of the web, it is a mark-up language used
for describing webpages, and it is used by web browsers to create the contents of
a webpage.

HTML 1.0 which is the first edition of HTML was released in 1993, it saw a lot
of updates and releases, and we are currently in HTML5 which was first
published as a working draft by W3C (World Wide Web Consortium) in January
2008, but the stable recommendation was released on 28 October 2014. Being a
mark-up language it uses tags to describe the content of a webpage. HTML
documents are saved with the either the “.html” or “.htm” extension.

HTML documents are made up of HTML elements which the browser uses to
render it. HTML elements are written with:

4
 Opening / Start Tag and;
 Closing / End Tag.
But these tags are not displayed by the web browser; they rather determine “how
to display the document”. The part that is displayed by the browser is called
the content, and it sits in the middle of the two tags i.e.
¿ tagname> content <¿ tagname >¿
Although, they are some HTML elements that do not have a closing / end tag
they are called self-closing tags, e.g. <br>. There are also HTML elements with
no content, they are called empty elements.
An HTML document can be divided into four (4) parts namely:
a) The Declaration - This is very important as there are different types of
document on the web, it helps the browser to display a web page correctly
and as such the browser must know the type and version of the document.
HTML5 uses the ¿ ! DOCTYPE> ¿ declaration, it is not case sensitive, all
cases are acceptable e.g. ¿ ! DOCTYPE html > ¿, ¿ ! DOCTYPE HTML >,
¿ ! doctype html >¿ ,¿ ! Doctype Html >¿.

b) The <html> tag - This represents the root of an HTML document, it is the
container for all other HTML elements apart from the declaration.

c) The Header - This part of the HTML document contains META DATA;
that is “data about data” i.e. it is data about the HTML document, it
contains the information about a webpage’s properties, it is also used in
linking to external files e.g. CSS style and JavaScript code. It is specified
with the HTML <head> tag.

d) The Document Body – This describes the visible part of the HTML
document, it is the page content, the only area displayed by the browser, and
it is specified with the <body> tag.

5
Figure 1 the four parts of an HTML Document.

HTML5 introduces what is known as “semantic tags”, they are tags that are used
to give more meaning to html pages, and some of them that I learnt about are:
 Header tag (<header> <header/>): This defines the header of a web page.
 Section tag (<section> <section/>): This defines a section in a web page.
 Article tag (<article> <article/>): This defines an independent, self-
contained content in a web page.
 Aside tag (<aside> <aside/>): This defines content outside the page
content.
 Footer tag (<footer> <footer/>): This defines the footer of a web page.

2.2.2 WRITING AN ARTICLE WITH HTML


At the end of the week to prove my understanding of HTML, I was told to write
an article on education in Nigeria using the html tags I’ve learnt so far. The
article I wrote cited the different divisions of Nigeria educational system
(Nursery Education/Crèche, Primary Education, Secondary Education and
Tertiary Education (B.S.C, P.H.D, and MASTER DEGREE PROGRAMMES),
as well as the subjects taken for each division and certifications, the webpage
was hosted on surge, it is available at http://undesirable-impulse.surge.sh/

2.3 CSS LEARNING (2 WEEKS)


After learning HTML for a week, we proceeded to learning CSS which is used for
applying styles to HTML documents. CSS stands for Cascading Style Sheet, it describes
how HTML elements are to be displayed on screen, and it styles the HTML document
and presents it to the users in such a way that it is eye catching.

6
HTML and CSS are not written in the same way, CSS does not use tags. The file
extension for CSS is “.css”, CSS is added to the HTML document in three (3) different
ways namely:

a) Inline CSS - This method is used to apply unique style for a single element, it is
done by adding the style attribute to the relevant element. An illustration is
seen below

Figure 2 styling with Inline CSS.

This method raises a lot of issues; it leaves the HTML document crowded, and there
is repetition of styles, and most importantly it prevents “separation of concerns”.
Separation of concerns simply involves sectioning different related document and
linking them up, rather than having them all in one place.

b) Embedded/Internal CSS - This method is used to define a unique style for a


single HTML document, it is done by adding the <style> tag inside the <head>
section. Selectors are placed inside the HTML element and these selectors are
called inside the style tag and used to style the HTML element. It is illustrated
below:

7
Figure 3 styling with Embedded / Internal CSS.

From Figure 3, on line 9-18, you can see the styles are specified in the <style> tag
using the selectors of the HTML element specified inside them as seen in line 22
and 23; “using_id” and “using_class” are the selectors.

Although this method does not lead to repetition of styles in each HTML element, it
is not so efficient when you have different HTML documents requiring the same
styles to be applied to them, hence the third type of styling.

c) External CSS - This method is used to define the styles for several HTML
documents, it uses an external style sheet stored with the .css extension and each
HTML document that requires the styling references the external style sheet file
inside the <link> element found inside the <head> section. It is illustrated below

8
Figure 4 styling with Embedded / Internal CSS (HTML document).

Figure 5 styling with Embedded / Internal CSS (CSS file).

From Figure 4, you can see the HTML document (index.html) and in line 9, the
<link> tag references the external style sheet shown in Figure 5; styles.css, which
uses the internal css method to style the HTML elements. This method of styling is
the most efficient, as one style sheet can be applied to numerous HTML documents

I also learnt about CSS fonts, font-family, text-decoration, color, background color,
padding, margin, border, and positions, display (block, inline, inline-block and flex),
and etc. properties and below are the different task we were given during this
period:

9
 CSS Shapes task: Using my knowledge of CSS width, height,
background color, and border properties, I was able to create different
shapes (circle, rectangle, oval, parallelogram, diamond, and triangle-up,
down, left and right). I also hosted the web page, it is available at
http://abject-pie.surge.sh/
 Cloning Legit.ng: This project was given to us to build our
understanding in positioning items with CSS display property; I used
CSS flex to arrange the elements on the webpage, and also hosted the
clone page, it is available at http://recondite-amount.surge.sh/.
 Learning about Node js, Surge and Medium: On this day, we installed
node js which was a dependency for using surge, surge is a hosting
platform, and it is discussed in subsequent chapters. Medium on the other
hand is a social publishing platform, were developers can write articles
about their projects.
 Cloning Netflix: Mr David asked that we pick any three web pages of
Netflix, clone them using HTML and CSS, and host them on surge. I
cloned the Netflix home (http://aiknetflixsignin.surge.sh/), sign in
(http://aiknetflixhome.surge.sh/), and forget password pages
(http://aiknetflixforgotpassword.surge.sh/).
 Git and Github Class: On this day, we were taught what git and GitHub
is all about, and how important we know how to use them as developers,
this is also discussed in subsequent chapters.

10
2.4 ANDELA PROPERTY- PRO PROJECT (2 WEEKS)
This project was an Andela Developer Challenge to build a product named
PropertyProLite, the web development interns were asked to clone any two pages with
HTML and CSS. I cloned the login page and the agent register page and hosted the
pages on surge, the URL for the pages are. By the end of the week, the head of the web
development team, Mr David put together an assessment to check our knowledge on
HTML; I scored 62% on the test.

2.5 JAVASCRIPT LEARNING (2 WEEKS)


JavaScript is the programming language of the web used to specify the behavior of
webpages; it is what makes a webpage dynamic i.e. interactive rather than just
informative. It was invented by Brendan Eich in 1995, it was developed for Netscape,
now known as Mozilla; Netscape submitted the language for standardization to the
ECMA (European Computer Manufacturer’s Association), but due to trademark
issues, the language was stucked with the awkward name ECMAScript, one of the
earliest version of the language was ECMAScript 3 (ES3) released in 1999, followed
by ES4 which was too ambitious and never released, it was renamed to ES5 released in
2009. The newest version of JavaScript is ES6 released in 2015.

JavaScript is a high-level, dynamic and a light weighted interpreted programming


language; the fastest interpreter for JavaScript still remains Google Chrome V8
Engine. It is both a client-side and server-side language; that is, it can be used to build
both the frontend and backend of a web application.

JavaScript files are saved with the “.js” file extension, and it can be added to an HTML
document in the same way CSS is added. Below are illustrations for adding JavaScript
to the HTML document:

a. Inline Scripting - This method is actually bad practice as the JavaScript code
is written directly into the html tags as shown below in Figure 6:

Figure 6 Inline Scripting.

b. Embedded / Internal Scripting - With embedded / internal and the external


Scripting methods, we have to consider the fact that JavaScript is not like
HTML and CSS, it is light weighted and at such the browser runs anything
inside the <script> tag or external js file before the HTML and CSS is loaded,
this is a big issue, as the scripts are actually written to modify HTML or CSS.

11
We can use some script loading strategies to avoid this. With the embedded /
internal Scripting method there are two (2) scripting strategies, and they are:
 Moving the <script> tag from the head section to the body section - The
<script> tag is placed right after the last HTML element in the body
section; this is illustrated below.

Figure 7 Embedded / Internal Scripting (Method A).

In Figure 7, the <script> tag is in the body section and starts in line 14, just after the
last HTML element in the body section.

 Using the DOMContentLoaded event listener - Here, the <script> tag


remains in the head section but the entire JavaScript code is embedded in
the DOMContentLoaded event handler, this way the HTML and CSS is
completely loaded before the js code loads; this is illustrated below.

12
Figure 8 Embedded / Internal Scripting (Method B).

In Figure 8, the <script> tag remains in the head section, but as seen above, in line
11, the entire js code is contained in the DOMContentLoaded event handler.

c. External Scripting - With the external scripting method, they are also two (2)
script loading strategies here, and they are:
 Using defer – Here, “defer” is placed right after the src for the external js
file as seen in Figure 9. With this, the script and the HTML and CSS files
(DOM content) loads side by side but the DOM content is loaded
completely before the external js file is executed. This is illustrated below:

13
Figure 9 External Scripting (Using defer).

In Figure 9 above, line 9 contains the <script> tag and, “defer” is placed right after
the src for the external js file.
 Using async – Here, “async” is placed right after the src for the external js
file as seen in Figure 10. With this, the script and the HTML and CSS files
(DOM content) loads side by side but once the external js file is completely
loaded, it is executed before the remaining DOM content is loaded. This is
illustrated below.

14
Figure 10 External Scripting (Using async).

In Figure 10 above, line 9 contains the <script> tag and, “async” is placed right after
the src for the external js file.
Figure 11 below shows the external js file, it is the same for the defer and async
loading strategies.

Figure 11 External Js File, script.js.

2.6 ALGORITHMS WITH JAVASCRIPT (1 WEEK)


We were given an introduction to algorithms, the analysis of algorithms (space and time
complexity), and the Big O notation (O (n), O (log n), O (n2), and O (n3)), searching and
sorting algorithms (Binary search, Bubble sort, Selection sort, and Insertion sort

15
algorithms). I implemented the binary search, bubble sort and selection sort algorithms
using JavaScript.

2.7 ALGORITHM CHALLENGE (1 WEEK)


We were given a document containing ten (10) algorithm tasks from Base Camp
Technical Task, The department head Mr David asked that we implement seven (7) out
ten (10) of the task using our JavaScript. The task I picked is listed below:

 Task 1 – Write a function that takes an array of positive integers, the


function should calculate the sum of all even and odd integers and return
an array containing the sums. The first index in the returned array should
hold the sum of the odd integers.
 Task 2 – Write a function that accepts a positive integer and determines
if it’s a prime number.
 Task 3 – Write a function that accepts an array of positive integers and
returns an array of all prime numbers from the given array.
 Task 6 – Write a function that takes two parameters, an array and some
number, the function should determine whether any three numbers in the
array add up to the number.
 Task 7 – Write a function that takes an array of positive integers and
calculates the standard deviation of the numbers, the function should
return the standard deviation.
 Task 8 – Write a method to count the number of 3s that appear in the
numbers between 0 and n (inclusive). It should return an object
containing the count of the number of 3s that appear and an array of the
numbers that have 3s in them.
 Task 9 – Write a function that takes a string and determines if the string
is a palindrome (a word, number, phrase, or other sequence of characters
which reads the same backward as forward) without using any existing
function or method.

On completing the challenged, I submitted to the department head and he advised I


learn ES6 as I used the ES5 syntax for the challenge.

2.8 ES6 LEARNING (1 WEEK)


Based on the recommendation of my department head concerning the algorithm
challenge, I began learning ES6, it’s the current version of JavaScript with new features,
I learnt about the const and let declaration, hoisting, arrow functions, JavaScript
closures, class, constructor method, and the “this” object, string, array, date, numbers
and new global methods.

16
2.9 GROUP PROJECT (2 WEEKS)
The head of the web department, Mr David, shared us into groups, each group was to
come up with a project idea and then build the project together using HTML, CSS and
JavaScript. The project must make use of JavaScript local storage or sessional storage.
After much deliberation, my group decided to make a website called “AFRICANA”,
it’s a recipe website for popular Nigerian dishes, where users will get to see recipes
from the admins and they can as well add their own recipes.

I designed the home page, login page, and sign up pages for the website. We were
unable to complete the website on time, so we resulted to submitting a to-do list website
developed by one of the group’s member.

2.10 NODE JS LEARNING (3 WEEKS)


Before Node js, Live Wire was created in 1996, it was an attempt to get JavaScript to
perform some server-side (backend) functionalities but it didn’t work. In 2008, the
Google Chrome V8 engine, then in 2009 Node js was created by Ryan Dahl; it is not a
programming language, it is a JavaScript Runtime, it enables JavaScript runs outside a
browser. Node js was built on the Google Chrome V8 engine; it is JavaScript on the
server-side, so as a developer you can be a full-stack (both a front-end and backend
developer) with one language (JavaScript).

Node Js Internals
Node js is basically made up of two technologies, the “Google Chrome V8 engine” and
libuv. The former is the fastest interpreter for JavaScript, it handles running the script,
while the latter is a multi-platform C/C++ library that provides support for asynchronous
I/O.

Figure 12 Node Js Internals.

17
The Node Js System
The Node Js System is just a more complex and detailed version of the Node Js
Internals. It includes the following:
 JavaScript Engine - This is the Google Chrome V8 engine that handles
running the script.
 Node Js API - This is a tool-kit that acts as an intermediary between
C/C++ code and the JavaScript engine. It permits C/C++ code to access,
create and manipulate JavaScript objects as though it were JavaScript
code.
 Node Js Bindings - This enables JavaScript code to call functionalities
implemented in C/C++; it acts as an intermediary between the JavaScript
code and Libuv.
 Libuv – this is the actual implementation of the API’s. It deals with the
asynchronous I/O tasks written in C/C++, it also delegates tasks to the
operating system.
All these are illustrated in Fig 1.8 below:

Figure 13 The Node Js System.

2.11 EXPRESS JS (4 WEEKS)


Node js has built in modules from third parties called packages available in Node
Package Manager (NPM). One of which is the http modules used for creating web
servers, it is far more difficult doing it this better with framework as it won’t just make
it easier but also add more functionalities to our server. Node provides us with some
framework like Next js, Koa, Loop back; but my preference is Express js, it was
created in 2010, managed by Strong Loop, with it you can build something fairly
minimal that can be expanded with many extra features as needed using Middleware.

18
Middleware are special functions run in between the request coming into the server and
the response going out of the server, for example, if we wish to know how long it takes
for a request to be completed. To register our middleware with express, we use:

app . use ¿
functionalities goes here
}¿
The “req” is the request parameter while “res” is the response parameter. The app.use
has a third parameter, “next”; that controls the flow of the middleware. The middleware
end point which is the last piece of the middleware that sends the response back to the
top uses the app.METHOD. All of this is illustrated below:

Figure 14 Express Js, Middleware.

Another thing to note in Fig 2.1 is that the next parameter calls the next() function
which in turn calls the Middleware 2, this process continues like a downstream, that is
one middleware flows into the next until it gets to the endpoint.

19
2.12 TEST ON NODE JS AND EXPRESS JS
The head of the web development team, Mr David organized a quiz on express js using
Google forms, during this week I revised for the test and at the end of the day I scored
75% on the test.

2.13 BLOGGER PROJECT (3 WEEKS)


This project was our last project under the head of the web development team, Mr
David, we were asked to build a blog website that allows users to share their thoughts
on various topics. Below are some of the roles I played during the course of the project:

 I picked out the colors, fonts, and design layout for the front end of the
application
 I created the git hub repository we used for the project
 I wrote the content and created the FAQ section for the home page
 I built the following pages using HTML, CSS, Vanilla Js, and Chart Js:
Home page, Login page for users, Login page for the admin, Sign Up page,
User dashboard Pages (feeds, user stories, bookmarks, followers, account
summary, sign out, post and schedule post pages, like, comment, and reply
sections)
 I helped in creating the layout for the backend application using MVC model
 Using a JavaScript library, Chart Js, I was able to use polar charts, doughnut
charts, and line graphs to visualize the data in the account summary for the
user’s consumption.
 I created a scheduler that users can schedule a post for a particular day at a
certain time.
 I enabled dark mode and increase font mode across all pages.
 I created an edit profile page where users can edit their profile picture, their
name and about.
 I hosted the entire front-end project on surge.

20
CHAPTER THREE

DISCUSSION, ANALYSIS AND EVALUATION OF TOOLS


During the course of learning and implementation, I got acquitted to some tools that
helped me in building and launching

3.1 VISUAL STUDIO CODE


Visual Studio Code usually referred to as VS Code, is a source-code editor made by
Microsoft, it was released in April 29, 2015. It enables programmers to write and edit
their source-code while providing features that include support for debugging, syntax
highlighting, intelligent code completion, snippets, code refactoring, and embedded Git.
Users can change theme, keyboard shortcuts, preferences, and install extensions that add
functionality.

Although there are a lot of text editors, VS Code is my preferred choice, it is easy to
use, and it provides some great extensions, one of which I always use is “live server”,
which is a local development server with live reload, that is developers don’t have to
refresh their pages any time they make changes to their page while building. VS Code
also has built in support for Git and Github.

3.2 GIT AND GITHUB


Git is the most widely used version control system; in that it helps developers keep track
of the changes in their codes / files over time. With Git, it we can revert to various states
of our files, it’s like a travelling machine. We can also make copy of our files, make
changes to just that copy and then merge these changes to the original copy. Also, with
Git, a team of developers can be working together on a project, each developer handling
a particular aspect of the project, and at the end they merge their parts together. These
projects are kept in a place known as a repository; it’s like a store room for the projects.
Github on the other hand is online hosting services for Git repositories, as all the
repositories created with Git are local in nature, meaning that they are only accessible
from the creator’s PC. Github lets us store our Git repositories on their online platform,
so that it can be accessed by your team mates anywhere in the world. So Git and Github
are collaboration technologies as it enables a group of developers work together. There
are other platforms that can be used with Git rather than the most popular Github like
Bitbucket, SourceForge, TaraVault, Gitbucket, etc. I interacted with Git and Github
using the Git bash command line, here are some of my frequently used commands.
 git init - This command is the first command, it initializes your project as a local
repository, without doing this, and you cannot run git commands on your
project.
 git configure -This powerful command, it is used to set Git configuration values
on a global or local project level (for all projects or just a project). It helps us to
interact with the Git configuration file; which can be used to customize how it
(Git) works.

21
For example, the: git config−−global user . name “ name” use to set up your
user name in Git. This is required if you want to connect with a remote
repository from your local repository, like making commits that will be pushed
to your remote repository.
 git add . - This command adds any new changes made on your project to the
staging area; it tells Git you’d like to include an update to your project in a new
commit.
 git commit−m“the commit message goes here ”- This creates a commit with a
passed commit message. It takes all the changes added by the git add . and
commits them to the local repository.
 git push “ url” - This is used to upload the content of a local repository to a
remote repository. The url is the https url found on our remote repository, I used
Github as my remote repository.
 git pull “ url” - This command is used to fetch and download content from a
remote repository such as Github into your local repository.

3.3 MEDIUM
Medium is a social publishing platform founded by EV Williams (a blogger and a
Twitter co-founder), and first launched in 2012. It is open to all and it’s a home of
diverse array of stories, ideas and perspective. During my industrial attachment, I was
introduced to medium and asked to write articles for certain projects we were giving; it
is a good way to get the word out there to recruiters, tech companies that you are an
active member of the tech community, rather than just concluding as project and
keeping it to yourself. Although medium was only social publishing platform I used
during my industrial attachment, I was also told to make use of some social media
platforms like Twitter and LinkedIn to build our tech profile and also write stories
about my completed projects. I only wrote two articles for two of the personal projects I
did during my attachment, this is illustrated below:

Figure 15 some of my Medium articles.

22
3.4 SURGE
Surge is a hosting platform that allows front end developers to publish their static web
pages online, so that they can be viewed by anyone connected to the internet. It is free
and easy to use, all the projects I completed during the course of my industrial training
where deployed using surge. Below are the steps I followed to deploy my projects on
surge:

1. I installed Node js, as surge is dependent on Node js.


2. I opened windows command line and ran the command:

“npm install−global surge”

This command installs surge globally, that is surge can access your entire computer.

3. I navigate to the directory containing my project folder using the command:

“cd < directory path> ¿”

4. I ran the command: “ surge”; since it was my first time using surge, it asked that
I register with my email and also create a password for my account before
deploying my project to the url of my choice, the url usually ends with
“.surge.sh”.
5. It was difficult for me to keep track of the domain names of all the project I’ve
launched, to solve this problem, there is a command that gives you a list of all
domain names, which is:
“ surge list ”

Figure 16 list of websites I hosted using surge.

Figure 16 shows a list of all the domain names of the pages I hosted with surge.

23
CHAPTER FOUR

4.1 CONCLUSION
The purpose of this report was to show the in-depth exposure that one can get when
he/she undergoes the industrial training process because not everything can be learned
in the classroom. The industrial training scheme gives the student real life industry
experience so that upon graduation, the student is well equipped and ready to contribute
towards national development.

4.2 LIMITATIONS
1.) Sourcing for Establishment for Attachment: This was the first and major
issue, as my internship was done in Edo State and Edo State still has a long way
to go in terms of technological advancement; it was hectic looking for an ICT –
based industry for my attachment.

2.) Transportation: This was another major issue, as the distance from my
residence to my establishment was far; I had to source for transport myself
seeing that the internship was unpaid and without remuneration.

3.) Internet Access: Initially it wasn’t an issue, there was constant internet access,
but it got bad, seeing that maintenance and repairs in government establishments
are very slow, I had to result to using my personal data for the remaining period
of the attachment.

4.) Electricity: The fact that it was a government establishment and there was still
some light issues was very discouraging; initially when the internship started
there was no issue with light, but after few weeks, electricity became a problem,
some days we couldn’t work and had to go back home.

4.3 RECOMMENDATIONS
1. The Government should be more involved in sourcing for establishment for the
SIWES students, for instance, all government establishment should accept
SIWES students.
2. There should be a comprehensive directory of all the establishments that accepts
SIWES students free of charge, it will help facilitate placement for SIWES
students in industry.
3. The Federal Government should also make adequate provision in the annual
budget for proper funding of SIWES in view of the potential of the program to
contribute to enhancing the quality of the skills available to the country.

24
4. The ITF should ensure to pay students their monthly allowance on time; this
would help keep the SIWES student motivated.
5. The IT supervisors should always visit students monthly in their various places
of attachment.
6. I recommend that the Federal Government should be actively involved in the
rehabilitation of the Nigerian Education System, to ensure that what students are
taught in the classrooms correlates with what is been required in the industry.

25

You might also like