Team Members:
Overview:
In today's interconnected world, there is a growing need to bridge the gap between non-governmental organizations (NGOs) and individuals who want to contribute to social causes. Our application aims to connect users with NGOs in their city by providing them with information about events and drives organized by these organizations.
How did we come up with the idea?
My friend Sarvadnya and I were feeling bored with the coding on a weekend, so we came up with the idea of participating in a garbage collection drive organized by NGOs. We began searching for garbage collection drives in our area and found several NGOs hosting such events. However, all the information was scattered across different websites owned by these individual NGOs. We realized there was no centralized platform where both users and NGOs could log in. NGOs could post their events, and users could easily register for drives based on their convenience. That's when we decided to create such a platform ourselves.
Feeling motivated, we set out to develop a user-friendly website that would serve as a hub for both NGOs and volunteers. By creating a centralized platform, we aimed to bridge the gap between NGOs and individuals interested in making a positive impact in society.
Tech Stack:
Frontend: React.js, Tailwind CSS.
Authentication and Authorization: Appwrite
Deployment: Vercel
Solution:
Societal Serve serves as a powerful connection hub, facilitating collaboration between non-governmental organizations (NGOs) and volunteers. The primary objective of this web app is to provide a user-friendly interface for NGOs to post their events, enabling them to attract a larger pool of volunteers. By offering a centralized platform for NGOs to showcase their events, the app significantly reduces the hassle for volunteers who are seeking meaningful volunteering opportunities, particularly on weekends or during their free time.
The web app streamlines the process for volunteers to engage with NGOs. Volunteers can easily navigate the app's interface to browse through the list of events posted by NGOs. Each event is presented with comprehensive details, including its purpose, location, date, and time. This empowers volunteers to make informed decisions and select the events that resonate with their interests and availability.
Upon finding an event of interest, volunteers can express their willingness to volunteer by choosing the event and confirming their availability. This confirmation serves as an RSVP, providing both the NGO and the volunteer with a clear understanding of their commitments. The web app acts as a comprehensive solution for volunteers who wish to engage with NGOs. The centralized platform eliminates the hassle of searching multiple websites or contacting various organizations independently. Upon visiting the app's website, volunteers can create an account, providing the necessary information to build their profile. Once registered, volunteers can RSVP and they will get an email with the all necessary details.
Challenges Faced:
When trying to use Appwrite's database to store JSON data throughout the development of our program, we encountered several difficulties. However, we found that storing JSON objects or arrays in a single document is not directly supported by the database module, which was a huge challenge for us.
By initially saving the JSON data as a string array, we attempted to get past this restriction. To achieve our goal of having a single document and variable to store the data, this technique necessitated the creation of numerous documents, which was not optimal. The management and retrieval of the data dispersed over various papers became laborious and ineffective. We looked into the enum data type in Appwrite in quest of a replacement. Unfortunately, this data type did not efficiently store and retrieve JSON data according to our specifications. The accompanying documentation proved to be difficult to understand and insufficient in pointing us in the direction of a workable solution.
We resorted to Appwrite's GitHub Discussions platform to try and find a solution, expecting to get some advice or help from the community or the Appwrite team. However, as of the time of writing, we have not heard back or had our issue resolved. Our search for a workable solution for storing JSON data within Appwrite's database has been hampered further by the absence of community support and guidance.
https://github.com/appwrite/appwrite/discussions/5704
Our method for developing our program has been significantly impacted by this restriction on the effective ṣtorage of JSON data. The difficulties we faced with Appwrite's database prevented us from accomplishing our original goal of effortlessly mapping the JSON data into a grid. To efficiently meet our data storage needs, we have been compelled to evaluate additional strategies and database options. So we created our database (data.js) and fetched data from this file.
Demo:
Demo Link: https://societal-serve.vercel.app/
Demo Video:
Repository Link - https://github.com/kirtanchandak/SocietalServe
Conclusion:
We enjoyed building Societal Serve and taking part in Appwrite Cloud Hackathon and we will make further improvements in this application.
#Appwrite #AppwriteHackathon