PlantApp - UofTHacks IX Project

Related tags

App PlantApp
Overview

evergreen

Created for UofTHacks IX

App Home Screen Detailed Plant View
App Home Screen App Plant Detail

Inspiration

Throughout the course of the pandemic, many people have gravitated towards owning plants as relatively low-cost and low-maintenance companions. New plant owners can find it overwhelming to keep track of the types of all the plants they own, watering schedules, and specific plant needs on top of their personal lives. Our goal was to design an Android application to aid new plant parents and help restore the livelihood of their plants by improving access to better care instructions. The time saved and hassle streamlined through use of evergreen most importantly restores the user's ability to allocate time to care for themself as well.

What it does

evergreen includes a variety of tools to help new plant owners tend to their garden.

  • Unique user register/login, allowing users to see their garden from any Android device.
  • An implemented Plant.id API to allow users to identify their plants by uploading a photo.
  • A dedicated garden screen which allows users to see a quick overview of their plants.
  • A plant search bar which enables users to search for information such as common names, a general description, and care tips for any given plant.
  • A photo-based search to identify plants and provide information for the given plant.

Technology we used

  • Android SDK
  • Firebase Authentication
  • Realtime Database
  • Plant.id API
  • MediaWiki API

We decided on creating an Android Application in Kotlin and XML as all but one of us do not have experience with mobile development, and were looking to tackle an exciting development stack to try something new. We utilized Firebase Authentication and Realtime Database for user registration/authentication and database management respectively. We used MediaWiki's API as well as the aforementioned Plant.id API to handle retrieving info about the plants and to identify them.

Challenges we ran into

A major challenge encountered during the development of evergreen was learning to integrate android apps with both external and native APIs. APIs as a whole are something only one member of the development team had experience with, so it was important to ensure the entire team was able to learn how the app worked inside and out for our own personal growth. The entire team was able to develop a better understanding of APIs and the data they use to communicate with the system through this project.

Implementing a community component into the app also proved to be more challenging than what could be tackled within a 36 hour period. Additionally, learning how to work with the camera function in order to visually identify plants in addition to text-based search was difficult for our team.

Learning a completely new software stack and development platform for 3/4 of our team members was the largest challenge of all. Though we all had experience with Java, Kotlin was a new and exciting tool for us to learn how to utilize alongside XML. Integrating APIs within the coded functionality of the app was an unforeseen difficulty that yielded significant benefits to the overall functionality of the app in a way that could not have been achieved otherwise. Our team's development experience has been limited to web applications or simple command line interface programs, so this was a huge step up in scope for us and we are incredibly proud of what we were able to accomplish.

What's next for evergreen

evergreen is intended to be a one-stop hub for all your plant care and planting-community needs.

The scope of evergreen is to be further expanded to implement a community aspect to the application. This would entail being able to find and connect with other nearby users to exchange seeds, grafts, and cuttings of their plants. Additionally we'd implement a system where users can add their personal tips and tricks to the info page for various plants, that other users could then up/down vote to curate the best information for care.

Additionally, the Plant.id API also has the capability to identify plants with diseases by photo and provide treatment tips. This functionality is also to be added in future updates to evergreen, to further aid the user in restoring the health of their plants with convenience and ease through providing a personalized and comprehensive treatment plan.

Building the app

This app uses Firebase. Create a new project and enable password authentication, as well as read/write access to the real-time database. Put the google_services.json provided into the app directory.

This app also uses the Plant ID API. Request an api key from them, then create a file named apikey.properties in the project root directory with the following:

PLANT_API_KEY="apikey"
You might also like...
:octocat: A demo project based on MVVM architecture and material design & animations.
:octocat: A demo project based on MVVM architecture and material design & animations.

GithubFollows A simple demo project based on MVVM clean architecture and material design & animations. Architecture Specs & Open-source libraries Mini

🎬 A demo project for The Movie DB based on Kotlin MVVM architecture and material design & animations.
🎬 A demo project for The Movie DB based on Kotlin MVVM architecture and material design & animations.

TheMovies A simple project for The Movie DB based on Kotlin MVVM clean architecture and material design & animations. How to build on your environment

Android Phishing Application.This Project is for Educational purposes only.The Developer of this application is not responsible of any bad usage
Android Phishing Application.This Project is for Educational purposes only.The Developer of this application is not responsible of any bad usage

Android Phishing Application.This Project is for Educational purposes only.The Developer of this application is not responsible of any bad usage

The example Android project of animated menu items in toolbar
The example Android project of animated menu items in toolbar

Android Animated Menu Items The example Android project of animated menu items in toolbar. Thanks Srikant Shetty for idea of this animation. Cut: Copy

Sample Project for Android Support Library 23.2
Sample Project for Android Support Library 23.2

SnapShot: Contains features Vector Drawable Animated Vector Drawable AppCompat DayNight theme Bottom Sheets Using BottomSheetDialog in day-night mode.

This project is focused on the sample using the API's new preview version of Android-L, use of transitions, shadows etc...

Android L preview example Description This project is focused on the sample using the API's new preview version of Android-L, use of transitions, shad

A project which demonstrate how to develop a custom client on android for dribbble.com
A project which demonstrate how to develop a custom client on android for dribbble.com

##What is this? This is a project with custom client app on android for https://dribbble.com, which you can browse the popular icon and animation, lik

Project BlueWeather is an android app that lists the closest locations to you and shows the 7-day weather forecast for the location you select.
Project BlueWeather is an android app that lists the closest locations to you and shows the 7-day weather forecast for the location you select.

Project BLUEWEATHER Description Project BlueWeather is a weather forecast application for android. It lists the locations closest to you. It then prov

Chat is a sample project that presents a modern, 2021 approach to Android application development.
Chat is a sample project that presents a modern, 2021 approach to Android application development.

Chat for Android Chat is a sample project that presents a modern, 2021 approach to Android application development. Screenshots 📷

Comments
Releases(v1)
Owner
Emily Goose
Student. Developer. Pilot.
Emily Goose
Forage-project - This is a project given by Google Android Developers team. It's specifically created for data persistance.

Forage - Starter Code Starter code for the fifth independent project for Android Basics in Kotlin. This project pairs with Unit 5 of Android Basics in

Espérant GADA 0 Jan 2, 2022
Civihelper-project - This is our first android project .

Civihelper-project Problem-- Time taking and cumbersome conventional way to submit your civil problems. Proposed soln--- A platform to provide the sub

Kunal Kumar 1 Jun 6, 2022
Connect is an Android Application to connect people for a project and can then work on the application to efficiently complete the project

Connect is an Android Application to connect people for a project and can then work on the application to efficiently complete the project

Shubhaprasad Padhy 1 Jan 9, 2022
Idaesbasic - An all in one project manager that stores everything in files directly into your project! 🤯

Idaesbasic - Project-Managment redefined Idaesbasic Everything is a file ?? With this project managment tool, everything is a file. Your todolists are

Ben Herbst 123 Nov 11, 2022
FoldingNavigationDrawer-Android This is a sample project present how to use Folding-Android to add Folding Efect to Navigation Drawer.

FoldingNavigationDrawer-Android Sample (Play Store Demo) This is a sample project present how to use Folding-Android to add Folding Efect to Navigatio

null 242 Nov 25, 2022
📱 Android Library to implement Rich, Beautiful, Stylish 😍 Material Navigation View for your project with Material Design Guidelines. Easy to use.

Material NavigationView for Android ?? ?? Android Library to implement Rich, Beautiful Material Navigation View for your project with Material Design

Shreyas Patil 198 Dec 17, 2022
It is a project that contains lessons and examples about Kotlin programming language. 🇰

Kotlin Tutorials What is Kotlin? I added the platforms it supports and great resources. You can access the article from the link below: https://medium

Halil Özel 94 Dec 22, 2022
This is a first kotlin project

SmallPocket This is a first kotlin app, help user to save links easily, and can export to Evernote as weekly. Steps: copy link anywhere open SmallPock

KotlinChina 31 Dec 17, 2022
Example of Android project showing integration with Kotlin and Dagger 2

kotlin-dagger-example This project demonstrate how to setup an Android Project with Kotlin and Dagger 2. It's based on Dagger 2 example ##Known issues

Damian Petla 533 Nov 11, 2022
Mobile client for official Nextcloud News App written as Kotlin Multiplatform Project

Newsout Android and iOS mobile client for Nextcloud news App. The Android client is already available to download in the Play Store. F-Droid and Apple

Simon Schubert 118 Oct 3, 2022