You are on page 1of 36

VISVESVARAYA TECHNOLOGICAL UNIVERSITY

Jnana Sangama, Belagavi-590018

A MAD MINI PROJECT REPORT


On

“EMI, INCOME TAX AND GST CALCULATOR”


A Project report Submitted in partial fulfillment of the requirement for the degree of
BACHELOR OF ENGINEERING
In
COMPUTER SCIENCE & ENGINEERING

Submitted by

SOURABH KALLAPPA BELLANKI (1RG18CS057)

TEJAS.P (1RG18CS063)

UNDER THE GUIDANCE OF,

Mrs. Pushplata Dubey


Assistant Professor,
Dept. of CSE
RGIT, Bengaluru-32

RAJIV GANDHI INSTITUTE OF TECHNOLOGY


DEPARTMENT OF COMPUTER SCIENCE & ENGINEERING
Cholanagar, R.T.Nagar Post, Bengaluru-560032
2020-2021
VISVESVARAYA TECHNOLOGICAL UNIVERSITY
(Affiliated To Visvesvaraya Technological University)
Cholanagar, R.T.Nagar Post, Bangalore-560032

Department of Computer Science Engineering

CERTIFICATE

This is to certify that the MAD Mini Project Report entitled “EMI, INCOME TAX
AND GST CALCULATOR” is a bonafide work carried out by Mr.SOURABH
KALLAPPA BELLANKI (1RG18CS057) & Mr.TEJAS.P(1RG18CS063) in partial
fulfillment for the award of Bachelor of Engineering in Computer Science
Engineering under Visvesvaraya Technological University, Belagavi, during the year
2020-2021. It is certified that all corrections/suggestions given for Internal Assessment
have been incorporated in the report. This Mini Project report has been approved as it
satisfies the academic requirements in respect of seminar work.

Signature of Guide Signature of HOD


Mrs. Pushplata Dubey Mrs. Arudra A
Asst. Professor Professor & HOD
Dept. of CSE, Dept. of CSE,
RGIT, Bengaluru RGIT, Bengaluru
External Viva

Name of the Examiners Signature With Date

1.

2.
VISVESVARAYA TECHNOLOGICAL UNIVERSITY
Jnana Sangama, Belagavi-590018

RAJIV GANDHI INSTITUTE OF TECHNOLOGY


DEPARTMENT OF COMPUTER SCIENCE & ENGINEERING

DECLARATION

I hereby declare that the mini project work entitled “EMI, INCOME TAX AND GST
CALCULATOR” submitted to the Visvesvaraya Technological University, Belagavi during
the academic year 2020-2021, is record of an original work done by us under the guidance of
Mrs. Pushplata Dubey , Assistant Professor, Department of Computer Science and
Engineering, Rajiv Gandhi Institute of Technology, Bengaluru and this project work is
submitted in the partial fulfillment of requirements for the award of the degree of Bachelor of
Engineering in Computer Science & Engineering. The results embodied in this thesis have not
been submitted to any other University or Institute for award of any degree or diploma.

SOURABH KALLAPPA BELLANKI


(1RG18CS057)

TEJAS.P
(1RG18CS063)
ACKNOWLEDGEMENT
I take this opportunity to express my sincere gratitude and respect to the Rajiv
Gandhi Institute of Technology, Bengaluru for providing me an opportunity to carry
out my project work.

I express my sincere regards and thanks to Dr. D G Anand, Principal, RGIT,


Bengaluru, and Mrs. ARUDRA A, Professor and Head, Department of Computer
Science & Engineering, RGIT, Bengaluru, for their encouragement and support
throughout the Project.

With profound sense of gratitude, I acknowledge the guidance and support


extended by Mrs. Pushplata Dubey, Asst. Professor, Department of Computer
Science & Engineering, RGIT, Bengaluru. Her incessant encouragement and valuable
technical support have been of immense help in realizing this project. Her guidance
gave me the environment to enhance my knowledge, skills and to reach the pinnacle
with sheer determination, dedication and hard work.

I also extend my thanks to the entire faculty of the Department of CSE, RGIT,
Bengaluru, who have encouraged me throughout the course of Bachelor Degree.

SOURABH KALLAPA BELLANKI


(1RG18CS057)

TEJAS.P
(1RG18CS063)

i
ABSTRACT

EMI or equated monthly installment is the fixed payment that is made by the borrower to the
lender. EMIs pay back both the principal and the interest for each month, and the loan is fully repaid within a
specified number of years. Here, the borrower could be you, and the lender could be the bank that has given
you the loan.

An EMI Calculator is a utility tool, which helps to calculate the amount we repay each month
towards our loan. We can use the EMI calculator and calculate the EMI amount on a car loan, home loan, bike
loan, or a personal loan. We get an idea of the monthly repayments we make towards these loan. The EMI
calculator has three sliders in a box with the loan amount, number of months, and the interest rate. After you
fill-up the details using the slider, the EMI calculator shows how much we must pay off each month, to repay
the loan within the duration we have selected.

The income tax calculator is a very useful tool for everyday users. Every one of us needs to
calculate our payable tax each year. This task becomes much more complicated when we have different
sources of income and each has a different rule from the income tax department..

Goods and Services Tax (GST) is an indirect tax that manufactures, wholesales, retailes and
consumers have to pay on consumers goods and services. It is a destination-based and multi-stage tax which is
charged on every value addition. The GST calculator helps to find out either gross or net product price on
percentage-based GST rates. It saves time and reduces chances of human error while computing the total cost
of goods and services.
TABLE OF CONTENTS
Certificate i
Declaration ii
Acknowledgement iii
Abstract iv

CHAPTERS TITLE PAGE NO


1.
INTRODUCTION

1.1 PROJECT OVERVIEW

1.1.1 APPLICATIONS OF MAD…

1.1.2 DESIGN

1.2 BACKGROUND OF THE PROJECT

1.3 SCOPE OF THE PROJECT

1.4 AIM OF THE PROJECT

1.5 OBJECTIVE OF THE PROJECT

2. REQUIREMENT SPECIFICATION

2.1 DETAILS OF SOFTWARE AND LANGUAGE

2.1.1 INTRODUCTION TO ANDROID

2.1.2ANDROID ARCHITECTURE

2.2 INTRODUCTION TO ANDROID STUDIO

2.3 INTRODUCTION TO FIREBASE

2.3.1 FEATURES OF FIREBASE

2.3.2 MERITS OF FIREBASE

2.4 INTRODUCTION TO JAVA

2.5 SYSTEM REQUIREMENTS

2.5.1 HARDWARE REQUIREMENTS


2.5.2 SOFTWARE REQUIREMENTS
2.6 TOOLS USED
2.6.1 Android Software Development

2.6.2 Android Debug Bridge (ADB)


2.6.3 Gradle Build

2.6.4 AVD Manager


3. SYSTEM DESIGN

3.1 DESIGN APPROACH


3.2 Front-End Desig
4 SYSTEM IMPLEMENTATION

4.1 Source Code


4.1.1 XML Code
4.1.2 Java Code For EMI
4.1.3 Java Code For GST
4.1.4 Java Code For Income Tax

5 OUTPUT (SCREENSHOTS)

5.1 Home Page


5.2 Income Page
5.3 GST Page
5.4 EMI Page

6 CONCLUSION

BIBLIOGRAPHY
Emi, Tax and Gst calculator 2020-2021

CHAPTER 1

INTRODUCTION
Mobile app development is the act or process by which a mobile app is developed for mobile
devices, such as personal digital assistants, enterprise digital assistants or mobile phones. These applications
can be pre-installed on phones during manufacturing platforms, or delivered as web applications using server-
side or client-side processing to provide an "application-like" experience within a Web browser. Application
software developers also must consider a long array of screen sizes, hardware specifications, and
configurations because of intense competition in mobile software and changes within each of the
platforms. As part of the development process, mobile user interface (UI) design are also used in the creation
of mobile apps. In addition, it provides a very convenient hardware platform for developers so that they can
spend less effort to realize their ideas. This makes Android can get further development. As the smart phones
and Android system getting popular, the operations like listening to music, watching videos, tweeting and
some others can be moved from the computer to a phone now. The applications on the market today are
mostly commercial applications, and contain a large number of built-in advertising. Sometimes, users will pay
more attention to the user experience of software. Therefore, the development of the application can not only
be limited to the function, more attention should be paid to the user's experience. After studying some
previous Android applications and access to large amounts of materials, we utilize the Java language, the
Eclipse platform, Android ADT and the Android SDK to develop these three mobile applications. These
systems have a nice interface and smooth operation. These Apps won’t steal any personal information, but can
exclude useless information and bring a wonderful user experience.

1.1 PROJECT OVERVIEW


EMI stand for Equated Monthly Installment. This calculator is used to calculate per month EMI of loan
amount if loan amount that is principal, rate of interest and time in years is given as input.

Formula:

E = (P.r.(1+r)n) / ((1+r)n – 1)

Here,

P = loan amount i.e principal amount R = Interest rate per month

T = Loan time period in year

Explanation : When we provide amount of money i.e, principal, rate of interest, time and this program will
calculate amount of emi.
Emi, Tax and Gst calculator 2020-2021

The income tax calculator is a very useful tool for everyday users. Every one of us needs to calculate our
payable tax each year. This task becomes much more complicated when we have different sources of income
and each has a different rule from the income tax department.

Goods and Services Tax (GST) is an indirect tax that manufactures, wholesales, retailes and consumers have to
pay on consumers goods and services. It is a destination-based and multi- stage tax which is charged on every
value addition. The GST calculator helps to find out either gross or net product price on percentage-based GST
rates. It saves time and reduces chances of human error while computing the total cost of goods and services
.
GST ( Goods and Services Tax ) which is included in net price of product for get GST % first need to calculate
GST Amount by subtract original cost from Net price and then apply
GST % formula = (GST Amount*100) / original cost
Net price = original cost + GST Amount
GST Amount = Net price – original cost
GSTPercentage=(GSTAmount*100)/originalcos

1.1.1 APPLICATIONS OF MAD


Android app will be shipped with a set of core applications including client, SMS program,
calendar, maps, browser, contacts, and others. All these application programs are developed in Java. The
developer is allowed to access all the API framework of the core programs. The application framework
simplifies the reuse of its components. Any other app can release its functional components and all other apps
can access and use this component (but have to follow the security of the framework). Same as the users can
be able to substitute the program components with this reuse mechanism.

1.1.2 DESIGN
The design of the application plays a critical role in performance and scalability. This system
Emi, Tax and Gst calculator 2020-2021
is intended to be continuously improved by the expansion of system capabilities. The system primarily
consists of three parts: a mobile operation APP working on the Android system to collect information; a data
warehouse for data storage; and an efficient and stable data analysis center running in the backend. The
mobile operation APP is based on the Android system and can support versions 4.0 and higher.

1.2 BACKGROUND OF THE PROJECT


A calculator is a device that performs arithmetic operations on numbers. The simplest calculators can do
EMI, GST, TAX, and so on. An equated monthly installment (EMI) is defined by Investopedia as "A fixed
payment amount made by a borrower to a lender at a specified date each calendar month Goods and services
are divided into five different tax slabs for collection of tax: 0%, 5%, 12%, 18% and 28%. The tax rate may
increase as taxable income increases (referred to as graduated or progressive tax rates)

1.3 SCOPE OF THE PROJECT

A calculator is a device that performs arithmetic operations on numbers. The simplest


calculators can do only addition, subtraction, multiplication, and division. More sophisticated calculators can
handle exponent ial operations, roots, logarithm s, trigonometric functions, and hyperbolic functions.
Internally, some calculators actually perform all of these functions by repeated processes of addition.

1.4 AIM OF THE PROJECT


A calculator is a device that performs arithmetic operations on numbers. The simplest calculators
can do EMI, GST, TAX, and so on. An equated monthly installment (EMI) is defined by Investopedia as "A
fixed payment amount made by a borrower to a lender at a specified date each calendar month Goods and
services are divided into five different tax slabs for collection of tax: 0%, 5%, 12%, 18% and 28%. The tax
rate may increase as taxable income increases (referred to as graduated or progressive tax rates)

1.5 OBJECTIVE OF THE PROJECT

There are 4 objectives in this project:

o To setup Android software development kit.

o To write a program that can do various tasks such as EMI, Income Tax and GST calculation.

o Crash handling and debugging.

o Generating signed APK.


Emi, Tax and Gst calculator 2020-2021

CHAPTER 2
REQUIREMENT SPECIFICATION

2.1 DETAILS OF SOFTWARE AND LANGUAGE


Software is a set of instructions, data or programs used to operate computers and execute specific
tasks. It is the opposite of hardware, which describes the physical aspects of a computer. Language is a
script or programs that run on a device. It can be thought of as the variable part of a computer, while hardware
is the invariable part.

2.1.1 INTRODUCTION TO ANDROID


Android is a mobile operating system (OS) currently developed by Google, based on the Linux
kernel and designed primarily for touchscreen mobile devices such as smartphones and tablets. Android's user
interface is mainly based on direct manipulation, using touch gestures that loosely correspond to real-world
actions, such as swiping, tapping and pinching, to manipulate on-screen objects, along with a virtual keyboard
for text input. In addition to touchscreen devices, Google has further developed Android TV for televisions,
Android Auto for cars, and Android Wear for wrist watches, each with a specialized user interface. Variants
of Android are also used on notebooks, game consoles, digital cameras, and other electronics.Initially
developed by Android, Inc., which Google bought in 2005, Android was unveiled in 2007, along with the
founding of the Open Handset Alliance – a consortium of hardware, software, and telecommunication
companies devoted to advancing open standards for mobile devices. As of July 2013, the Google Play store
has had over one million Android applications ("apps") published, and over 50 billion applications
downloaded. An April–May 2013 survey of mobile application developers found that 71% of developers
create applications for Android, and a 2015 survey found that 40% of full-time professional developers see
Android as their priority target platform.

2.1.2 ANDROID ARCHITECTURE


Android architecture contains different number of components to support any android device needs.
Android software contains an open-source Linux Kernel having collection of number of C/C++ libraries
which are exposed through an application framework services. Among all the components Linux Kernel
provides main functionality of operating system functions to smartphones and Dalvik Virtual Machine (DVM)
provide platform for running an android application.
Emi, Tax and Gst calculator 2020-2021

The main components of android architecture are following:-

 Applications
 Application Framework
 Android Runtime
 Android Libraries
 Linux Kernel

Fig 2.1.2(a) Android Architecture

 Applications
Applications is the top layer of android architecture. The pre-installed applications like home,
contacts, camera, gallery etc and third party applications downloaded from the play store like chat
applications, games etc will be installed on this platform only.It runs within the Android run time with the
help of the classes and services provided by the application framework.
Emi, Tax and Gst calculator 2020-2021

 Application Framework
The Application Framework layer provides many higher-level services to applications in the form of Java
classes. Application developers are allowed to make use of these services in their applications. Application
Framework provides several important classes which are used to create an Android application. It provides a
generic abstraction for hardware access and also helps in managing the user interface with application
resources. Generally, it provides the services with the help of which we can create a particular class and make
that class helpful for the Applications creation.

The Android framework includes the following key services −


Activity Manager − Controls all aspects of the application lifecycle and activity stack.
Content Providers − Allows applications to publish and share data with other applications.
Resource Manager − Provides access to non-code embedded resources such as strings, color settings
and user interface layouts.
Notifications Manager − Allows applications to display alerts and notifications to the user.
View System − An extensible set of views used to create application user interfaces.

 Application runtime
Android Runtime environment is one of the most important part of Android. It contains components
like core libraries and the Dalvik virtual machine(DVM). Mainly, it provides the base for the application
framework and powers our application with the help of the core libraries.

Like Java Virtual Machine (JVM), Dalvik Virtual Machine (DVM) is a register-based virtual
machine and specially designed and optimized for android to ensure that a device can run multiple instances
efficiently. It depends on the layer Linux kernel for threading and low-level memory management. The core
libraries enable us to implement android applications using the standard JAVA or Kotlin programming
languages.

 Android Libraries
This category encompasses those Java-based libraries that are specific to Android development.
Examples of libraries in this category include the application framework libraries in addition to those that
facilitate user interface building, graphics drawing and database access. A summary of some key core
Android libraries available to the Android developer is as follows –
Emi, Tax and Gst calculator 2020-2021

 android.app − Provides access to the application model and is the cornerstone of all Android
applications.

 android.content − Facilitates content access, publishing and messaging between applications and
application components.

 android.database − Used to access data published by content providers and includes SQLite database
management classes.

 android.opengl − A Java interface to the OpenGL ES 3D graphics rendering API.

 android.os − Provides applications with access to standard operating system services including
messages, system services and inter-process communication.

 android.text − Used to render and manipulate text on a device display.

 android.view −The fundamental building blocks of application user interfaces.

 android.widget − A rich collection of pre-built user interface components such as buttons, labels, list
views, layout managers, radio buttons etc.

 android.webkit − A set of classes intended to allow web-browsing capabilities to be built into


applications.

Having covered the Java-based core libraries in the Android runtime, it is now time to turn our
attention to the C/C++ based libraries contained in this layer of the Android software stack.

 Linux Kernel
Linux Kernel is heart of the android architecture. It manages all the available drivers such as display
drivers, camera drivers, Bluetooth drivers, audio drivers, memory drivers, etc. which are required during the
runtime. The Linux Kernel will provide an abstraction layer between the device hardware and the other
components of android architecture. It is responsible for management of memory, power, devices etc.

The features of Linux kernel are:

Security: The Linux kernel handles the security between the application and the system.
Memory Management: It efficiently handles the memory management thereby providing the freedom
to develop our apps.
Emi, Tax and Gst calculator 2020-2021

Process Management: It manages the process well, allocates resources to processes whenever they
need them.
Network Stack: It effectively handles the network communication.
Driver Model: It ensures that the application works properly on the device and hardware
manufacturers responsible for building their drivers into the Linux build.

2.2 INTRODUCTION TO ANDROID STUDIO


Android Studio is exclusively designed for developing Android applications. It consists of all
Android SDK tools to design, develop, maintain, test, debug and publish our app. Previously, the Android
development was spread using the Eclipse platform with the Android Development Kit (ADK), provided by
Google, which launched the Android Studio platform. The IDE is designed very efficiently which makes the
developer’s job easy. It also supports the IntelliJ IDE but it has a high cost. The main idea behind this IDE is
that it automatically senses the variables, methods, classes, built-in functions. Java files, layout files (for
design) are integrated into a single project easily. After the completion of project, the whole application could
be put as an .APK (Android Package) file, in which we can run that APK file in any device and use the
application. Other main tools include Android SDK, ADB, and Gradle Build.
Android Studio can be installed on Windows operating systems, OSX and Linux and is
recommended by Google itself that the hardware must have at least 4 GB of memory and 1GB of free hard
disk space, but we recommend that you have more memory because it was noted that Android Studio is still a
little slow. You must have Java installed on the machine via the JDK (Java Development Kit), not the JRE, as
it is usually installed, once to develop on Android is necessary for all Java development classes to be present
on the machine.
Coding in Java within Android Studio is intuitive because it provides a rich Java environment,
including context-sensitive help and code suggestion hints. After you compile your Java code cleanly, the
components of Android Studio make sure all of the application is packaged properly, including the
AndroidManifest.xml file. Android Studio includes tools for managing multiple platform-specific features
with the SDK manager and the ability to test your application on either a real device or the emulator.
Emi, Tax and Gst calculator 2020-2021

2.3 INTRODUCTION TO FIREBASE


Firebase is a Cloud-hosted, NoSQL database that uses a document-model. It can be horizontally
scaled while letting you store and synchronize data in real-time among users. This is great for applications that
are used across multiple devices such as mobile applications. Firebase is optimized for offline use with strong
user-based security that allows for serverless based apps as well. No programming is required on the firebase
side which makes it easy to use its features more efficiently.
Firebase is a product of Google and is built on the Google infrastructure to scale automatically.
In addition to standard NoSQL database functionality, Firebase includes analytics, authentication,
performance monitoring, messaging, crash reporting and much more. Because it is a Google product, there is
also integration into a lot of other products. This includes integration with Google Ads, AdMob, Google
Marketing Platform, the Play Store, Data Studio, BigQuery, Slack, Jira, and more. The Firebase APIs are
packaged into a single SDK that can be expanded to multiple platforms and languages. This includes C++ and
Unity, which are both popular for mobile development.
Firebase provides hosting of applications with speed and security. It can be used to host Static or
Dynamic websites and micro services. It also includes the Firebase Cloud Messaging (FCM) service provides a
connection between the server and the application end users, which can be used to receive and send messages
and notifications.

2.3.1 FEATURES OF FIREBASE


 Authentication: Firebase Authentication service provides easy to use UI libraries and SDKs to
authenticate users to your app. It reduces the manpower and effort required to develop and maintain the
user authentication service. It even handles tasks like merging accounts, which if done manually can be
hectic.

 Cloud Firestore: The cloud Firestore is a NoSQL document database that provides services like store,
sync, and query through the application on a global scale. It stores data in the form of objects also known
as Documents. It has a key-value pair and can store all kinds of data like, strings, binary data, and even
JSON trees.

 Remote Config: The remote configuration service helps in publishing updates to the user immediately.
The changes can range from changing components of the UI to changing the behavior of the applications.
These are often used while publishing seasonal offers and contents to the application components that has
a limited life.
Emi, Tax and Gst Calculator 2020-2021

 Hosting: Firebase provides hosting of applications with speed and security. It can be used to host Stati or
Dynamic websites and micro services. It has the capability of hosting an application with a single
command. Firebase has various scalable and agile hosting features for Microservices, web apps, and
several other content types. Content can be hosted across different categories, and users have the ability to
avail SSL protection and single-click rollbacks.

 Firebase Cloud Messaging (FCM): The FCM service provides a connection between the server and the
application end users, which can be used to receive and send messages and notifications. These
connections are reliable and battery-efficient.

 Realtime Database: Firebase Realtime Database is a cloud-hosted database. It facilitates JSON-based data
storage and performs real-time data synchronization with connected clients. Single instances of the
Realtime Database function as clients during cross-platform application development processes using iOS,
JavaScript, and Android SDKs. It lets applications receive the latest updates and data. Offline applications
are able to remain responsive because the Database SDK carries out on-disk data persistence. It helps to
sync devices to present server states following the restoration of connectivity.

 Analytics: Firebase users can utilize the features of Google Analytics, which is integrated with Firebase.
Users can use Analytics for performing unlimited reporting for multiple Firebase SDK events. Developers
can make better decisions by analyzing user behavior with Analytics.

2.3.2 MERITS OF FIREBASE


Serverless: Firebase comes with a serverless architecture that requires users to pay based on
requests, and there is no requirement to manage or worry about server infrastructure. Firebase users
are charged only when the server is being utilized due to its serverless nature.

Machine Learning: Firebase is also advantageous as it offers developers the option to rely on
machine learning. Firebase comes with an ML kit with readily-available APIs for different mobile
platforms features like text identification, face detection, image labeling, barcode scanning, and
more.

Monitor Errors: Firebase can monitor both non-fatal and fatal errors, and reports are generated
based on how errors affect users’ experience.
Emi, Tax and Gst calculator 2020-2021

Backups: Firebase ensures optimal security and availability of data with the help of regular
backups. The apps are protected from any possibility of data loss by relying on the automatic
backup feature of this platform.

Focus on frontend development: Developers worldwide prefer Firebase as it lets them focus on
creating frontend code for mobile applications. Firebase reduces the need to develop boilerplate
backend code, pushing back the development completion date for applications. It makes application
development convenient and helps to keep costs low.

Powered by Google: Firebase is powered by Google, one of the most prominent and trusted names
in the world of technology.

2.4 INTRODUCTION TO JAVA


Android applications are developed using the Java language using Android SDK (Software
Development Kit). It is the only option for native applications. Java is a very popular programming language
created by James Gosling from Sun Microsystems (now owned by Oracle). Developed long after C and C++,
Java incorporates many of the powerful features of those powerful languages while addressing some of their
drawbacks. Still, programming languages are only as powerful as their libraries. These libraries exist to help
developers build applications. JAVA is most preferred and mostly used programming language for Android
App Development. Java is defined by a specification and consists of a programming language, a compiler, core
libraries and a runtime (Java virtual machine) The Java runtime allows software developers to write program
code in other languages than the Java programming language which still runs on the Java virtual machine.
The Java platform is usually associated with the Java virtual machine and the Java core libraries. As the project
is developing an Android Application, the default programming language is Java. All Android applications are
built using Java in Android Studio or Eclipse or both.
The language is flexible enough to maintain code complexity, test, implementation, integration and
support. Apart from these, there are other key features which make Java more special. It is object oriented
programming language, one of the important hierarchies in the programming languages which is used to
implement real time applications, it provides for code reusability, and it has a platform independence feature. It
is more secured as the compilers are designed efficiently to figure out any kind of errors.
Emi, Tax and Gst calculator 2020-2021

2.5 SYSTEM REQUIREMENTS


The application should be installed into a device, system or any machine in such a way that it should
have basic requirements like supporting software and hardware of the device, accessing in-built software, say
camera for mobile device, internet permissions, and potential security issues such as virus or any malware
detection

2.5.1 HARDWARE REQUIREMENTS

 64-bit Microsoft® Windows® 8/10

 x86_64 CPU architecture; 2nd generation Intel Core or newer, or AMD CPU with support for
a Windows Hypervisor

 8 GB RAM or more

 8 GB of available disk space minimum (IDE + Android SDK + Android Emulator)

 1280 x 800 minimum screen resolution

2.5.2 SOFTWARE REQUIREMENTS

 Android Studio Version 4.1 or higher


 Front-End :Android studio
 Back-end : FireBase Database
 Plugins: Android SDK, ADT Plugin

2.6 TOOLS USED

2.6.1 Android Software Development


Android software development is the process by which applications are created for devices running
the Android operating system. Android apps can be written using Kotlin, Java, and C++ languages" using the
Android software development kit (SDK), while using other languages is also possible. All non-JVM
languages, such as Go, JavaScript, C, C++ or assembly, need the help of JVM language code, that may be
supplied by tools, likely with restricted API support. Some programming languages and tools allow cross-
platform app support (i.e. for both Android and iOS). Third party tools, development environments, and
language support have also continued to evolve and expand since the initial SDK was released. The official
Android app distribution mechanism to end users is Google Play; it also allows staged gradual app release, as
well as distribution of pre-release app versions to testers.
Emi, Tax and Gst calculator 2020-2021

One of the main tools used in developing android applications, as it packages many core features into
one SDK and it can be used in the application easily. This helps us to avoid writing lot of code, and building
applications faster.

2.6.2 Android Debug Bridge (ADB):


Android SDK uses ADB tool as a connection device which allows us to connect the Android
Devices or Emulator with the machine via USB. Android Debug Bridge (ADB) is a versatile command-line
tool that lets you communicate with a device. The ADB command facilitates a variety of device actions, such
as installing and debugging apps, and it provides access to a Unix shell that you can use to run a variety of
commands on a device. It is a client-server program that includes three components:

A client, which sends commands. The client runs on your development machine. You can
invoke a client from a command-line terminal by issuing an adbcommand.
A daemon (adbd), which runs commands on a device. The daemon runs as a background process
on each device.
A server, which manages communication between the client and the daemon. The server runs as
a background process on your development machine.

2.6.3 Gradle Build


Gradle Scripts are the recent feature that is added to Android Studio. It is basically an automated
build system which is used to automate the various phases involved in designing an application that includes
design, development, test, debug, and publish. We need to configure the project and modules by mentioning all
the supported jar files, SDK’s, version name, level, compiled SDK version, build tools version to ensure that
the developed app is compatible with the testing device/emulator. Gradle is also similar to Ant and Maven
which helps in maintaining java projects (repositories).
Emi, Tax and Gst calculator 2020-2021

2.6.4 SDK Manager


It is one of the main tools to maintain the updates of all the installed components required to run the
project. It also notifies us when the project is not compatible with device or any other compatibility issues and
to download any component that is required. A software development kit (SDK or "devkit") is typically a set
of software development tools that allows the creation of applications for a certain software package, software
framework, hardware platform, computer system, video game console, operating system, or similar
development platform.
To create applications you have to download this software development kit. For example, if you
want to create an Android app you require an SDK with java programming, for iOS apps you require an iOS
SDK with swift language, and to develop MS Windows apps you require the .net language. There are also
SDKs that are installed in apps to provide analytics and data about activity. Prominent examples include
Google and Facebook.

2.6.5 AVD Manager (Emulator)


The Android emulator is an Android Virtual Device (AVD), which represents a specific Android
device. We can use the Android emulator as a target device to execute and test our Android application on our
PC. The Android emulator provides almost all the functionality of a real device. We can get the incoming
phone calls and text messages. It also gives the location of the device and simulates different network speeds.
Android emulator simulates rotation and other hardware sensors. It accesses the Google Play store, and much
more. It is used to create virtual devices of any desired API level to support higher level SDK’s incase our
device does not support. Using emulators to test the application is difficult as it might be little slower when
compared to real device
Testing Android applications on emulator are sometimes faster and easier than doing on a real
device. For example, we can transfer data faster to the emulator than to a real device connected through USB.
The Android emulator comes with predefined configurations for several Android phones, Wear OS, tablet,
Android TV devices.
Emi, Tax and Gst calculator 2020-2021

CHAPTER 3

SYSTEM DESIGN
3.1 DESIGN APPROACH

This project is based on the functional design approach, which helps in understanding the design of the
project in a simpler way by explaining its flow, use cases, and implementation more like a modular approach.
For example, there are different modules in this project which have separate functionality and, other sub
functionalities/modules. This module body treats data as nodes connected to each other; however, it allows for
more complex connections, such as many-to-many relationships and cycles. This schema can model the
movement of attributes and entities between locations, or the workflow required to accomplish a particular
task. Furthermore, this is a blueprint for how the outlook is going to be. The design is an abstract structure or
outline that represents the pictorial view of the application as a whole. By defining categories of data and
relationships between those categories design makes data much easier to retrieve, consume, manipulate, and
interpret. The schema design organizes the data into separate entities, determines how to create relationships
between organized entities, and how to apply the constraints on the data. All the modules are designed,
implemented and integrated together to make a flawless working application.

3.2 Front-End Design


Design for any application should be very simple. We should have only a few clicks or navigation
among the features when using the application to avoid hassle. In this application, there are two main screens,
the Login and Home screens.
The login page is the first page which appears when the user uses the application. In that page, if he is
a new user, he can sign up or if he is an existing user, he can login with credentials.
The next screen is the homepage where the users can select additional features like sharing the app ,
description and use the app. this screen has all the key features. To make the application interactive, different
controls have been used and designed using the layout file. Following are the important controls that are
designed and used in this application-
 Text View: The text view component belongs to the view group as a part of GUI. It displays the
text or content view of any activity to the user and allows them to edit in the code section.
 Edit Text: This allows itself to be editable in the text box.
Emi, Tax and Gst calculator 2020-2021

 Button: One of the important components in which the application needs. It is mainly associated
with action when the user clicks it. We can represent the button using any text which holds the
action class on it.
 List View: This is a key component under the view group which helps in displaying the
information about anything when we click the action button. It also allows us to scroll through the
screen and have a look about the information displayed. Using the list adapter, the content is pulled
from the database.
 Toggle Button: This is a user interface control that is used to display ON (Checked) or OFF
(Unchecked) states as a button with a light indicator.
 Image View: Displays image resources, for example Bitmap or Drawable resources. Image View
is also commonly used to apply tints to an image and handle image scaling.

Layout - A layout defines the structure for a user interface in your app, such as in an activity. All elements
in the layout are built using a hierarchy of View and View Group objects.
 Constraint Layout: This is a View Group which allows you to position and size widgets in a
flexible way.
 Relative Layout: This is a view group that displays child views in relative positions. The position
of each view can be specified as relative to sibling elements or in positions relative to the parent
Relative Layout area.
 Linear Layout: This is a view group that aligns all children in a single direction, vertically or
horizontally.
 Table Layout: This used to arrange the group of views into rows and columns. Table Layout
containers do not display a border line for their columns, rows or cells. A Table will have as many
columns as the row with the most cells.
Emi, Tax and Gst calculator 2020-2021

CHAPTER 4

SYSTEM IMPLEMENTATION
System analysis to construct system elements that meet the stakeholder requirements And system
requirements developments development in the early life cycle phases. These system elements are then
integrated to form intermediate aggregates and finally the complete system of interest (SOI). Implementation
is the process that actually yields the lowest-level system elements in the system hierarchy (system break
down structure). System elements are made, bought or reused. Production involves the hardware fabrication
processes of forming, removing, joining and finishing. The software realization process of coding and testing
or operational procedures development processes for operator roles. If implementation involves a production
process a manufacturing system which uses the established technical and management processes may be
required. The purpose of implementation process is to design and create (or fabricate) a system elements
conforming to that elements design properties or requirements. The element is constructed employing
appropriate technologies and industry practices. The process bridges the system definition processes and the
integration process.

4.1 Source Code

4.1.1 XML Code

package com.cmt.taxcalculator;
import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;
import android.text.TextUtils;
import android.view.View;
import android.widget.Button;
import android.widget.EditText;
public class EMIActivity extends AppCompatActivity
{
Button emiCalcBtn;
@Override
protected void onCreate(Bundle savedInstanceState)
{
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_emi);

final EditText P = findViewById(R.id.principal);


final EditText I = findViewById(R.id.interest);
Emi, Tax and Gst calculator 2020-2021

final EditText Y = findViewById(R.id.years);


final EditText TI = findViewById(R.id.interest_total);
final EditText result = findViewById(R.id.emi) ;

emiCalcBtn = findViewById(R.id.btn_calculate2);
emiCalcBtn.setOnClickListener(new View.OnClickListener()
{
@Override
public void onClick(View v)
{
String st1 = P.getText().toString();
String st2 = I.getText().toString();
String st3 = Y.getText().toString();

if (TextUtils.isEmpty(st1))
{
P.setError("Enter Principal Amount");
P.requestFocus();
return;
}

if (TextUtils.isEmpty(st2)) {
I.setError("Enter Interest Rate");
I.requestFocus();
return;
}

if (TextUtils.isEmpty(st3)) {
Y.setError("Enter Years");
Y.requestFocus();
return;
}

float p = Float.parseFloat(st1);
float i = Float.parseFloat(st2);
float y = Float.parseFloat(st3);

float Principal = calPric(p);


float Rate = calInt(i);
float Months = calMonth(y);
float Dvdnt = calDvdnt( Rate, Months);
float FD = calFinalDvdnt (Principal, Rate, Dvdnt);
Emi, Tax and Gst calculator 2020-2021

float D = calDivider(Dvdnt);
float emi = calEmi(FD, D);
float TA = calTa (emi, Months);
float ti = calTotalInt(TA, Principal);
result.setText(String.valueOf(emi));
TI.setText(String.valueOf(ti));
}
});
}
public float calPric(float p) {
return (p);
}
public float calInt(float i) {
return (i/12/100);
}
public float calMonth(float y) {
return (y * 12);
}
public float calDvdnt(float Rate, float Months) {
return (float) (Math.pow(1+Rate, Months));
}
public float calFinalDvdnt(float Principal, float Rate, float Dvdnt) {
return (Principal * Rate * Dvdnt);
}
public float calDivider(float Dvdnt) {
return (Dvdnt-1);
}
public float calEmi(float FD, Float D) {
return (FD/D);
}
public float calTa(float emi, Float Months) {
return (emi*Months);
}

public float calTotalInt(float TA, float Principal)


{
return (TA - Principal);
}
}
Emi, Tax and Gst calculator 2020-2021

4.1.2 Javacode For EMI

package com.cmt.taxcalculator;

import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;
import android.text.TextUtils;
import android.view.View;
import android.widget.Button;
import android.widget.EditText;

public class EMIActivity extends AppCompatActivity {

Button emiCalcBtn;

@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_emi);

final EditText P = findViewById(R.id.principal);


final EditText I = findViewById(R.id.interest);
final EditText Y = findViewById(R.id.years);
final EditText TI = findViewById(R.id.interest_total);
final EditText result = findViewById(R.id.emi) ;

emiCalcBtn = findViewById(R.id.btn_calculate2);

emiCalcBtn.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {

String st1 = P.getText().toString();


String st2 = I.getText().toString();
String st3 = Y.getText().toString();
if (TextUtils.isEmpty(st1)) {

P.setError("Enter Principal Amount");


P.requestFocus();
return;
}
Emi, Tax and Gst calculator 2020-2021

if (TextUtils.isEmpty(st2)) {
I.setError("Enter Interest Rate");
I.requestFocus();
return;
}

if (TextUtils.isEmpty(st3)) {
Y.setError("Enter Years");
Y.requestFocus();
return;
}

float p = Float.parseFloat(st1);
float i = Float.parseFloat(st2);
float y = Float.parseFloat(st3);

float Principal = calPric(p);

float Rate = calInt(i);

float Months = calMonth(y);

float Dvdnt = calDvdnt( Rate, Months);

float FD = calFinalDvdnt (Principal, Rate, Dvdnt);

float D = calDivider(Dvdnt);

float emi = calEmi(FD, D);

float TA = calTa (emi, Months);

float ti = calTotalInt(TA, Principal);

result.setText(String.valueOf(emi));

TI.setText(String.valueOf(ti));
}
});
}
public float calPric(float p) {
return (p);
}
Emi, Tax and Gst calculator 2020-2021

public float calInt(float i) {

return (i/12/100);

public float calMonth(float y) {

return (y * 12);

public float calDvdnt(float Rate, float Months) {

return (float) (Math.pow(1+Rate, Months));

public float calFinalDvdnt(float Principal, float Rate, float Dvdnt) {

return (Principal * Rate * Dvdnt);

public float calDivider(float Dvdnt) {

return (Dvdnt-1);

public float calEmi(float FD, Float D) {

return (FD/D);

public float calTa(float emi, Float Months) {


return (emi*Months);
}
public float calTotalInt(float TA, float Principal) {
return (TA - Principal);
}
}
Emi, Tax and Gst calculator 2020-2021

4.1.3 Javacode For GST

package com.cmt.taxcalculator;

import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;
import android.view.View;
import android.widget.Button;
import android.widget.EditText;
import android.widget.TextView;

public class GSTActivity extends AppCompatActivity {

TextView text_total,text_percentage,total_amount,gst_amount;
EditText edit_total,edit_percentage;
Button calculate;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_gstactivity);

text_total = findViewById(R.id.text_total);
text_percentage = findViewById(R.id.text_percentage);

total_amount = findViewById(R.id.total_amount);
gst_amount = findViewById(R.id.gst_amount);

edit_total = findViewById(R.id.edit_total);
edit_percentage = findViewById(R.id.edit_percentage);

calculate = findViewById(R.id.btn_calculate2);

calculate.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {

int total = Integer.parseInt(edit_total.getText().toString());


int percentage = Integer.parseInt(edit_percentage.getText().toString());
Emi, Tax and Gst calculator 2020-2021

int amount = Math.round((total * 100)/(100 + percentage));


total_amount.setText("Net Amount is " +Integer.toString(amount));

int gst = total - amount;


gst_amount.setText("GST Amount is " +Integer.toString(gst));
}
});
}
}

4.1.4 Javacode For Income Tax

package com.cmt.taxcalculator;

import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;
import android.view.View;
import android.widget.Button;
import android.widget.EditText;
import android.widget.TextView;

public class GSTActivity extends AppCompatActivity {

TextView text_total,text_percentage,total_amount,gst_amount;
EditText edit_total,edit_percentage;
Button calculate;

@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_gstactivity);

text_total = findViewById(R.id.text_total);
text_percentage = findViewById(R.id.text_percentage);

total_amount = findViewById(R.id.total_amount);
gst_amount = findViewById(R.id.gst_amount);

edit_total = findViewById(R.id.edit_total);
edit_percentage = findViewById(R.id.edit_percentage);

calculate = findViewById(R.id.btn_calculate2);
Emi, Tax and Gst calculator 2020-2021

calculate.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
int total = Integer.parseInt(edit_total.getText().toString());
int percentage = Integer.parseInt(edit_percentage.getText().toString());

int amount = Math.round((total * 100)/(100 + percentage));


total_amount.setText("Net Amount is " +Integer.toString(amount));

int gst = total - amount;


gst_amount.setText("GST Amount is " +Integer.toString(gst));
}
});
}
}
Emi, Tax and Gst calculator 2020-2021

CHAPTER 5

OUTPUT (SCREENSHOTS)
Emi, Tax and Gst calculator 2020-2021
CHAPTER 6

CONCLUSION AND FUTURE ENHANCEMENT

This calculator is yet another simple device which can be used to calculate EMI , INCOME TAX

and GST. Our calculator is capable of performing operation on the given input number were the inputs are

been given by the user. The user is allowed to enter the desired numbers and the results will be displayed on

screen. The calculator will perform three basic operation emi, tax and gst. the program is constructed by

android studio using Java as programming langauge. In conclusion, calculators are a tremendous tool of

technology that have worth while placing in our education system. In this work we have developed simple

calculator which performs certain activities which is user friendly. Now let us talk about the future

enhancement of our project like making this calculator more interactive and may use deep learning and AI so

that I can speech to text number or text to speech


BIBLIOGRAPHY

Textbooks Referred:

Google Developer Training, "Android Developer Fundamentals Course – Concept Reference”, Google
Developer Training Team, 2017.

Erik Hellman, “Android Programming – Pushing the Limits”, 1st Edition, Wiley India Pvt Ltd, 2014.

Dawn Griffiths and David Griffiths, “Head First Android Development”, 1st Edition, O’Reilly SPD
Publishers, 2015.

J F DiMarzio, “Beginning Android Programming with Android Studio”, 4th Edition, Wiley India Pvt
Ltd, 2016.

Anubhav Pradhan, Anil V Deshpande, “Composing Mobile Apps” using Android, Wiley 2014.

Websites Referred:

https://www.geeksforgeeks.org

https://www.youtube.com

https://stackoverflow.com

https://www.section.io

https://www.codegrepper.com
https://www.tutorialspoint.com

You might also like