Everyone remembers their middle school grade trips. I went to Disney and blew nearly all my money on Butterbeer and gummy snakes, and I wasn't the only one. 13-year-old me was among the approximately 195 million Americans who suffer from financial illiteracy. If only I’d had my parents with me or some financial sense to stop me from being so irresponsible. Enter SafeWallet. The parents and kids of modern times need not worry about this anymore. With SafeWallet, parents can keep tabs on what their kids are spending by allocating portions of their allowance to be used for specific stores or causes.

What it does

SafeWallet is an online platform that sets up accounts for parents and dependents such that parents can add funds to their children's wallets. They can monitor transactions dynamically, while also setting limits on shopping locations and transaction values. These can be edited at any time, as can be the addition of children. Children can request funds that appear in the parental view pending approval. The goal of SafeWallet is for children to be able to pay for items, so we hope to implement NFC technology to make purchases. In the meantime, however, the demo accepts store location and purchase value as inputs that would be transmitted through NFC at a store. The app uses an algorithm to pay the full purchase value by taking from assigned funds that allow for payment at that store. If there is no such combination of funds to fulfill this goal, the payment is declined, preventing the child from recklessly spending their money.

How we built it

The site utilizes a series of functions and databases which store user-login data, dependent data, expense data, funds data, and requests data. We had one team that focused on the back end, writing functions (methods for buttons to interact with the database), while the other began on the front end, building the site structurally. Together, we determined the functions, elements, and directionality of the site, before splitting into our teams. Originally, the functions were written in typescript which was mapped to javascript, however, we faced trouble integrating javascript, and needed to translate them once again into php for successful incorporation. The other team began by structuring the databases and then found an open-source code for a template to customize to our own needs/style. From there, they created a structure with the desired directionality and filled in each of the elements. Once both frameworks were made, the php functions were integrated into the website and the team debugged together.

Challenges we ran into

One of the biggest challenges we faced occurred when trying to integrate functions, as we did not find a successful method for combining the javascript functions with the php function, which lead to our next big challenge: learning php. Even after we had finished the site on our localhost, we faced more problems in finding a domain. We had some issues getting a successful promo code for one on, which also took some time to come in. To have a backup, we found another secondary hosting site, which presented us with yet another challenge. While testing the website for consistent performance, we experienced a php overload on the server. This limited us to only having one individual testing and working on the website. Even then our pay method did not work on the server because this process required too many php commands. The other three members continued working on debugging small issues locally while Vibhu edited the actual website. With less than 40 minutes before the submission time, we received our domain from but struggled to replace the previous domain with

Accomplishments that we're proud of

Everything. When we started to write code at noon, the entire team was unsure of whether or not we would have something concrete by the next morning. We had split into two teams, working towards the middle from the front and back end, so we were very worried about what would happen when we reached integration, especially because half of our team had no php experience. Considering this, we were proud of our work throughout, as we had formed a real idea and a prototype for it in a day.

What we learned

As our team members each had different backgrounds coming in, we each learned a different amount. Collectively though, we learned how to design a website, both structurally and visually, and how to code in php. We also learned how to connect front end and back end programming.

What's next

As of now, the website only receives manual inputs for payment, but we hope to continue the project and incorporate NFC technology for real-time payment to increase the applicability of SafeWallet. We also would like to categorize stores when assigning funds to provide information such as entertainment, rather than a list of movie theaters, for example. As an expansion of this, we also plan to use this categorization to provide longterm and monthly summaries of where expenses occurred. Lastly, we were hoping to alert parents when children visit stores that are absent from both the banned and the approved list, to provide an opportunity for the parent to decide whether or not to ban the store in the future (the site is programmed to allow payment on the first instance if they have a general fund).

Share this project: