Download as pdf or txt
Download as pdf or txt
You are on page 1of 34

VISVESVARAYA TECHNOLOGICAL UNIVERSITY

“JNANA SANGAMA”, BELAGAVI-590018

An Internship Report on

“FULL STACK: ANDROID APP DEVELOPMENT”


SUBMITTED IN PARTIAL FULFILLMENT OF THE REQUIREMENT FOR THE AWARD OF DEGREE OF
BACHELOR OF ENGINEERING
IN
INFORMATION SCIENCE AND ENGINEERING
SUBMITTED BY

PRAJWAL P (1JB17IS057)

Under the Guidance of


External Guide
Internal Guide
Mr. Ranjith J Mr. Vishnuvardhan Y
Exposys Data Labs
Asst. Professor,
Dept. of ISE, Bengaluru-64
SJBIT, Bengaluru-60

DEPARTMENT OF COMPUTER SCIENCE AND ENGINEERING


SJB INSTITUTE OF TECHNOLOGY
BGS HEALTH AND EDUCATION CITY, KENGERI, BENGALURU-560060
KARNATAKA, INDIA.
2020-21
||Jai Sri Gurudev||
Sri Adichunchanagiri Shikshana Trust ®
SJB INSTITUTE OF TECHNOLOGY
BGS Health & Education City, Kengeri, Bengaluru – 60

Department of Computer Science & Engineering

CERTIFICATE

Certified that the Internship work entitled “Full Stack: Android App Development” carried out by
Mr. Prajwal P(1JB17IS057) is a bonafide student of SJB Institute of Technology in partial
fulfilment for the award of BACHELOR OF ENGINEERING in INFORMATION SCIENCE
AND ENGINEERING as prescribed by VISVESVARAYA TECHNOLOGICAL UNIVERSITY,
BELAGAVI during the academic year 2020-21. It is certified that all corrections/suggestions
indicated for Internal Assessment have been incorporated in the Report deposited in the Departmental
Library. The Internship report has been approved as it satisfies the academic requirements in respect
of Internship work prescribed for the said Degree.

Mr. RANJITH J Dr. MOHAN H.S Dr. AJAI CHANDRAN .C. K


Asst. Professor Prof. & Head Principal
Dept. of ISE, SJBIT Dept. of ISE, SJBIT SJBIT, Bengaluru

EXTERNAL VIVA
Name of the Examiners Signature with Date

1........................................................ .........................................................

2........................................................ ..........................................................
ACKNOWLEDGEMENT

I am grateful to His Divine soul Padmabhushana Sri Sri Sri Dr. Balagangadharanatha
Maha Swamiji and to His Holiness Sri Sri Sri Jagadguru Dr. Nirmalanandanatha Maha
Swamiji, for providing me an opportunity to complete my academics in this esteemed college.

I would like to express my profound grateful to his holiness Revered Sri Sri Sri
Prakashnath Swamiji, Managing Director, SJBIT for providing an opportunity to complete my
academics and present this Internship.

I am grateful to Dr. Ajai Chandran C. K, for his kind co-operation and encouragement and
extremely grateful to Dr. Mohan H. S, Professor and Head of Department of Information Science
and Engineering, for his motivation and encouragement.

I express my deepest gratitude and sincere thanks to Mr. Ranjith J, Asst. Professor,
Department of Information Science and Engineering for her valuable guidance throughout my
Internship. I am highly indebted to Mrs. Poornima M, Asst. Professor, Internship Coordinator
who has been a source of inspiration to me and has extended his support throughout the Internship
duration. I also express honest thanks to my External Supervisor Mr. Vishnuvardhan Y for his
valuable guidance and inputs to carry out my Internship fruitfully.

I also thank all the staff members of Department of Information Science and Engineering for
their help during the course of this Internship. Last, but not the least, I thank my parents, family
members & friends, for their continuous support and encouragement throughout this Internship.
Prajwal P
(1JB17IS057)
Exposys Data Labs

Certificate of Internship

TO WHOM IT MAY CONCERN

This is to certify that Mr. Prajwal P has completed internship programme on “Full
Stack Developer from 08.12.2020 to 08.01.2021.

He took keen interest in the work assigned and successfully completed it. During
the period of internship we found him to be punctual, hardworking and inquisitive.

We wish him luck and success in all his future endeavours.

Y Vishnuvardhan
hr@exposysdata.com
Chief Director www.exposysdata.com
ABSTRACT

Mobile apps have become a popular means to meet people through far distances.
Although several exist, one recent addition stands out amongst all others. “MeetUp” presents
users to meet people geographically nearby, whom they can either like or dislike based on their
given content. If two users like each one sport say cricket, they are allowed to initiate a
conversation via the chat feature.
In today’s society, we want to connect with people, we want to share things and we want
to live our lives through others or share our lives with others, we want more people to find
compatible matches to do their favorite sports because sports are much more fun together. This
app isn’t just for finding sports and activities in your own backyard, though it comes in handy
when traveling around the world as well to remain active and find like-minded individuals. It is
An App based on the common interests.
TABLE OF CONTENTS

Chapter Title Page No.

1 About the Company 1

2 About the Department 7

3 Task Performed 16

4 Reflection Notes 25
Chapter 1
ABOUT THE COMPANY
1.1 History:
Exposys Data Labs is a Bangalore based start-up company that was aimed to solve real
world business problems like Automation, Big Data and data Science. The company set out a
team of experts in various technologies help businesses to identify issues, opportunities and
prototype solutions using trending technologies like AI, ML, Deep Learning and Data Science.
The intent was to follow a human-focussed and not technology driven approach to achieve
success in our clients’ endeavours.

1.2 About Exposys Data Labs:


AI Labs is a stealth AI start-up specializing in cutting edge AI technologies. The
company constituted from an exceptional team of preeminent researchers and engineers from
around the world who are experts in AI, Machine Learning, Reinforcement Learning, Deep
Learning, and Natural Language Processing. The vision is to develop solutions to major world
problems, such as education availability deficiency, insubstantial allocation of programming
resources and software engineers, and portfolio management in the Financial Services Industry.
As a whole, Exposys Data Labs aims to find solutions to these complicated problems in the
coming months as we come up with cutting-edge ideas and apply them to the problematic issues
we face today.

Vision Statement
“Our discoveries are beyond belief and if you’re with us, you’ll discover a newer way to
think”.

Mission Statement
“Exposys Data Labs is not about only humans our mission is to build technology for all
beings on mother earth and our focus is to make sure all our technology is harmless to our
mother earth in all possible ways.”

1
Full Stack Development About the company

Exposys Data Labs Team: The team at Exposys Data Labs is a knowledge house
exploring various advanced techniques of Data Science at the disposal of inquisitive
individual. The team is a keen user of new technologies and Data architecture that will help
open unexplored gateways for organizations across various sectors and build stronger
ventures. Key people profiles are as below:
Vishnuvardhan Y: He is the founder of Exposys Data Labs, he found it in the year 2017
and is playing a major part in the success of the company. Along with being the founder of
the company he has taken upon many other influential roles in the company, he is also a
hiring business development executive and the marketing director. He has a keen interest and
knack in marketing strategies and new employees, which makes him the best fir for the roles
he has undertaken in the Exposys Data Labs. He is a passionate and a hardworking person,
focused on growth in the field of corporate management. He specializes in competitive
analysis, project management, business development. He finished his B. Tech in Jawaharlal
Nehru Technological Institute and his Masters in NIT Surathkal. Right after finishing his
masters, he started teaching in as an assistant professor in Yenepoya institute of technology
for nearly 4 months. Then he joined CNT infotech private limited where he spent nearly 3
years of his life working on sophisticated chat bots. He had the designation of a research and
developer in the institute. As a R&D, his main focus on the company was to develop
Chabot’s, third party API integration also hands-on experience with developing a deployed
Chabot, so this required a very thorough knowledge of AI and NLP framework. After getting
inspired by these works, he at the year 2017 started his own company, Exposys Data Labs
which now a pioneer in various ground breaking technologies and he plays a major part in the
success of the company.
Syed Basith Muzammil: Syed Basith Muzammil is the head research scientist in
Exposys Data Labs. Apart from being a passionate teacher he also has a role of research
scientist with over 11 years of experience as a research developer. Prior to working in
Exposys Data Labs, he has worked in many institutes as a part teacher and as a part research
scientist. His very first work was in CSIR National Aerospace laboratory as a research
scientist, in the two years that he worked on projects like Developing the fiber reinforced
polymer matrix composites, testing and investigating the mechanical properties of GFRP and
CFRP, Developing and testing the smart composites etc. Later on he took up a job as an
assistant professor in HKBK college. After working in HKBK college for nearly 3 years, he
moved on to Dire Dawa University to work as an assistant professor and a research scientist,

Dept. of ISE, SJBIT 2020-21 2


Full Stack Development About the company

in the Dire Dawa University he even acted as an advisory to the Indian air force, public sector
MSME and also as a technical advisor to Ethio-Djibouti Railway. In the year 2019 he joined
Exposys Data Labs and immediately became a major asset to the company. His roles in the
company include Research and development, Technical consultation, Design of experiments,
Project execution and management, Experimentation, testing, and validation, Failure and
fracture studies, Characterization of materials, Design, develop and hybridization of
advanced materials. He is also responsible for delivering corporate trainings, college
workshops and weekend classroom trainings.
Manoj Reddy Govindhugari: Manoj Reddy Govindhugari, became a part of Exposys
Data Labs as a web developer at the start, he played a major part in building the Exposys data
labs website. Presently he is an acting team leader for the Python developers in Exposys Data
labs.
Ramana Suram: Ramana Suram is working as a Digital Marketing Specialist in Exposys
Data Labs. He has tonnes of experience in Software industry and is considered an asset to the
company. Prior to Exposys Data Labs, Mr. Ramana Suram has served Intel in various
positions. He finished his education in Presidency college, Bangalore with specialization in
Bachelor of Engineering and now he is a major asset to Exposys Data Labs.

1.3 Services
Their data scientists can work with C-level executives to develop customized analytic
solutions within an organization. Exposys team is mainly focused on,
 Reducing the gap between industry required knowledge and college level knowledge
in students.
 To solve real world business problems by using Automation, Big Data, Data Science,
Machine Learning and Artificial Intelligence.
 Working on various technologies that help to identify business issues, opportunities
and prototype solutions using trending technologies like Artificial Intelligence,
Machine Learning, Deep Learning and Data Science.
 Human focused approach rather than employing technology driven approach to
achieve success in their client endeavours.
Exposys Data Labs is focused on mainly four type of services
Consulting Service

Dept. of ISE, SJBIT 2020-21 3


Full Stack Development About the company

Development Service

Training Service

Startup Solutions

1.3.1 Domain of services:


Block-chain

Natural Language Processing

Energy

Defence

Medical

E-Security

Big Data Analytics

Artificial Intelligence

Machine Learning

1.3.2 Proof of Concepts (PoCs):


Exposys team has successfully developed following PoCs for demonstrating
capabilities to customers

AI powered catboats

Edutech Platform

Chronic Disease Detection

BRICK energy

Face detection and Recognition

Humanoid

Drone Surveillance Device

Liquid GPS Medical Chip

Dept. of ISE, SJBIT 2020-21 4


Full Stack Development About the company

BPSS with DNA Id

Human Pose Estimation

Spam filters, Product recommenders and fraud detectors

Predictive algorithm with advanced analytics capabilities

1.4 Learning and Development


With the growing number of people accessing the Internet via smartphones and tablets,
mobile app development has the unique ability to access a large number of potential
consumers and for that one has to be well versed with full-stack development. Exposys Data
Labs internships provides a hand-on training on industry relevant projects. They make sure to
enable candidates to upskill their knowledge by having an interactive training session and for
the first week and to expose them to the real-world projects, so that they gain the relevant
experience and gain the required knowledge.
In the very first week of the internship a training session was held, which thought the ins and
outs of android studio and the basic of UI designing and java that is required to build a basic
app. Along with these technologies, even the backend part firebase was introduced, which
would prove in handy to deploy a data-based app. After the first week training session,
candidates were asked to create an app from scratch with prerequisite requirements specified
by the Exposys Data Labs based on the industry demand.

1.5 Aims and Responsibility


1.5.1 Aim of the internship
 To learn new and improved skills and how to apply them.
 To understand professional communications
 To apply the knowledge learnt in the classroom.
 To gain valuable work experience.
 To develop and build upon skills.
 To learn about computer networking.
 To learn working as a team.
 To work independently as a team, also to learn about decision making.

Dept. of ISE, SJBIT 2020-21 5


Full Stack Development About the company

1.5.2 Roles and responsibilities of an individual


 To provide standardized quality of service.
 To work as a team.
 Abide by the rules and the regulations of the company.
 Commitment and work towards on-time delivery of projects.
 Utilize latest technologies and implement the same.

Dept. of ISE, SJBIT 2020-21 6


Chapter 2

ABOUT THE DEPARTMENT

2.1 Department Insight


AI Labs is a stealth AI start-up specializing in cutting edge AI technologies. The
company constituted from an exceptional team of preeminent researchers and engineers from
around the world who are experts in AI, Machine Learning, Reinforcement Learning, Deep
Learning, and Natural Language Processing. The vision is to develop solutions to major
world problems, such as education availability deficiency, insubstantial allocation of
programming resources and software engineers, and portfolio management in the Financial
Services Industry. As a whole, Exposys Data Labs aims to find solutions to these complicated
problems in the coming months as we come up with cutting-edge ideas and apply them to the
problematic issues we face today.

2.2 Software Development


There are a series of roles that exist in most software development processes. One
team member may be filling many roles and some roles may be suppressed for a specific type
of project, but all these roles exist in one form or another in every software development
projects. Of course, each organization has its own take on these roles.

Fig 2.1 Software Development Life Cycle.

7
Full Stack Development About the department

As shown in Fig 2.1, Exposys Data Labs has practiced a life cycle of developing any
software or an application and that is followed as explained below: Software engineering task
bridging the gap between system requirements engineering and software design.
Provides software designer with a model of:
• System information
• Function
• Behaviour
Model can be translated to data, architectural, and component-level designs. Expect to do a
little bit of design during analysis and a little bit of analysis during design. The analysis phase
defines the requirements of the system, independent of how these requirements will be
accomplished. This phase defines the problem that the customer is trying to solve. The
deliverable result at the end of this phase is a requirement document. Ideally, this document
states in a clear and precise fashion what is to be built. This analysis represents the "what" phase.
The requirement document tries to capture the requirements from the customer's perspective by
defining goals and interactions at a level removed from the implementation details. The
requirement document may be expressed in a formal language based on mathematical logic.
Traditionally, the requirement document is written in English or another written language. The
requirement document does not specify the architectural or implementation details but specifies
information at the higher level of description. The problem statement, the customer's
expectations, and the criteria for success are
examples of high-level descriptions. There is a fuzzy line between high-level descriptions and
low-level details.

Sometimes, if an exact engineering detail needs to be specified, this detail will also
appear in the requirement document. This is the exception and should not be the rule. These
exceptions occur for many reasons including maintaining the consistency with other established
systems, availability of particular options, customer's demands, and to establish, at the
requirement level, a particular architecture vision. An example of a low-level detail that might
appear in the requirement document is the usage of a particular vendor's product line, or the
usage of some accepted computer industry standard, or a constraint on the image size of the

Dept. Of ISE, SJBIT 2020-21 8


Full Stack Development About the department

application. The requirement document states what the system should accomplish, independent
of many of the details.
The discovery process used in establishing the requirements during the analysis phase is
best described as a refinement process than as a levels-of-detail process. Traditionally, the
requirement document describes the things in the system and the actions that can be done on
these things. Things might be expressed as objects in an object-based technology where data and
algorithms are hidden behind hierarchical polymorphic methods. Alternatively, things might be
expressed as services accessing databases in a functional approach where data is a fundamentally
different concept than functions. In general, the description of things in the system can be much
more general and not confined to a particular technology.

In a more general sense, this document describes the ontology that is the noun phrases
and the verb phrases that will become the guidelines for defining the application specific
protocol. Later, in the design phase, these requirement descriptions are mapped into computer
science-based primitives, such as lists, stacks, trees, graphs, algorithms, and data structures. In
the design phase the architecture is established. This phase starts with the requirement document
delivered by the requirement phase and maps the requirements into architecture.

The architecture defines the components, their interface and behaviours. The deliverable
design document is the architecture. The design document describes a plan to implement the
requirements. This phase represents the “how" phase. Details on computer programming
languages and environments, machines, packages, application architecture, distributed
architecture layering, memory size, platform, algorithms, data structures, global type definitions
interfaces, and many other engineering details are established. The design may include the usage
of existing components.

The architectural team can now expand upon the information established in the
requirement document. Using the typical and a typical scenario provided from the requirement
document, performance trade-offs can be accomplished as well as complexity of implementation
trade-offs. Obviously, if an action is done, it needs to be done correctly and efficiently. A seldom

Dept. Of ISE, SJBIT 2020-21 9


Full Stack Development About the department

used action needs to be implemented correctly, but it is not obvious what level of performance is
required. The requirement document must guide this decision process.

An example of a seldom used action which must be done with high performance is the
emergency shutdown of a nuclear reactor. Analysing the trade-offs of necessary complexity
allows for many things to remain simple which, in turn, will eventually lead to a higher quality
product. The architecture team also converts the typical scenarios into a test plan.

In our approach, the team, given a complete requirement document, must also indicate
critical priorities for the implementation team. A critical implementation priority leads to a task
that has to be done right. If it fails, the product fails. If it succeeds, the product might succeed. At
the very least, the confidence level of the team producing a successful product will increase. This
will keep the implementation team focused. Exactly how this information is conveyed is a skill
based on experience more than a science based on fundamental foundations. In the
implementation phase, the team builds the components either from scratch or by composition.
Given the architecture document from the design phase and the requirement document from the
analysis phase, the team should build exactly what has been requested, though there is still room
for innovation and flexibility. For example, a component may be narrowly designed for this
particular system, or the component may be made more general to satisfy a reusability guideline.
The architecture document should give guidance. Sometimes, this guidance is found in the
requirement document. The implementation phase deals with issues of quality, performance,
baselines, libraries, and debugging. The end deliverable is the product itself.

2.3 Mobile Application Development

Mobile application development is a term used to denote the act or process by which
application software is developed for handheld devices, such as personal digital assistants,
enterprise digital assistants or mobile phones. These applications can be preinstalled on phones
during manufacturing platforms or delivered as web applications using server-side or client-side
processing (e.g., JavaScript) to provide an "applicationlike" experience within a Web browser.
Application software developers also must consider a lengthy array of screen sizes, hardware
specifications and configurations because of intense competition in mobile software and changes

Dept. Of ISE, SJBIT 2020-21 10


Full Stack Development About the department

within each of the platforms. Mobile app development has been steadily growing, both in each
of terms of revenues and jobs created. A 2013 analyst report estimates there are 529,000 direct
App Economy jobs within the EU 28 members, 60% of which are mobile app developers.

As part of the development process, Mobile User Interface (UI) Design is also an
essential in the creation of mobile apps. Mobile UI considers constraints & contexts, screen,
input and mobility as outlines for design. The user is often the focus of interaction with their
device, and the interface entails components of both hardware and software. User input allows
for the users to manipulate a system, and device's output allows the system to indicate the
effects of the users' manipulation. Mobile UI design constraints include limited attention and
form factors, such as a mobile device's screen size for a user's hand(s). Mobile UI contexts
signal cues from user activity, such as location and scheduling that can be shown from user
interactions within a mobile application. Overall, mobile UI design's goal is primarily for an
understandable, user friendly interface. The UI of mobile apps should: consider users' limited
attention, minimize keystrokes, and be task-oriented with a minimum set of functions. This
functionality is supported by Mobile enterprise application platforms or integrated
development environments (IDES).

Mobile Uls, or front-end, rely on mobile back-ends to support access to enterprise


systems. The mobile back-end facilitates data routing, security, authentication, authorization,
working off-line, and service orchestration. This functionality is supported by a mix of
middleware components including mobile app servers, Mobile Backend as a service (MBaaS),
and SOA infrastructure.

2.4 Platform

The platform organizations need to develop, deploy and manage mobile applications is
made from many components, and tools allow a developer to write, test and deploy
applications.

Front-end development tools


Front-end development tools are focused on the user interface and user experience
(UI/UX) and provide the following capabilities:

Dept. Of ISE, SJBIT 2020-21 11


Full Stack Development About the department

UI design tools


SDKs to access device features
Cross-platform accommodations/support

Back-end servers

Back-end tools pick up where the front-end tools leave off, and provide a set of reusable
services that are centrally managed and controlled and provide the following capabilities:
Integration with back-end systems
User authentication/authorization
Data services
Reusable business logic

Security add-on layers


The security is more important within more enterprises, IT departments often need
stopgap, tactical solutions that layer on top of existing apps, phones, and platform component.
App wrapping for security.
Data encryption
Client actions
Reporting and statistics

System Software
Criteria for selecting a development platform usually contain the target mobile
platforms, existing infrastructure and development skills. When targeting more than one
platform with cross-platform development it is also important to consider the impact of the tool
on the user experience. Performance is another important criterion, as research on mobile
applications indicates a strong correlation between application performance and user
satisfaction. In addition to performance and other criteria, the availability of the technology
and the project's requirement may drive the development between native and cross-platform
environments. To aid the choice between native and cross-platform environments, some
guidelines and benchmarks have been published. Typically, cross-platform environments are
reusable across multiple platforms, leveraging a native container while using HTML, CSS, and

Dept. Of ISE, SJBIT 2020-21 12


Full Stack Development About the department

JavaScript for the user interface. In contrast, native environments are targeted at one platform
for each of those environments.

2.5 Web Development


Web development is a broad term for the work involved in developing a web site for
the Internet (World Wide Web) or an intranet (a private network). Web development can range
from developing the simplest static single page of plain text to the most complex web-based
internet applications, electronic businesses, and social network services.

A more comprehensive list of tasks to which web development commonly refers, may
include web design, web content development, client liaison, client side/server-side scripting,
web server and network Security configuration, and ecommerce development. Among web
professionals, "web development" usually refers to the main non-design aspects of building
web sites: writing mark-up and coding. Most recently Web development has come to mean the
creation of content management systems or CMS. These CMS can be made from scratch,
proprietary (such as Open
Text) or open source (such as Drupal). In broad terms the CMS acts as middleware between
the database and the user through the browser. A principle benefit of a CMS is that it allows
non-technical people to make changes to their Web site without having technical knowledge.

For larger organizations and businesses, web development teams can consist of
hundreds of people (web developers) and follow standard methods like Agile methodologies
while developing websites. Smaller organizations may only require a single permanent or
contracting developer, or secondary assignment to related in positions such as a graphic
designer and/or information systems technician. Web development may be a collaborative
effort between departments rather than the domain of a designated department.

Since the commercialization of the web, web development has been a growing industry. The
growth of this industry is being pushed especially by businesses wishing to sell products and
services to online customers. For tools and platforms, the public can use many open-source
systems to aid in web development. A popular example, the LAMP (Linux, Apache, MySQL,
PHP) stack is available for download online free of charge. This has kept the cost of learning
web development to a minimum. Another contributing factor to the growth of the industry has

Dept. Of ISE, SJBIT 2020-21 13


Full Stack Development About the department

been the rise of easy-to-use web development software, most prominently Adobe
Dreamweaver, Web Development. Using such software, virtually anyone can relatively
quickly learn to develop a very basic web page. Knowledge of Hypertext Mark-up Language
(HTML) or of programming
languages are still required to use such software, but the basics can be learned and implemented
quickly with the help of help files, technical books, internet tutorials, or face-to-face training.

An ever-growing set of tools and technologies have helped developers build more
dynamic and interactive websites. Further, web developers now help to deliver applications as
web services which were traditionally only available as applications on a desk-based computer.
This has allowed for many opportunities to decentralize information and media distribution.
Examples can be seen with the rise of cloud services such as Dropbox, Adobe Creative Cloud
and Microsoft's Office 365.

Online auction-sites such as eBay have changed the way consumers find and purchase
goods and services. Online retailers such as Amazon.com and Buy.com (among many others)
have transformed the shopping and bargain-hunting experience for many consumers. Another
good example of transformative communication led by web development is the blog. Web
applications such as WordPress and Movable Type have created easily implemented blog-
environments for individual web sites. The popularity of open-source content management
systems such as Joomla, Drupal, XOOPS, and TYPO3 and enterprise content management
systems such as Alfresco and Exo Platform have extended development's impact at online
interaction and communication.

2.6 UI Design
User interface design (UI) or user interface engineering is the design of user interfaces
for machines and software, such as computers, home appliances, mobile devices, and other
electronic devices, with the focus on maximizing the user experience. The goal of user interface
design is to make the user's interaction as simple and efficient as possible; in terms of
accomplishing user goals (user-centred design). Good user interface design facilitates finishing
the task at hand without drawing unnecessary attention to it. Graphic design and typography
are utilized to support its usability, influencing how the user performs certain interactions and

Dept. Of ISE, SJBIT 2020-21 14


Full Stack Development About the department

improving the aesthetic appeal of the design; design aesthetics may enhance or detract from
the ability of users to use the functions of the interface.

The design process must balance technical functionality and visual elements (e.g.,
mental model) to create a system that is not only operational but also usable and adaptable to
changing user needs. Interface design is involved in a wide range of projects from computer
systems to cars, to commercial planes; all these projects involve much of the same basic human
interactions yet also require some unique skills and knowledge. As a result, designers tend to
specialize in certain types of projects and have skills centred on their expertise, whether that
be software design, user research, web design or industrial design.

Dept. Of ISE, SJBIT 2020-21 15


Chapter 3

TASKS PERFORMED

3.1 Database Management Systems


Databases and database systems have become an essential component of everyday life
in modern society. In the course of a day, most of us encounter several activities that involve
some interaction with a database. For example, if we go to the bank to deposit or withdraw
funds, if we make a hotel or airline reservation, if we access a computerized library catalog to
search for a bibliographic item, or if we buy some item-such as a book, toy, or computer-from
an Internet vendor through its Web page, chances are that our activities will involve someone or
some computer program accessing a database. Even purchasing items from a supermarket
nowadays in many cases involves an automatic update of the database that keeps the inventory
of supermarket items.

A database is a collection of related data. 1 By data, we mean known facts that can be recorded
and that have implicit meaning. For example, consider the names, telephone numbers, and
addresses of the people you know. You may have recorded this data in an indexed address
book, or you may have stored it on a hard drive, using a personal computer and software such
as Microsoft Access, or Excel. This is a collection of related data with an implicit meaning and
hence is a database.
A database management system (DBMS) is a collection of programs that enables users to create
and maintain a database. The DBMS is hence a general-purpose software system that facilitates
the processes of defining, constructing, manipulating, and sharing databases among various users
and applications. The main characteristics of the database approach versus the file-processing
approach are the following:

• Self-describing nature of a database system

• Insulation between programs and data, and data abstraction

• Support of multiple views of the data

• Sharing of data and multiuser transaction processing


16
Full Stack Development Theoretical Background

Advantages of using the DBMS approach:

 Controlling Redundancy
 Providing Persistent Storage for Program Objects
 Restricting Unauthorized Access
 Providing Storage Structures for Efficient Query Processing
 Providing Backup and Recovery
 Providing Multiple User Interfaces
 Representing Complex Relationships among Data
 Enforcing Integrity constraints
 Permitting Inferencing and Actions Using Rules
 Additional Implications of Using the Database Approach.

When not to use DBMS

In spite of the advantages of using a DBMS, there are a few situations in which such a
system may involve unnecessary overhead costs that would not be incurred in traditional file
processing. The overhead costs of using a DBMS are due to the following:

• High initial investment in hardware, software, and training


• The generality that a DBMS provides for defining and processing data
• Overhead for providing security, concurrency control, recovery, and integrity functions

Additional problems may arise if the database designers and DBA do not properly design the
database or if the database systems applications are not implemented properly. Hence, it may be
more desirable to use regular files under the following circumstances:

• The database and applications are simple, well defined, and not expected to change.
• There are stringent real-time requirements for some programs that may not be met
because of DBMS overhead.
• Multiple-user access to data is not required

3.2 Android Studio:

Dept. Of ISE, SJBIT 2020-21 17


Full Stack Development Theoretical Background

Android Studio is the official integrated development environment (IDE) for Google's
Android operating system, built on JetBrains' IntelliJ IDEA software and designed specifically
for Android development.[8] It is available for download on Windows, macOS and Linux based
operating systems or as a subscription-based service in 2020. It is a replacement for the Eclipse
Android Development Tools (E-ADT) as the primary IDE for native Android application
development.

The following features are provided in the current stable version:


• Gradle-based build support

• Android-specific refactoring and quick fixes

• Lint tools to catch performance, usability, version compatibility and other problems

• ProGuard integration and app-signing capabilities

• Template-based wizards to create common Android designs and components

• A rich layout editor that allows users to drag-and-drop UI components, option to preview
layouts on multiple screen configurations

• Support for building Android Wear apps

• Built-in support for Google Cloud Platform, enabling integration with Firebase Cloud
Messaging (Earlier 'Google Cloud Messaging') and Google App Engine

• Android Virtual Device (Emulator) to run and debug apps in the Android studio.
Android Studio supports all the same programming languages of IntelliJ (and CLion) e.g.,
Java, C++, and more with extensions, such as Go; and Android Studio 3.0 or later supports
Kotlin and "all Java 7 language features and a subset of Java 8 language features that vary by
platform version.” External projects backport some Java 9 features. While IntelliJ states that
Android Studio supports all released Java versions, and Java 12, it's not clear to what level
Android Studio supports Java versions up to Java 12 (the documentation mentions partial Java 8
support). At least some new language features up to Java 12 are usable in Android. Once an app
has been compiled with Android Studio, it can be published on the Google Play Store.

Dept. Of ISE, SJBIT 2020-21 18


Full Stack Development Theoretical Background

Fig 3.1: Android Studio flowchart

Top 10 pros of Android Studio


1. Instant app run: It is an advanced technology in which it cleverly understands the
transmutations done in the applications and deliver it instantly without taking time to
rebuild the apk and installations make. So, quick that you can see the changes in app
immediately. This is done by launching the URL on Android application installing the
native libraries with Android Instant apps. Instant App sometimes is known as” New
Module Wizard “.
2. Visual layout editor: Layout editor helps to build the layout quickly by adding different
attributes either by hard-code or drag and drop. The preview of the codes can be seen
easily on the visual editor screen and changes can be made accordingly by resizing it
dynamically. This will make testing the application process more facile and more
exhaustive.
3. Fast Emulator: Android has a great feature of Emulator which is exactly like the android
phones to test how the application looks like in physical devices. It gives real-time
experience to the Android applications. It allows you to test your applications faster and

Dept. Of ISE, SJBIT 2020-21 19


Full Stack Development Theoretical Background

on different-different configuration devices like tablet, android phone etc. It helps you
to make your application development life cycle shorter and more efficient.
4. Intelligence code editor: Android Studio provides you with the intelligent and quick
code editor. This will help you and guide you with the accurate code. It helps you to
complete code in advance and analyse your code in advance before building. Android
studio has the special feature of the development of code by the drop-down list with
suggesting the code you can integrate.
5. Addition of new activity as a code template: Yes, Android also has the feature of
templates built-in. If you know to build that accordingly that makes your task easier. it
has both pros and cons; you don’t find every template in Android Studio. It’s an
additional feature which helps the developer to build an application efficiently and
effectively which provide effective solutions.
6. Help to build up app for all devices: Android studio builds applications for every screen
size, for wear and gear devices etc. It also can stimulate the various type of features
which a hardware has like GPS location tracker, multi-touch.
7. Help to connect with firebase: Android Studio helps to give real-time experience with
IOT based project development with dynamic upgrades in the application. Firebase
connectivity help to create direct updates and provide databases connectivity. To build
high-quality applications we must use Firebase connectivity it helps to build the
scalable infrastructure for building the application. You can create chat applications by
using firebase connectivity it helps you to do happy chat experience.
8. Support kotlin: Kotlin the official language can be considered for Android. It is a
language without having any new restrictions and has various advantages in it. The
great feature of Kotlin is it run without any disturbances in older android versions as
well that means no issues of specific android versions. It runs fast and equivalent to
Java. Java developers can easily hands-on Kotlin with no-issues because it based on
automated Java only.
9. Colour previews: Android studio helps to see the code XML part in a preview to know
that how perfectly we are designing the application according to the need before
launching the application. It provides powerful functionality and enhanced features of
drag and drops or resizes the application. It contains drag and drop features but not
support for every function, that’s why be careful while doing that.

Dept. Of ISE, SJBIT 2020-21 20


Full Stack Development Theoretical Background

10. Maven repository: In Android Studio, Maven integration of its repository can be done,
within SDK manager support libraries of IDE is used. It’s a kind of a repository which
is a directory in which various jar files like project jars, Plugin are stored.

3.3 Firebase:
Firebase evolved from Envolve, a prior start-up founded by James Tamplin and Andrew
Lee in 2011. Envolve provided developers an API that enables the integration of online chat
functionality into their websites. After releasing the chat service, Tamplin and Lee found that
it was being used to pass application data that were not chat messages. Developers were using
Envolve to sync application data such as game state in real time across their users. Tamplin
and Lee decided to separate the chat system and the real-time architecture that powered it. They
founded Firebase as a separate company in September 2011 and it launched to the public in
April 2012.
Firebase's first product was the Firebase Realtime Database, an API that synchronizes
application data across iOS, Android, and Web devices, and stores it on Firebase's cloud. The
product assists software developers in building real-time, collaborative applications. In May
2012, a month after the beta launch, Firebase raised $1.1 million in seed funding from venture
capitalists Flybridge Capital Partners, Greylock Partners, Founder Collective, and New
Enterprise Associates. In June 2013, the company further raised $5.6 million in Series A
funding from Union Square Ventures and Flybridge Capital Partners.
In 2014, Firebase launched two products. Firebase Hosting and Firebase
Authentication. This positioned the company as a mobile backend as a service. In October
2014, Firebase was acquired by Google. A year later, in October 2015, Google acquired
Divshot, an HTML5 web-hosting platform, to merge it with the Firebase team.
In May 2016, at Google I/O, the company's annual developer conference, Firebase
introduced Firebase Analytics and announced that it was expanding its services to become a
unified backend-as-a-service (BaaS) platform for mobile developers. Firebase now integrates
with various other Google services, including Google Cloud Platform, AdMob, and Google
Ads to offer broader products and scale for developers. Google Cloud Messaging, the Google
service to send push notifications to Android devices, was superseded by a Firebase product,
Firebase Cloud Messaging, which added the functionality to deliver push notifications to both
iOS and web devices. In January 2017, Google acquired Fabric and Crashlytics from Twitter
to add those services to Firebase. In October 2017, Firebase has launched Cloud Firestore, a

Dept. Of ISE, SJBIT 2020-21 21


Full Stack Development Theoretical Background

real-time document database as the successor product to the original Firebase Real-time
Database.

Additional Features and Tools

Fig 3.2: Additional Features of Firebase

3.4 Design:
The appearance of the app is designed very carefully and creatively. Undeniably, the ‘look
and feel’ do the hard-hitting piece of work and keep the users engaged with the app while
enticing them to return to the app again. While designing, the essential focus was on
sentimental usage aspects, such as:
 App logo: The users see the app icon before they can experience how beautiful your
app is. Thus, it is as pivotal as the UI. Icons duly influence the users’ decision of
whether or not download the app. Hence, make sure that your logo communicates your
brand identity efficiently.
 App color and theme: This has to be chosen wisely. Because, color psychology works
indeed. Monochrome colors remain in always. That’s why Facebook, Twitter,
LinkedIn, Skype, WhatsApp and more app giants exude blue and green hues.

Dept. Of ISE, SJBIT 2020-21 22


Full Stack Development Theoretical Background

 Easy navigation: Navigation must be handled deftly both at front and back end. Distribute
the features and buttons on app screen such that everything comes handy to users. One
should understand whether customers would want a single window navigation, stacked
navigation bar, search driven or gesture-based navigation. Extra care should be taken of
those most frequently used features. The user friendliness is a trump card that can make
the app a hit or a miss.
When a decently working version of the app is ready, testing is started. Alpha testing, beta
testing, and so on. It is very crucial to run all the possible test case scenarios to ensure that the
app can work flawlessly in all-weather robust conditions.

3.5 Development:
Before everything else, we need the industry research observations and app architecture on
paper. Here is the plan I followed
 Enlist the requirements. What do I want the app to do?
 Observe industry standard, best practices, and current trends.
 Lay down the app architecture that describes how the app components would interact,
layers in the app, data caching, data flow and accessibility, development environment,
supported devices, resolution, and hardware connectivity.
 Visualizing worst-case scenarios that might need to operate in such an intermittent
network.
 Envisage the future of the app in the marketplace
 Then, design and examine a prototype before beginning with development.
 Database Framework or cloud media storages would build the foundation to raise the app
on.
 Decide upon the application server.
 Decide the Rest API to communicate data to and from the app.

Dept. Of ISE, SJBIT 2020-21 23


Full Stack Development Theoretical Background

Fig 3.6: App development process

Dept. Of ISE, SJBIT 2020-21 24


Chapter 4

REFLECTION NOTES

4.1 Experience:

As a part of academics under VTU, B.E, 7th semester students need to do their internship
program for a duration of 4 weeks in a company or an organization to get exposure to concepts in
real time applications. Recently I got to know about Exposys Data Labs in association with
SJBIT providing Internship program on Full Stack Development.

The chief coordinator and the trainers in Exposys Data Labs introduced us to the new
concept of Full Stack Web Development on Day 1. As a part of this training program, I was
introduced to the advanced concepts used for Web Development and various methods to design
web pages. After the introduction of concepts, we were given assessments to solve. Each student
was made to work on different projects that are related to Web Development. The trainers were
very supportive when we faced problems. Hands on training on each module helped us
understand the concepts even better. The prior knowledge of programming helped me to
understand Web Development better.

We first worked on few HTML, CSS, Bootstrap and learnt their features and uses.
Different methods of integrating different parts of the website were taught by the trainers. While
working hands on, I enjoyed the casual debates and discussions with the trainers and fellow
interns which brought more joy to learning.

After completing the training, I along with my partner undertook a mini project on Web
Development with the guidance of our lecturer and I am happy to say that we were successful in
completing it.

Throughout the training we had ample time to finish the syllabus, hence we had the
opportunity to ask and clear each doubt, and we were given time to understand each concept. All

25
Full Stack Development Reflection Notes

the students were personally attended without any exceptions; they were highly resourceful
giving useful materials of relevant topics.

This internship was a new experience along my journey to achieve technical knowledge
and contribute in a significant way to the development of the society. It helped me broaden my
thinking in all horizons of Engineering. It was definitely beneficial for me and I take this
opportunity to be grateful and thankful to all the people who have helped me along this amazing
journey.

4.2 ASSESSMENT
The assessment of an internship is very important for any internship program. Assessment is
nothing but weighing the pros and cons of the experience. I would like to assess my internship as
follows:
Guides were helpful, approachable, provided feedback on my progress and
skills.
Level of responsibilities was consistent with my abilities.
Fellow workers accepted my work and treated me appropriately.
This internship provided me the opportunity to use my academic preparation.
This provided me the opportunity to develop my interpersonal and technical
skills.
This was a valuable learning experience, and I grew as a professional.
It helped me define my career goals and next step in my career.
This provides a way to identify areas for personal and professional growth.
I had the opportunity to use the resources that are not available on campus.

4.3 LIST OF TECHNICAL OUTCOMES


The internship has provided the total reflection of the theoretical knowledge in the
practical form. It has developed the awareness, understanding and capacity in the specific
domain of technology called Industrial automation and well it has refined the skills effectively to
endeavour professionally through technical achievement.
The technical outcomes are as briefed below:

Dept. Of ISE, SJBIT 2020-21 26


Full Stack Development Reflection Notes

The ability to apply the knowledge of engineering.


The ability to design and conduct experiments, as well as to analyse and interpret data.
The ability to identify, formulate and solve industrial problems.
The understanding of professional and ethical responsibility.
Recognition towards the need for, and an ability to engage in, life-long learning.
Knowledge of contemporary issues.
The ability to use the techniques, skills, and modern tools necessary for industries.
The ability to work in one or more significant application domains.
The ability to identify, formulate and solve engineering problems.

4.4 NON-TECHNICAL SKILLS


As we all are very much familiar that the non-technical skills such as the verbal and
written communication, personality development, time management and resource utilization are
very important for any employee. Here I would like to express regarding my learning goals, how
much I learned and what else should I have to improve.
At the beginning I did not have any experience of working within any industry, but later I
understood better the functioning like organization structure and setting up projects. Trying to
operate as a non-profit organization, I saw the importance of financial support and personal
capacity. I got to experience the usage of industrial standard techniques of coding. I learned
actual process of designing any project.
Before my internship started my ideas did not match the experiences have gained during my
internship. This internship was an introduction to the actual work field for me. I have learned to
work in a related organization and apply my knowledge into practice. Relevant materials and
guidance by the lecturers helped in shaping the report. Teachers gave us an outline to create
report and alarmed us to do it in timely basis which immensely helped me. It was a fabulous
experience with Exposys Data Labs. I gained lot of things both technically and non-technically.
Throughout this journey reports were made to the internal guide in the college who immensely
supported for shaping this report.

Dept. Of ISE, SJBIT 2020-21 27


CONCLUSION

My time at Exposys Data labs resulted in one of the best learning I ever underwent.
Not only was I able to work in a top-notch technology but I also got a chance to
interact with a lot of great minds. With this internship, I was able to get practical
exposure of real time projects and how each project is handled and developed from
scratch. Additionally, I was able to understand the importance of working in a team
and gained leadership skills. I also got an opportunity of working with Android
studio, and this internship also helped me in improving my programming skills.

Overall, my internship at Exposys Data Labs was a great success. I was able to get
practical exposure of real time projects as well as work in a fantastic environment and
make connections that will last a lifetime. I could not be more thankful.

28

You might also like