Professional Documents
Culture Documents
(REPORT) Hasyirin Fakhriy Haron 2017262362
(REPORT) Hasyirin Fakhriy Haron 2017262362
(REPORT) Hasyirin Fakhriy Haron 2017262362
at
1
at
MARCH2020
11
Approved by:
Name
Department
Signature
Date
iii
ACKNOWLEDGEMENT
Alhamdullilah, praise and thanks to Allah for His Almighty and His utmost
blessings, I was able to finish this internship report within deadline. Firstly, I would
like to give my special thinks to my internship supervisor, Encik Mulyady
Ameruddin Bin Mohd Nor@Aziz, and company manager, Encik Yahyal Haq Bin
Muslan, for their commitment and guidance starting from the beginning of the
project until end of internship. They never fail to provide information related to my
project, and make recommendations regarding on the progress of my work. In
addition, they alway support me to do the best for the project. Without their guidance
and knowledge, I may not be able to complete the given project in time.
Finally, I would like to give my gratitude to my dearest friends, and other staffs at
internship for helping me in generating the ideas for this project and kept boosting
my enthusiasm until my project and internship is completed on time. Lots of thanks
to all the individuals who had given me encouragement, either directly or indirectly.
iv
Table of Contents
ACKNOWLEDGEMENT........................................................................................iv
1.1 Introduction....................................................................................................4
1.6 Conclusion.....................................................................................................7
2.1 Introduction....................................................................................................8
3.1 Introduction..................................................................................................12
3.4.2 OneSignal.............................................................................................16
5.1 Recommendation.........................................................................................35
5.2 Conclusion...................................................................................................36
6 REFERENCES....................................................................................................37
2
LIST OF FIGURES
3
1 CHAPTER ONE: INTRODUCTION
1.1 Introduction
This industrial training was completed up for two months starting from 13 rd January
2020 until 08th March 2020. The day of the student reporting for duty was based on
the given date by the organization supervisor. So, Mysoftcare Solution Sdn Bhd,
Kuala Terengganu, Terengganu has been the location for me to complete my training
in IT Field.
4
1.2 Industrial Training Objectives
The training industry specific objectives are to give an opportunity for students to:
Gain experiences from the industry that are suitable with the programme taken.
Understand and cultivate the sense of responsibility in the real world.
Appreciate the professional ethics value.
Sharpen the appropriate soft skills at the workplace environment.
Evaluate the career ability, knowledge and student’s self-confidence.
Enhance the students’ abilities to be more competitive.
Cultivate and develop entrepreneurship skills through exposure to the reality
and career opportunities.
Establish professional relationships within the industry.
Train and improve the ability to write a good report.
5
1.3 Objective of Industrial Training Report
The student who has finished the industrial training in the given period of time will
prepare this report. Student should provide a complete report according to the
standards provided by MARA University of Technology (UiTM). It is to evaluate
the effectiveness of their skills during the given period.
This report also will be evidence for the students who were undergoing industrial
training and as a guideline for the future use. On the other hands, this report also will
train the students to obey and follow the rules and regulations in their daily life.
viii. Students will be participated in team work from the different ages that
need to be mature and open-minded in the discussion of work done.
6
1.5 Scope of Industrial Training
Agreement between university authorities and organization host (i.e. the organization
that accepts the student for industrial training) are required as for determination of
specific tasks for the student to undergo industrial training accordingly. The scope of
the tasks has to offer chances for the students to apply their knowledge and skills
learnt and able to gain display of working behaviour in their majors respectively.
1.6 Conclusion
In conclusion, industrial training aims to evaluate the students’ knowledge, skills and
experience in a specific profession of their respective fields and at the same time
produce graduates who are credible, creative, and proficient and work well during
their work environment.
The scope and the objectives help the students to learn more about the Industrial
training that would help the students to understand more upon their objectives and
targets on what the experience or environment should have been for the students to
make it easier for the students to realize on what elements and criteria that they
should have been focusing. This is due to the regulation that helps the students to
maintain a good relationship with the company itself that can helps the company to
give better accommodation and practical training for the trainee.
The learning process itself will be compiled in the report to be submitted. The report
will contain the information that supervisor will give their recommendations and
criticisms upon two months periods of the training. The report has to fulfil certain
scopes for the completion.
7
2 CHAPTER TWO: ORGANIZATION BACKGROUND
2.1 Introduction
8
2.2 Organization Profile
Local Skills & Talent – The company consider the technical expertise of their
engineers and architects their biggest assets. They continue to make investments to
develop their technical skills and require their staff of professinoals to certify in the
cutting-edge technologies. They encourage one’s to leverage their skills and consider
their team as an extension of one’s team.
9
2.3 Organization Vision and Mission
2.3.1 Organization Vision
Enables hardware and software technologies for its clients to gain the highest strategic,
financial and organizational advantages.
Terenugganu
Email : www.mysoftcare.com
10
2.5 Organizational Structure and Hierarchy
Manager
Mulyady Ameruddin Bin Mohd Solihah Binti Mohd Fatin Athirah Binti Nasoha
Nor@Aziz
Internship Student
Figure 2.2: Organizational Structure of Mysoftcare Solution Sdn. Bhd.
Hasyirin Fakhriy Bin
Haron
11
3 CHAPTER THREE: TASKS REPORT
3.1 Introduction
During the internship, I was given a project to develop a mobile application for
Urusetia Penerangan Darul Iman (UPDI). The mobile application is to complement
their news website which is another project handled by one of Mysoftcare Solution
Sdn. Bhd.’s staff. TRDI was given as the name of the mobile application. I was
tasked to fully handle the mobile application and making API to connect the
application to existing database. The requirements were that I use Flutter framework
for making the mobile application and Laravel PHP Framework for the API creation.
At the end of my internship, I was invited to join another project involving a much
bigger organization and product. The client is Terengganu Government Secretary
(SUK Terengganu) and the project is given a title of Terengganu Payment Gateway
or “TPay”.
12
3.3 TRDI API
The API is also set up with a caching system called Memcached to reduce the
number of disks reads as Memcached caches data in the memory for future api calls.
It is very crucial as to prevent server from being under too much work and pressure
which could lead to crash or unresponsiveness. The memcached is also set up to re-
cache as news are published on the website, so users will always get up-to-date data.
13
3.3.1 Laravel Framework
Laravel is a free, open-source PHP web framework, created by Taylor Otwell and
intended for the development of web applications following the model–view–
controller (MVC) architectural pattern and based on Symfony. Some of the features
of Laravel are a modular packaging system with a dedicated dependency manager,
different ways for accessing relational databases, utilities that aid in application
deployment and maintenance, and its orientation toward syntactic sugar.
15
3.4.1 Flutter Framework
3.4.2 OneSignal
Founded in 2011 and based in San Mateo, California, USA, OneSignal is a company
that provides push notification services for both web and mobile developers. Push
notifications are a communication channel between users and apps. It allows the
apps to reach out to users with short messages in order to trigger some actions or
interests from them. For this reason, push notifications are used by nearly every
major apps for transaction and re-engagement. OneSignal claims to be the market
leader in providing push notification services.
16
Figure 3.5: Push notification of the application
When the user clicks on the notification, it will open up the details of the post. For
example, if it is an article, it will open up the Articles Detail Screen which is
mentioned later in the report.
The application consists of six (6) major screens which five of them are inside the
main screen’s tab list. The screens inside tab bars are Article Screen, Video Screen,
Event Screen, Audio Screen and also Magazine Screen. The only screen that is not
listed in the tab list is Album Screen. There are also screens to view the details of a
post, be it an article or a video, and a screen to view pdf.
17
3.5.1 Article Screen - Homepage
When the application is launched, user will be shown the main screen with tabs
which the first tab being Article Screen. As shown in Figure 3.5, the article screen
consists of multiple sections. The first section is an image with a green gradient on
top which is one of the pinned posts. The second section is a list of pinned posts
except for the first one, given if there are any. The third section is a dynamic section
where its contents can be manipulated via API. To further explain, the contents are a
list of categories of which the client wishes to display on the screen. Here it shows
Latest category and others below it.
18
Figure 3.7: Continuation of Article Screen
Considering the client is quite undecided on the layout, color, and positioning of the
image, title, and date, I’ve also made the layout a bit flexible so client can modify the
looks without touching or updating the application. The available settings I’ve made
available are the theme color, where it can be either black or white and how it is
being displayed. I’ve made four presets to choose from, whether to display a list of
articles in a vertical list, horizontal list where images can be either on the left side or
the right side, and also in a grid view. As shown in Figure 3.5 and Figure 3.6, latest
articles are shown is a vertical list where images are on the right, sports articles are
shown in a horizontal list and tourism articles are shown in a vertical list with images
on the left side.
19
3.5.1.1 Article Details Screen
When an article is clicked, user will be navigated to another screen which displays
the information of the articles. A common article will usually have a header image,
an author’s name below it, a title afterwards along with the date of publish and
finally the content of the article. The content of an article may consist not only text
but also images, videos and links. Article content is actually purely HTML data that
are individually parsed on the screen using a third-party package and therefore may
not always look good on the application. This is because client’s database only store
HTML contents and not plain-text.
20
3.5.2 Video Screen
The video screen consists of two components. Firstly, at the top of the screen, there
is a Live TV which streams the latest or live video directly from TV Darul Iman’s
Facebook Page. As noted previously, TV Darul Iman is part of UPDI’s news
medium. This enables users to livestream videos from the application itself without
going to Facebook page. Below the Live TV is a list of video categories. Each
category will show at most 8 (configurable in API) videos in a paginated view. Upon
clicking on a video, a new screen will pop up which resembles Article Screen (see
Figure 3.7) except instead of the header image, the video will be placed there. The
rest looks alike. Users will be able to stream videos in the application; however, the
video is hosted and sourced by YouTube.
21
Figure 3.10: Live TV
Figure 3.9 shows the screen shown when user clicks on Live TV which streams video
from Facebook.
22
3.5.3 Event Screen
The Event Screen has two components, a calendar and a list of events that happens
on a selected date. The calendar shows selected date with a large green circle on it,
and also it notes the dates with events by showing dots under the date. A dot
resembles an event, there can be maximum of 3 dots per date even if the date may
have more than 3 events that occurs. Upon clicking on an event, the article details
screen (see figure 3.7) will appear with details of the event, because the business
logic is that an event is simply an article with a date.
23
3.5.4 Audio Screen
The Audio screen has three components. The first component is a horizontal list of
audio articles that are playable. In figure 3.11, there seems to be only three audio
articles as of date. However, if there were more, it will display up to 8 audio articles
at a time, and once user reaches at the end, more will be loaded gradually. This
reduce network usage for both user and server as it might not be necessary to load all
at once. This feature is however implemented on every screen.
24
Figure 3.13: Audio Screen with full-screen details and an audio playing
The second component is the details of currently selected audio article. The details
contain the title of the audio, date of publish, publisher’s name, list of playable
audios along with its duration and the description of that audio. This component can
be resized to full screen and scrollable if there are more audios or longer description
needs to be shown. User can only play an audio at a time. Only when an audio is
playing the third component of the screen will be shown.
Lastly, as seen in figure 3.12, the last component is the audio controller. It has
functionality to play and pause an audio, and seek the current durtaion of the media.
Even if the user goes to another screen or switches app, the audio will still play in
background until the app is closed or audio is paused.
25
3.5.5 Magazine Screen
Magazine Screen simply shows a list of magazines and its title. It would show the
magazines in a grid-style consisting two magazines per row. Upon opening this
screen, it will automatically try to load 15 magazines at once. Once user scrolls at the
bottom of the list, it will load another 15 magazines until there are none. A magazine
is just a post that contains a PDF file. Upon opening a magazine, the pdf will be
loaded and shown to the user. Some PDF are extremely large in size, for example, in
figure 3.13 most of the magazines are about 25 megabytes each in size, which would
take quite some time to download. So, I implemented it to download and store it in
the application’s data folder, if user is opening a magazine, it will first check if the
file exists in the folder, if exists, it will just open that file instead of fetching the file
from server.
26
Figure 3.15: An open magazine post, a PDF reader
The PDF reader renders each page in a very high density or precisely 300 dots per
inch. This provides user with a high definition image. However, the cost is that the
reader would take time to render especially if user’s phone hardware is not up to
date. Instead of rendering all pages at once, I’ve made it to render only the page user
is on to reduce battery usage and time taken to render. The PDF reader provides
functionality such as being able to zoom in and out of the image for a better visual,
navigating through previous and next pages, first and last pages, and also the center
button would open up a dialog that allows user to select which page user wishes to
go to.
27
3.5.6 “View All” Screen
As seen in articles screen (figure 3.5) and videos screen (figure 3.8), on the right side
of the category’s name, there is a View All button. Once pressed, the user will be
navigated to a screen that display a list of articles or videos in a grid. This screen will
show all the articles or videos that are listed in the category of user selection.
28
3.5.7 Album Screen
Album screen shows a list of albums in a list. It can be accessed in the main screen
with tabs, where it is located on top right of the screen. In figure 3.16, it is shown
that there is only one album. When an album is opened, it will show details of the
album along with pictures in the album.
29
Figure 3.18: A gallery of pictures in an album
As seen in figure 3.17, details of an album will be shown on the screen once an
album is opened. It contains the title, publisher, date of publish and the list of
pictures available in the album. Those pictures are tappable and user will be in
fullscreen view of the image.
30
Figure 3.19: An image in the gallery of pictures in an album
User can tap on any pictures and it will be fullscreen view. Here, when user taps on
the screen, the caption of the image will be shown, otherwise it will be invisible.
User can zoom in and out of the image for a better visual. Other than that, user can
also swipe left and right to see the next and previous images.
31
3.6 TRDI Application Conclusion
TRDI mobile application is a news application which has quite some features.
It is developed with Flutter framework and other open-source third-party packages.
The application is to complement client’s news website, it’s basically a simplied
version of the website made to be used for mobile devices. TRDI is supposed to
launch in the end of April, however global pandemic occurred which halts almost all
events and businesses in Malaysia. The application will be made available to
download on Google’s Playstore and Apple’s Appstore. Even after the end of my
internship, I am still asked to continue to work on the application as I have
developed it from the beginning. I am absolutely thankful for the oppoturnity given
by Mysoftcare’s manager, encik Yahyal Haq. This oppoturnity allows me to further
develop my skills in programming and software engineering.
32
I was tasked to do the wireframe designs of the website for the early stage of
the development and also to handle the development of website and application. As
my internship reaching its final days, I completed wireframe designs for the website
version and was working on a prototype version of the website and application. The
website is also being developed using Laravel and mobile application in Flutter. We
were supposed to have another meeting to showcase our prototypes a week prior to
Restriction of Movement Order.
33
4 CHAPTER FOUR: RESULT AND FUTURE ENHANCEMENT
34
5 CHAPTER FIVE: RECOMMENDATION AND CONCLUSION
5.1 Recommendation
Other than that, I greatly encourage and recommend other students that is
interested in website development using PHP to apply for internship here. This is
because they always have some projects to work on and students will be asked and
tested if they are fit for the task. This would allow students to learn and gain more
knowledge in the field they are in.
35
5.2 Conclusion
I am thankful that I have managed to undergo the industrial training for two
months from 13rd January 2020 until 8th March 2020. During the internship, I had
gained many knowledge and experience especially in programming and I have
successfully made an application that will be used by a client. The knowledge I’ve
earned is not covered in my programme’s syllabus as they are far advanced.
Finally, I would like to thank to all the staffs at Mysoftcare Solution Sdn. Bhd.
for giving me the oppoturnity to do my internship at this company and allowing me
to further enhances my skills. The working experience that I gain when I was doing
my internship there is extremely valuable and I may not get the same experience
36
anywhere else.
37
6 REFERENCES
1. Mysoftcare Solution Sdn. Bhd. Website. Retrieved April 29, 2020, from
http://www.mysoftcare.com
2. Wikipedia contributors. (2020, April 29). Laravel. In Wikipedia, The Free
Encyclopedia. Retrieved April 29, 2020, from
https://en.wikipedia.org/w/index.php?title=Laravel&oldid=953840129
3. Wikipedia contributors. (2020, March 31). Memcached. In Wikipedia, The
Free Encyclopedia. Retrieved April 29, 2020, from
https://en.wikipedia.org/w/index.php?title=Memcached&oldid=948329545
4. Wikipedia contributors. (2020, April 24). Flutter (software). In Wikipedia,
The Free Encyclopedia. Retrieved April 29, 2020, from
https://en.wikipedia.org/w/index.php?title=Flutter_(software)&oldid=952871
008
5. OneSignal Website. Retrieved April 29, 2020, from
https://onesignal.com
6. Urusetia Penerangan Darul Iman. (2020, April 29). Terengganu Darul Iman.
Retrieved April 29, 2020, from
https://www.trdi.my
38