This is a Salary Calculator App that allows the user to convert between the cost of living between two countries using the PPP index.
The PPP index is a measure of the relative cost of living between two countries. It is calculated by comparing the prices of a basket of goods and services in each country. The PPP index is used to compare the standard of living between countries, as it takes into account the differences in the cost of living. For example, a country with a high PPP index has a higher cost of living than a country with a low PPP index.
Example 1: If the PPP index of Country A is 1.5 and the PPP index of Country B is 1, then the cost of living in Country A is 1.5 times higher than the cost of living in Country B.
Example 2: If your salary in Germany is € 50,000 and the PPP index of Germany is 1.5, then your equivalent salary in Romania (with a PPP index of 1) would be € 33,333 (50,000 / 1.5).
- Conversion between two standards of living using PPP data from the World Bank API
- Conversion history with up to 10 entries
- Ability to share a conversion link with others
- Data persistence between sessions using browser storage
- Multi-language support
- Dark mode
This app is currently available in the following languages:
Language | Variant | ISO 639-1 Code |
---|---|---|
English | International | en |
German | Germany | de |
Spanish | International | es |
French | International | fr |
Hebrew | Israel | he |
Italian | Italy | it |
Japanese | Japan | ja |
Korean | South Korea | ko |
Romanian | Romania | ro |
Chinese | China | zh |
The next languages we are looking to add are:
- Dutch
- Swedish
- Norwegian
- Danish
- Finnish
We are always looking to add more languages to the app. If you would like to contribute a translation, please see the Contributing section.
- React: A JavaScript library for building user interfaces
- Bootstrap: Used for styling the app
- React-Bootstrap: React components for Bootstrap
- React-Router: Used to handle routing in the app
- i18next: Used for internationalization
- i18n-iso-countries: Used to get country names in different languages
- Countries List: Used to get country data
- Country Flag Emoji Polyfill: Used to fix country flag emojis on Windows and other platforms that don't support them natively
- Axios: Used to make HTTP requests to the World Bank API
- Axios Cache Interceptor: Used to cache API requests and provide faster responses
- Lodash: Used for utility functions
To run the app, you need to have Node.js installed. Then, you can run the following commands in your terminal of choice to run the app locally:
# Clone the repository
git clone https://github.com/AlexandruIstrate/SalaryCalculator
# Navigate to the project folder
cd SalaryCalculator/salary-calc
# Create a copy of the .env file
cp .env.example .env
# Install the dependencies
npm install
# Run the app
npm start
One of the main goals of this project is to provide translations for as many languages as possible. If you would like to contribute a translation, please follow these steps:
- Fork the repository
- Create a new branch
- Create a new folder in the
public/locales
folder with the ISO 639-1 code for the language (e.g.fr
for French) - Add a new JSON file in the folder named
translation.json
- Add the translations for each key found in the
public/locales/translation.json
file - Add the language to the
src/i18n.js
file, in thesupportedLngs
object. Make sure to use the ISO 639-1 code for the language and to set the properflagCountryCode
- Create a pull request
As many of these languages aren't spoken by the maintainers, we can't guarantee the quality of the translations. If you see any mistakes, please feel free to open an issue or a pull request.
If you would like to contribute in other ways, please feel free to open an issue or a pull request.