Inspiration

We are four seniors graduating in May and relocating to cities across the United States to begin our full-time careers. As we prepare for this transition, we are confronting a shared and significant reality: entering the workforce while carrying student loan debt.

Like many new graduates, we found ourselves asking important financial questions:

  • How aggressively should we prioritize loan repayment?
  • Is it realistic to set a goal of being debt-free by a specific age?
  • Should we invest while paying down debt, or focus solely on repayment first?

While resources on debt and investing exist, much of the available guidance is generic and disconnected from an individual’s actual financial situation. Traditional tools often rely on static spreadsheets and do not account for key contextual factors such as salary, state taxes, housing costs, or repayment strategy preferences.

Recognizing this gap, we developed LoanLight, an application designed to provide personalized financial clarity for new graduates. By integrating real student loan data, job offer details, and cost-of-living inputs, LoanLight helps users make informed, realistic decisions about their path toward financial freedom.

What it does

LoanLight provides a personalized financial planning experience tailored specifically to new graduates entering the workforce with student debt. Users begin by uploading their federal and private loan documents along with their job offer letter. Using SwiftUI’s PDFKit and Vision frameworks, the app parses these PDFs to extract structured data such as loan balances, interest rates, salary, and state of employment. This allows the platform to work with real financial information rather than hypothetical inputs. Users then provide additional context, including estimated monthly essential expenses, city location, housing type, preferred debt repayment strategy, and investment preferences. Through integration with the U.S. Department of Housing and Urban Development’s Fair Market Rent API, the app calculates an estimated rent based on the selected city and housing type. We also integrate a state income tax calculator API to estimate take-home pay based on salary and state of employment. Using these inputs, LoanLight calculates projected debt-free timelines and generates a side-by-side simulation of loan repayment and investment growth. Users can toggle between repayment strategies such as avalanche, snowball, and hybrid approaches, as well as adjust investment allocation across low, medium, and high risk portfolios. The dashboard dynamically updates to show how each strategy affects the projected debt-free date, total interest paid, and long-term investment accumulation. In addition to planning tools, the app includes an educational tab that explains repayment strategies and investment concepts in clear and accessible language that can either be read or listened to. By combining actionable projections with financial literacy resources, LoanLight empowers new graduates to make informed decisions about achieving long-term financial freedom.

How we built it

Frontend: We built LoanLight’s frontend entirely in Swift and SwiftUI, focusing on creating a clean, responsive, and intuitive user experience. To handle document uploads, we used PDFKit to render and process federal loan documents and job offer letters directly within the app. PDFKit allowed us to access the raw text content of uploaded files and display previews so users could confirm what was being imported. For data extraction, we incorporated Apple’s Vision framework to help identify and extract structured information from documents when formatting was inconsistent. Vision assisted in improving accuracy when parsing salary figures, loan balances, and interest rates by enabling text recognition and layout-aware extraction. We implemented structured data models in Swift to store loan entities, income data, and user preferences locally within the app session. This ensured that once documents were parsed, all financial inputs could be organized into clean, predictable data structures that fed directly into our financial calculations. For visualization, we used Swift Charts to display loan balance reduction and investment growth over time. These dynamic graphs update instantly when users toggle between repayment strategies or investment risk levels, providing immediate visual feedback on how decisions impact long-term outcomes. Accessibility was something we were concerned about. This is why we used ElevenLabs, in order to have text-to-speech in our learning section that allowed users the ease of listening or reading to learn facts, helping them achieve financial freedom. We also built interactive UI components such as toggle selectors, segmented controls, and risk sliders to allow users to experiment with different financial strategies. These components are tightly integrated with our modeling logic so that changes reflect in real time.

Backend: For the backend, we built a fully asynchronous API using FastAPI. We used PostgreSQL hosted on AWS RDS db.t3.micro database as our primary database. By deploying the backend on AWS EC2, using Ubuntu OS, we maintained full control over infrastructure while enabling secure, scalable database connectivity within the same VPC. All database interactions are handled using SQLAlchemy ORM, and to support secure authentication, we implemented JWT-based token authentication with password hashing using Argon2. For income estimation, we integrated the API Ninjas Income Tax Calculator API to compute accurate federal tax obligations using official IRS brackets. We then calculated FICA and state-level taxes server-side to determine the monthly take-home income. Housing cost estimates are retrieved dynamically using the HUD Fair Market Rent dataset. For secure public access during development and demonstration, we deployed the backend on EC2 and exposed it via Cloudflare Tunnel, enabling HTTPS access.

Challenges we ran into

Our first main challenge was PDF extraction. Federal loan documents and offer letters vary widely in formatting, which makes consistent data parsing difficult. Some files did not follow predictable structures, and important information like salary or interest rates could appear in different locations. To address this, we built manual entry fallbacks and confirmation screens to ensure users could correct or verify extracted data when needed.

We also had challenges with infrastructure. Although we had used AWS before, using it can be very finicky and requires a lot of configuration on a difficult platform. It felt quite amazing to finally get the API deployed and ready for front-end usage.

Finally, backend-to-frontend full integration was quite difficult. We had to communicate back and forth about models and payload structure, adjusting till we were able to figure everything out!

Accomplishments that we're proud of

One accomplishment we are especially proud of is successfully parsing structured financial information directly from uploaded PDFs. Using PDFKit and Vision, we were able to extract key metadata such as loan balances, interest rates, salary, and employment status. Turning unstructured documents into usable financial inputs was a major technical milestone and allowed LoanLight to operate on real user data rather than hypothetical examples. We are also proud of building a functional and scalable backend to support our financial modeling. By designing a structured API that processes loan data, income information, and user-selected strategies, we created a system capable of generating deterministic projections for debt payoff and investment growth. This backend serves as the computational engine of the app. Another accomplishment was successfully connecting backend calculations to a dynamic frontend interface. We were able to display real-time projections, charts, and financial summaries using data returned from our backend. Seeing the UI update instantly as users toggle repayment and investment strategies demonstrated that our full-stack integration was working effectively. Finally, we are proud of integrating ElevenLabs into our learning feature. By incorporating AI-generated audio explanations, we made complex financial concepts more accessible and engaging. This enhancement supports different learning styles and reinforces our mission of making financial literacy less intimidating for new graduates.

What we learned

Through building LoanLight, we learned how complex personal finance becomes when real-life details are involved. It is easy to calculate loan payments or investment growth on their own, but combining salary, taxes, rent, expenses, and strategy preferences into one accurate projection is much more challenging. Every number affects another, so careful testing and validation were necessary to ensure our results were realistic and trustworthy. We also learned how unpredictable document parsing can be. Loan files and offer letters do not follow one consistent format, which makes automated extraction difficult. This taught us the importance of building fallback systems and confirmation screens so users can verify their data and maintain confidence in the app. From a technical perspective, we learned how important strong communication is between frontend and backend development. The backend must return clear, structured data, and the frontend must display it in a way that is easy to understand. Aligning models, payload structures, and calculation logic required constant iteration and collaboration. Most importantly, we learned that financial clarity is not just about calculations. It is about building trust. Users need projections they can understand and rely on. Creating that balance between accuracy and simplicity was one of our biggest lessons.

What's next for LoanLight

We plan to integrate Plaid to securely connect users’ real-time banking information. This will allow LoanLight to automatically import live account balances, recurring expenses, and loan updates, making projections more accurate and reducing manual input. We also aim to enhance our financial modeling engine by incorporating additional real-world factors such as employer 401(k) matching, inflation adjustments, and dynamic investment return simulations instead of fixed percentage assumptions. Improving PDF extraction accuracy using more advanced machine learning techniques is another priority, allowing us to support a broader range of loan and offer letter formats. On the product side, we plan to add features such as scenario comparison, milestone tracking, and personalized financial insights based on user behavior. Push notifications for key milestones, like projected payoff dates or savings benchmarks, could further increase engagement. Long term, our goal is for LoanLight to evolve from a one-time planning tool into a continuous financial companion that grows alongside its users as their careers and financial situations develop.

Share this project:

Updates