Students entering University are often faced with many financial burdens that prevent them from reaching their highest levels of success. Many students succumb to the increased costs and avoid signing up for or receiving benefits that hinder them in their educational path. We believe that students should not face these difficulties and should have an easy way to allow people to support their journey. Current solutions such as creating a goFundMe or wishlist of products often fail to have their desired impact since students cannot fully explain their backstory or motivation. Donors often have no way to hold the student accountable to success and are completely in the darkness about how their funds are used. We aim to solve these issues by providing a transparent portal for students to list the products they need for their University and be able to receive support from generous benefactors. Donors have the peace of mind that their funds are directly being used to procure resources that will benefit the student and not have to worry about fund misappropriation. Our end goal is to create a trackable portal for students that will maximize their open opportunities.
What it does
Our application creates a portal where students can create a custom list of items that they require to be able to attend university. Upon entering our site, donors will be able to browse through the list of items and subsequently choose how they wish to empower the students. They will be able to select and item to learn more about it. Finally, they will be prompted to pay for it which will take the user information and pass it to stdlib that will make stripe api calls to charge payments.
How I built it
We used Vue.js, an innovative framework that combines multiple aspects of web development such as templates, scripts and designs together into singular files. Without having experience in this particular framework, it involved a steep learning curve for our teammates but was made easier by the framework that allows easy importing of libraries and components. To execute our api calls, we decided to use Standard Library. This was motivated due to several reasons. The primary reason was the ability to encapsulate multiple api calls and functions together into a new simplified api call. We were able to assign redundant variables in advance and only pass in relevant information. The second reason that motivated us to make use of standard library was security. Adding api calls to our codebase would have exposed api-keys and sensitive data. By wrapping these calls, we were able to secure our information and prevent malicious use of the code even if inspected. Within standard library, we used their latest Autocode feature to develop supported api calls to send text messages upon payment for a product. Furthermore, we designed custom actions that would create invoice items, bundle them together into an invoice and finally bill a customer. These were carried out with the Stripe API and allows for quick and easy billing of users. Together, this system allows students to receive immediate confirmation for products that were purchased for them and the donor to be charged automatically in a secure manner.
Challenges I ran into
Vue.js was a completely new framework to us and we were unfamiliar with how to use it. The framework is different from typical web development by combining the various different parts of web development together into one file. Another challenge we ran into was deploying to google app engine. There was not much documentation on how to deploy a vue project.
Accomplishments that I'm proud of
Proud of having learned how to use std library and the many benefits of using it. We managed to secure our api calls and not expose any vital information in the process.
What I learned
We learned how to use Vue.js and hope to use it in future projects. Also worked in a team where all teammates met each other on the day of the hackathon. Learned how to quickly understand teammates skills and get effective in finishing a project.
What's next for Empower Me
Creating a way to keep track and hold students accountable. Add loading bars and progress trackers as well as dynamic changing of the site as different payments are processed.