/currency-exchange-app

🏦 Exchange currencies with polling FX rates

Primary LanguageJavaScript

Currency Exchange App

Exchange currencies to USD, EUR, GBP with polling FX rates.

📦 Installation

Clone the repo and install dependencies with Yarn.

> yarn install

🔧 Local Development

Spin up the local development server

> yarn dev

Build for production

> yarn build

Run production build

> yarn start

💉 Testing

Run testing suite

> yarn test

Run testing suite with watcher

> yarn test:watch

Run linting

> yarn lint

🚚 Deployment

The master branch of this repository will be deployed using now.sh.

Check the repo description for a link to the app on production.

In addition, pull request feature branches will also be available on a staging environment.

📝 Future Roadmap Items

  • Expand the pages/api/rates.js lamba function to poll and cache an OpenFX API every hour to be able to serve the app without running into expensive rate limits.

  • Break down the <ExchangeWidget /> component into more manageable and testable components.

  • Leverage the useReducer to create more functional state mutation. Bring in action dispatchers and reducers.

  • Write more extensive unit tests on all components and bring in a thin e2e testing suite using Cypress.

  • Refactor in TypeScript to give better type support (interfaces, enums) all throughout the application.