Back to Projects

Financedu

A 501(c)(3) financial education platform for youth, parents, & teachers.

Visit financedu.org

Technologies

  • PostgreSQL
    PostgreSQL
  • Next.js
    Next.js

Of all the projects I’ve completed thus far, I’ve spent the most time on Financedu. It is truly a full-featured app—it has multiple databases, auth, and hundreds of registered users!

It all started when I got an essay question in the Broadcom MASTERS science fair application. I was asked a fairly simple question—to name a “dream course” that my school didn’t offer. Given my interest in the subject, I naturally gravitated towards personal finance (I also think most would agree with me).

So I got started at the end of 2021 on actually making it a reality. I realized that it couldn’t be just any other paper-based course—what if there weren’t a teacher available? Or what if you dislike lectures and prefer to go at your own pace?

I tried to address these issues by making Financedu an online platform. It has an interface for students (and anyone whose curious) to browse through content—including quizzes, articles, and set of interactive tools.

Alright, so here we go. I’ll try to break it down bit by bit, but I’ll probably skip over some stuff due to how big the project is. If that’s the case, don’t hesitate to reach out to me for any questions!

The Architecture

A Diagram of Financedu's Main Databases Above is a diagram of how Financedu’s databases are organized. There’s a few more tables than what’s shown—but these are the main ones.

In essence, our content is separated into courses, modules, lessons, and activities. Students can either work towards these individually, or as part of their class.

To that end, teachers can create classes that contain students (or “users”). These classes have assignments (which are comprised of lessons and activities) that are submitted by students.

All of our content is based off of educational standards, which are then linked to specific lessons and activities.

We also have a few more features, including a progress-tracking dashboard for Parents, as well as a set of calculators and resources (which you can explore here).

One newer feature is a volunteer hour tracking system. In exchange for giving feedback, volunteers can earn community service hours, which are tracked by an in-house toolkit. We developed an algorithm that looks for monitors activity (e.g. position/frequency of clicks, keyboard presses), to make sure no one is cheating!

The Tech Stack

Now, this is one of the most interesting parts of the project.

When I first started, Financedu used Wix. It’s classically known as a drag-and-drop editor, but what makes it truly powerful is Wix Velo, a full-stack platform for hosting apps that gives you access to a bunch of APIs, a Node environment, and a wrapper over MongoDB.

While it has its limits, it also has its (many) merits. The biggest thing keeping me on Wix’s platform has been its seamless integration with a whole platform. From my dashboard, I can easily chat with visitors, bulk send emails, and edit my content through a visual interface. In essence, it’s like Supabase plus more—it would simply take forever to replicate all the features it offers.

The main issues were performance-related—it could get slow on mobile or over poor Wi-Fi connections. Because the Wix editor doesn’t give you total freedom over your frontend, I’ve also had to find myself using some workarounds (e.g. positioning elements with JS).

Financedu 2.0

I began working on the second version of Financedu in January 2025. Due to all the limitation of Wix, I switched Financedu entirely onto Next.js, using Drizzle as the ORM.

The features are mostly the same, save for a new RAG Chatbot I made. All the embeddings were made with OpenAI’s models and they are stored in Postgres.