Currency Converter is a simple web app that allows converting values and check how currencies have changed during the time.
Before the first use, clone this repository and install node dependencies:
yarn
or
npm install
The next thing to do is to set up your fixer.io API key (you can obtain it for free from the fixer's website). To do it, open the example file (/src/config/api.key.example.js
) and change the below line properly:
export const ACCESS_KEY = 'place your api key here!';
Once it's done, change the name of this file to api.key.js
. Now you are ready to run the app!
To run the app, just call:
yarn start
or
npm run start
in the system console.
This will run the app in the development mode.
Open http://localhost:3000 to view it in the browser (should open automatically in your default browser).
The page will reload if you make edits.
You will also see any lint errors in the console.
To build the app for productions you can call:
yarn build
or npm run build
This will make all the necessary build steps and place the result in the build
folder.
It correctly bundles React in production mode and optimizes the build for the best performance.
The app has two features:
- converting currencies (home page)
- checking how currency have changed between selected dates (history subpage)
To convert the currency, on the home page:
- select your currency (unfortunately, for now you can only convert from EURO, which is the only allowed base currency accepted by the fixed.io API for free subscription plan)
- type the amount of money you want to convert
- select the target currency
- push enter or click "Convert"
To check how the convert rate of two currencies have changed between two dates, open the /history
subpage and:
- select your currency
- select target currency
- select starting date
- select finishing date
- push enter or lick "Check"
- this project is based on the ejected create-react-app starter kit.
- most important parts of it's technology stack:
- React
- Redux
- react-router
- redux-observable (rxjs)
- Sass
- webpack
- babel
- localStorage (to persist Redux state on page reload)