-
-
Home page (not logged in)
-
Volunteer login page
-
Home page (event recommendation system when logged in)
-
User profile page with volunteering statistics
-
Organiser profile page with participant statistics
-
Event list page
-
Event page
-
Edit event page
-
Blog list page with options to filter blogs
-
Individual blog page
-
Edit blog page
EN-Volunteers
by Sadfaces for Lifehack 2022
Chosen Theme: Giving Back
Problem Statement: Question 1
Volunteering is one of the best ways to give back to our community. What creative ideas do you have to make volunteering easier, widespread, and more beneficial to those in need?
Inspiration
We chose this problem statement as it resonated with us the most. With the realisation that we will soon be leaving our current school to move forward to the next phases of our lives, we have been searching for ways to give back to the community, in return for the experiences that have helped us grow.
We believe volunteering is a great and tangible way of serving the community, as it can have long-lasting positive impacts when done well, both for volunteers and for beneficiaries. Thus, we decided to work on making the volunteering process easier, especially for new volunteers, and find ways to encourage more widespread volunteering. Our ultimate aim is to reach out to more beneficiaries more effectively.
Instructions on Accessing EN-Volunteers
Method 1: IP Address
Visit http://35.89.21.87/ in a new browser tab/window. You should be able to navigate through our app from there.
Method 2: Download and Run Files
- Step 1: Click Code > Download ZIP to download a zip file of the source code, then extract the files to your desired folder.
- Step 2: In the terminal, navigate to the root folder and run
sh pip_install.shto install the dependencies for the project. - Step 3: Run
sudo python3 app.pyin the same folder (key in your password if necessary) and visit the IP address as indicated by the output of this command.
Login Instructions
You may register your own new Volunteer/Organiser accounts to test our features. Alternatively, you may use the following credentials:
- Volunteer account:
- Username: henry
- Password: pw218
- Organiser account:
- Username: ffh
- Password: pw218
Some parts of the site can also be accessed as an anonymous user.
What EN-Volunteers Does
Our hack is an all-in-one platform for organisations to create and promote volunteering opportunities, as well as for volunteers to register for these events and share their experiences through the blogging feature.
A unique feature of our website over other similar websites is that we make use of AI to recommend opportunities that we think users may like, allowing users to find similar opportunities to those which they are interested in. We do this by running Doc2Vec on the descriptions of events that organisers provide and compare its similarity to other events. This helps us to make good recommendations in 2 ways: firstly, events by the same organisations would likely be worded similarly and secondly, this allows us to pick up relevant keywords from events the user is interested in. Thus, we are able to recommend events from organisations that the user has an interest in, and recommend events with similar themes that the user likes. We believe that this feature will help organisations reach out to more users by showing them good recommendations and increasing their engagement. This would also save the volunteers’ time as they do not need to scroll as much to find events that they like, although they are still able to do so if they want to browse more events.
Additionally, volunteers are able to filter the events based on tags that the organiser has added and the date range for the event. This allows them to easily narrow down their available options if they do not like the recommendations given or want to try something different from their usual preferences.
On top of this, we also have a friends system on the website, which then allows the user to sort the events based on how many friends they have who also participated in that event. We believe that this would help increase participation and engagement, as some volunteers may be more likely to volunteer for an event if many of their friends are participating in it.
Another major feature we have is the blog feature. This allows organisers to promote new events, further increasing audience engagement. Volunteers can also write blog posts to share their experiences participating in events with others, which may encourage more people to volunteer for the event.
At EN-Volunteers, we strongly believe in the importance of the connections and interactions between volunteers and organisers.
In the profile page for volunteers, some data regarding volunteering interests (based on event tags) and volunteering hours are visualised using a radar chart as well as a calendar. This helps to provide volunteers with more awareness and insight into their volunteering activity, which enables them to contribute more effectively in areas they are experienced in as well as spend more time to prepare themselves for activities they may be less experienced in. Users can also find out what others (e.g. their friends) are interested in, which helps to spark interactions within the network.
Meanwhile, in the profile page for organisers, overall information on all volunteers’ ages and residential locations are visualised using a violin plot and a donut chart (however, organisers cannot access such information from individual participants, to protect their privacy). This enables organisers to better understand the demographic of their volunteers, in order to better engage them or find ways to reach out to more volunteers.
How does EN-Volunteers answer the problem statement?
Our hack helps to make volunteering easier and widespread by assisting volunteers to search for organisations they are interested in and recommending events for them to participate in. By recommending events they like, this would also increase the chance that they participate in the event, which makes volunteering more widespread too.
We believe that our features also make volunteering more beneficial to those in need by matching volunteers who are passionate about the event and with skills relevant to the event with events they like. Additionally, the platform and volunteering events encourage more meaningful connections to be forged among volunteers and organisers, in order to better serve beneficiaries. Our website also allows organisers to upload training resources with the events for users to view before participating, which allows them to ensure users have the skills or knowledge required for the event.
How did we build EN-Volunteers?
Our website is built with Flask and Amazon Web Services, which makes the app scalable and responsive. Our main back-end server is a Flask server hosted on a Elastic Compute Cloud (EC2) on AWS. Our app’s data is stored on DynamoDB, with the resources stored on Simple Storage Service (S3). We also made use of Lambda for cases where we needed to prevent conflicting changes.
For the AI, the model (coded in Python) was easily integrated with the rest of our site due to the use of Flask. We made use of the Natural Language Processing (NLP) tool, Doc2Vec, with embeddings trained on Google News Articles. In order to recommend the most suitable events we took the average of the vectors formed by the events the user has already participated in and computed the distance to other events. We then sorted the other events based on this distance and suggested events with minimal distances.
As for the frontend, we made use of Bootstrap for a simpler and more responsive design, along with chart libraries such as Plotly and Chart.js to visualise data.
What are some difficulties we overcame?
A major difficulty we had to overcome was the limited time window and we were unable to complete some features such as using more user data in the AI, for example age and location. If given more time, we would also like to train the AI on actual descriptions from real volunteering organisations. Because of the limited time constraint, we were unable to scrape the data from these websites and decided to train the AI on Google News instead, as we felt that it would provide the most general texts and had a significant amount of text to train on.
What was your biggest learning point from LifeHack 2022?
The biggest learning point we had was learning about the Doc2Vec models and making use of it in our recommendation system. We learnt that we are able to use Doc2Vec to transform text into vectors and perform operations on them to find their similarity. It was quite counterintuitive to use at first that we could add up and subtract words to form other words but after a lot of experimentation and learning we found a suitable way to solve our problem using Doc2Vec.
Appendix - Future Improvements
Train the AI on descriptions from real volunteering organisations
Use other factors like age and location in the AI
Add profile pictures and organisation logos for a more personalised experience
Add more share options for users to share the events and blogs on other sites like Instagram and Discord
Chat function for users to connect and for organisers to disseminate information to users

Log in or sign up for Devpost to join the conversation.