Inspiration

A lot of people don’t do “ground-breaking” things in their lifetime, like being the first to go to space, discovering electricity, or discovering DNA sequencing. But in an act as simple as giving, we have helped change the lives of millions. From giving a homeless person our last cash or food to donating to help victims of war survive these difficult seasons.

But what if we didn’t need an advert on social media or actually see someone in need to be prompted to give? What if we made giving an essential part of us and our goals? How many more lives could we change?

This app is inspired by combining the power of habits and good deeds to transform the world with small actions.

What it does

Ray is a highly gamified platform that builds the act of giving as a habit. Think Duolingo, but instead of learning a new language, we’re giving to help people around us. Users are able to set a yearly goal and have Ray break it down into daily giving goals. Interactive streaks, badges, and level upgrades are leveraged to keep users committed to achieving their giving goals. Ray was inspired by humanitarian crises around the world, particularly the ongoing challenges faced by communities affected by conflict. The platform seeks to encourage empathy, consistent support, and collective action through everyday giving.

How we built it

The backend of our web application was designed using a RESTful API architecture to ensure scalability, modularity, and seamless integration with the frontend. Built with Node.js and Express, it uses PostgreSQL as the primary database to manage structured relational data for users, organizations, and donation activities. The system features secure JWT-based authentication, with user credentials encrypted using bcrypt for data protection. API endpoints were structured around key resources: users, auth, orgs, and leaderboard, enabling smooth operations such as user registration, login, streak tracking, organization retrieval, and leaderboard generation. The backend logic also includes automated streak updates and giving records, ensuring user engagement is consistently tracked. Through its RESTful design, the backend returns data in JSON format for frontend consumption, while validation middleware ensures robust input handling. Finally, the application is containerized and deployed on Render for reliable performance, emphasizing scalability, quick response times, and secure data handling across all API operations.

Challenges we ran into

Our biggest challenge was tackling a lengthy user flow to prevent engagement drops as users moved through the web app. Ray is designed to collect several relevant data points from users to tailor each experience; however, the screens associated with each data collection spanned beyond what was considered “acceptable” for proper user engagement with the platform. We solved this problem by introducing some of the data collection screens after the user has accessed their dashboard.

Accomplishments that we're proud of

We’re proud of our idea. In a world where we are constantly pushed to put ourselves first, we often forget that we have comrades who consider the essentials of living as privileges. With Ray, users are prompted to give daily and monitor the impact of their contributions. The feeling of giving is associated with the release of dopamine and endorphins, which encourage further actions of giving.

What we learned

We learned how to create more user-centric designs.

What's next for Ray

We plan to integrate leaderboards for collaborative contributions and accountability, a detailed dashboard that tracks and reports the impact of each user, and a community feature for organizations and users to interact concerning impact, reports, and relevant updates. Finally, we plan to involve logistics groups native to different communities to aid in the easy transportation of physical contributions and donations.

Share this project:

Updates