Group Greenery was inspired by the idea of encouraging community gardening by connecting nearby users with a social media network. A lot of people live in apartments where they can’t have their own personal garden. We thought Group Greenery would be cool for people to share and initiate a community garden.
What it does
Group Greenery is a social media platform where nearby people can locate a public garden nearby that is available for them to use. It allows different users to collaborate on a specific garden, notifying the users of the garden’s progress on a weekly basis. Users can register to the system and sign up for multiple different gardens and be notified regularly on the activity of each respective garden that each user is signed up for. Users can view a map of their location to help try to locate different community gardens within their areas. Users can also interact with other different users within the application to increase opportunities in shared gardens and make new friends! Group Greenery also offers the functionality of checking on the health of plants in the shared garden with a computer vision model to offer further insight so the users of the shared garden can do their part to better the garden for everybody!
How we built it
Please refer to the last image in the image gallery to see our system layout.**
We built the entire Group Greenery web project with frontend on React and backend on node.js.
Login, Register Page
We used Google Cloud Firebase account authentication for registering and logging in users.
User Personal Information
We populate the user’s personal information by locating the user’s login credentials to the OCI DB. At this point, the user can see their weekly activity and friend’s list. They can also share their weekly activity to their friends through SMS or email. All communication was built with Twilio API.
Nearby Community Garden Map
We used Google Maps API to get the satellite and regular view of the user and the nearby community gardens. We also used Google’s street view feature so users can virtually move around the neighborhood and look into the community gardens on their devices.
We then put small garden icons on the map by using a simple HTTP request onto our backend server connecting to the OCI DB. The database contains information such as nearby community garden names, locations (latitude, longitude), garden pictures, garden members, expected date until the garden needs attention, and the garden’s leaderboard.
Users can collaborate with others by competing against each other on the leaderboard to keep their community garden fresh at all times! Users can also notify each other when the garden needs attention, with Twilio API.
Community Garden Update Camera
We used computer vision to monitor the health of our plants. We currently search for tree-like structures in the image, and if the ending structures “wilt”, which is an easy thing to test for, then we consider the plant to be wilting, which means it needs water or some type of refeeding. We also consider the time from the last time it has been refed, so if it is wilting right after you water it, it is alright since that just means the water hasn't reached the plant yet but that the plant is fine. Combining these, we have a simple algorithm that predicts when the plants will need to be refed.
Community Garden Analytics Dashboard
Our analytics dashboard shows simple statistics right now such as daily humidity, sunlight, and the chance of rain as a function of cloud cover, which is something that anyone can gauge by looking up - this way, all the variability in the data is pushed into something that the user can easily verify. This further pushes ease of use and encourages a lot of people to use this app. It shows the current Leaderboard for this garden as well as the number of points everyone has, which bolsters competition. It also shows the expected number of days till refeeding is necessary. Users can share this analytics with the other community members with Twilio API.
Challenges we ran into
Some of our Machine Learning algorithms needed a lot of trial and error - for example, we had to weigh many different factors for the rainfall prediction score. We found, unsurprisingly, that Cloud Cover had the highest mutual information with rainfall, so we chose that for our visualization while using the other features for predictions in the backend. We ended up using an ensemble of Poisson GLMs and gradient boosting on top of that, and managed to predict rainfall very accurately.
Accomplishments that we're proud of
We are proud of creating a Machine Learning model that is on par with the weather prediction algorithms from the UCLA Weather center. We are also proud of creating something that we can actually use during our internships - since our internships are all in big cities, we can now help contribute to the environment as well as collaborate with all our friends and get them to develop green spaces as well. We can compete and work together to renovate rooftop gardens, local shared gardens, and other community green spaces.
What we learned
We learned a lot about web development and computer vision. We wanted to make the user experience as smooth as possible and we experimented a lot with different data pipelines and computer vision models.
What's next for Group Greenery
An idea we would like to branch on would be a form of a marketplace or trading center for Group Greenery, so the multiple users who are using the group garden can interact amongst themselves to decide what else could be planted, what could be removed, and if they want to switch up the plants within the group itself.