Skip to content

exchange rate to check current currency rate exchange, plus a conversion system added to it.

License

Notifications You must be signed in to change notification settings

slymackjr/rate-watcher

Repository files navigation

Contributors Forks Stargazers Issues MIT License LinkedIn


Logo

Flutter Currency Exchange Rate App

Rate Watcher is a Flutter application that provides users with real-time exchange rate information and a simple currency converter. The app features a bottom navigation bar for easy navigation between different sections, including account page, exchange rate viewing, and currency conversion.
Explore the docs »

Report Bug · Request Feature

Table of Contents
  1. Introduction
  2. Design and Implementation
  3. Conclusion
  4. Contact
  5. Acknowledgments

Introduction

Overview

Rate Watcher is a Flutter application that provides users with real-time exchange rate information and a simple currency converter. The app features a bottom navigation bar for easy navigation between different sections, including account page, exchange rate viewing, and currency conversion. Exchange rates are fetched from an online API and displayed with country flags and decorated rates.

Features

  • Account Page: Displays selected currency details and origin.
  • Exchange Rates: Shows current exchange rates for various currencies.
  • Currency Conversion: Converts amounts between different currencies.
  • Refresh Rates: Updates exchange rates with the latest API data.
  • Persistent Bottom Navigation: Allows seamless navigation between app sections.

Key Components

  • State Management: Utilizes Provider for managing currency selection.
  • Networking: Fetches exchange rates from an external API.
  • UI Design: Custom widgets for displaying rates, numeric conversion, and handling state changes.

Design and Implementation

Widget Tree

The widget tree of the Rate Watcher app is structured as follows:

Rate Watcher Widget Tree

UI Design

Welcome Page

The Welcome Page introduces the app features through rotating slides with titles, descriptions, and feature-related images.

Welcome Page

Main Page

The Main Page serves as the primary navigation hub with a bottom navigation bar for switching between Account, Exchange, and Conversion pages.

Main Page

Account Page

Displays selected currency details, including flag and country name, with horizontal currency selection.

Account Page

Exchange Rate Page

Shows real-time exchange rates with country flags and a refresh button to update rates.

Exchange Rate Page

Conversion Page

Enables currency conversion with numeric input, dropdown menus for base and target currencies, and a conversion button.

Conversion Page

State Management

The app uses Provider for centralized state management of currency data and user interactions.

API Integration

Integration with external APIs fetches real-time exchange rates and supported currency codes.

Refresh Logic

The refresh button on the Exchange Page updates exchange rates by fetching the latest data from the API.

Error Handling

Robust error handling ensures smooth app functionality with informative messages for data fetching and user input errors.

Enhancements

Recent improvements include enhanced UI with country flags and decorated exchange rate displays, along with a refresh button for real-time updates.

Conclusion

Rate Watcher provides a user-friendly interface for managing currency exchange rates and conversions. With its well-structured design, effective state management, and seamless API integration, the app ensures a smooth and informative user experience. Recent enhancements have further improved UI appeal and real-time data updates, making Rate Watcher a robust choice for currency monitoring.

Contact

Jofrey Nyamasheki - LinkedIn

Project Link: https://github.com/slymackjr/rate-watcher

Acknowledgments

About

exchange rate to check current currency rate exchange, plus a conversion system added to it.

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages