Madfinal 1 1
Madfinal 1 1
CERTIFICATE
Certified that Mr.Anshuman Kumar Dwivedi, Ms. Diksha Manu, bearing USN
1CD20IS013,1CD20IS028 bonafide students of Cambridge Institute of Technology, has
successfully completed the Mobile Application Development Mini Project report entitled “Currency
Converter” in partial fulfillment of the requirements for VI semester Bachelor of Engineering in
Information Science and Engineering of Visvesvaraya Technological University, Belagavi during
academic year 2022-2023. It is certified that all Corrections/Suggestions indicated for Internal
Assessment have been incorporatedin the report deposited in the departmental library. The Mobile
Application Development Mini Project report has been approved as it satisfies the academic
requirements prescribed for the Bachelor of Engineering degree.
1.
2.
ACKNOWLEDGEMENT
I would like to place on record my deep sense of gratitude to Shri. D. K. Mohan, Chairman,
Cambridge Group of Institutions, Bangalore, India for providing excellent Infrastructure and
Academic Environment at CITech without which this work would not have been possible.
I am extremely thankful to Dr. Indumathi G, Principal, CITech, Bangalore, for providing me the
academic ambience and everlasting motivation to carry out this work and shaping our careers.
I express my sincere gratitude to Dr. Preethi S, HOD, Dept. of Information Science and Engineering,
CITech, Bangalore, for her stimulating guidance, continuous encouragement and motivation
throughout the course of present work.
I also wish to extend my thanks to Project Guide, Prof. Vijayalakshmi Yalavigi, Assistant Professor,
Dept. of ISE, CITech for her critical, insightful comments, guidance and constructive suggestions to
improve the quality of the work and complete the project.
Finally to all my friends, classmates who always stood by me in difficult situations also helped me in
some technical aspects and last but not the least, I wish to express deepest sense of gratitude to my
parents who were a constant source of encouragement and stood by me as pillar of strength for
completing this work successfully.
Diksha Manu(1CD20IS028)
ABSTRACT
A currency converter is a tool designed to convert the value of one currency into another. It provides
users with the ability to quickly and accurately determine the equivalent amount in a different
currency. Currency converters are essential in facilitating international transactions, travel, and
investment by enabling users to understand and compare different currencies. They rely on accurate
exchange rate data from reputable sources to ensure precise conversions. Currency converters are
available in various formats, such as web-based tools and mobile applications, providing convenience
and accessibility to users. Overall, currency converters play a crucial role in simplifying currency
exchange and aiding users in making informed financial decisions.
i
CONTENTS
Abstract i
Contents ii
List of Figures iv
Chapter 1 Introduction 1
Chapter 2 Requirements 5
ii
Chapter 3 Modules 7
3.1 Features 7
3.4 Users 9
3.5 Flowchart 10
Chapter 4 Implementation 11
Chapter 5 Snapshots 25
References 30
iii
List of Figures
iv
Telephone Billing Management Mobile Application and Development
CHAPTER 1
INTRODUCTION
1.1 Objectives of the project
The Currency Converter project aims to develop a robust and user-friendly tool that allows
users to convert the value of one currency into another. This report focuses on the objectives
of the project, highlighting the key goals that were pursued during the development process.
1. User-Friendly Interface:
a. Develop a visually appealing and intuitive interface for easy navigation and use.
b. Ensure the interface is user-friendly and accessible to individuals of varying
technical backgrounds.
c. Create a responsive design that adapts seamlessly to different devices and screen
sizes.
2. Accurate Exchange Rate Data:
a. Source and integrate reliable exchange rate data from trusted financial institutions
or central banks.
b. Implement regular updates to ensure the accuracy and reliability of the exchange
rate information.
c. Conduct rigorous testing and verification procedures to validate the accuracy of
the retrieved exchange rates.
3. Efficient Currency Conversion:
a. Enable users to perform currency conversions quickly and efficiently.
b. Develop a robust algorithm capable of handling complex calculations and
providing precise conversion results.
c. Optimize the conversion process to minimize processing time and enhance user
experience.
The Currency Converter project emerged in response to the growing need for a reliable
The globalization of trade, travel, and investment has created a demand for accurate and
accessible currency conversion solutions to enable individuals and businesses to navigate
international financial transactions effectively.
The rapid advancement of digital technologies, coupled with the availability of accurate and
up-to-date exchange rate data from financial institutions and central banks, laid the
foundation for the Currency Converter project. This project aimed to develop a user-friendly
and reliable tool that could deliver accurate and efficient currency conversions while
addressing the limitations and challenges faced by traditional methods.
The project involves the development of a web-based or mobile application interface that
offers an intuitive and visually appealing user experience. The interface is designed to be
accessible to users of varying technical backgrounds and compatible with different devices
and screen sizes. Ease of use and navigation are prioritized to ensure a seamless user
experience.
To ensure accurate currency conversions, the project integrates reliable and up-to-date
exchange rate data from trusted sources such as financial institutions or central banks. The
exchange rate data is regularly updated to reflect the current market conditions. Stringent
testing and verification processes are implemented to validate the accuracy and reliability of
the sourced exchange rates.
The core functionality of the currency converter lies in its ability to perform fast and precise
currency conversions. A robust algorithm is developed to handle complex calculations and
deliver accurate conversion results. Decimal precision, rounding rules, and international
usability considerations are taken into account during the algorithm's implementation to
ensure reliable conversions.
The project also recognizes the importance of historical exchange rate data for analysis and
decision-making. As such, the currency converter incorporates functionality to retrieve and
compare historical exchange rates. Graphical representations or visualizations may be
included to aid users in interpreting the historical data.
Based on the survey conducted on similar currency converter applications, the following
five important findings and observations have been identified:
Users prioritize simplicity and ease of use in currency converter applications, preferring a
clean and intuitive interface for quick and hassle-free conversions.
Real-time exchange rate updates are highly valued by users, as they appreciate accurate
and up-to-date information for making informed decisions during currency conversions.
Mobile compatibility is crucial, with users preferring applications that are accessible on
their mobile devices, enabling convenient conversions on the go.
Multi-currency support is important for users dealing with various currencies, as they seek
applications that offer a wide range of currencies for conversion.
Speed and efficiency are highly desired, as users expect fast and accurate results without
unnecessary delays, especially for time-sensitive conversions.
CHAPTER 2
REQUIREMENTS
2.1 Functional Requirements
The functional requirements for an alarm manager app are:
Currency Selection: The system should allow users to select the currency they want to
convert from a list that includes USD, Euro, Yen, Rupee, Pound, and Yuan.
Conversion Calculation: The system should perform accurate currency conversions based
on the selected currency and the exchange rates. It should provide the converted value for
each of the other currencies in real-time.
Real-time Exchange Rates: The system should retrieve and update the exchange rates from
reliable sources in real-time to ensure accurate conversions.
Multi-Currency Support: The system should support conversions between all six
currencies (USD, Euro, Yen, Rupee, Pound, and Yuan). It should handle conversions in
any combination between these currencies.
User Input Validation: The system should validate user inputs to ensure that the provided
amount is numeric and within reasonable limits for currency conversion.
Historical Exchange Rates: The system may optionally provide access to historical
exchange rate data, allowing users to view past rates and perform historical conversions.
User-Friendly Interface: The system should have an intuitive and user-friendly interface
that makes it easy for users to select currencies and perform conversions with minimal
effort.
Performance: The system should deliver fast and responsive currency conversions, even
under high user load or when dealing with large conversion amounts.
Reliability and Accuracy: The system should retrieve and update exchange rates from
reliable sources to ensure accurate conversions. It should handle errors and exceptions
gracefully, providing clear error messages when necessary.
1. Operating System (OS): For developing an Android app, a computer or laptop running
Windows 10 operating system used here to install and run the necessary software.
2. Front and Back end Development:The front-end and back-end of the app are developed
using Android Studio, the official integrated development environment for Android app
development.
3. Server Documentation:The server documentation used for the app is created using Microsoft
Office, providing detailed information about the APIs, endpoints, data formats, and
authentication methods required for communication between the app and the server.
4. Languages used: The language used to develop the application is Java.
CHAPTER 3
MODULES
3.1 Features
Currency Selection: Users can choose the currency they want to convert from a list that
includes USD, Euro, Yen, Rupee, Pound, and Yuan.
Multi-Currency Conversion: The currency converter allows users to convert the selected
currency into any of the other available currencies with ease.
Real-Time Exchange Rates: The system provides real-time exchange rate updates,
ensuring accurate and up-to-date conversions.
Customizable Favorites: Users can save and manage their favorite currencies for quick
access and frequent conversions.
User-Friendly Interface: The currency converter features an intuitive and user-friendly
interface for effortless navigation and seamless conversions.
Decimal Precision and Rounding: The system handles decimal precision and rounding
rules to ensure accurate conversion results.
Error Handling and Validation: Robust error handling and input validation mechanisms
prevent invalid inputs and provide clear error messages.
Mobile Compatibility: The currency converter is optimized for mobile devices, allowing
users to perform conversions on the go.
Offline Mode: Users can access previously retrieved exchange rates and perform
conversions even without an internet connection.
Multi-Language Support: The system supports multiple languages to cater to users from
different linguistic backgrounds.
Privacy and Data Security: The currency converter prioritizes the security and privacy of
user data, implementing necessary measures to safeguard personal and financial
information.
Feedback and Support: Users have the option to provide feedback, report issues, and
access customer support for assistance and inquiries.
MainActivity: This module represents the main activity of the application. It includes the
user interface elements such as currency selection dropdowns, input fields, and conversion
buttons. The MainActivity handles user interactions, retrieves exchange rate data, performs
currency conversions, and updates the user interface accordingly.
ResultActivity: This module represents the result activity of the application. It displays the
converted currency values based on the user's input and selected currencies.
Manifest: The manifest file is a crucial module in an Android application. It contains
essential information about the application, including package name, permissions required,
activities, and services. In the Currency Converter project, the manifest file ensures proper
declaration and configuration of activities (such as MainActivity and ResultActivity) and
any necessary permissions for the application to function correctly.
3.4 Users
Select Base Currency: Users can choose the currency they want to convert from a list that
includes options such as USD, Euro, Yen, Rupee, Pound, and Yuan. This selection serves
as the starting point for currency conversions.
Choose Target Currency: Users can select the currency they wish to convert their base
currency into. They can choose any of the available currencies listed in the application.
Input Conversion Amount: Users can input the amount they want to convert from the base
currency to the target currency. The application allows users to enter the desired value,
whether it's a specific monetary amount or an amount for other purposes (e.g., comparing
prices).
Perform Currency Conversion: Once the base currency, target currency, and conversion
amount are selected or entered, users can initiate the currency conversion. The application
calculates the equivalent value of the conversion amount in the target currency using real-
time exchange rates.
View Conversion Results: The application displays the converted value in the target
currency to the user. Users can easily view and verify the conversion result, which helps
them understand the value of their base currency in the desired currency.
Provide Feedback: Users may have the option to provide feedback or report issues within
the application. This allows them to communicate their experiences, suggestions, or any
encountered problems, helping to improve the application's functionality and user
experience.
3.5 Flowchart
Chapter 4
IMPLEMENTATION
activity.xml
<TextView
android:id="@+id/textView2"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="💰💰Currency Converter!💰💰"
android:textSize="24sp"
app:layout_constraintBottom_toTopOf="@+id/radioButtonContainer"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintHorizontal_bias="0.493"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toTopOf="parent"
app:layout_constraintVertical_bias="0.16" />
<LinearLayout
android:id="@+id/radioButtonContainer"
android:layout_width="208dp"
android:layout_height="314dp"
android:orientation="vertical"
B.E., Dept. of ISE, CITech 2022-23 Page 11
Telephone Billing Management Mobile Application and Development
app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintHorizontal_bias="0.5"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toTopOf="parent"
app:layout_constraintVertical_bias="0.694">
<LinearLayout
android:id="@+id/dollarLayout"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:orientation="horizontal">
<RadioButton
android:id="@+id/dollar"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="UsaDollar (USD)" />
<ImageView
android:layout_width="53dp"
android:layout_height="match_parent"
android:src="@drawable/american_flag_logo_png_picture"
app:srcCompat="@drawable/american_flag_logo_png_picture" />
</LinearLayout>
<LinearLayout
android:id="@+id/euroLayout"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:orientation="horizontal">
<RadioButton
android:id="@+id/euro"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="Euro (EUR) " />
<ImageView
android:layout_width="53dp"
android:layout_height="match_parent"
android:src="@drawable/made_in_europe_png_hd"
app:srcCompat="@drawable/made_in_europe_png_hd" />
</LinearLayout>
<LinearLayout
android:id="@+id/poundLayout"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:orientation="horizontal">
<RadioButton
android:id="@+id/pound"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="Pound(GBP) " />
<ImageView
android:layout_width="53dp"
android:layout_height="match_parent"
android:src="@drawable/united_kingdom_flag_png_photo"
app:srcCompat="@drawable/united_kingdom_flag_png_photo" />
B.E<
., /D
Leinpte. aorfLISaEy,oCuItT>ech 2022-23 Page 13
Telephone Billing Management Mobile Application and Development
<LinearLayout
android:id="@+id/yenLayout"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:orientation="horizontal">
<RadioButton
android:id="@+id/yen"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="Japan yen(JPY)" />
<ImageView
android:layout_width="53dp"
android:layout_height="match_parent"
android:src="@drawable/japan_flag_png_photo"
app:srcCompat="@drawable/japan_flag_png_photo" />
</LinearLayout>
<LinearLayout
android:id="@+id/yuanLayout"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:orientation="horizontal">
<RadioButton
android:id="@+id/yuan"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="China Yuan(CNY)" />
B.E., Dept. of ISE, CITech 2022-23 Page 14
Telephone Billing Management Mobile Application and Development
<ImageView
android:layout_width="53dp"
android:layout_height="match_parent"
android:src="@drawable/vector_china_flag_png_photos"
app:srcCompat="@drawable/vector_china_flag_png_photos" />
</LinearLayout>
<LinearLayout
android:id="@+id/indianLayout"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:orientation="horizontal"
tools:ignore="DuplicateIds">
<RadioButton
android:id="@+id/INR"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="Indian Rupee(INR)" />
<ImageView
android:layout_width="53dp"
android:layout_height="match_parent"
android:src="@drawable/india_flag_png_transparent_image"
app:srcCompat="@drawable/india_flag_png_transparent_image" />
</LinearLayout>
</LinearLayout>
<LinearLayout
android:id="@+id/buttonContainer"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:orientation="horizontal"
app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toBottomOf="@+id/radioButtonContainer">
</LinearLayout>
<ImageView
android:id="@+id/imageView2"
android:layout_width="404dp"
android:layout_height="205dp"
app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintHorizontal_bias="0.5"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toTopOf="parent"
app:layout_constraintVertical_bias="0.14"
app:srcCompat="@drawable/_880079" />
</androidx.constraintlayout.widget.ConstraintLayout>
Activity2.xml
<VideoView
android:id="@+id/videoView2"
android:layout_width="307dp"
android:layout_height="177dp"
app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintHorizontal_bias="0.384"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toTopOf="parent"
app:layout_constraintVertical_bias="0.265"
tools:visibility="visible" />
<EditText
android:id="@+id/editTextText2"
android:layout_width="326dp"
android:layout_height="55dp"
android:ems="10"
android:inputType="text"
android:hint="ENTER THE AMOUNT"
app:layout_constraintBottom_toBottomOf="parent"
<Button
android:id="@+id/button"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="convert"
app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toTopOf="parent"
app:layout_constraintVertical_bias="0.576" />
<TextView
android:id="@+id/textView"
android:layout_width="254dp"
android:layout_height="188dp"
app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintHorizontal_bias="0.407"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toTopOf="parent"
app:layout_constraintVertical_bias="0.882" />
</androidx.constraintlayout.widget.ConstraintLayout>
Android.Manifest
package com.example.currencyconverter;
import androidx.appcompat.app.AppCompatActivity;
import android.annotation.SuppressLint;
import android.content.Intent;
import android.net.Uri;
import android.os.Bundle;
import android.view.View;
import android.widget.Button;
import android.widget.EditText;
import android.widget.TextView;
import android.widget.VideoView;
@SuppressLint("MissingInflatedId")
@Override
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_result);
amountEditText = findViewById(R.id.editTextText2);
convertButton = findViewById(R.id.button);
resultTextView = findViewById(R.id.textView);
videoView=findViewById(R.id.videoView2);
videoView.setVideoURI(Uri.parse("android.resource://" + getPackageName() +
"/raw/video"));
videoView.start();
amountEditText.setHint(promptText);
convertButton.setOnClickListener(new View.OnClickListener() {
@Override
if (!amountString.isEmpty()) {
convertCurrency(country, amount);
});
}
B.E., Dept. of ISE, CITech 2022-23 Page 20
Telephone Billing Management Mobile Application and Development
switch (country) {
case "INR":
break;
case "USD":
case "EUR":
break;
case "GBP":
break;
case "JPY":
break;
case "CNY":
break;
resultTextView.setText(result.toString());
CHAPTER 5
SNAPSHOTS
The main interface of the Currency Converter application showcases a user-friendly design
that facilitates seamless currency conversions. It prominently displays the six countries'
currencies, namely USD (United States Dollar), Euro, Yen (Japanese Yen), Rupee (Indian
Rupee), Pound (British Pound), and Yuan (Chinese Yuan).
The interface features dropdown menus or selectors where users can easily choose the base
currency and the target currency for their conversion. These intuitive dropdowns allow
users to select the desired currencies from the available options
This is the next step after opening the Currency Converter Application, the currency will get
selected and then it will be converted to desired currency.
The selection of the currency from the option of which we want to change the currency.
CHAPTER 6
CONCLUSION AND FUTURE SCOPE
The Currency Converter project has successfully developed a user-friendly and efficient
tool for currency conversions. The project has addressed the objectives of providing
accurate conversions, real-time exchange rates, historical data analysis, and a seamless user
experience.
The currency converter application offers a range of features, including currency selection,
multi-currency conversion, real-time exchange rates, historical exchange rate data,
customizable favorites, and a user-friendly interface. These features empower users to
easily convert currencies, analyze trends, and make informed financial decisions.
The project has incorporated essential functionalities, such as error handling, input
validation, mobile compatibility, and data security measures, ensuring a reliable and secure
environment for currency conversions.
The Currency Converter application has several future enhancement opportunities. Firstly,
integrating support for popular cryptocurrencies like Bitcoin, Ethereum, and Litecoin
would cater to the growing interest in digital currencies. Interactive charts and graphs could
be added to visually display currency trends and historical data. Language localization
features would make the application more accessible to international users. Voice input and
output capabilities would provide an alternative method for users to interact with the
application. Widgets could be developed for easy access to the currency converter on
device home screens. Integration with travel tools and personal finance applications would
enhance the user experience. Offline access to conversion rates, advanced conversion
options, and biometric authentication would add convenience and security. These
enhancements would further improve the functionality and user experience of the Currency
Converter application.
REFERENCES
1) https://developer.android.com/studio/write/layout-editor
2) https://www.tutorialspoint.com/index.html
3) https://stackoverflow.com