-
-
My Profile Page
-
Sync phone number and see the status/ranking of friends
-
Discover Volunteer Opprotunities
-
opportunity pages also have like and dislike buttons
-
can view past posts on profile page
-
Search for a Donation Insititution
-
Login Page
-
information page for each volunteer opportunity
-
First Page
-
Discover Volunteer Opprotunities
Inspiration
Reflecting on the frequent news about challenges facing socially vulnerable groups, our team, fortunate to have extensive volunteer experience, shared personal insights, leading to a unanimous agreement: awareness is crucial. We pondered how to shift people's attention towards these issues and encourage active participation in support actions. This brainstorming sparked the idea of developing an app that combines volunteering and donations with a gaming system, injecting competition and fun into altruism. Our vision aims to engage more people in meaningful support through an innovative approach, making the act of helping both rewarding and enjoyable.
What it does
Discover Volunteer Opportunities: Users can easily find organizations in need of volunteers within their local area. This feature uses geolocation to suggest relevant volunteer activities based on the user's location and preferences.
Earn In-App Currency: By participating in volunteer activities, users earn a form of in-app currency(Ex: Tip) as a reward for their contributions. The more they volunteer, the more they earn.
Browse and Donate to Charities: The app provides a list of charitable organizations to which users can donate. It includes detailed information about each charity, so users can choose where their contributions go, especially related to Socially Disadvantaged. This information (volunteering hours, number of volunteer activities, currency earned) is saved in my profile.
Sync phone numbers to see the status of my friends, and view rankings based on currency, volunteering hours, and the number of volunteer activities.
Challenges we ran into
Developing an app with React Native, a language unfamiliar to all team members, posed significant challenges, especially in terms of collaboration and time management. Despite the effort to prevent git conflicts by carefully defining roles, the small scale of the app led to unintentional interference with each other's work. This included minor edits to files managing entire pages or deviations from agreed development patterns, necessitating further adjustments during integration.
One of the most time-consuming issues was managing shared data objects displayed on the screen, where differences in coding styles led to considerable effort in code interpretation and explanation among team members. This experience highlights the importance of clear communication, consistent coding practices, and a robust version control strategy in collaborative software development projects.
The use of Firestore also significantly contributed to the project's time consumption. Team members frequently encountered inconsistent behavior, where the database worked for some but not for others. After dedicating time to investigate, the root cause was identified as issues related to using outdated versions of Firebase. Despite active discussions on Firebase's issue tracker, a clear solution was elusive, and the official documentation did not adequately highlight issues stemming from version discrepancies.
What we learned
Our project journey led to a critical realization: the importance of not overly relying on ChatGPT. While our unfamiliarity with certain technologies prompted us to lean heavily on ChatGPT for solutions, we recognized that this dependency stemmed partly from our collective habit of not utilizing search engines to their fullest potential.
Ironically, the answers we sought were often already available on platforms like Stack Overflow. It was during a moment of exhaustion and near surrender, while browsing community forums, that we stumbled upon the solutions to our issues. These solutions turned out to be simpler than we had anticipated, leaving us with a mix of relief and a sense of missed opportunity for learning.
This experience highlighted the invaluable lesson of the importance of self-reliance and the wealth of knowledge available through community forums and documentation. We collectively resolved to cultivate a habit of seeking out information and troubleshooting on our own, reinforcing the idea that while tools like ChatGPT can be incredibly helpful, they should complement, not replace, our problem-solving skills and resources.
What's next for VolunTip
One of the features we were eager to integrate was the use of a map API to allow users to intuitively find volunteering activities nearby. However, the learning curve associated with React Native and time constraints led us to reluctantly set aside this idea for the time being. It remains a top priority for future updates.
We've also contemplated establishing partnerships or sponsorship systems with volunteer and donation organizations. The concept of earning rewards through quizzes or surveys has always intrigued us, and we're keen to explore how these mechanisms could be applied within our app to encourage participation.
Lastly, we aim to further refine the tip-based reward system. While we intended to embody the positive aspects of tipping culture within the app, it has, for now, taken on the role of a simple in-game currency. We plan to delve deeper into how this system can more meaningfully reflect the spirit of generosity and appreciation inherent in tipping culture.
Log in or sign up for Devpost to join the conversation.