Project - Currency Exchange Converter
Full-stack app thag allows users to monitor current currency exchange rates

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.