(PA003-5-3)
SCHOOL OF COMPUTING
Acknowledgement
This is the internship report prepared on the conclusion of the internship in Guras Private
Limited. The internship was the part of the course book Pre-Industrial Experience which
target is to make the practical understanding of the course book study with the execution
of the competence in the general understanding of the study. The main plan here is to
gain the real time knowledge of the areas that has been studied in the course of learning
and gain the practical understanding in the professional style. This report here is written
as the summary report to the internship.
I would like to express my special thanks of gratitude to the internship coordinator Ms.
Sweta Tuladhar and the academic supervisor Mr. Jasbir Makkar for providing the regular
guidance in the beginning and accomplishment of the internship with the preparation of
the final report. I would like to thank Guras Tech Pvt. Ltd.and its team for providing me
opportunity to work as the intern in the known organization. The credit goes to Mr. Amrit
Sedhai who delivered me platform to develop my professional career by guiding me as
the supervisor for the period of my internship program. My thanks goes to all the
employee of the Guras Tech Pvt. Ltd.for providing me the friendly environment in the
internship runtime and build my portfolio by providing the necessary documents and
data. The company will be remembered for giving me chance to make my stair into the
professional career.
SCHOOL OF COMPUTING
Summary Report
The summary report of the internship carried out in the Guras Tech Pvt. Ltd.as the part of
the college co-curriculum. This gives the detail about the internship that lasted for the
period of 3 months starting from the 3rd September, 2018. The main aim of this internship
was to gain the practical knowledge and utilize the theoretical knowledge into real field
work. The internship program helped me to develop professionalism, production level
programming skills, grab organization working culture, learn with expert, work with team
and most importantly get an excellent experience in IT world. This includes the summary
of the work carried out during the time of internship and the personal experience from the
program. I was completely novice with Mobile Development and while doing intern I
came to know about Front end and backend. Front end is all about designing and back
end is all about database which is important term of mobile development. And the
developers help me to understand frontend and backend development in android and I
begin to learn android in Java programming language and layout resource in XML
language. And the database used for the development is MYSQL database where it was
too difficult to understand the links between android and MYSQL database in a project.
An application usually consists of multiple activities that are loosely bound to each other.
Typically, one activity in an application is specified as the "main" activity, which is
presented to the user when launching the application for the first time. Each activity can
then start another activity in order to perform different actions. Each time a new activity
starts, the previous activity is stopped, but the system preserves the activity in a stack (the
"back stack"). When a new activity starts, it is pushed onto the back stack and takes user
focus. The back stack stands to the basic "last in, first out" stack mechanism, so, when the
user is done with the current activity and presses the Back button, it is popped from the
stack (and destroyed) and the previous activity resumes. When an activity is stopped
because a new activity starts, it is notified of this change in state through the activity's
lifecycle callback methods. There are several callback methods that an activity might
SCHOOL OF COMPUTING
receive, due to a change in its state whether the system is creating it, stopping it,
resuming it, or destroying it and each callback provides you the opportunity to perform
specific work that's appropriate to that state change. For instance, when stopped, your
activity should release any large objects, such as network or database connections. When
the activity resumes, you can reacquire the necessary resources and resume actions that
were interrupted. These state transitions are all part of the activity.
In half period of my intern, I was familiar with all the layouts making and java language
and I did many simple tasks which was assigned by supervisor to me and after that I
learned database queries to make database for my simple project after learning some
database queries and made a small database where add and view table was created to
make backend as my project completion. While learning android development I was
familiar with the languages their platform in my internship. Through my internship, I
gained in-depth knowledge of the importance, financing, utilization, and delivery
methods of android development. The report consists of the business report which
includes the brief detail of the company i.e. Guras Tech Pvt. Ltd.that offered the
internship in the first section. The technical report follows the business part which
includes the technical details of the work done during the internship period. Similarly, the
appendix part covers documents related to the internship program with the attached log
file prepared in course of the internship that gives the details of the daily routine work in
the office.
SCHOOL OF COMPUTING
Contents
1 CHAPTER 1: Business report.....................................................................................6
2.1 Introduction.........................................................................................................18
SCHOOL OF COMPUTING
2.2 Outline.................................................................................................................18
2.4 Solutions..............................................................................................................22
for growth of their business. Guras is successful in standing out in the field of
Technology with its human resource having combine experience of more than 125 years.
Guras Pvt Ltd came into existence in 2014, when a group of enthusiastic entrepreneurs
saw an opportunity and need to break the chain of orthodox ICT market in Nepal. The
working hours in this organization is 6 days a week for administrative staffs and 5 days a
week for programmers & developer. When every other IT company were depending on
outsourced business, Guras saw a need to implement and innovate the industry inside
Nepal. Today Guras is among the leading IT companies in Nepal for developing and
deploying innovative products and services in the field of Mobile & Web technology.
Guras created an image of their own in the field of Mobile Application Development and
Web Applications development since its establishment. In a short span of their
establishment, they have been able to serve array of leading organizations Nationally and
Internationally and also they are proud of their work with this impressive list of clients.
Guras is committed to understand the unique technological needs of our clients and
SCHOOL OF COMPUTING
Process Analysis
Services
Website development
The dedicated web application development team of 6 experts brings in over 16 years of
domain experience. More than 30 web applications delivered by Guras Pvt Ltd power
businesses across various industries: education, healthcare, travel & tourism, online
payment, retail, manufacturing, and solar company. Web Application development We
are convinced that a professionally developed single-page web app can offer impressive
and secure web experience. By designing and developing interactive SPAs, we ensure
responsiveness and cross-browser compatibility, as well as live up to users’ high
expectations in agility and performance. With smartphones and tablets playing a pivotal
role in today’s web experience, the mobile-friendly nature of a web app is a necessity, not
a whim. We develop mobile-enabled progressive web apps in line with Google’s
definition of ‘progressiveness’, making them fast even on 2G networks, offline-available,
SCHOOL OF COMPUTING
and easily installable on a user’s home screen. Mobile application development Mobile
Specialists are on a high alert to deliver all-round custom mobile app development
services, from consulting and project specification to integration, deployment and market
release.
• Mobile consulting
• Business analysis
• UI/UX design
• Backend integration or publication on the App Store, Google Play or Microsoft Store.
Custom software serves the unique processes of your business, solves your specific
problems, satisfies your exclusive needs and makes your workflows easier, faster, and
more efficient. Moreover, you get:
• Increased flexibility
M:Mobility
O:Optimism
B:Balance
I:Integrity
L:Loyalty
I:Innovative
T:Trustworthy
Y: Youthful
Work in the field of the Mobile and Web development and deployment of the
software and websites.
Provide the valuable customer support.
Provide the quality product in affordable price.
functionality. The development part of the organization brings and support in the
production and maintenance of the broad mobile applications.
Software Sales
Mobile Application Development
Web Application Development
Customer Support
SCHOOL OF COMPUTING
hire leaders. Thus, the decision making in the organization is very impressive. In the
communication part, every employee is provided with their own email id and internal
chat management system accessible to all the staffs and project management tools, Jira,
Trello are used for development team for effective communication and ease of work.
There are some areas of the improvement needed for the flawless development and
establishment of the company. The company is largely focused with the corporate client
and one with the definite business mode. This leaves the personal work behind. This is
movement as per the business model but somehow may lack its reach to the large group
of clients with the small chunk of works. Similarly, the company been more focused in
the hardware’s sales and network administration but been less focused in the
development besides the web development which at present scenario should be changed
and make the different department working independently in these areas as well.
consumers. Android it is complete software package for a mobile device. Since the
beginning android team offers the developing kit (tool and frameworks) for creating
mobile applications quick and easy as possible. In some cases you do not specially need
an android phone but you are very welcome to have one. It can work right out of the box,
but of course users can customize it for their particular needs. For manufactures it is
ready and free solution for their devices. Except specific drivers android community
provides everything else to create their devices.[ CITATION Yeh13 \l 1033 ]
communication from the junior. The staffs could directly talk with the board member in
the problems and difficulties faced. The board passes the simple and clear words of
communication with the co-worker. The communication between CEO and company
workers is done in meeting hall in face to face. Communication medium is mailbox
Yandex and Hip chat which connected everyone in it Every worker have their own
personal id’s of the yandex and hip chat where they directly communicate on projects and
their work.
1.12 Conclusion
Guras Pvt. Ltd is the well-known organization in the field of Information Technology.
The company offers wide range of activities and work related in the field of the
information technology. The company has different section to carry out its business
SCHOOL OF COMPUTING
Furthermore, I was assigned to design the simple application with links. I made an app
named “One Piece” Front-end and Back-end using Languages like Front-end language is
XML and Back-end language is JAVA language. The tools and technologies are given
below that I used and learned during Internship.
SCHOOL OF COMPUTING
Android Studio
Android Studio is the official integrated development environment for Google's Android
operating system, built on JetBrains' IntelliJ IDEA software and designed specifically for
Android development. It is available for download on Windows, macOS and Linux based
operating systems. It is a software platform for creating and delivering the mobile
application. It is also used to create rich internet application which can run across the
mobile devices. It has standard GUI library for developing the user interface of
application. It supports all android phones and runs only in mobile phones. The
supportive languages of this platform are C++, Java, and Kotlin etc.[ CITATION
And13 \l 1033 ]
Java
XML
XML is a file extension for an Extensible Markup Language (XML) file format used to
create common information formats and share both the format and the data on the World
Wide Web, intranets, and elsewhere using standard ASCII text. This is a language used to
SCHOOL OF COMPUTING
make design and it is easy language also. It is used for the front end development. It
makes a good UI which user can understand the content and the application in a better
way.[CITATION Tec11 \l 1033 ]
SQLite Database
ROOM Database
Room is a database layer on top of an SQLite database. Room takes care of mundane
tasks that you used to handle with an SQLite OpenHelper . Room uses the DAO to issue
queries to its database. By default, to avoid poor UI performance, Room doesn't allow
you to issue database queries on the main thread.
Room is a Database Object Mapping library that makes it easy to access database on
Android applications.
Rather than hiding the detail of SQLite, Room tries to embrace them by providing
convenient APIs to query the database and also verify such queries at compile time. This
allows you to access the full power of SQLite while having the type safety provided by
Java SQL query builders.
Database: This annotation marks a class as a database. It should be an abstract class that
extends RoomDatabase. At runtime, you can acquire an instance of it via
Room.databaseBuilder or Room.inMemoryDatabaseBuilder.
This class defines the list of entities and data access objects in the database. It is also the
main access point for the underlying connection.
Entity: This annotation marks a class as a database row. For each Entity, a database table
is created to hold the items. The Entity class must be referenced in the Database#entities
array. Each field of the Entity (and its super class) is persisted in the database unless it is
denoted otherwise (see Entity docs for details).
SCHOOL OF COMPUTING
Dao: This annotation marks a class or interface as a Data Access Object. Data access
objects are the main component of Room that are responsible for defining the methods
that access the database. The class that is annotated with Database must have an abstract
method that has 0 arguments and returns the class that is annotated with Dao. While
generating the code at compile time, Room will generate an implementation of this class.[
CITATION And10 \l 1033 ]
2.2 Outline
The report prepared gives the information on my journey on the internship and its
outcomes. The report here describes about my direct involvement in the subject of
preference and the guideline offered by the company. The report gives the general
overview of the route I took in the phase of the internship program. Similarly, it gives the
brief understanding on the parts I worked and the success I made from the program. The
report contains of the different part like the introduction section, technical part, learning
outcome, etc. The programmer must have programming skill, knowledge of
programming language and experience about it. As a working on front-end developer,
they must have knowledge about Java, XML, MYSQL Database and design tools like
Photoshop, illustrator, Android Studio etc.
things during this internship period through which in the upcoming future I can learn
advanced thing easily. Guras Tech Pvt. Ltd.and its team members helped me a lot to learn
new knowledge. They motivate me and make ready for the real-based environment. At
first I was fully dependent on company, they taught me every important factor that helped
me to develop my knowledge and can research and find solution of problems by myself.
When I first join Guras Private Limited, they didn’t give me much task but told me to
study the relevant subject and practice it. After some time, they gave me a small project
to make a simple calculator on console application in Android Studio using Java. At first
I had no idea how to make such calculator then I started researching and also ask for help
for the web development department members. And after some time, I finished my first
assignment. My second assignment was to make a phone diary and the data entered by
the user must be saved in the notepad. This project took much time to complete. It should
be done in console application on Android studio. They gave me small project to make
me perfect. And after this entire small project they taught me how to connect the database
to Android studio and told me to make the stock manager mobile application.
After so many days of research and hard work, I made my first stock manager web
application by my own. And after that project, they taught me about MVP which stands
for MVP and MVVM. It is the famous architectural pattern that separates an application
into three main logical components. Each of these components is built to handle specific
development aspects of an application.
SCHOOL OF COMPUTING
Technical Specification
The part includes the technical aspect of the organization and the level of my reach as the
intern.
Front-end Development
Back-end Development
of the site will be your primary responsibility. This type of web development usually
consists of three parts: a server, an application, and a database. Code written by back end
developers is what communicates the database information to the browser. Anything you
can’t see easily with the eye such as databases and servers is the work of a back end
developer. Back end developer positions are often called programmers or web
developers. Many back end developers know front end languages such as HTML and
CSS but need to use languages such as Java, PHP, Ruby on Rails, Python, and .Net to get
the back end job done. Back end developers are most focused on a site’s responsiveness
and speed. These languages are used to create dynamic sites which are different from
static sites in that these types of websites store database information. Content on the site
is constantly changing and updating. Examples of dynamic sites include Facebook,
Twitter, and Google Maps. We often think of back-end languages as code that's
processed by something built in to the web server itself or a plugin to the server, but it's
possible for a script written in one of those back-end languages to launch external
processes (native applications) on the server, so really, you could use just about anything
as a back-end language, from compiled JAVA.
Quality Assurance
There are many tools and techniques that I learn the basis of the key quality assurance
principles. Some of these are:
Cost-Benefit Analysis
Cost of Quality
Control Charts
Design of Experiments
Statistical Sampling
Flow Charting
Quality Management Methodologies
Cause and Effect Diagrams
2.4 Solutions
The various problems had occurred in the course of internship runtime. The problems
include the different aspect related to the development in designing the frontend of
mobile application. I used to get problem in using new updates and sdk and jdk file in
Android Studio. As an Android Developer I need to think creative, work hard, need to
memorize the works. Creating UI/UX of various forms and designs many errors occurred
in designing with xml language code. I made unique design which were too good and the
supervisor also appreciate with my work. Into this work it involves as creative problem
solving skills. The experience of internship program makes me believe that I can use this
experience in the future. It was beneficial and helpful to me step forward in the future
too. The Problems in doing internship tasks are: The problem was connection of
relationship between database tables. The entire SQL query was right but the relations of
foreign key and primary key of the table was not displaying correctly. The solution of this
query is to get new query and get it from w3school. Another problem I faced while doing
SCHOOL OF COMPUTING
project, I need to add primary key value manually before adding any data in database
because I was new in MySQL Database. Therefore, the solution of this problem is adding
auto growth in primary key. Another problem was, adding data in two-relationship table
from one. While inserting data in table data does not exist, popup was displaying an error.
The solution of this problem was if else condition and using two queries instead of one
query and the first execution of the foreign key table data and the primary key table data.
While working on company or organization, the organization environment impact on our
daily life. I improved my time management skill, communication skill and capacity of
working on field. I came to understand the problem and handle it. This internship
program made me cleared on front-end development and little bit solution on Backend
database connection in android development.
SCHOOL OF COMPUTING
Reference
Android Developer , 2013. [Online] Available at: https://developer.android.com/studio/.