This project was created mainly as a demo of my skills for an interview process. The main technologies used here are C#/WPF with a focus on great UI and very high code quality.
- app header: https://unsplash.com/photos/6tG_liBojOk
- app icon: http://www.iconarchive.com/show/pretty-office-11-icons-by-custom-icon-design/coin-us-dollar-icon.html
- country flags: https://www.flaticon.com/packs/countrys-flags/6
- typeface: https://fonts.google.com/specimen/Fira+Sans
I used the https://ratesapi.io API to get the exchange rates between major currencies.
Develop a small currency converter C#/WPF application.
- Data should be received from public APIs
- Users can change/add/delete currencies
- Conversion should happen on user's input
- The application should keep settings when closed
- Reference API list: https://github.com/public-apis/public-apis#currency-exchange
- Assume that application is a prototype and a lot of features might be added later
- Please add an imaginary TODO list of what could be changed or added in the future
- Feel free to choose a framework, but let us know the reasoning
- Further architecture and code decisions are all up to you
- Just present your skills and what you find is necessary when developing an application
- This task should not take more than 3-4 hours. There is no time pressure
Just let us know when you are done. We are especially paying attention to the User Interface, while we are aware that in a time boxed setting not everything can be perfect try to show of your skills in this regard.
After cloning, Fody.Costura - which embeds all resources in a single executable - throws this exception during build:
A numeric comparison was attempted on "$(MsBuildMajorVersion)" that evaluates to "" instead of a number, in condition "($(MsBuildMajorVersion) < 16)"
To prevent this error, you have to:
- build the project 3 times in a row
- do a clean solution
- build again
- it should work
Solution:
I'm seeing this problem myself, but your solution didn't work for me. The only thing that works is building the solution exactly three times in a row. After that, any combination of Clean and Rebuild works. However, building from a fresh repository (or doing
git clean -fxd) brings back the build errors.