Amar Aryal WRL Report PDF
Amar Aryal WRL Report PDF
I confirm that I understand my coursework needs to be submitted online via Google Classroom under the
relevant module page before the deadline in order for my assignment to be accepted and marked. I am
fully aware that late submissions will be treated as non-submission and a mark of zero will be awarded.
Acknowledgment
I would like to thank Mr. Ravi Chandra Gurung and Mr. Bibek Khanal for their guidance
throughout this module and for helping to complete this project. I express my gratitude to
Islington College for having this Work-Related Learning module to help us gain
experience in the IT industry.
I am also extremely grateful to Mr. Rajesh Das for giving me this internship opportunity
and taking me under his supervision. His guidance and supervision have been very
helpful to me throughout the internship period which helped greatly improve my
knowledge and skill in Flutter.
Lastly, I would like to thank my family and friends for supporting me in this endeavor.
Abstract
The period of internship is documented in this report as a part of the module Work Related
Learning (WRL). The information of the organization and the role taken in the organization
during internship presented in this report. This report also contains the details of learning
outcomes and what I did to fulfil those outcomes and the challenges faced during
internship and how I overcame them. It also has attached evidences of the learning
outcomes and the important documents such as internship completion letter, CV, WRL
form and attendance sheet.
Table of Contents
1. Introduction ............................................................................................................... 1
2.1. LO1: Learn to make http requests and API integration in Flutter application ..... 3
2.2. LO2: Learn to integrate and work with Google map in flutter ............................. 3
2.3. LO3: Learn to play and stream videos in a flutter app ........................................ 4
2.4. LO4: Learn to build beautiful user interface in flutter and learn about material
design for android and Cupertino for iOS .................................................................... 4
2.6. LO6: Develop research skills to learn and implement new concepts ................. 5
2.7. LO7: Develop critical thinking and get better problem solving ability .................. 6
2.8. LO8: Learn time management and work organization skills ............................... 7
3. Academic Context..................................................................................................... 8
4. Abilities Evaluation.................................................................................................... 9
4.1. LO1: Learn to make http requests and API integration in Flutter application ..... 9
4.2. LO2: Learn to integrate and work with Google map in flutter ............................. 9
4.3. LO3: Learn to play and stream videos in a flutter app ........................................ 9
4.4. LO4: Learn to build beautiful user interface in flutter and learn about material
design for android and Cupertino for iOS .................................................................... 9
4.6. LO6: Develop research skills to learn and implement new concepts ............... 10
4.7. LO7: Develop critical thinking and get better problem solving ability ................ 10
4.8. LO8: Learn time management and work organization skills ............................. 10
5. Challenges .............................................................................................................. 11
6. Conclusion .............................................................................................................. 12
7. References ............................................................................................................. 13
8. Appendix ................................................................................................................. 14
8.4. CV .................................................................................................................... 27
1. Introduction
In the final year of college, we are required to spend some time as an intern to gain some
work experiences as a part of the module Work Related Learning (WRL) which will be
valuable for us in our future work environment. An internship provides us familiarity with
the work culture in the industry (IT industry in this case) and most importantly learning
opportunities. Looking for an internship in either Flutter (for mobile) or Django (for web), I
finally got an offer as a flutter intern at OkayJourney Pvt. Ltd. on October 23, 2020,
through a friend who was also doing an internship in the same company. I mailed my CV
to the company and after a call interview, I was hired as a Flutter intern. Since it was at
the time of the pandemic, I had to work from home.
1
FC7W03NI Work Related Learning
OkayJourney Pvt. Ltd. is one of Nepal’s leading travel companies and it was launched in
February 2019. The company is based in Kathmandu, Nepal. The role of the company
comprises providing information, pricing, availability, OkayTube, GPS tracking, and
booking facility for domestic, holiday packages, buses, sumos, and hiaces in city
activities, dashboards for travel operators. It is the most value-creating platform in the
travel industry of Nepal. OkayJourney receives good support from the National Innovation
Center. The primary innovation of the company is a device called OkayTube which
enables us to stream videos while traveling without any external wi-fi or data connection.
2
FC7W03NI Work Related Learning
2. Review of Activities
2.1. LO1: Learn to make http requests and API integration in Flutter
application
The main task during the development of the mobile application was making API calls
to the server using HTTP requests. Communicating with backend is the most
important function of the mobile application to access data and perform CRUD
operations. For making API calls in Flutter, I referred to the official documentation of
Flutter and online articles as well. Most of the calls were GET and POST requests to
the server. GET request was done to fetch data from the server while POST request
was done to send data to the server. For each GET and POST request in the app, a
method was defined. The data was sent and received in JSON format. To encode and
decode the JSON data the dart library ‘dart:convert’ was used. The package ‘http’ was
used to make HTTP requests which contains GET and POST methods. The package
was an external package used in Flutter.
Before API integration, the API was first tested on Postman and then into the code.
Thus, API integration is one of the most important knowledge I gained while
developing the application. The evidences are presented in the appendix section of
this report including screenshots.
2.2. LO2: Learn to integrate and work with Google map in flutter
Sometimes, only documentation is not sufficient, therefore different sources like online
articles and tutorial videos were referred while writing code for map to implement the
feature correctly. The feature was then tested and the map was successfully
3
FC7W03NI Work Related Learning
displayed. The map would also track the current location of the user and then locate
the location of the user at that time.
A package called ‘video_player’ was installed and used to integrate the video playing
feature in the app. After the app was developed, the app could play videos after
connecting to the OkayTube device. The OkayTube device would be in a vehicle and
the mobile phone would have to connect to the OkayTube to stream videos from the
device. To develop this feature, again a lot of research was done from referring official
documentation to online articles. For this also, lots of files configurations were done
for successful implementation.
During development, the sample videos available online were used since the
OkayTube device was also in development and there was no proximity to the device
as I was working from home. After sample code was done, then the feature was tested
and then at first some problems were encountered. The videos were finally
successfully played. Later the UI was improved to display the videos in user friendly
way. The files were configured to play http videos as well. After the dummy data was
successfully tested, then the videos were displayed according to the genre. In this
way, I learned to play video in Flutter app.
2.4. LO4: Learn to build beautiful user interface in flutter and learn about
Flutter comes with a lot of widgets which are the building blocks of any flutter
application. Widgets are used a UI element and each widget is unique. Since flutter is
cross-platform, it has made available widgets for both android and iOS platform as
well as for web and desktop till now. For android, it has provided Material design and
for iOS, it has provided Cupertino design. For this application, widgets from both
Material and Cupertino design were used to build the UI of the application. For
4
FC7W03NI Work Related Learning
example, to give iOS look, Cupertino widget sheet was used to choose different
options. Adaptive date picker was used to adjust the date picker depending on
platform. For android, it would display android style picker whereas for iOS, it would
display the iOS style picker. Some of the widgets were new to me. So, I researched
about them and then implemented them as I learned.
Later, few weeks when I used to go to the office physically, I worked under his
supervision and we held discussions in the office. I could initiate conversations and
communicate far better than before. Daily conversations in work improved my
communication skills and later direct communication helped me hone my
communication skills as I got less hesitant during conversations. My supervisor used
to encourage me to communicate more. I also used to hold daily meetings with my
teammate to discussed issues and solve them together.
2.6. LO6: Develop research skills to learn and implement new concepts
For a lot of topics and problems, lots of research work was required. As discussed in
the above learning outcomes, when it comes to technical skill in flutter, different
sources were referred. The sources include documentation, online articles, and video
5
FC7W03NI Work Related Learning
tutorials. To implement video playing in the app, a lot of research was involved.
Similarly, for API integration, Google map integration and other problems, lots of
sources were researched into.
To build UI in flutter, widgets are required. Flutter consists of lots of widgets and for
UI consistency in android and iOS, I researched into Material and Cupertino widgets
through different tutorials and articles. I also researched a lot of forums like Stack
Overflow when I encountered a problem in code. Stack overflow helped me fix a lot of
the issues and bugs I had with my code. To integrate payment gateways like Khalti,
eSewa and ImePay, research was done referring to the official documentation. The
app also had login/register functionality. I would also check source code of some
GitHub repos to solve a problem encountered in code. To implement login
functionality, I researched about shared preferences which was a way to store data in
local storage and I referred to documentation and online articles for it as well and
successfully implemented it. I also learned about a lot of useful flutter packages
developed for different useful purposes.
2.7. LO7: Develop critical thinking and get better problem solving ability
One of the most important skills in programming is problem solving and critical thinking
to solve a problem. While developing the application, there were many coding
problems that required critical thinking and problem-solving skill. Implementing seat
booking feature required most of the problem-solving skill of any feature. I had to come
up with a lot of ideas to solve the problem. After a lot of time thinking and trying to
solve it, after many days, I was able to solve the problem along with my teammate.
Gradually, my programming logic improved as I started coding more. I also did a lot
of research to solve the encountered problems and errors.
I would first brainstorm how the logical flow of the application feature would look like
and then based on that I tried to think how to approach the problem. During seat
booking feature implementation, I gave the color to seats according to seats status
data coming from the server. I checked the status and provided the color to the seats
6
FC7W03NI Work Related Learning
displayed in UI according to status. If booked, then seat would be red and un-
selectable and if empty, then it would be green and could be selected. I created a
method which would fire when the seat was selected. The color would change and
then the seat number of that seat would be added to a List and then that would be
sent to the server when booking is confirmed. Me and my teammate also applied
problem solving to implement login feature while storing token in local storage.
Since I had to manage internship with college classes and coursework, time
management proved to be difficult. Despite that, I managed to find time to do both
internship work and college works. In the morning, I had online college classes for an
hour or two. After the classes were over and before internship starts, I used to do
college coursework. That would relieve some pressure as deadlines approached.
From 11:00 AM to 5:00 PM, I would do the internship work and after internship was
over, I would take some rest and then again continue with the college coursework and
assignment till night. Since due to pandemic, it was work from home, I saved travelling
time from and to the office. I used to keep to-do lists to keep track of internship tasks
and assignments. I also kept a timetable to follow to effectively manage time and
organize work properly. As there were a lot of tasks, I would break them down into
different parts for organization and allocate time to them.
Doing work as well as college assignments from morning to night most of the time
used to be mentally draining and exhausting. Still I followed this routine and continued
to do work. Sometimes there would be less workload and at that time, I would try to
do college work and sometimes when there was no college assignment pressure, I
would do some internship work. Thus, all the works were organized and completed on
time.
7
FC7W03NI Work Related Learning
3. Academic Context
The field I chose was the field of mobile application development as mobile application
development had grabbed my interest after I started getting into the IT field. In the
internship, I applied many things I learned in my college in the three years and I also
applied what I learned in my intern in my college works.
I have learned many modules in college in the past three years. Since flutter uses Dart
programming language and Dart is syntactically like Java and JavaScript, the modules
Programming from year 1 and Emerging Programming Platforms and Technologies in
year 2 where I learned Java proved to be helpful. Similar syntax with those languages
helped me easily adapt to Dart and Flutter as I developed quite a few projects in those
modules in coursework and assignment. This made the learning curve easy for me.
Similarly, the module Information Systems where I learned basic JavaScript also proved
to be helpful. The Software Engineering module was also useful as I needed to work in
the field of software products. Different modules like Android Development, Professional
Skill Development and Employability that were taught in the summer classes also proved
to be helpful in this sector.
The internship has also been very helpful for my college modules. The programming logic
greatly improved during coding in my internship and that greatly helped in modules such
as Application Development. The module that mostly benefitted from my internship was
my Final Year Project (FYP). Since I developed a mobile application using Flutter for my
FYP, the Flutter research and knowledge gained during my internship proved to be greatly
helpful.
So, internship and academic works complemented each other well as I got to apply what
I learned in one to the other in some way.
8
FC7W03NI Work Related Learning
4. Abilities Evaluation
4.1. LO1: Learn to make http requests and API integration in Flutter
application
The API integration made to the mobile application taught me how to handle API calls
to the server through the application which is one of the fundamental skills of a
developer. To fetch data, GET calls and to send data, POST request was made. I
learned about ‘http’ library and JSON encoding and decoding.
4.2. LO2: Learn to integrate and work with Google map in flutter
I learned how to integrate Google maps with a flutter application from gaining access
to API key of the map API to coding the map UI and functionalities into the application
and learning about the package ‘google_maps_flutter’. The configurations required to
implement map were also made into various files.
Using ‘video_player’ package, I was able to implement video playing application into
the flutter. I learned to make the application play the video from online links. This was
one of the most important features worked on. Later, the video would be tested on
OkayTube device as well.
4.4. LO4: Learn to build beautiful user interface in flutter and learn about
I used a lot of Flutter widgets both which I knew from before and new ones and learned
about their properties to build beautiful UI and then implemented them. I learned
differences between Material design and Cupertino design for android and iOS
platforms respectively. I implemented different flutter widgets as well as defined
custom widgets using in-built widgets and learned about them.
9
FC7W03NI Work Related Learning
4.6. LO6: Develop research skills to learn and implement new concepts
During internship, I researched a lot about Flutter related topics like widgets, packages
and their implementation from various sources like articles, official documentation and
video tutorials. When I encountered errors and bugs, I visited stack overflow and other
forums and articles. So, I could gather much information about the topic I researched
into through different sources and learned about them. I could also effectively search
the solution to errors encountered.
4.7. LO7: Develop critical thinking and get better problem solving ability
Between doing internship work as well as heavy college assignments and coursework,
I had to manage time to do and complete both works on time. Before internship, I did
not manage my time effectively as I had a lot of free time and I spent most of it in
unproductive tasks. Internship taught me time management well as I managed to
balance both work and college in this period. I also effectively organized my work by
maintain timetable.
10
FC7W03NI Work Related Learning
5. Challenges
As this was my first introduction to the work environment, I had a lot of challenges ahead
of me. The first and foremost challenge for me was time management. With the previous
studying years with no work/internships, I had all the time to study and engage in
recreational activities. Now, I had to manage my time mostly between internship and
college studies. So, engaging in laptop work most of the time was draining. I had classes
in the morning and internship from 11:00 AM to 5:00 PM most of the time. I managed my
study time for the morning after classes and in the evening after the internship was over.
I did all my college coursework and assignments a little before starting work and again
after work. I also made to-do lists and timetables when required to effectively manage
time.
Another challenge was my communication and conversation skills. I did not use to talk
too much with anyone. But now, I had to work in a group and communicate with my
supervisor often. At first, I used to be hesitant to talk to my supervisor when I encountered
a problem or had some questions. So, I used to talk to my group member more. Slowly, I
started to start asking questions and asking feedbacks and grown accustomed to it. My
supervisor was very friendly and used to properly guide me in every problem I
encountered. My communication skill had become better than it was before and now I
could initiate conversation too.
I was not so good at navigating through a logical problem while coding. I always had to
be helped by someone with that problem. It was the same initially in work. When I had to
come up with a piece of code to apply logic and solve a problem, I would be stuck there
for a long time. But slowly after a lot of research and tutorials and then taking time to
come up with different ideas to solve problems, I developed my logical problem-solving
skills. After hours and hours of coding and coming up with different coding solutions to
solve a problem, I finally could develop my logic for a problem and code according to that
in a shorter amount of time than before.
In this way, I faced challenges in the new environment and experience and tried different
techniques to overcome them and succeeded in them.
11
FC7W03NI Work Related Learning
6. Conclusion
The internship presented me with a great learning opportunity in the field of application
development using Flutter and greatly improved my knowledge and skill in Flutter which
I was interested in. I was able to upgrade my Flutter knowledge from basic to a little
advanced which also greatly helped me complete my FYP module which was based in
Flutter. As discussed above, it also improved my coding skills by miles as I was able to
apply problem-solving skills to solve a particular programming problem. This period gave
me work experience too which will be helpful later in life.
The learning outcomes I set at the beginning of the internship were all fulfilled. Along with
technical skills, I also learned other soft skills like time management and organization,
logical thinking, and problem-solving. Talking to the supervisor and communicating with
team member improved my communication skills which I used to struggle with. A lot of
time spent researching to solve a problem or gaining related knowledge helped me with
my research skills as well. So, these few months of internship vastly improved my
technical as well as soft skills and helped me in my college modules such as FYP.
As I complete my internship, I plan to further work and gain more experience in the mobile
application development field. Not only flutter I also plan to develop skills in native
application development in either android or iOS and work from there and be a part of
teams developing applications. I also plan to further develop my web development skills
and then work as a web developer in a company that will allow me to further grow as a
developer in this field.
12
FC7W03NI Work Related Learning
7. References
Budhathoki, B. (2020) OkayTube: This device lets you play music and movies of your
choice without external wifi while travelling – OnlineKhabar English News [Online].
Available from: https://english.onlinekhabar.com/okaytube-this-device-lets-you-play-
music-and-movies-of-your-choice-without-external-wifi-while-
travelling.html?fbclid=IwAR3t9yIwDeIu1gdqsTG-
Dq6MoPLDBiI48Gtzvn9aZ9y2vW6BDMl4R5DNCEI [Accessed 10 May 2021].
13
FC7W03NI Work Related Learning
8. Appendix
14
FC7W03NI Work Related Learning
15
FC7W03NI Work Related Learning
16
FC7W03NI Work Related Learning
17
FC7W03NI Work Related Learning
18
FC7W03NI Work Related Learning
19
FC7W03NI Work Related Learning
20
FC7W03NI Work Related Learning
21
FC7W03NI Work Related Learning
22
FC7W03NI Work Related Learning
23
FC7W03NI Work Related Learning
24
FC7W03NI Work Related Learning
25
FC7W03NI Work Related Learning
26
FC7W03NI Work Related Learning
8.4. CV
Figure 15: CV – 1
27
FC7W03NI Work Related Learning
Figure 16: CV – 2
28
FC7W03NI Work Related Learning
8.5. Evidence
Learning Outcome 1
Learn to make http requests and API integration in Flutter
application
____________________
Supervisor signature
29
FC7W03NI Work Related Learning
30
FC7W03NI Work Related Learning
31
FC7W03NI Work Related Learning
32
FC7W03NI Work Related Learning
33
FC7W03NI Work Related Learning
34
FC7W03NI Work Related Learning
Learning Outcome 2
Learn to integrate and work with Google map in flutter
____________________
Supervisor signature
35
FC7W03NI Work Related Learning
36
FC7W03NI Work Related Learning
37
FC7W03NI Work Related Learning
38
FC7W03NI Work Related Learning
39
FC7W03NI Work Related Learning
40
FC7W03NI Work Related Learning
41
FC7W03NI Work Related Learning
Learning Outcome 3
Learn to play and stream videos in a flutter app
____________________
Supervisor signature
42
FC7W03NI Work Related Learning
43
FC7W03NI Work Related Learning
44
FC7W03NI Work Related Learning
Learning Outcome 4
Learn to build beautiful user interface in flutter and learn about
material design for android and Cupertino for iOS
____________________
Supervisor signature
45
FC7W03NI Work Related Learning
46
FC7W03NI Work Related Learning
47
FC7W03NI Work Related Learning
48
FC7W03NI Work Related Learning
49
FC7W03NI Work Related Learning
50
FC7W03NI Work Related Learning
51
FC7W03NI Work Related Learning
Learning Outcome 5
Enhance my communication skills and improve teamwork
____________________
Supervisor signature
52
FC7W03NI Work Related Learning
53
FC7W03NI Work Related Learning
54
FC7W03NI Work Related Learning
55
FC7W03NI Work Related Learning
Learning Outcome 6
Develop research skills to learn and implement new concepts
____________________
Supervisor signature
56
FC7W03NI Work Related Learning
57
FC7W03NI Work Related Learning
58
FC7W03NI Work Related Learning
59
FC7W03NI Work Related Learning
60
FC7W03NI Work Related Learning
Learning Outcome 7
Develop critical thinking and get better problem solving ability
____________________
Supervisor signature
61
FC7W03NI Work Related Learning
62
FC7W03NI Work Related Learning
63
FC7W03NI Work Related Learning
64
FC7W03NI Work Related Learning
Learning Outcome 8
Learn time management and work organization skills
____________________
Supervisor signature
65
FC7W03NI Work Related Learning
66
FC7W03NI Work Related Learning
Plagiarism report
2% flagged content
67