Ensuring that all your plants are consistently watered is actually pretty difficult. Water My Plants is an app that helps to solve those problems.
With an easy to use interface for creating a plant watering schedule tailored to each individual plant, Water My Plants will remind users when it's time to feed that foliage and quench your plants' thirst.
- A
user
can sign-up / create an account by providing a uniqueusername
, a valid mobilephoneNumber
and apassword
. - A
user
can login to an authenticated session using the credentials provided at account creation / signup. - An authenticated
user
can Create, Update and Delete aplant
object. At a minimum, eachplant
must have the following properties:id
: Integernickname
: Stringspecies
: Stringh2oFrequency
: Type determined by implementationimage
: (optional)
- An authenticated
user
can view a list of createdplants
. Aplant
can be deleted or selected to presentuser
with a detail view whereuser
can then update any property of the selectedplant
. - An authenticated
user
can update theirphoneNumber
andpassword
. - An authenticated
user
can update theirphoneNumber
andpassword
.
- The app was built using React as a single page application
- Styling is done using CSS and styled components
- Global application state management utilizes Redux; state confined to individual components uses React useState hooks
- This version of the app supports a backend built using Node.js
- API calls are made using the axios library
- Authentication and private routing utilize encrypted JSON web tokens