android-internship-report_240420_000507
android-internship-report_240420_000507
android-internship-report_240420_000507
INTERNSHIP
AN INTERNSHIP REPORT
Submitted by
SALONI PARMAR
190200107095
BACHELOR OF ENGINEERING
in
Computer Department
CERTIFICATE
This is to certify that the project report submitted along with the
project entitled INTERNSHIP has been carried out by Saloni Parmar
under my guidance in partial fulfillment for the degree of Bachelor of
Engineering in Computer Department, 8th Semester of Gujarat
Technological University, Ahmedabad during the academic year
2022- 23.
Rajkot
DECLARATION
We hereby declare that the Internship / Project report submitted along with the
Internship / Project entitled HRMS APPLICATION submitted in partial
fulfillment for the degree of Bachelor of Engineering in Computer Department
to Gujarat Technological University, Ahmedabad, is a bonafide record of
original project work carried out by me / us at Webcodegenie under the
supervision of Mr.Hardik Moliya and that no part of this report has been
directly copied from any students‟ reports or taken from any other source,
without providing due reference.
1 Saloni Parmar
ACKOWLEGEMENT
A lot of effort has gone into this training report and I would like to take the opportunity to
thank and express my deep sense of gratitude to those who have contributed in completing
this project.
First of all, I would like to send my sincere thanks to the organization(webcodegenie), for
giving me the opportunity to do an internship within the organization. I also would like to
thank everyone at the company for their patience, encouragement and valuable guidance
during the internship.
Also, I am highly intended and extremely thankful to Prof. Hardik Moliya, as my guide was a
constant source of inspiration and encouragement to me. I express my profound sense of
gratitude to them for their timely help and co-operation in completing the internship.
Lastly, I extend my warm gratitude and regards to everyone who helped me during my
internship.
ABSTRACT
During the 21 days of my training, I was introduced to the ubuntu(linux) and its
basic command, javascript, programming in javascript, visual studio code
editor to run the program.
List of Figures
Fig.3.1.2 Program.......................................................................................................................9
Fig.3.2.4.1 FCM…...................................................................................................................16
Fig.3.2.4.2 FCM…...................................................................................................................17
Fig.3.3.3.2 Pagination…..........................................................................................................22
Abbreviations
KT KOTLIN
Table of Contents
Acknowledgement.................................................................................................I
Abstract................................................................................................................II
List of Figures.....................................................................................................III
Abbreviations.....................................................................................................IV
Table of Contents.................................................................................................V
1.1 History.................................................................................................1
2.1.7 Iot............................................................................................6
Chapter 3: Training............................................................................................8
Chapter 4: Android..........................................................................................11
4.1 Introduction.......................................................................................11
4.4.1 Fragment................................................................................14
6.2 Purpose…...........................................................................................26
6.3 Objective.............................................................................................26
6.4 Scope…..............................................................................................26
REFERENCES..................................................................................................29
1.1 HISTORY:
At Web Code Genie Technology PVT Ltd our mission is to help companies with IT
development services. Founded in 2010, we have helped Startups, Mid-size companies,
and huge enterprises in various industry domains. We have a clientele who have been
with us right from the beginning and we believe in such long-term business synergies.
Out Top-Notch technology experts can deliver solutions that can transform your Digital
journey.
Choose Web Code Genie Technology PVT Ltd for unparalleled web and mobile app
development services. As a CMMI Level 3 company, we have a proven track record of
helping startups, mid-size companies, and enterprises across diverse industries since our
establishment in 2010. We value long-term business relationships, which is why our
loyal clientele have been with us from the very beginning. Our team of top web and
mobile app developers is committed to delivering customized solutions that will elevate
your digital journey and exceed your expectations.
Web Development
Web design
Digital Marketing
Big data
Mobile Application Development
Software Testing
IOT
Cloud Computing.
Specialize in web development services that create all types of web based software,
ensuring a seamless user experience that generates a great ROI and enhance the
business.
PHP:
PHP is a server scripting language and a powerful tool for making dynamic
and interactive web pages.
Laravel:
Node.js:
ExpressJS:
Angular:
Angular extends HTML with new attributes. Angular is prefer for single page
applications. Angular is easy to learn.
ReactJS:
React is a javascript library for building user interfaces. React is used to build
single page applications. React allows us to create reusable UI components.
Socket.io
Lumen
Redis
MySQL
MongoDB
Create an engaging and eye-catching website, website that include key brand
identification elements.
Technology used:
HTML
Bootstrap
Material Design
Less
jQuery
XD
Figma
Technologies used:
Adwords
Bing PPC
Local SEO
Organic SEO
Provide highly flexible Big Data and analytics solutions as each company has specific
needs. Our services include helping you identify the best technologies and
determining your company's best Big Data solutions.
Technologies used:
MongoDB
Hadoop
Tableau
Envision and thrive on designing cutting-edge mobile apps for various platforms,
including Android, iOS, Windows, etc.
From establishing product goals and business outcomes to prioritizing the right
features to wow users and deliver a flexible product vision to enable long growth.
Technologies
used:
Java
Kotlin
Objective
Swift
Flutter
React Native
With the help of website testing services, we can examine how user-friendly your
website is, see how well it functions, and determine if it can sustain high traffic
volumes and prevent site data from cyberattacks.
Perform usability and speed tests to make sure that you're able to access your site
from any device or screen size without issue.
Technology used:
Eclipse
JMeter
Postman
Selenium
2.2.7 Iot:
We ensure that all your devices are protected from unauthorized access. Keeping the
integrity of all of your data is a priority. We understand how essential it is for you to
manage and share this massive amount of information securely.
Our team does everything in its power to ensure the confidentiality of such
information. We provide IoT device security for our client’s data with multiple
security measures. Among the testing techniques we offer include automated and
manual vulnerability scanning for network, application, mobile app, IoT device,
firmware, and firmware upgrade methods.
Technologies
used:
AWS LAmda
AWS IOT
Technologies
used:
Amazon AWS
Google Cloud
Digital Ocean
CHAPTER 3: TRAINING
3.1 INTRODUCTION:
Basic training start from the javascript for the logic building purpose. For
that, first of all, one technical session held for the basic introduction of
javascript then start practicing javascript by given programs which performs
in visual studio.
Before started programming in javascript, one pdf was also shared for the
overview of javascript. I go through it and then started programming
Fig.3.1.2 Program
and in javascript, we use editor named visual studio code. So first of all, we
informed about visule studio code and its basic things. For that, one pdf was
shared.
There are also few non-technical session to improve our thought process and
communication skill. In non-technical session, Group discussion and story
making etc.. arranged by them.
4th week onward, technology distribution would be done and Android as an app
developer role assigned to me.
CHAPTER 4: ANDROID
4.1 INTRODUCTION:
On very first day of android; I instructed to learn oops concept and then after perform basic
progamming in java with oops concept. Then , I instructed to do the same programming in
kotlin so that I have clearly idea about what is the difference between java and kotlin . In our
organization , we use Android with kotlin framework so we learned kotlin as a framework.
After all of that basic things , I downloaded the Android Studio under the instruction of my
mentor. Meanwhile, he gives us the basic introduction about android and its version.
All the oops concepts for java have been done to start with android as basics such as
abstraction, polymorphism, interface, inheritance, method overriding and
overloading. Performed task for the same.
Android is a mobile operating system based on a modified version of the Linux kernel and
other open-source software, designed primarily for touchscreen mobile devices such as
smartphones and tablets.
Kotlin is a modern statically typed programming language used by over 60% of professional
Android developers that helps boost productivity, developer satisfaction, and code safety.
First of all, I learned basics of android that need to build any application like:
Activity:
An activity provides the window in which the app draws its UI. This window
typically fills the screen, but may be smaller than the screen and float on top of
other windows. Generally, one activity implements one screen in an app.
Intent:
An intent object carries information that the Android system uses to determine
which component to start (such as the exact component name or component
category that should receive the intent), plus information that the recipient
component uses in order to properly perform the action (such as the action to
take and the data to act upon).
Manifest File:
Every project includes a manifest xml file, which is AndroidManifest.xml,
located in the root directory of its project hierarchy. The manifest file is an
important part of our app because it defines the structure and metadata of our
application, its components, and its requirements.
This file includes nodes for each of the Activities, Services, Content Providers
and Broadcast Receiver that make the application, and using Intent Filters and
Permissions determines how they coordinate with each other and other
applications.
Fragment
Services
4.4.1 Fragment:
A Fragment represents a reusable portion of your app's UI. A fragment defines and manages
its own layout, has its own lifecycle, and can handle its own input events. Fragments can't
live on their own. They must be hosted by an activity or another fragment. Implement
fragment lifecycle and travel from one activity to other through fragment.
Implement service lifecycle, learn document about service and go through the types of
service and try to implement it. Create notification through bound service.
A component can bind to a service to interact with it and even perform interprocess
communication (IPC).
For example, a service can handle network transactions, play music, perform file I/O, or
interact with a content provider, all from the background.
A View is a simple building block of a user interface. It is a small rectangular box that can be
Text View, Edit Text, or even a button. It occupies the area on the screen in a rectangular
area and is responsible for drawing and event handling. View is a superclass of all the
graphical user interface components.
Text View
Edit Text
Button
Image Button
Date Picker
Radio Button
Check Box buttons
Image View
A View Group is a subclass of the View Class and can be considered as a superclass of
Layouts. It provides an invisible container to hold the views or layouts.
Linear Layout
Relative Layout
Frame Layout
Grid View
List View
Also create notification through FCM. There are so many steps of FCM to create notification.
Few screen shots of Firebase Cloud Messaging are showing below.
Firebase Cloud Messaging (FCM) is a cross-platform messaging solution that lets you
reliably send messages at no cost.
Using FCM, you can notify a client app that new email or other data is available to sync. You
can send notification messages to drive user re-engagement and retention. For use cases such
as instant messaging, a message can transfer a payload of up to 4000 bytes to a client app.
Fig.3.2.4.1 FCM
Fig.3.2.4.2 FCM
Create a form with the help of Text View and Edit Text View with the proper Design
and then apply the validation of Email, Phone on click of submit button.
Learnt how to give permission for camera, internet and notification in manifest file.
Implement array List using Array adapter, Base adapter, Recycler View adapter
Small application is created with 3 main screen Home page, team and profile. Application
were created with all the functionality and validation.
Notification, Services and permissions all the concepts were implemented in app.
Implementation of Tab layout and viewpager2 with fragment State Adapter and using
Recycler View Adapter.
Global scope, Life cycle and View model Scope of coroutines, MVVM Structure of industry
level and Retrofit for API Integration.
A coroutine is a concurrency design pattern that you can use on Android to simplify code that
executes asynchronously. Coroutines were added to Kotlin in version 1.3 and are based on
established concepts from other languages.
Coroutines help to manage long-running tasks that might otherwise block the main thread and
cause your app to become unresponsive. Over 50% of professional developers who use
coroutines have reported seeing increased productivity.
MVVM suggests separating the data presentation logic(Views or UI) from the core business
logic part of the application.
Retrofit is an easy and fast library to retrieve and upload data via a REST-based web service.
Retrofit manages the process of receiving, sending, and creating HTTP requests and
responses. It resolves issues before sending an error and crashing the application. It pools
connections to reduce latency.
Retrofit manages the process of receiving, sending, and creating HTTP requests and
responses. It resolves issues before sending an error and crashing the application. It pools
connections to reduce latency. It is used to cache responses to avoid sending duplicate
requests.
Created an app using MVVM databinding and try to validate form item such as email,
password and number and performed crud from recycler view.
Data binding is the key technology that MVVM relies on, to link Views with their View-
Models. Data binding provides and maintains the automated Two-Way connection between
View and View Model.
API integration of cats and users with MVVM view binding have been learned and
performed. All the same thing with MVVM view binding were implemented to learn how to
integrate all things with view binding.
View binding is a process that allows you to more easily connect your code to specific views
in your layout. This can be helpful if you need to reference a view multiple times in your
code or if you want to avoid using findViewById(). With view binding, you can create a
binding object for a layout and then access the views in that layout by using the variables in
the binding object.
To make our work easier while working with APIs we use tools like Retrofit + OkHttp,
or Volley. Stetho, a debug bridge for Android, works great with Retrofit and OkHttp.
We use postman - a desktop app that can execute REST API calls from your computer. It
works on Windows, Linux and MacOS.
Pagination is one of the most important factors which helps to reduce the loading time
inside our app and increase the performance of our data which is represented in the form of
Lists.
API integration using retrofit, header interceptor and coroutines were implemented. API
calling for cats and cats details, display details of cats dynamically in real time from postman.
API integration for user data was also carried out with MVVM+MVP.
Data store, retrieve, update and delete using shared preference as data storage.
Implementation of SQLite database to perform CRUD operations with them. Use Recycler
view with database to perform those operation. Performed CRUD operation in Firebase
Realtime database. Implemented Room database to perform CRUD operation such insert,
update and delete.
Performed Google singing to get interacted with real time cloud service. Facebook page with
login and validation were done to connected with facebook id. Instagram login page have
been implemented to interacted with user’s real Instagram id.
At the end, project were given by our team lead named as HRMS Application. HRMS is
application in which user can create and manage leaves for the company, see upcoming
holiday, manage roles, manage employee, people and groups.
Login,
forgot password,
dashboard,
Leave,
Calendar,
Roles,
Employee, People, Group
Logout
There were neumorous screen in this project with all the proper validations and in proper
format.
It uses room database to store and retrieve data from real data storage.
I learnt the basics of javascript and donbe programming to build logic. After basic training, I
learnt basics to adavance level concept in android. Perform various task based on the concept
and also done real time application. At the end of the internship, our mentor told us to make
HRMS application.
6.2 PURPOSE:
The internship includes training of git, linux, javascript, android and kotlin.
6.3 OBJECTIVE:
The main objective of training is developing apps that can implement notification, service,
broadcast receiver, views and layouts, use Firebase Realtime or room database to store data
and integrate api for data. Learn how to push and pull projects in git Lab, use of git in live
projects. Learn about JAVASCRIPT, Android, Oops and Kotlin.
6.4 SCOPE:
The application can use realtime time database to store and retrive data of user.
During my internship, I learned that how to implement a logic or a theoretical knowledge into
practice and real-world work environment. I performed so many programs in javascript so
that my programming skill is improve and as of now, I have better programming skill than I
had. There are also non technical session so that my communication skill is also improved
and I get to know about group discussion and hoe it is going, how I can handle that and can
take part of that discussion. So overall, my stage fear is gone and I can easily put my topic in
front of others and explain it very well.
Before started programming in javascript, one pdf was also shared for the overview of
javascript. I go through it and then started programming from the basic program like
minimum, maximum etc.. which was given by them in our company,s application named
mattermost. Gradually I moved into the complex program like array, array-object, object…
after that queen problem, tic-tac-toe game etc. There are also a team where mentor was
assigned to me whom I can solve my problem, difficulties and take help for the programs. If I
was stuck in anywhere in the program then it can be solved by my mentor with my mistake
and proper explanation.
After that 21 days of basic training, remaining internship was on my that technology in which
I have to assign and that is android. In android, first of all my mentor asked some basic
concept of oops to know that is it cleared or not. Then after I go through oops concept deeply.
I also learn basic concept of java with oops concept for the batter understanding of kotlin.
After that I learned kotlin and started android studio.
In android studio, I learned basic concept of that like how many files it has, in which file I
have to write which code, what is .xml file and how was all things are working in it.
I understand each and every topic in that and perform various program. I also perform real time
application and one company’s application named HRMS application.
REFERENCES
https://www.w3schools.com/
https://stackoverflow.com/
https://kotlinlang.org/docs/home.html
https://developer.android.com/
https://code.visualstudio.com/
https://developer.android.com/develop/ui/views/layout/declaring-layout
https://developer.android.com/guide/navigation/navigation-principles
https://www.geeksforgeeks.org/services-in-android-with-example/