A robust, secure, and scalable Currency Converter API built with ASP.NET Core. This project serves as a backend solution for converting currencies and retrieving exchange rates using the Frankfurter API.
- .NET 8.0 SDK
- Docker
- Clone the repository
git clone https://github.com/eynarhaji/FrankfurterApp.git
- Run docker compose
docker compose -f infrastructure.yml up -d
NOTE: If you don't want to use docker, you can run project in Local environment. If you want to use docker, you can run project in Development environment.
- Run the application
dotnet run --project 'FrankfurterApp/FrankfurterApp.csproj' --launch-profile Local
- Made Redis cache optional to eliminate the need for a Redis server.
- Made Elasticsearch optional to eliminate the need for an Elasticsearch server.
- Added global error handler and translator for exceptions.
- Added execution context accessor to access user and request data.
- Didn't cover additional added files with tests. That's why test coverage is low. Covered only success scenarios.
- Add unit tests for all services and controllers.
- Make project more modular by separating the API and services into different projects.
- Add SSE for real-time updates.
- Add persistent storage for exchange rates.