CSIT Internship Final Year Report (Android Developer)
1. TRIBHUWAN UNIVERSITY
Institute of Science and Technology
An Intern Report on
“Runlow”
With
Android Development with Java
Submitted to:
Office of the Dean
Institute of Science and Technology, Tribhuvan University
Kirtipur, Nepal
In the partial fulfillment of the requirement for the bachelor’s Degree in computer
Science and Information Technology
Submitted By:
Manish Tuladhar (T.U. Roll No. 7943/072)
Asian School of Management and Technology
January 2020
2. i
ACKNOWLEDGEMENT
The report is prepared in the partial fulfillment of the requirements for the degree of
Bachelor in Computer Science and Information Technology for my internship. The
internship opportunity I had with Tejobindu Solutions Pvt. Ltd. was a great chance
for learning and professional development. And also, for having a chance to meet so
many wonderful people and professionals who led me though this internship period.
At first, I am highly indebted to Mr. Prabin Silwal who took confidence in me and
provided me with the opportunity to work as an intern. I express my sincere gratitude
towards my Mentor/ Senior Android Developer, Mr. Vivek Sharma, for his continuous
support and making it much easier for me to adjust to the workspace. His careful and
precious guidance was extremely valuable for my study both theoretically and
practically.
Also, my deepest gratitude and special thanks to the MDs of Tejobindu Solutions Pvt.
Ltd, Mr. Bikash Bhandari, and Mr. Bipin Dhakal, who guide and keep me on the
correct path and allowing me to carry out my project at their esteemed organization and
extending during the training.
I would also like to thanks my supervisor Mr. Surya Bam who supervised me with the
internship as well as this report and the principle of our college, Er. Anil Lal Amatya
for his continuous encouragement and support for our growth.
At last, I perceive this opportunity as a big milestone in my career development. I will
strive to use gained skills and knowledge in the best possible way.
Thanking you,
Manish Tuladhar (T.U. Roll No. 7943/072)
3. ii
ABSTRACT
Runlow is a ride-hailing mobile application that provides ridesharing services, delivery
and tour services. Runlow is created for serving ride services within the city of
Colombo, Sri Lanka. Through Runlow, you can submit a trip request that is
automatically sent to Runlow Driver near to you, alerting driver to your location. The
accepting Runlow Driver will then come and pick you up and drive you to your
requested destination. The Runlow App automatically figures out the navigational route
for the driver, calculates the distance and fare, and transfers the payment to the driver
from your selected payment method i.e. cash or e-wallet.
Both the driver and the passenger are required to have an Android or iOS-based Runlow
User Application, Internet and GPS-enabled, smartphone to avail Runlow’s service.
Runlow uses a location-based system to match the passenger with a driver nearby
heading towards the destination.
This report provides an insight into the internship work carried out as a Junior Android
Developer of Runlow at Tejobindu Solutions Pvt. Ltd. The project, Runlow
Application, carries architecture and framework with Java Development. Since the
inner working and structure of the project is confidential within the organization, not
every aspect could be discussed in the report.
4. iii
TABLE OF CONTENTS
ACKNOWLEDGEMENT........................................................................................................i
ABSTRACT..............................................................................................................................ii
LIST OF FIGURES................................................................................................................. v
LIST OF TABLES..................................................................................................................vi
ABBREVIATIONS................................................................................................................vii
CHAPTER ONE INTRODUCTION ..................................................................................... 1
1.1 Introduction................................................................................................................ 1
1.1.1 Introduction to Project ....................................................................................... 1
1.1.2 Introduction to the Organization........................................................................ 2
1.1.3 Contact Information of the Organization........................................................... 2
1.1.4 Duration of Internship........................................................................................ 2
1.2 Problem Statement..................................................................................................... 3
1.3 Objectives .................................................................................................................. 3
1.4 Roles and Responsibilities......................................................................................... 3
1.5 Motivation.................................................................................................................. 4
1.6 Report Organization................................................................................................... 4
CHAPTER TWO LITERATURE REVIEW ....................................................................... 5
CHAPTER THREE SYSTEM ANALYSIS AND DESIGN................................................ 6
3.1 Requirement Collection ............................................................................................. 6
3.2 System Requirement.................................................................................................. 6
3.2.1 Functional Requirement..................................................................................... 6
3.2.2 Non-Functional Requirement............................................................................. 8
3.3 Feasibility Study ........................................................................................................ 8
3.3.1 Technical Feasibility.......................................................................................... 8
3.3.2 Operational Feasibility....................................................................................... 8
3.3.3 Economic Feasibility ......................................................................................... 9
3.4 Data Model of the System.......................................................................................... 9
3.4.1 ER Diagram ....................................................................................................... 9
3.5 Process Model.......................................................................................................... 10
3.5.1 Class Diagram.................................................................................................. 10
3.5.2 Activity Diagram ............................................................................................. 11
CHAPTER FOUR IMPLEMENTATION AND TESTING ............................................. 14
4.1 Tools used................................................................................................................ 14
4.1.1 Java .................................................................................................................. 14
5. iv
4.1.2 Android Studio................................................................................................. 14
4.1.3 XML................................................................................................................. 14
4.1.4 Firebase............................................................................................................ 14
4.1.5 Android SDK ................................................................................................... 14
4.2 Backend Tools ......................................................................................................... 15
4.2.1 JSON API using PHP Laravel and Java Spring............................................... 15
4.2.2 Android Services.............................................................................................. 15
4.3 Development Methodology ..................................................................................... 16
4.3.1 Agile Methodology.......................................................................................... 16
4.4 Testing ..................................................................................................................... 17
4.4.1 Unit Testing ..................................................................................................... 17
4.4.2 Integration Testing........................................................................................... 18
CHAPTER FIVE CONCLUSION AND LESSON LEARNT .......................................... 19
5.1 Conclusion ............................................................................................................... 19
5.2 Lesson Learnt........................................................................................................... 19
REFERENCES....................................................................................................................... 20
APPENDIX............................................................................................................................. 21
6. v
LIST OF FIGURES
Figure 3.1 Use case diagram for Runlow application 7
Figure 3.2 ER diagram of Runlow 9
Figure 3.3 Class diagram of Runlow 10
Figure 3.4 Activity Diagram of Runlow Admin Panel 11
Figure 3.5 Sequence diagram during registration 12
Figure 3.6 Sequence diagram during booking 13
Figure 4.1 Android Service Background 13
Figure 4.2 Agile Process 14
7. vi
LIST OF TABLES
Table 1.1 Information of Tejobindu Solutions 2
Table 1.2 Internship Duration 2
Table 4.1 Integration Testing 15
Table 4.1 Test Cases 16
8. vii
ABBREVIATIONS
API: Application Programming Interface
BSc. CSIT: Bachelor in Computer Science and Information Technology
ER: Entity-Relation Diagram
IT: Information Technology
IDE: Integrated Development Environment
OS: Operating System
QA: Quality Assurance
SDLC: Software Development Life Cycle
XML: Extended Markup Language
9. 1
CHAPTER ONE
INTRODUCTION
1.1 Introduction
1.1.1 Introduction to Project
Runlow is a ride-hailing mobile application that provides ridesharing services, delivery and tour
services. Runlow is created for serving ride services within the city of Colombo, Sri Lanka.
Through Runlow, you can submit a trip request that is automatically sent to Runlow Driver near
to you, alerting driver to your location. The accepting Runlow Driver will then come and pick you
up and drive you to your requested destination. The Runlow App automatically figures out the
navigational route for the driver, calculates the distance and fare, and transfers the payment to the
driver from your selected payment method i.e. cash or e-wallet.
To join Runlow, one must download the app from Play store (for Android) or App store (for IOS),
select a pickup point, select the ride of their choice and the nearest rider will call him/her up. The
passenger is also sent the photo, phone number and name of the driver who will be showing up, to
make the job easier. Users can also book the ride of their choice for a certain period of time for
tour and traveling purpose.
The main goal of Runlow is to provide on-demand hassle free riding services in the nick of time
during dreadful or late hours. It’d make getting rides easy. Drivers who registers for Runlow would
be friendly as well because it allows users to rate the driver. This would generally keep drivers in
check because nobody wants to get negative review.
The major services Runlow provides are as follows:
• Riding services to the public, tourists and business travelers on demand.
• Safe and reliable delivery of small or large packages from user’s place to the destination
• Feasible riding base fares and rides during late hours as well
• Booking of vans, buses or other vehicle types for tours and travels
• Provide verified customer service with certified drivers
10. 2
1.1.2 Introduction to the Organization
Tejobindu Solutions is a creative digital agency-based IT
Company in Kathmandu, Nepal. They provide a fresh new
web design that are easy to navigate and provides useful
information to current customers. Tejobindu Solutions develops innovative and responsive website
designs and mobile applications that are 100% original for the client and also offers business wings
through strategic design & functional applications cut out just for client’s specific business.
1.1.3 Contact Information of the Organization
Address Sukedhara, Kathmandu, Nepal
Phone Number +977-9843743649, 9810099062
Website http://tejobindu.com/
Email info@tejobindusolutions.com
Table 1.1 Information of Tejobindu Solutions
1.1.4 Duration of Internship
Office Hours 9:30 AM to 5:30 PM
Working Hours 8 Hours / Day
Working Days 6 Days a Week
Position Android Developer Intern
Total Duration 3 Months
Mentor Mr. Vivek Sharma
Table 1.2 Internship Duration
11. 3
1.2 Problem Statement
The city of Colombo suffers from crowded population leading to uneasy public transportation and
heavy traffic jams for regular passengers. It is very hard to get hold during dreadful or critical
times. Also, the city has high rates of private vehicles than public that takes up the traffic. With
the problem of expensive transport fares and tour bookings for tourists and business travelers, it is
really hard to commute properly within the city. Also the late night transports are really hard to
find around.
1.3 Objectives
The major objectives of the project are as follows:
• To provide on-demand ride sharing services to the public, tourists and business travelers.
• To provide rides under feasible base fares and during late hours.
• To provide safe and reliable package delivery options.
• To help users book different vehicle types for tours and travels.
• To provide verified customer service with certified drivers and better vehicles
1.4 Roles and Responsibilities
During the internship at Tejobindu Solutions, the internee was assigned with different tasks as per
the requirements of both the organization and the project. For the first few days, the internee was
allowed to know the project and get familiar with different technologies that were used in the
project. The internee was taught AGILE Methodology way of programming in Android which
allowed me to follow adaptive planning, evolutionary development, early delivery and continuous
improvements on the application. Then internee was allowed to start working the Runlow User
Application. The tasks were assigned through Trello and had to submit tasks to GitLab.
Besides the internee, there were three other members working on Runlow. One of them was
making APIs for the application and the remaining two were working on application on Runlow
Admin Panel with Laravel and IOS. The internee communicated with them regularly to make sure
the performance and testing of application for performing tasks like trip request, location
management and ride cancelling.
12. 4
1.5 Motivation
The foremost motivation behind the internship was to gain more knowledge by working on the
real-world projects and learn from the seniors and other colleagues who had been working on the
similar field. In addition, since the internship is the course curriculum of TU, every student
perusing BSc. CSIT must do it. For that, the internee had to search for organization that would
provide with opportunity to work as an intern.
As the internship period was coming to an end, internee tried applying for the job there. The
internee was already comfortable with the working methods there and was familiar with most of
the staffs. After going through interview and other criteria he was granted the opportunity to work
there.
1.6 Report Organization
Chapter 1 of this report introduces the organization and describes about project objectives,
internship durations and the motivations behind the internship. Then in chapter 2, it describes about
the requirement analysis project (functional and non-functional) along with feasibility study, data
modeling and process modeling. Chapter 3 describes about the architectural design of the project,
its database design and process design. Different frontend tools and backend tools that was used
in this project is described in chapter 4, along with data structures and development methodology.
In chapter 5, it describes in detail about the test cases and test execution. In chapter 6, there is
conclusion which marks to an end of the document summing up the entire project and learning
from the internship
13. 5
CHAPTER TWO
LITERATURE REVIEW
The advancement of smartphones, global positioning system, and information technologies have
a great influence on our travelling preferences and behavior, dynamically shaping the
transportation industry. The inception of Uber in 2009, the ride-hailing and ride-sharing industry
witnessed a transformational change. However, various developing countries has yet to adapted to
the ride-sharing features that Uber-like apps provide. Here, the literature survey consists of two
existing systems that are working to provide ride-sharing services under developing countries
named as follows:
A. BlaBlaCar
BlaBlaCar is the world's largest long-distance ridesharing community. Conceived in December
2003 by Frédéric Mazzella, and founded in 2006, BlaBlaCar connects drivers and passengers
willing to travel together between cities and share the cost of the journey. BlaBlaCar has more than
20 million members across 19 countries. Members must register and create a personal online
profile, which includes ratings and reviews by other members, social network verification, and rate
of response. “Profiles of members show how much experience they have of the service, meaning
those with more – known as "ambassadors" – attract more ride shares. One major shortcoming of
this application is that it only offers inter-city carpooling options which our application aims to
rectify and add intra-city commuting options too.
B. Ola Cabs
Ola Cabs, is an Indian ridesharing company (TNC) offering services that include peer-to-peer
ridesharing, ride service hailing, taxi and food delivery. It was developed by ANI Technologies
Pvt Ltd. Ola offers different levels of service, ranging from economic to luxury travel. The cabs
are reserved through a mobile app and also through their website and the service accepts both cash
and cashless payments with Ola money. It claims to clock an average of more than 1,50,000
bookings per day and commands 60% of the market share in India as of 2014.
14. 6
CHAPTER THREE
SYSTEM ANALYSIS AND DESIGN
3.1 Requirement Collection
For software development process, the first and the major part is the requirement collection as it
tells us the general overview of the application and features that the application should have. In
the internship program, the basic requirements of the application were prepared by the senior
android developer and was explained to the internee so that he can know the basic requirements of
the application to be designed. The internee was given clear instructions about what need to be
done through Trello.
3.2 System Requirement
This section of the report presents both the functional and non-functional requirements of the
project during the internship.
3.2.1 Functional Requirement
Functional requirements are the statements of services that the system should provide, how the
system should react to particular input and what the system should give output according to the
input. It includes the functions performed by the particular module. They are discussed as:
• Develop modules for back-end and front-end interfaces. They performed following
functionalities:
o Creating three apps: Runlow User, Runlow Driver and Runlow Tour.
o Adding new users and editing their information with OTP validation.
o Specifying and tracking user pickup location and destination location.
o Updating the vehicle fares and working accordingly.
• Adding various tour booking package details and managing tour vehicle types.
• Alerting Runlow Drivers according to booking details by creating background
services.
15. 7
• Managing UI/UX design according to design flow and managing process of booking
accordingly.
Figure 3.1 Use case diagram for Runlow applications
16. 8
3.2.2 Non-Functional Requirement
There are constraints on the services or functions offered by the system. It describes overall
qualities or attributes of the system and how well or to what standard a function should be provided.
The mobile application has been built with Android’s Java Development. It also follows some of
the other properties like scalability, reliability, user-friendly, maintainability and usability.
• Employee must change the initially assigned login password immediately after the first
successful login. Moreover, the initial should never be reused.
• Employees never allowed to update their salary information. Such attempt should be reported
to the security administrator.
• Every unsuccessful attempt by a user to access an item of data shall be recorded on an audit
trail.
3.3 Feasibility Study
The feasibility study determines if the system can be built successfully with available cost, time
and effort. The study is conducted by analyzing the collected requirements.
3.3.1 Technical Feasibility
For the technical feasibility of the applications, the evaluation of the hardware and the software
requirements of the proposed system was carried out. For the app design Android studio is used as
app development tool. Android studio is used as the IDE for android app development. For the
design and development of system following tools like Android Studio, Postman and
Jsonschema2pojo. So, this system is technically feasible. All the necessary hardware and software
required for developing and installing the system are available.
3.3.2 Operational Feasibility
For the operational feasibility of the project, evaluation on how the system’s operation will be used
if it is developed and implemented was taken into consideration. Our system makes the maximum
use of available resources including people, time and flow of forms by following methods of
application development. Our system also provides reliable services to the potential users and the
user needs to be familiar with using the application with proper UI/UX experience. This will
enhance reduction in cost and increase in benefits.
17. 9
3.3.3 Economic Feasibility
The system did require help of financial aid. This application was developed using the Android
Development Tools and various SDKs were used where SDKs like Google Maps, Distance API
and Firebase Tools took some expenses. In addition, we used Android Studio as IDE, which is
open source and free. However, the result of the analysis proved to be positive since the benefits
of the project was higher than the cost. The project development budget was also considered
feasible. Thus, the project was concluded to be economically feasible.
3.4 Data Model of the System
3.4.1 ER Diagram
The following is the ER Diagram of the system.
Fig 3.2: ER diagram of Runlow System
20. 12
3.5.3 Sequence Diagram
Sequence diagram for various operations on Runlow system has been explained as below. The
sequence diagrams follow between various entities.
Fig 3.5: Sequence diagram during registration operation
22. 14
CHAPTER FOUR
IMPLEMENTATION AND TESTING
4.1 Tools used
After system design, next step is to start the real coding with favorable programming language.
There may be so many tools and techniques available for this stage among them we have to choose
suitable according to system requirement. In case of Runlow android app Android Studio is the
suitable programing language for native mobile app.
4.1.1 Java
Java is a general-purpose programming language that is class-based, object-oriented, and designed
to have as few implementation dependencies as possible. Android applications are developed using
the Java language which communicates with layouts programmatically.
4.1.2 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.
4.1.3 XML
XML stands for Extensible Markup Language, a markup language much like HTML used to
describe data. In Android we use xml for designing our layouts because XML is lightweight
language so it doesn’t make our layout heavy.
4.1.4 Firebase
In Runlow Application, Firebase provides a service called Firebase Cloud Messaging (FCM)
which lets you reliably send messages and helps to create push notifications according to the event.
4.1.5 Android SDK
The android software development kit (Android SDK) contains the necessary tools to create,
compile and package Android applications. For the development of the application, android SDK
28 was used with Maps SDK and Routes SDK for geolocation handling.
23. 15
4.2 Backend Tools
4.2.1 JSON API using PHP Laravel and Java Spring
JSON is an encoding scheme that is designed to eliminate the need for an ad-hoc code for each
application to communicate with servers that communicate in a defined way. JSON API module
exposes an implementation for data stores and data structures, such as entity types, bundles, and
fields. Runlow Application uses API made from Laravel and Spring framework for handling data
communication between the Runlow’s AWS server.
4.2.2 Android Services
Android service is a component that is used to perform operations on the background such as
playing music, handle network transactions, interacting content providers etc. Android Services
like WorkManager and Event Broadcast were used to handle Marker Animations, Background
Location Updates, managing alerts during request.
Fig 4.1: Android Service Workflow
24. 16
4.3 Development Methodology
Quite a few methodologies are available for the development of mobile application. However, we
chose the agile methodology for the development of Runlow.
4.3.1 Agile Methodology
This methodology follows the collaborative approach for the development of product. It is centered
on the idea of iterative development where requirements and solutions evolve through
collaboration between self-organizing cross-functional teams. It motivated for the faster delivery
with great quality and greater aptitude to respond to change. With Runlow App Development
handling of testing phase and build phase was done with sprints lasting 2 weeks.
Fig 4.2: Agile Process
25. 17
4.4 Testing
4.4.1 Unit Testing
Unit testing is often performed by the programmer to test the unit that has been implemented is
producing expected output against given input. Accordingly, in this project each of the units of the
system have been tested separately. Each unit like register, login, etc. have been tested to ensure
each of them run properly without any problems.
Table 4.1: Unit Testing
S. N Name of
module to be
tested
Valid Input Invalid
Input
Excepted
Output
Actual
Output
Remarks
1. Register
Validation
All fields filled up Validated Validated Pass
2. Register
Validation
All fields
not filled
up
Validated Failed Failed
3. Push
Notification
Booking accepted and
Booking incoming
alert.
Validated Validated Pass
4. Booking
Categories
User has filled up
pickup location, drop
off location and
vehicle type.
Validated Validated Pass
26. 18
4.4.2 Integration Testing
Integration testing has been done to check if the units interact with each other and run properly
without any problems. The bottom-up approach for integration testing have been applied. First the
lowest-level units are tested and integrated and only after the success of low-level units, integration
and testing is moved to higher level.
This test verifies that the target system behaves as expected when a user performs a specific action
or enters a specific input in its activities.
S.N Name of
module to
be tested
Valid Input Invalid Input Excepted
Output
Actual
Output
Remark
1. Register
new user
All fields filled
up:
Name: Manish,
Email:
abc@gmail.com
Gender: Male
Phone:
9779812345678
User
Created
User
Created
Pass
2. Register
new user
gender not filled
up:
Name: Manish
Email:
abc@gmail.com
Gender: #Empty
Phone:
9779812345678
User
Created
User not
Created
Failed
3. Push
Notification
Booking
Accepted,
Driver Arrived
Booking
Cancelled,
User
notification
started
User
notification
n started
Pass
4. Push
Notification
Pick Up Details
Location:
Empty
User
notification
started
User
notification
Not started
Failed
Table 4.2: Integration Test
27. 19
CHAPTER FIVE
CONCLUSION AND LESSON LEARNT
5.1 Conclusion
The report has the overall concept of the project that was done during the 3 months’ internship at
the Tejobindu Solutions. The report contains the basic outline of what the project is about, what
are its objectives, how it works and what tools has been used for building that system. Internship
is in fact one of the most effective plans that out course contains. It helps every individual to know
the professional areas and further groom their skills by working on the projects. It helps to develop
the inter personnel skills, time management and the skill to work as a team.
5.2 Lesson Learnt
By the completion of this internship, the internee learnt many new things that was not taught by
the academic syllabus. The internee got to work on a real-world project that understand how
different modules work. The internee also got to strengthen my public relation and communication
capabilities throughout my 3 months internship. This boosted the confidence and even polished
professional skills as well as soft skills in the IT sector to some extent. It helped the internee in
gaining knowledge on several domains, software development methodologies, several technical
tools and frameworks used in software development. It can further be listed as:
• Team Work Skill
• Time Management Skills
• Inter personnel Communication skill
• Problem solving skills
• Generic android development flow
28. 20
REFERENCES
What is AGILE? - What is SCRUM? - Agile FAQ's. (n.d.). Retrieved February 29,
2020, from https://www.cprime.com/resources/what-is-agile-what-is-scrum/
Using Volley? - Google Volley Training - Retrieved July 5th
, 2019, from
https://github.com/google/volley (July 5th, 2019)
Model View Presenter Architecture - Cervone Francesco. Retrieved July 14th
, 2019,
from https://medium.com/@cervonefrancesco/model-view-presenter-android-
guidelines-94970b430ddf
Using JSON APIs? – JSON API Org - Retrieved July 3rd
, 2019, from
http://jsonapi.org/
Google API Integration – Google - Retrieved July 15th
, 2019, from
https://developers.google.com/identity/sign-in/android/start-integrating