Financial Memory
Inspiration
I wanted to build a personal finance tracker that goes beyond recording today's expenses. While exploring existing expense-tracking apps, I became interested in a problem that many students can relate to: tracking spending is one thing, but understanding where your money went over weeks, months, and years is another.
I also wanted financial records to remain accessible instead of being tied to a single browser or device. That inspired me to build Financial Memory, a student-focused application designed around financial history, visual insights, and convenient access to expenses and savings.
What it does
Financial Memory helps users record expenses and savings contributions, explore historical spending patterns, view category breakdowns, and understand their financial activity through charts and summaries. Users can customize the appearance and currency display, while a deterministic query feature answers supported questions about spending using recorded data.
The application works in guest mode with local storage. Users can also sign in with Google through Supabase Authentication and synchronize their expenses, savings, and settings across browsers using the same account.
How we built it
I built the application using HTML, CSS, and JavaScript, with Vite for the production build. I used Supabase for authentication and cloud data storage, including Row Level Security policies that restrict users to their own cloud records. Cloudflare Pages hosts the deployed application and its configuration endpoint.
To keep the development lifecycle organized, I strictly followed the Devpost Learn Skill Pack guidelines. I utilized its flipped-interaction method to thoroughly map out the project ideation, which resulted in the creation of my structured scope.md, prd.md, and spec.md planning blueprints prior to entering the development phase.
My code execution was accelerated by dynamically leveraging Google AI Studio, Codex, and Anti Gravity as persistent programming co-pilots. I focused on preserving local data while adding cloud synchronization, so users can continue using the app even when cloud sync is unavailable.
Challenges we ran into
The journey was not smooth. I encountered production build issues, JavaScript module-import errors, environment-variable configuration problems, OAuth redirect mistakes, and Git history conflicts while moving the project into a new repository.
Additionally, because of the high volume of complex coding tasks required during this short timeline, I frequently hit strict free-tier rate limits and maxed out daily generation quotas. To bypass these developer bottlenecks and protect my project velocity, I had to be highly resourceful—swapping dynamically between Google AI Studio, Codex, and Anti Gravity platforms as each one reached its token capacity. This multi-platform rotation ensured that my building process never ground to a halt despite the heavy infrastructure constraints.
Accomplishments that we're proud of
One of our biggest accomplishments is turning Financial Memory from an idea into a working, deployed application that people can actually use.
We're proud to have built a student-focused finance tracker that combines expense tracking, savings records, historical analytics, visual spending breakdowns, and data-based financial insights in one place.
Another major milestone was implementing Google authentication and cross-browser cloud synchronization. We tested the application by recording expenses and savings in one browser, signing into the same account in a second browser, and verifying that the records appeared there too.
We also implemented Row Level Security in Supabase to restrict cloud records to their respective users, while preserving local storage so the application remains usable when cloud synchronization is unavailable.
Beyond the features themselves, we're proud of overcoming the technical challenges involved in production builds, OAuth redirects, environment variables, Git history, database permissions, and deployment. We ran our automated test suite, with all 46 tests passing, and verified that the production build completed successfully before deploying the cloud-sync implementation.
Most importantly, we didn't stop at making the interface look good. We kept debugging, testing, and improving the application until authentication and cross-browser synchronization worked in practice.
Financial Memory represents more than a collection of features for us. It's a hands-on achievement in taking a web application from development to deployment while learning how its frontend, authentication, database, and hosting infrastructure work together.
What we learned
Debugging these problems taught me the importance of testing production builds locally, understanding the difference between development and production environments, managing Git history carefully, and configuring authentication redirects correctly. I also learned how to connect a frontend application to a database with user-level access controls.
Most importantly, I learned that building an application is not just about making the interface look good. It also involves testing, deployment, data integrity, security, and making sure the features work outside the development environment.
What's next for Financial Memory
I want to continue improving Financial Memory with more robust synchronization, better conflict handling, and additional ways to explore long-term spending patterns.
Our upcoming product roadmap includes deploying an advanced local privacy lock screen. This will utilize native browser WebCrypto SHA-256 algorithm protocols to secure local app profiles, backed by an intentional Security Question database fallback. This self-contained recovery mechanism will protect user endpoints without relying on external SMTP mail gateways or risking platform rate-limiting blocks.
Financial Memory is my attempt to make personal finance easier to understand by helping people remember not only what they spent, but also how their spending habits change over time.
Built With
- cloudflare-pages
- css
- data
- google-oauth
- html
- javascript
- local-storage
- postgresql
- supabase
- vite
Log in or sign up for Devpost to join the conversation.