Project Report Format Part 1
Project Report Format Part 1
CURRENCY CONVERTER
PROJECT REPORT
Submitted by:
ASMIT : 23BCS10697
ARJUN : 23BCS10684
ANIKET: 23BCS10720
BACHELOR OF ENGINEERING
IN
Chandigarh University
TABLE OF CONTENTS
Chapter 1: Introduction
With the increasing need for foreign currency exchanges for purposes like business, travel,
education, and international trade, the Currency Converter project provides a quick, easy-to-use
solution. In a world where the economic borders are thinning, a versatile currency converter is a
crucial tool for anyone working with multiple currencies.
This project aims to develop a converter for Indian Rupees (INR) to other currencies, specifically
USD, EUR, GBP, AUD, and CAD. While the focus of this project is on the technical development
of the converter using Python, the need for real-time conversion tools has become more evident
with the rise in cross-border activities.
This project is implemented using Python and the ipywidgets library to create an interactive interface
where users can input the amount in INR and select the currency they wish to convert to. It also
allows for the future extension to support more currencies and features like real-time conversion.
The main issue this project addresses is the need for a lightweight and intuitive currency conversion
tool. While there are many online converters, users sometimes prefer a tool they can run on their
own systems, particularly in environments with limited internet access.
Most available converters either require an internet connection to fetch up-to-date exchange rates or
are embedded within complex applications.
Many converters provide real-time exchange rates that fluctuate frequently, making them difficult
for offline or controlled environments.
The project aims to address this gap by creating a static converter for demo and educational
purposes.
Platforms such as Google, XE.com, and OANDA offer currency conversion tools online. These
services allow users to enter the amount of money and select the currency they wish to convert to.
These tools often pull real-time exchange rates from central banks or currency trading platforms.
Some key characteristics of web-based converters include:
Real-time updates: These platforms provide real-time exchange rates, often updated minute-by-
minute.
User-friendly interface: Most websites are intuitive and designed for quick usage, often without
needing user accounts or subscriptions.
Additional features: Some platforms, like XE.com, provide historical exchange rate data, currency
forecasts, and analysis for business users.
Internet dependency: These converters require an active internet connection, which may not be
accessible in certain situations (remote locations, flights, or limited bandwidth environments).
Overly complex: For users simply looking for a quick conversion, the additional features,
advertisements, and account requirements can be cumbersome.
Security and privacy risks: Users may hesitate to use online services due to privacy concerns,
particularly when entering financial data.
Applications such as Revolut, Currency Converter Plus, and Easy Currency Converter provide
mobile solutions for real-time currency conversion. These apps often allow users to store favorite
currencies, track exchange rate trends, and even convert offline using cached rates.
App installation required: Users need to download and install the app, which might be an
unnecessary hassle for occasional users.
Internet requirement: While some apps allow offline conversion, these typically rely on cached
rates that may quickly become outdated.
Battery and storage: Mobile apps can consume additional phone resources, which may not be ideal
for users with limited storage or low battery power.
Software like Bloomberg Terminal, Microsoft Excel (with add-ons), and various trading platforms
also offer built-in currency converters. These platforms are typically used by professionals in
finance and trade industries to make decisions based on currency fluctuations. These systems often
provide advanced features like real-time data, API integration, and complex formula-based
conversion.
Overly specialized: These systems are built for finance professionals, and the vast array of features
may overwhelm casual users who need only basic currency conversion.
High cost: Access to some of these tools (such as Bloomberg) requires a significant subscription
cost, which is not justifiable for casual currency conversion needs.
Despite the abundance of solutions, many users face difficulties when they need to convert
currencies for simple tasks. These difficulties arise from several limitations in the current solutions,
such as:
1. Dependency on the Internet: Most online and mobile-based converters require an active internet
connection, which may not always be available. Users traveling to remote locations or in-flight often
find it difficult to access up-to-date currency conversion rates.
2. Over-complexity: Many solutions include advanced features that regular users don’t need. For
instance, tools like XE.com and Bloomberg provide historical data, trend analysis, and financial
predictions, which can clutter the user interface and confuse users who are only interested in
converting currency amounts quickly.
3. Inconsistent access to offline conversion: While some mobile apps provide offline conversion
using cached rates, the stored rates can become outdated. Additionally, the conversion features may
not always function without internet access.
4. Privacy Concerns: Users may not feel comfortable entering personal financial details on websites
or applications due to potential privacy risks, especially when using third-party services for currency
conversion.
5. Excessive resource usage: Mobile apps and financial software can consume significant device
resources, including battery life and storage space, making them inefficient for users who need a
simple conversion for occasional use.
Given these limitations, a more straightforward, offline-friendly solution is needed for users who
want to convert Indian Rupees (INR) into major international currencies without the added
complexity of internet-dependent platforms.
Our Python-based Currency Converter addresses these problems through a lightweight and easily
customizable solution, offering several advantages that directly mitigate the issues outlined in the
Problem Definition section:
a. Offline Capability
One of the primary benefits of our solution is its ability to run entirely offline. By utilizing
predefined exchange rates, the converter does not require an internet connection, making it suitable
for users in remote areas, airplanes, or any environment where internet access is unreliable or
unavailable. Users can convert INR to USD, EUR, GBP, AUD, and CAD with fixed rates that are
embedded directly into the code.
Unlike financial software or mobile apps that include complex features, our converter focuses
purely on currency conversion, making it easy to use. The interface consists of only four
components:
This simplicity ensures that users are not overwhelmed by unnecessary options or advanced
financial tools. It is an ideal solution for users who only need basic currency conversion for casual
use.
c. No Privacy Risks
Since the converter is a standalone Python program, there is no data transmission over the internet.
This eliminates any concerns about privacy or data security, as all the conversions are handled
locally on the user’s device.
d. Resource-Efficient
Our currency converter is designed to run in Jupyter Notebook or Google Colab, both of which are
low-resource environments. It does not require downloading any large apps or software, making it a
lightweight alternative to mobile apps or financial software. The code can also be easily modified
or embedded in other Python projects, offering flexibility without the need for additional
installations.
This currency converter also serves as a fantastic learning tool for students or beginner
programmers. It demonstrates the use of Python widgets ( ipywidgets) for creating interactive
programs. The code is well-structured and easy to understand, allowing students to modify the
conversion rates, add more currencies, or integrate real-time data fetching as part of their learning
experience.
2.3 Goals/Objectives
To create a currency converter using Python that takes a user input amount in INR and converts it to
other currencies (USD, EUR, GBP, AUD, CAD).
To design the interface using Python's ipywidgets library, providing an interactive experience.
To make the system extensible, allowing future development to include more currencies and real-
time data fetching.
The project began by evaluating which currencies would be supported initially. Given that the
Indian Rupee (INR) is most commonly exchanged into USD, EUR, GBP, AUD, and CAD, these
currencies were selected.
Next, a user interface design was chosen that allows users to easily input the amount, select a
currency, and get results without complex operations.
Key Features:
The application uses fixed conversion rates for simplicity. This constraint ensures that the
application can run offline but also limits its real-world application. However, this was deemed
acceptable since the project focuses on demonstrating interactive UI components and logic in
Python.
This simple and intuitive interface is ideal for educational purposes or quick demos. Below is a
screenshot of the user interface when the program is run in a Jupyter Notebook or Google Colab
environment:
python
Copy code
import ipywidgets as widgets
from IPython.display import display
conversion_rates = {
'USD': 0.014, # 1 INR = 0.014 USD
'EUR': 0.012, # 1 INR = 0.012 EUR
'GBP': 0.010, # 1 INR = 0.010 GBP
'AUD': 0.020, # 1 INR = 0.020 AUD
'CAD': 0.018, # 1 INR = 0.018 CAD}
amount = float(amount)
result = amount * conversion_rates[currency]
return f"{amount} INR is equal to {result:.2f} {currency}"
except ValueError:
return "Invalid input"
currency_options = list(conversion_rates.keys())
currency_dropdown = widgets.Dropdown(options=currency_options, value=currency_options[0],
description='Currency:')
convert_button = widgets.Button(description='Convert')
output_label = widgets.Label(value='')
def on_button_clicked(b):
amount = amount_input.value
currency = currency_dropdown.value
result = convert_currency(amount, currency)
output_label.value = result
convert_button.on_click(on_button_clicked)
display(amount_input)
display(currency_dropdown)
display(convert_button)
display(output_label)
Output :
The code was tested in various environments including Jupyter Notebook and Google Colab. The
user interface performed as expected, displaying the correct conversion values based on the
predefined rates. Below is an example of test cases:
1. Accuracy of Exchange Rates: Since the project uses fixed rates, ensuring accuracy across different
test scenarios was crucial.
2. Handling Invalid Input: User input validation was an essential feature, requiring careful handling
of errors like non-numeric inputs.
3. User Experience: Creating a simple yet effective interface involved decisions around what features
to include and how to balance functionality with simplicity.
The Currency Converter project successfully demonstrates the integration of user interaction
through Python’s ipywidgets library. It converts a given amount in INR to various currencies, using
predefined exchange rates. The project serves as a proof of concept and can be expanded to include
more currencies and real-time updates.
Real-time Exchange Rates: Fetching live data from an API like Open Exchange Rates or Currency
Layer to provide up-to-date conversion.
More Currencies: Adding more currencies such as Japanese Yen (JPY), Swiss Franc (CHF), and
others.
Mobile Interface: Developing a mobile-friendly version for wider accessibility.
Currency Conversion History: Including features to track historical conversions and view
exchange rate trends.