Skip to content

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

1 Commit
 
 
 
 
 
 
 
 

Repository files navigation

Foreign Exchange Monitoring App

1. Introduction

What does your app do? Why is it useful?
I have developed “Foreign Exchange Monitoring App”. The app will display current and historical foreign exchange rates. This is useful for users that want to analyze different forex rates to trade.


2. Usability Goals

List them and explain how each was addressed (e.g., you used consistent layouts to improve learnability).

  • Effectiveness: The app should accurately fetch and display current and historic foreign currency data.
  • Efficiency: Users should be able to view the information easily.
  • Learnability: The interface should be intuitive. Dropdown selections and buttons should be properly labeled.
  • Feedback: Provide feedback to the user as they interact with the application (e.g., loading indicators, status messages).
  • Consistency: Use consistent colors, layout, and widget styles. As this app deals with values that might cause someone to invest their real money, the data should also be consistent, reliable, and accurate.

3. Design Process

Show sketches or wireframes and describe how you evolved them into the final design.

(Section placeholder – add sketches or screenshots if available)


4. API Integration

Document any challenges you faced.

A challenge I encountered was that not all the Fixer API endpoints were available so some of the responses are simulated based on the responses shown on their documentation.

Did you handle API limits or error responses?

Yes, endpoints that are not available were simulated.


5. Widgets Explanation

For each widget, state its purpose.

  • I added a select so the user can select the currency.
  • I added a toggle button that functions as a checkbox to allow the user to toggle between the card view and the tab view.
  • I added a map that shows the origin of the currency selected.
  • I added a line graph that shows the exchange rate of the select currency over a range of time (As an improvement I would like to add a data range picker).
  • I added an input field that allows the user to convert their current currency to another currency of their choosing.
  • I added a table that displays the current exchange rate for some popular currencies.

6. HCI Principles

  • Visibility (Are controls obvious?)
    Controls are properly labeled.

  • Feedback (Are errors/success messages immediate?)
    Users are given feedback to interact with the application.

  • Consistency (Similar actions yield similar layouts?)
    Yes, the code was made composable so that the tab view and the card view reuse the same components.

  • Flexibility (Are there multiple ways to do a task?)
    Yes, the user is able to view the data in card mode or tab mode.

  • Error Prevention (Do you validate user inputs?)
    Yes, user input is validated. For example, currencies can only be selected from a predefined list.


7. Conclusion and Future Improvements

Possible new features, performance enhancements, or UX improvements.
I would like to add a date range picker for the historical data section.


⚙️ Installation & Requirements

Prerequisites

Make sure you have Python 3.8+ installed.

Install Required Packages

pip install streamlit pandas numpy requests plotly geopy pycountry-convert

About

HCI-Project2

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages