This is a currency converter app, which users can search for countries and enter an amount in SEK to be converted into local currencies of selected countries. This project was made using open APIs with free licenses.
This project contains two parts. First we have a backend GraphQL server made with Node.js and secondly we have a frontend made with React.js. Main usage of the app is that you can convert the amount in SEK to local currency.
This project is built using the following technologies.
Use following instructions to run the project. Please make sure to have prerequisites before installation.
This app requires a node js environment to run, therefore we need to have node js installed in our environment.
- npm
npm install npm@latest -g
- Clone the git repo
git clone https://github.com/shehan96/currency-converter.git
- Backend installation
-
Navigate inside to the server folder
cd server
-
Install NPM packages
npm install
-
Run the backend
npm start
- Frontend installation
- Navigate inside to the client folder
cd server
- Install NPM packages
npm install
- Run the frontend
npm start
- Visit http://localhost:5000/graphql to access the backend server
- Visit http://localhost:3000 to access the frontend client
In this project, the backend does not store any data related to the user. Therefore hardcoded email and password is used as user credentials and used for authentication.
Please use following user credentials to generate a JWT token.
- Email : test@gmail.com
- Password : test123
- Backend Server
- Project setup & structure planning - 1Hr
- TypeDefs, Queries & Mutations - 3Hr
- Authentication Middleware - 1Hr
- Rate limiter setup - 0.5Hr
- Testing & Finishing - 1Hr
- Frontend Client
- Project setup & structure planning - 1Hr
- Home & Login Page Setup - 3Hr
- Components Creating - 3Hr
- GraphQL Client Setup - 1Hr
- Custom Hooks Creating - 1Hr
- Styling & Testing - 1Hr
Here I have mentioned some future improvements & implementations which I think makes this app a better one.
- Make improvements for the authentication system by saving user related data in a database without using hardcoded user credentials.
- Allow users to access most popular countries without having a token. Users can use the system up to some limit without authenticating.
- Add error handling functions with more user friendly messages and data.
- Add a function to check exchange rate in real time or add a function to clear data if fetched data is much older.
- Add a function to remove fetched country data from the frontend, if the user wants to.
Developer Name : Shehan Abeyrathne
Project Link : https://github.com/shehan96/currency-converter