Download as pdf or txt
Download as pdf or txt
You are on page 1of 22

A MINI PROJECT REPORT ON

CURRENCY CONVERTER USING PYTHON


Submitted in partial fulfilment for the award of the degree of
BACHELOR OF TECHNOLOGY
In

Mechanical Engineering

By

K.Venkat(22A85A0321)
L.P.Surya teja(22A85A0322)
M.Ganesh(22A85A0323)
M.Naga Srinivasu(22A85A0324)

Under the Esteemed Supervision of


MR.M.D.Nagendra Prasad , M. Tech

Department of Computer Science and Engineering (Accredited by N.B.A.)


SRI VASAVI ENGINEERING COLLEGE(Autonomous)
(Affiliated to JNTUK, Kakinada)
Pedatadepalli, Tadepalligudem-534101, A.P
2022-23
i
SRI VASAVI ENGINEERING COLLEGE (Autonomous)
Department Of Computer Science and Engineering
Pedatadepalli, Tadepalligudem

This is to certify that the Project Report entitled “Currency Converter using
Python” submitted by K.Venkat(22A85A0321),
L.P.SuryaTeja(22A85A0322),M.Ganesh(22A85A0323), M.N.Srinivasu
(22A85A0324) for the award of the degree of Bachelor of Technology in the
Department of Computer Science and Engineering during the academic year
20222023.

Project Guide Head of the Department


Mr.M.D.Nagendra Prasad, Dr.M.V.Ramesh,
M. Tech Professor & HOD

External Examiner
DECLARATION
We hereby declare that the project report entitled “Currency Converter using python" submitted by
us to Sri Vasavi Engineering College (Autonomous), Tadepalligudem, affiliated to JNTUK Kakinada
in partial fulfilment of the requirement for the award of the degree of B.Tech in
Mechanical Engineering is a record of Bonafide project work carried out by us under the guidance of
MR.M.D.Nagendra Prasad, Professor. We further declare that the work reported in this project has not
been submitted and will not be submitted, either in part or in full, for the award of any other degree in
this institute or any other institute or University.

Project Associate

K. Venkat(22A85A0321)
L.P. Surya Teja(22A85A0322)
M.Ganesh(22A85A0323)
M.Naga Srinivasu(22A85A0324)
ACKNOWLEDGEMENT

First and foremost, we sincerely salute to our esteemed institute SRI VASAVI ENGINEERING
COLLEGE, for giving us this golden opportunity to fullfil our warm dream to become an engineer.
Our sincere gratitude to our project guide Mr.M.D.Nagendra Prasad Assoc.Professor,
Department of Mechanical Engineering, for her timely cooperation and valuable suggestions while
carrying out this project.

We express our sincere thanks and heartful gratitude to Dr.M.V.Ramesh, Professor & Head of the
Department of Computer Science and Engineering, for permitting us to do our project.
We express our sincere thanks and heartful gratitude to Dr. G.V.N.S.R. Ratnakara Rao, Principal,
for providing a favourable environment and supporting us during the development of this project.
Our special thanks to the management and all the teaching and non-teaching staff members,
Department of Computer Science and Engineering, for their support and cooperation in various ways
during our project work. It is our pleasure to acknowledge the help of all those respected individuals.
We would like to express our gratitude to our parents, friends who helped to complete this project.

Project Associate

K.Venkat(22A85A0321)
L.P. Surya Teja(22A85A0322)
M.Ganesh(22A85A0323)
M.Naga Srinivasu(22A85A0324)

ABSTRACT

2
The "Currency Converter Application" is a user-friendly desktop tool developed in
Python, leveraging the tkinter library for the graphical interface and forex-python for
real-time currency exchange rates. The application allows users to seamlessly convert
monetary amounts between different currencies, providing a hassle-free solution for
individuals dealing with international transactions or travel.
The graphical user interface features labeled input fields for amount entry, dropdown
lists for source and target currencies, and a visually appealing result display area. The
application employs ttkthemes for enhanced styling, including the addition of borders
to labels for improved visual clarity. Error handling mechanisms are incorporated to
notify users of invalid inputs, ensuring a robust and user-friendly experience
One notable feature of the project is its ability to be converted into a stand-alone
executable file using PyInstaller. This enables users to run the application without the
need to install Python or any dependencies, making it easily distributable. The
Currency Converter Application serves as a practical and efficient tool for users
seeking a reliable means to perform currency conversions effortlessly.
CONTENTS

01 . Introduction
02 . Design and implementation

03 . Results

04 . conclusion
05 . Snapshots
06 . Featural scope( reference links )

3
CHAPTER 1

INTRODUCTION

4
1 INTRODUCTION

In a world characterized by global connectivity and international transactions, the


need for efficient currency conversion tools has become increasingly pronounced. The
"Currency Converter Application" emerges as a versatile and user-friendly solution to
address this demand. Developed using Python, the application seamlessly integrates
essential libraries such as tkinter for the graphical interface and forex-python for real-
time currency exchange rate retrieval.

2 Motivation
2.1 The motivation behind this project is to provide individuals, whether engaged in
international business or planning travel, with a straightforward and accessible tool for
converting monetary values between diverse currencies. The user interface has been
meticulously designed to cater to users of varying technical backgrounds, featuring
intuitive input fields, dropdown lists for currency selection, and an aesthetically
pleasing display area for conversion results. The incorporation of ttkthemes allows for
enhanced styling, contributing to a visually appealing and user-centric design.

5
CHAPTER 2

DESIGN AND IMPLETATION

6
1) Requirements:-

The currency conversion project requires how much amount u want to convert from
one currency to other.It is the only basic requirement needed to our project execution

2) Tools and Libraries:-

TKINTER for GUI

Forex_python library for exchange rates

3) Create new python project file:-

Example:- Mini project

4) Install required libraries:- install forex_python library

“pip install forex-python”

5) Import Necessary Modules:-

from tkinter import *

from forex_python.converter import CurrencyRates, BtcConverter from

PIL import Image

6) Code:-

from PIL import ImageTk,Image

from forex_python.converter import CurrencyRates

from forex_python.bitcoin import BtcConverter

import tkinter as tk

7
from tkinter import ttk

from ttkthemes import ThemedTk class

CurrencyConverter:

def _init_(self):

self.c = CurrencyRates()

root.iconbitmap("icon1.ico")

root['background']="blue" def convert(self, amount,

from_currency, to_currency):

exchange_rate = self.c.get_rate(from_currency, to_currency) converted

= amount * exchange_rate

return converted

class CurrencyConverterApp: global

converted_amount

def _init_(self, root): self.root = root

self.root.title("Currency Converter")

self.root.minsize(700, 200) # Set

minimum size

self.root.maxsize(700, 200) # Set

maximum size self.style = ttk.Style()

self.style.theme_use("clam") #

Choose a different theme if desired

8
self.converter =

CurrencyConverter()

# Amount

self.amount_label = ttk.Label(root, text="Amount:", style="MyLabel.TLabel",

font=("Arial",16), borderwidth=2, relief="solid") self.amount_label.grid(row=0,

column=0, padx=10, pady=10, sticky=tk.W) self.amount_entry = ttk.Entry(root,

style="MyEntry.TEntry", width=30) self.amount_entry.grid(row=0, column=1,

padx=10, pady=10)

# Frame for From Currency from_currency_frame = ttk.Frame(root)

from_currency_frame.grid(row=1, column=0, padx=5, pady=5, sticky=tk.W) #

Decreased gap

self.from_currency_label = ttk.Label(from_currency_frame, text="From


Currency:", style="MyLabel.TLabel")

self.from_currency_label.pack(side=tk.LEFT)

self.from_currency_combobox = ttk.Combobox(from_currency_frame,

state="readonly", height=3,style="NoDropdown.TCombobox")

self.from_currency_combobox.pack(side=tk.LEFT)

# Frame for To Currency


to_currency_frame = ttk.Frame(root)

to_currency_frame.grid(row=1, column=1, padx=5, pady=5, sticky=tk.W)

# Decreased gap self.to_currency_label = ttk.Label(to_currency_frame, text="To

Currency:",

9
style="MyLabel.TLabel") self.to_currency_label.pack(side=tk.LEFT)

self.to_currency_combobox =

ttk.Combobox(to_currency_frame,

state="readonly", height=3, style="NoDropdown.TCombobox")

self.to_currency_combobox.pack(side=tk.LEFT)

# Result

self.result_label = ttk.Label(root, text=" "

f ont=("Helvetica",12,"bold"), style="MyResult.TLabel")

self.result_label.grid(row=2, column=0, columnspan=2, pady=10)

# Convert Button

self.convert_button = ttk.Button(root,text="Convert",

command=self.perform_conversion, style="MyButton.TButton",="hand2")

self.convert_button.grid(row=3, column=0, columnspan=2, pady=10)

# Currency lists self.from_currency_list =

self.get_currency_list() self.to_currency_list =

self.get_currency_list()

# Listboxes and Scrollbars

self.from_currency_listbox=tk.Listbox(from_currency_frame,

selectmode=tk.SINGLE, exportselection=0, height=3, bg="lightblue")

self.from_currency_listbox.pack(side=tk.LEFT)

from_currency_scrollbar = ttk.Scrollbar(from_currency_frame, orient="vertical",

10
command=self.from_currency_listbox.yview)

from_currency_scrollbar.pack(side=tk.RIGHT, fill=tk.Y)

self.from_currency_listbox.config(yscrollcommand=from_currency_scrollbar.set)

self.from_currency_listbox.insert(tk.END, *self.from_currency_list)

self.from_currency_listbox.bind("<<ListboxSelect>>",

self.update_from_combobox)

self.to_currency_listbox=tk.Listbox(to_currency_frame,

selectmode=tk.SINGLE, exportselection=0, height=3, bg="lightblue")

self.to_currency_listbox.pack(side=tk.LEFT)

to_currency_scrollbar = ttk.Scrollbar(to_currency_frame, orient="vertical",

command=self.to_currency_listbox.yview)

to_currency_scrollbar.pack(side=tk.RIGHT, fill=tk.Y)

self.to_currency_listbox.config(yscrollcommand=to_currency_scrollbar.set)

self.to_currency_listbox.insert(tk.END, *self.to_currency_list)

self.to_currency_listbox.bind("<<ListboxSelect>>", self.update_to_combobox)

# Apply custom style to remove the dropdown arrow

self.style.layout("NoDropdown.TCombobox", [('Entry.combobox', {'children':

[('Entry.background', {'children': [('Entry.padding',{'children':[('Entry.textarea',


{

'sticky': 'nswe'})],

'sticky': 'nswe'})],

'sticky': 'nswe'})],

11
'sticky': 'nswe'})])

def get_currency_list(self):

# Add more currencies as needed, including Bitcoin

return ["USD", "INR", "IDR", "EUR", "GBP", "JPY", "GBP", "BRL", "THB",
"HKD", "AUD", "CAD", "CHF", "CNY", "SEK", "NZD", "BTC"]

def update_from_combobox(self, event):

selected_index = self.from_currency_listbox.curselection() if

selected_index:

selected_currency = self.from_currency_listbox.get(selected_index[0])

self.from_currency_combobox.set(selected_currency)

def update_to_combobox(self, event):

selected_index = self.to_currency_listbox.curselection() if

selected_index:

selected_currency = self.to_currency_listbox.get(selected_index[0])

self.to_currency_combobox.set(selected_currency) def

perform_conversion(self):

try:

amount = float(self.amount_entry.get())

from_currency = self.from_currency_combobox.get().upper() to_currency

= self.to_currency_combobox.get().upper()

if (from_currency != "BTC" and to_currency != "BTC"):

12
converted_amount = self.converter.convert(amount, from_currency,
to_currency)

else:
if (from_currency == "BTC" and to_currency != "BTC"):

converted_amount = BtcConverter().convert_btc_to_cur(amount,
to_currency)

if(from_currency!= "BTC" and to_currency == "BTC"):

converted_amount = BtcConverter().convert_to_btc(amount,
from_currency)

self.result_label.config(

text=f"{amount} {from_currency} is equal to {converted_amount:.2f}


{to_currency}")

except ValueError:

self.result_label.config(text="Please enter a valid number for the amount.")


if _name_ == "_main_":

root = ThemedTk(theme="clam") # Specify the theme you want app

= CurrencyConverterApp(root)

root.mainloop()

13
7) Test Your Application:

Run your Python file and test the currency converter application.

Make adjustments and refinements based on user experience

Testing and Error Handling

*Testing the Currency Conversion Functionality:-

Thoroughly testing the currency conversion functionality ensures accurate


results and provides a seamless user experience.

*Handling Errors and Exceptions

Implementing error handling mechanisms allows us to handle unexpected


scenarios and provide appropriate feedback to the user.

CHAPTER 3
Result

14
15
CHAPTER 4

CONCLUSION

CONCLUSION:-

The Currency Converter Application represents a significant contribution to the


realm of currency conversion tools, providing a user-friendly and efficient solution to
the challenges posed by global transactions and cross-border travel. Through the
seamless integration of Python libraries, including tkinter and forex-python, the
application achieves a harmonious balance between a sophisticated backend and an
accessible frontend.

The project's commitment to user experience is evident in the intuitive graphical


interface, where users can effortlessly navigate through input fields and dropdown
lists. The addition of ttkthemes not only enhances the visual appeal but also
contributes to a cohesive and polished design. By employing PyInstaller, the
application transcends traditional limitations, offering a stand-alone executable that
simplifies accessibility for users without compromising functionality.

The robustness of the Currency Converter Application is further underscored by its


error handling mechanisms, ensuring that users receive prompt notifications for any

16
invalid inputs. As a versatile tool, the project lays a solid foundation for future
enhancements. The potential for incorporating advanced features, such as historical
exchange rate tracking or real-time trend analysis, positions the application as a
dynamic and evolving resource for users engaged in the dynamic landscape of
international finance and travel.

In conclusion, the Currency Converter Application stands as a testament to the


intersection of technological innovation and practical utility. Its successful
implementation not only addresses the immediate needs of users requiring reliable
currency conversion but also opens avenues for continuous improvement and
expansion, reflecting a commitment to staying relevant in an ever-evolving global
landscape.

CHAPTER 5

SNAPSHOTS

17
STEP 1 :-Click on RUN

STEP 2 :- Enter amount and Select from and to Curriencies

STEP 3 :-Click on Convert.

18
“Same process for BITCOIN also”

19
CHAPTER 6

Featural scope( reference links )

Featural scope( reference links )

1) Tkinter Documentation:-

https://docs.python.org/3/library/tkinter.html

2)Youtube reference:-

https://youtube.com/playlist?list=PLCC34OHNcOtoC6GglhF3ncJ5rLwQrLGnV&si
=_CuYtTi7U88jf1Ec

20

You might also like