I was selected as one of the product development fellows at Hasura Technologies based on my performance in the examination of their online course on modern application development (IMAD).
It was a three months fellowship (December 2017- February 2018) and all the product development fellows were given a choice to either work on Front End or the Back End, and a framework to choose.
Teams were formed randomly and each team consisted of both front end as well as back end developers.
I had selected Front End Development and chose to work using the React Native Framework.
So if you are wondering what is React or React Native ?
What did I learn from this internship ?
- One of the essential things that I learnt from this internship was that reading documentation is important
When we are learning something new there are scores of online tutorials that will teach us the basics and some generic applications as examples.
When we want to develop some new application, there is no online guide available for what we are about to create, so we break it down into small basic tasks of what is to be done and use the documentations to help us do it, and then at the end sum up all the individual tasks to create the new thing.
- Collaboration and Communication
When working in an organization or a team to develop something, it is always a team effort and to make things work we need to collaborate with people of various expertise to address the different aspects of a product.
This is when communication comes to the fore, communicating with everyone on-board on a regular basis is extremely necessary to make sure that everyone is kept in the loop, this ensures that all the different teams work seamlessly with harmonious synchronization. So that during the compilation of the final product each individuals part fits perfectly to give the final product.
We used GitHub to collaborate, and Discord to communicate (Since we were from different geographies and had to function remotely). Since every individual in the team had their own university schedules, we assigned a day and a time to get online for the next meeting during each team meeting.
- Ask the community what you do not know and be specific
Being from Electronics Engineering I had a tough time figuring things out during the internship, the other fellows of this fellowship and the Hasura community helped me out whenever I was stuck.
But to be helped you need to ask and to ask you need to be very specific in framing the question otherwise the answer might not be of much use.
My role in the team was to work on the front-end of a mobile device and the framework I used was React Native.
What did I do during this Internship ?
The initial tasks were individual and common for the given role and framework a person had chosen to work upon.
For all the React Native developers the task was to setup a React Native development environment and to recreate the following three UI screens making use of NativeBase :
Following is a video of the screens that I coded for this task :
The task of week 2 was to upload the source code of our Week 1 task on the Hasura cloud using Hasura’s CLI.
It was a simple task to deploying our code from our local machine to the cloud. For web developers it made the webpages they developed available for viewing.
Deploying a mobile application on the cloud was futile so we built an apk file to share our application for grading.
From Week 3 our team tasks began. Each team was given an app idea to work upon.
Our team task was to Implement a basic Alexa skill that returns answers to simple queries on the Indian Premier League database and to develop a Mobile and Web Application to display those queries along with the answers.
In many screenshots and documents that I have attached the database mentioned is MusicBrainz because initially we were told to work the MusicBrainz Database and later shifted to IPL database instead.
The following document explains the details of what we were expected to work on:
HPDF – Task – Alexa – IPL Data
During Week 3, I studied about Alexa Skills and made the following notes.
And designed the wireframes for the mobile app using Adobe Photoshop.
By the end of week 3 we submitted the following Action Plan.
Week 4 to Week 8
From week 4 to Week 8 we worked on developing our application.
The most challenging task that we encountered was connecting the back-end to the front-end of the application. We used Fetch API to do that instead of using Web Sockets as we had planned.
We made the submission and everyone who did it got a Certificate from Hasura !