Home

Project - Currency Exchange Converter

Full-stack app thag allows users to monitor current currency exchange rates

Home page of the foreign currency exchange rate calculator. A ticker displaying the exchange rates for various currencies is at the top. In the middle are two input fields, one labeled "Send" and the other labeled "Receive." A line chart showing the current exchange rate over time is at the bottom.

How it works

The app lets you check exchange rates for 55 different currencies. Users can enter an amount to send and see the conversion in real time as they type. They can select the "send" and "receive" currencies from a searchable currency picker. They can also swap the "send" and "receive" currencies with the "swap" button, favorite the active pair, and log a conversion to their history.


Additionally, they can view a ticker of currency pairs, each with its current rate and 24-hour change, as well as line and area charts of the active pair's rate over time.


Users can see a log of their conversions, each of which shows the time, pair, and send and receive amounts. Logs can be exported as a CSV file. Favorites and logs are stored in a database. Because of this, users can either create an account or continue as a guest. Guests can link their session to a Google account to become permanent users.


Technologies used

Mobile-first

Next.js

React

TailwindCSS

Supabase

Accessibility

What I've learned

This was the first major project that I built from scratch using Next.js App Router. I learned how to implement server-side and client-side routing, as well as how proxies work. In addition, I learned a couple of new Tailwind classes and how to use Supabase with server-side rendering.


For this project, I implemented an authentication flow that included OAuth 2.0 with Supabase. I learned how to properly implement server-side rendering. Additionally, I improved my SQL skills by writing triggers and functions for my database and applying row-level security to my tables.


Continued Development

In the future, I would like to improve the accessibility of my projects. This project includes line charts, an area that I feel is lacking. I also want to write tests for my components and tidy up the project structure.


Ask my AI assistant any question about me.