Professional Documents
Culture Documents
UNIVERSITY OF BENIN
DEPARTMENT OF COMPUTER SCIENCE
BY
OKON FREANMI
PSC1603911
AUGUST, 2021.
UNIVERSITY OF BENIN
DEPARTMENT OF COMPUTER SCIENCE
INTERNSHIP REPORT
STUDENT INDUSTRIAL WORK EXPERIENCE SCHEME
(SIWES)
SUPERVISED BY:
SAMUEL ADEBISI (MR)
AT
AUGUST, 2021.
DECLARATION
requirement not for any other purpose. It might not be used with the interest of
___________________________
PSC1603911
CERTIFICATION
PSC1603911
(STUDENT)
First and foremost, I want to thank the Almighty God who gave me an
Internship with a great company and saw me throughout the Internship. I want to
appreciate the Front end developer at Uleval technology for their mentorship and
support given to me throughout the period of my stay. I want to say a big thank
you to Mr Stanley, Mr Adebisi, this report wouldn’t have been completed if it not
for their timely advice. I also want to appreciate my colleagues at Uleval.
ABSTRACT
The report starts out with a look at the company Uleval, its history, organization
structure, policies and products and services.
Chapter three then goes on to give a detailed account of the tasks I actually
carried out as an intern; tasks which include declarative languages like HTML,CSS
to build web apps and learning about adding interaction to a website by learning
JavaScript. Also learnt how to create a Database for my web app and to connect
the database to a server-side-language like using PHP. It also gives a detailed
account of the steps and workflows involved in carrying out this tasks along with
descriptive diagrams where necessary.
Chapter four and five analyses the experience gained as an intern into: knowledge
gained, Soft skills and communication skills to reflect on professional identity and
practice in work places, as well as the nature and quality of job or service. It also
discusses the various problems encountered by me in carrying out various tasks
and the solutions that were proffered.
1.0 INTRODUCTION
Duration for the SIWES is One year for Polytechnics, Six month for Colleges of
Education, and Six months for the Universities.
1.5 BENEFITS OF SIWES:
Experts identified industrial experience as necessity for proper job preparation.
This is because productivity is enhanced by experience graduate or new entrance
into the world of work really needs and early exposure to the value and skills of
the industry. Therefore, without appropriate skills and experiences young
graduates are not properly trained on work, norms and role behavior among
others, these components will ensure success at the job place.
The Major Benefit for students who participate in his Industrial training is the
Skills they acquire. These skills remains part and parcel of these students that
they can’t be taken away from them. This is because the knowledge and skills
acquired through training are internalized and become relevant when required to
perform jobs or functions. This program provides students with enabling
environment where students can develop and enhance personal attributes such
as critical thinking, creativity, initiative, resourcefulness, leadership, time
management, presentation skills and interpersonal skills, amongst others.
1.6 LIMITATIONS OF SIWES:
As with every man desired scheme which is bound to have imperfections, so is
SIWES, though the scheme has been of more success than a failure since its
inception, a few problems ensure that the SIWES scheme is denied the ability to
reach its full potential. These few limitations are:
INTEGRITY: Uleval Technology remains true to its founding values of honesty and
integrity. High official standards and professional culture characterize all their
activities and their clients have come to expect nothing less.
REASONABLE COST: Due to lower operating costs and the availability of highly
qualified individuals with a proven ability in Information Technology, Nigeria has
emerged as a global leader in the areas of research and technology. This has
resulted in a price to productivity ratio that allows you a very good return on
investment.
2.3 COMPANY ORGANOGRAM
DIRECTOR
PERSONNEL
MANAGER
HEAD OF CREATIVE
HEAD OF HUMAN
DEPARTMENT
DEVELOPMENT RESOURCE
DEPARTMENT MANAGER
CHAPTER THREE
INDUSTRIAL EXPERIENCE
Web developers make use of code editors such as Visual Studio Code to write
down their programs and the run it on a web browser using a local server (mostly
for testing). When a web developer is done with a site he/she would have to
purchase a domain name and hosting plan where he uploads the website’s
documentation to. Once the website is uploaded to a hosting platform the user
can type in the domain name (URL) on any web browser and access the website.
Domain name is the address of your website that people type in the browser URL
bar to visit your website. In simple terms, if your website was a house, then your
domain name will be its address.
When you enter a domain name in your web browser, it first sends a request to a
global network of servers that form the Domain Name System (DNS).
These servers then look up for the name servers associated with the domain and
forward the request to those name servers. For example, if your website is hosted
on Blue host, then its name server information will be like this:
ns1.bluehost.com
ns2.bluehost.com
These name servers are computers managed by your hosting company. Your
hosting company will forward your request to the computer where your website
is stored. This computer is called a web server. It has special software installed
(Apache, Nginx are two popular web server software). The web server now
fetches the web page and pieces of information associated with it. Finally, it then
sends this data back to the browser.
One's website is placed on the same server as many other sites, ranging from a
few sites to hundreds of websites. Typically, all domains may share a common
pool of server resources, such as RAM and the CPU. The features available with
this type of service can be quite basic and not flexible in terms of software and
updates. Resellers often sell shared web hosting and web companies often have
reseller accounts to provide hosting for clients.
Allows clients to become web hosts themselves. Resellers could function, for
individual domains, under any combination of these listed types of hosting,
depending on who they are affiliated with as a reseller. Resellers' accounts may
vary tremendously in size: they may have their own virtual dedicated server to a
collocated server. Many resellers provide a nearly identical service to their
provider's shared hosting plan and provide the technical support themselves.
The user gets his or her own Web server and gains full control over it (user
has root access for Linux/administrator access for Windows); however, the user
typically does not own the server. One type of dedicated hosting is self-managed
or unmanaged. This is usually the least expensive for dedicated plans. The user
has full administrative access to the server, which means the client is responsible
for the security and maintenance of his own dedicated server.
The user gets his or her own Web server but is not allowed full control over it
(user is denied root access for Linux/administrator access for Windows); however,
they are allowed to manage their data via FTP or other remote management
tools. The user is disallowed full control so that the provider can guarantee quality
of service by not allowing the user to modify the server or potentially create
configuration problems. The user typically does not own the server. The server is
leased to the client.
Cloud hosting
This is a new type of hosting platform that allows customers powerful, scalable
and reliable hosting based on clustered load-balanced servers and utility billing. A
cloud hosted website may be more reliable than alternatives since other
computers in the cloud can compensate when a single piece of hardware goes
down. Also, local power disruptions or even natural disasters are less problematic
for cloud hosted sites, as cloud hosting is decentralized. Cloud hosting also allows
providers to charge users only for resources consumed by the user, rather than a
flat fee for the amount the user expects they will use, or a fixed cost upfront
hardware investment. Alternatively, the lack of centralization may give users less
control on where their data is located which could be a problem for users
with data security or privacy concerns as per GDPR guidelines. Cloud hosting users
can request additional resources on-demand such as only during periods of peak
traffic, while offloading IT management to the cloud hosting service.
The objective of designing a site is to ensure that when the users open up the
site they see the information in a format that is easy to read and relevant. This
is further complicated by the fact that users now use a large variety of devices
with varying screen sizes and resolutions thus forcing the designer to take into
consideration these aspects when designing the site. They need to ensure that
their site comes up correctly in different browsers (cross-browser), different
operating systems (cross-platform) and different devices (cross-device), which
requires careful planning on the side of the developer. A front-end developer
architects and develops websites and applications using web technologies
(i.e., HTML, CSS, DOM, and JavaScript), which run on the Open Web Platform or
act as compilation input for non-web platform environments (i.e., React Native).
HTML stands for Hyper Text Markup Language. HTML elements are the building
blocks of HTML pages. It is the standard language for documents designed to be
displayed on a Web browser. It can be written on any text editor such as
Notepad, Visual Studio Code, and Sublime Text etc. HTML is a very easy
language to write and understand, HTML elements are represented by <> tags
which are used to enclose normal texts or information that is to be displayed on
the web browser. Some examples of these tags are <html></html>,
<body></body>, <title></title> and so much more. All tags can have attributes,
attributes define additional characteristics or properties of the element such as
width and height of an image. For instance, an anchor tag <a></a> which is used
for defining links in html must always come with the href attribute, the value of
the href attributes contains the URL (Uniform Resource Locator) of where you
want that link to go to. E.g.
The most important attributes in html are ID and CLASS. Classes can be assigned
to more than one elements while IDs cannot. These two attributes are what is
used to style an element in CSS
CSS stands for Cascading Style Sheet. It is used to design how the HTML is
displayed. Without CSS, the website will be ugly and disorganized. In CSS we use
selectors to assign styling to an html element. For classes, “.class name” is used
for styling elements with the Class attribute while for elements with ID attribute
“#ID name” is used. Classes or ID’s can take any name and can be called
anywhere in CSS. You can also style elements by just using their element for
example say you want to style a <h4></h4> element, this is how your CSS would
like;
h4{
color: red;
}
Notice the curly braces, semicolon and the colon, they are very important and
must always be used when styling an element. There is a CSS framework called
BOOTSTRAP. Bootstrap is a free and open-source CSS framework directed at
responsive, mobile-first front-end web development. It contains CSS- and
JavaScript-based design templates for typography, forms, buttons, navigation, and
other interface components (Wikipedia). It helps developers in styling html pages
easily and faster.
Backend developers typically work in groups or with a team. Large teams include
both backend and frontend developers where both the developers collaborate to
develop viable products. Backend developers collaborate with frontend
developers, principal architects, product managers, and testers to contribute their
part and develop a product. Backend developers use various kinds of tools,
languages, and frameworks to accomplish these tasks. To do all this, they use a
variety of server-side languages, including Java, .NET, PHP, Ruby, Node.JS, and
Java. They also use tools like MySQL, Mongo DB, Oracle, and SQL server to create,
read, update or delete data and serve it back to the client-side or the frontend of
the application.
3.0.6 PHP
PHP stands for Hypertext Preprocessor. It originally stood for Personal Home
Page. This was the main language we used at Uleval Technology for backend.
The senior engineer used both node and PHP.
PHP has various types of frameworks with inbuilt functions which makes coding
PHP easier, examples of this frameworks are Code Igniter and Laravel.
3.1 WORDPRESS
WordPress is a free content management system written in PHP and used with
MySQL database (or Maria DB). WordPress was first designed for publishing
blog sites but as time went it became more than just a platform for creating
blogs. Now WordPress can be used to create static websites, Ecommerce
websites, school management systems and lot more. WordPress makes use of a
Plugin architecture and a Template system referred to themes.
WordPress' plugin architecture allows users to extend the features and
functionality of a website or blog examples of a plugin is Elementor, Elementor
Website builder allows WordPress users to create and edit websites by employing
the drag and drop technique, with a built-in responsive mode. Elementor comes
with different interesting features, it has a feature that gives users the ability to
add custom CSS or custom HTML to their WordPress site. WordPress also allow
users create custom plugins for features that are not available in the plugin
market. Since WordPress was created with PHP the plugins can only be written in
PHP.
WordPress has another feature which is a template system called themes.
Themes is a feature of WordPress which allows users to change the appearance of
a website with just few click. It can come with menus, pages and even custom
contents. In summary Themes change appearance of a WordPress site while
plugins extends functionality.
WordPress uses a MySQL database system which comes with XAMPP. XAMPP is
an abbreviation for cross-platform, Apache, MySQL, PHP and Perl, and it allows
you build WordPress sites offline using the apache server that comes with it.
Without XAMPP you will not be able to run WordPress. Below is a picture of a
Figure 5
4 Pic
PIC of
of axampp
xamppserver
server
XAMPP server
CHAPTER FOUR
NO CODE APPS/VISUAL PROGRAMMING
Bubble.is would be my major focus in this report because that what I was
assigned to at Uleval Technology. I carried out various projects with bubble of
which is stated in chapter 5.
4.0.2 BUBBLE.io
Bubble is a visual programming language, a no-code development platform and
an application platform as a service, developed by Bubble Group that enables
non-technical people to build web applications without needing to type code
(Wikipedia).
Bubble interface has many tools with different functions. First a design section
which has many options for designing applications, it consists of Visual elements
(which contains elements for adding text, buttons, images, shapes etc. to your
application), Containers (groups, repeating groups, popups etc.), Input Forms,
Reusable elements and templates. The next section in bubble is the Workflow.
Bubble workflows are used to program Bubble applications so that your
application has completely custom functionality. Workflows are used to define
what happens when users interact with your application (e.g., workflows can save
information that the User just typed, save User’s preferences, save information
about a User, show a popup, show an alert, send an email, charge a User’s credit
card, record an analytics event, connect with thousands of external APIs, and
more). A workflow consists of two parts: an event, and 1 or more actions. Events
are the part of workflows which tell Bubble when certain workflow actions should
be run. When an event is true, Bubble will run that event’s actions. In contrast,
when an event does not evaluate to be true, Bubble will not run that event’s
actions. In other words, workflows are similar to If then statements. The actions
are what the app does.
After the workflow we have the Data section. This is where data types, fields and
data structures as a whole is created in bubble. The next section is Styles, a bit
similar to CSS bubble styles allows users to create styling, save them and reuse
them when designing your application or project. Other sections in the toolbar are
Plugins, Settings and logs. In the next page you would see a picture of the bubble
interface.
Figure 5 Bubble interface
Visual programming is a type of programming language that lets humans describe
processes using illustration. At uleval technology our many focus was to use visual
programming to introduce kids to programming as it is very easy to learn and
understand. What we used was a visual programming software called SCRATCH.
Figure 9
6 Scratch interface
8
when it comes to creating MVPs (Most Viable Products).
The Rayon line project was the first task I was assigned to at Uleval technology. It
was a collective project which was used to test our basic knowledge of HTML and
CSS. We were told to use any CSS framework for the project. Ray Online is a
blogging site that had already been created by our supervisor, he sent us a screen
shot of the UI and told us to recreate it with code
To achieve this project I used was Visual Studio Code as my text editor, HTML and
I chose BOOTSTRAP.css as my CSS framework. Below is the screenshot of the blog
Figure 11
7 Rayoo oline project
Figure 13
8 Visual studio code
My Rayoo online site
Skills Acquired: Learnt how to design and build a static website with bubble.io.
Understood how to covert designs into to full working prototypes on bubble
Challenges: The major challenge of this project was that we were told to deliver it
in a day. Although I have worked on smaller projects with bubble, I had not built a
website with multiple pages but we overcame.
Figure 16
10 Bubble interface
The tinder clone I built was an app where a logged in user sees the profile of
multiple users and can swipe left or right, Left for people the user dislikes and
right for people he likes. If the user likes a person that was liked before then a
match is created.
Figure 11
Code Igniter is a powerful PHP framework with a very small footprint, built for
developers who need a simple and elegant toolkit to create full-featured web.
Like every other framework it uses MVC pattern. MVC stands for Model View
Controller. It is a pattern in software design commonly used to implement user
interfaces, data, and controlling logic. It uses OOP but is very easy to understand
because it had inbuilt functions which solved problems that would take long to do
in PHP with just few clicks. The language we used for our database was MySQL
and phpmyadmin was used to create the database.
In carrying out this project I first had to create a database using phpmyadmin that
comes with xampp. Then I created a model in code igniter and linked the model
to my database, once this was done we went on to implement PHP codes that
would perform all the functions needed since we had already designed the
frontend of the site earlier.
Skills Acquired: I learnt how to use a PHP frame work and how to create a
database connection with MySQL.
Challenges: It was tuff trying to understand how to use a framework for the first
time
Figure 12
Image of my Todo app
Skills Acquired: Learnt how to use Elementor. Learnt how to install WordPress on
a life server (not local host).
Challenge: The only problem I faced was that WordPress is not that flexible so I
had to us custom HTML to achieve some design ideas.
CHAPTER SIX
SUMMARY (CONCLUSION & RECOMMENDATIONS)
6.0 CONCLUSION
In conclusion I had a great time at Uleval technology and was able to acquire
many important skills not just computer engineering skills but also inter-personal
skills, how to work with and organization and much more. I had the opportunity
to apply the theoretical knowledge acquired from school in real life problems. My
training here has given me a broader view to the importance and relevance of
one of the fields in the department of Computer Engineering, web development.
environment, enable them to put into practice what they have learnt in class,
6.1 RECOMMENDATIONS
In view of the benefits of SIWES program, it is important that it is sustained
by Federal Government through Industrial Training Fund (ITF) as it exposes the
student to work tools, facilities and equipment that may not be available in
respective institutions in relation to course of study. To this end, I recommend
that the following points should be implemented:
Schools should provide a place of attachment for students as its hard for
them to do it on their own.
There should be proper supervision of students concerned by both ITF
officials and the Institution based supervisors at least once a month.
Allowances should be paid to the students during their program just like
NYSC and not after. This would help the students to handle some financial
problems during their training course.
The companies should put in place all necessary facilities needed to
enhance the knowledge of students in Industrial attachment.
There should be alliance between ITF and companies for proper placement
of students.
REFERENCE
Wikipedia
Uleval Company Profile
https://en.wikipedia.org/wiki/Web_development
https://frontendmasters.com/books/front-end-handbook/2018/what-is-a-
FD.html
https://en.wikipedia.org/wiki/Front-end_web_development
https://www.wpbeginner.com/beginners-guide/beginners-guide-what-is-a-
domain-name-and-how-do-domains-work/
https://www.w3schools.com/whatis/.asp
https://www.hackreactor.com/blog
https://www.interviewbit.com/blog/backend-developer-skills
https://en.wikipedia.org/wiki/PHP
https://en.wikipedia.org/wiki/No-code_development_platform
My intuition. LOL