Inspiration
A familiar question inspired PayAhead: “Can I afford this purchase without making the rest of the month harder?” Many shopping tools focus on finding products and deals. We wanted to build one that also helps people pause, consider their budget, and make a more informed choice.
What it does
PayAhead compares a product’s price with a user’s income, expenses, debt payments, and savings. It presents buy-now and wait scenarios, lets users import transactions, and supports purchase watches and reminders. The app also includes a product catalogue and illustrative price-history charts.
Its financial calculations are rule-based. Product and price-history examples are synthetic demo data, so the charts do not represent verified retailer prices or live deals.
How we built it
We built the interface in Streamlit and put the application logic in the same app process, so a separate API server isn’t needed to run it. Flask and SQLAlchemy handle the existing server-side routes and data models. The app uses SQLite for local development and is configured for Supabase Postgres when hosted. Scikit-learn supports expense categorization and anomaly review; an optional PyTorch model explores deep-learning-based categorization. PayPal Sandbox order and capture handling is implemented, but a real Sandbox checkout still requires credentials and buyer approval.
Challenges we ran into
One challenge was making purchase recommendations useful without presenting them as financial guarantees. We kept affordability calculations deterministic and made the assumptions and scenarios visible. Another was handling external data carefully: product-page metadata may be incomplete, and generated price histories can be mistaken for live prices. We label demo data clearly and ask users to review product details before saving them.
We also explored deep learning for transaction categorization. Because the available training examples are synthetic, benchmark scores don’t tell us how well the model would perform on real transaction descriptions.
Accomplishments that we’re proud of
PayAhead brings budgeting context directly into a purchase decision. It includes personal profiles, transaction import, purchase scenarios, product watches, alerts, a responsive Streamlit interface with dark mode, and a hosted-database configuration. The current automated test suite passes 12 tests.
What we learned
We learned that useful financial software needs to explain how it reaches a recommendation, make uncertainty clear, and keep user control central. We also learned that impressive model metrics on generated data aren’t a substitute for evaluation on representative, authorized data.
What’s next for PayAhead
Next, we plan to verify the Supabase-hosted deployment, complete a real PayPal Sandbox checkout, and connect a permitted source of current product prices if live price comparisons are needed. We also want to validate transaction categorization with appropriate real-world data and make reminders dependable in a hosted environment.
Built With
- cloud
- community
- flask
- numpy
- pandas
- paypal-sandbox
- python
- pytorch
- scikit-learn
- sqlalchemy
- sqlite
- streamlit
- supabase-postgres