Skip to content
rebecaarasPublic

Repository files navigation

Effective Exchange Rates App

This app aims to provide an api interface to display the public data provided by BIS.

What are Effective Exchange Rate Indexes ?

An EER index is a measure of the value of a country's currency relative to a basket of foreign currencies over time. The index is calculated by comparing the current EER to a base period, which is usually set to equal 100. If the EER increases over time, it means that the currency is appreciating in value relative to the basket of foreign currencies. If the EER decreases over time, it means that the currency is depreciating in value relative to the basket of foreign currencies.

Goals & Stack

This is the backend part of the EER API project, you can check the front-end here. It is mainly meant for my own learning. Some topics I had to approach for this project include (with the respective chosen technologies):

  • Basic Databases Design and Setup (Postgres + Rails Active Record)
  • API Development (Ruby on Rails)
  • Front-end client consuming the API (React + TypeScript)
  • Componentization and Responsiveness (I mostly relied on Shadcn-UI)

Setup

You can access this project at eer-api.rebecaaras.org or run it locally:

Clone the repo:

git clone https://github.com/rebecaaras/eer-api
cd eer-api

Install dependencies, setup db and seed data with:

bin/setup

Open in browser and enjoy :)

Example queries:

Query first series: eer-api.rebecaaras.org/series/1

{
  "series": {
    "id": 1,
    "basket": "narrow",
    "country_code": "CA",
    "country_name": "canada",
    "frequency": "monthly",
    "series_type": "nominal"
  },
  "data": [
    {
      "date": "1964-01-01",
      "value": "132.69"
    },
    {
      "date": "1964-02-01",
      "value": "132.74"
    },
    {
      "date": "1964-03-01",
      "value": "132.66"
    },
    {
      "date": "1964-04-01",
      "value": "132.62"
    },
...

Query all series: eer-api.rebecaaras.org/series

[
  {
    "id": 1,
    "basket": "narrow",
    "country_code": "CA",
    "country_name": "canada",
    "created_at": "2026-10-09T16:03:40.014Z",
    "frequency": "monthly",
    "series_type": "nominal",
    "updated_at": "2026-10-09T16:03:40.014Z"
  },
  {
    "id": 2,
    "basket": "narrow",
    "country_code": "CH",
    "country_name": "switzerland",
    "created_at": "2026-10-09T16:03:40.014Z",
    "frequency": "monthly",
    "series_type": "nominal",
    "updated_at": "2026-10-09T16:03:40.014Z"
  },
...

Filter by country_name (or any other param you want): eer-api.rebecaaras.org/series?country_name=spain

[{"id":11,"basket":"narrow","country_code":"ES","country_name":"spain","created_at":"2026-10-09T16:03:40.014Z","frequency":"monthly","series_type":"nominal","updated_at":"2026-10-09T16:03:40.014Z"},{"id":41,"basket":"broad","country_code":"ES","country_name":"spain","created_at":"2026-10-09T16:03:40.014Z","frequency":"monthly","series_type":"nominal","updated_at":"2026-10-09T16:03:40.014Z"},{"id":119,"basket":"narrow","country_code":"ES","country_name":"spain","created_at":"2026-10-09T16:03:40.014Z","frequency":"monthly","series_type":"real","updated_at":"2026-10-09T16:03:40.014Z"},{"id":161,"basket":"broad","country_code":"ES","country_name":"spain","created_at":"2026-10-09T16:03:40.014Z","frequency":"monthly","series_type":"real","updated_at":"2026-10-09T16:03:40.014Z"}]

Releases

Packages

Contributors

Languages