As websites like Youtube make it more difficult for content-creators to monetize their content, we wanted to create a way for people to support their favorite content-creators. Although there exist platforms, such as Patreon, where people can give monthly pledges to artists, we thought that the subscription-based model was not as consumer friendly. Instead, we wanted to create a platform where users could donate to creators for creations that they like. Our website allows users to discover new artists and donate to them more freely, without feeling obligated to pay a reoccurring donation every month.
What it does
Artists can post their work on our website and make revenue from people 'liking' their post. Users can scroll through their discover feed and see posts from different artists. If they see something they like, Users can 'EXP+' the work that they see to make a small donation to the artist/poster. Users can purchase 'EXP credit' (Exposure credit) for 10 cents per credit. Artists can then redeem the EXP for its value in real money or use the EXP to donate to other artists.
How I built it
We built a website using a React frontend and Node.js backend hosted on Google Cloud Platform using a Firestore database. We used React Router to do client-side routing and emulate a full user experience multi-page website. For the backend, we created an API to interact with the database using Express.
Challenges I ran into
Deploying our node server on GCP was a challenge. We ran into a bug where functions would freeze when liking a post, which we realized was due to deleted user accounts that we didn't originally take into consideration. Because of this, we checked for other edge cases. For the front end, we found that managing states was difficult (especially as our React App grew more complicated). Another thing that we found challenging was figuring out how to support image uploading and hosting.
Accomplishments that I'm proud of
We are proud that we were successfully about to create a fullstack app, deploy to a server, and host on a domain, such that our app could be accessible to anyone. We were also proud of how we worked together as a team and allocated our tasks and time efficiently, allowing to create a functional website in such a short period of time.
What I learned
Some members of the team learned how to use languages/frameworks that they had no prior experience with, such as Node.JS. We also learned how to use GCP services such as Google App Engine and Firebase. Additionally, we learned the importance of having modularity in our code, because if we tried to quickly add features without componentizing them well, it made it harder to debug in the future and read.
What's next for NVOLV
We hope to add support for different payment and redemption options, as well the ability to follow users/curate your feed. We also wanted to add variable donations (instead of fixed donation amounts). In the future, we aim to create more incentives for supporters to donate, such as "Top Supporter" badges.