NOTE: My original app idea was a cryptocurrency portfolio tracker. I have sinced switched to a plant watering app to keep track of watering schedule.
Keeping track of all your plants can be a difficult task especially when they all have different watering needs. Knowing when to water each individual plant at any given time can make all the difference.
WaterPal is a web app that will allow users to moonitor their plants and their watering schedules. Users can register and login. Once they're logged in, they can add their plants and modify their watering schedule. The app displays their plants and allows the user to easily keep track of when they need to be watered next
The application will store Users and Plants
- users can have multiple plants (via references)
- each plant has iits own watering schedule
An Example User:
{
username: "plantpal",
hash: // a password hash,
plants: // an array of references to Plant documents
}
An Example List with Embedded Items:
{
user: // a reference to a User object
nickname: "Ally",
species = "Aloe Vera",
lastWatered: // date of last watering,
nextWateringDue: // date of next expected watering
}
/home - page for user registration or login
/plants/add - page for adding a new plant to the user's collection
/plants - page for showing all plants and their next watering dates
Note: has not been modified to reflect new plant watering idea
- as non-registered user, I can register a new account with the site
- as a user, I can log in to the site
- as a user, I can add a plant to my collection
- as a user, I can view all of my plants
- as a user, I can view the watering schedule of each plant
- as a user, I can remove or edit a plant
- (5 points) Integrate user authentication
- I'm going to be using passport for user authentication
- (3 points) Configuration management using dotenv
- I'm going to use dotenv to help load environment variables from a .env file
- (3 points) Deploy using Vercel
- I'm going to use vercel to deploy my express and mongoDB application.
11 points total out of 8 required points
- passport.js authentication docs - Used for user authentication in the app
- Dotenv - Used for loading environment variables
- Vercel Deployment - For deploying an express app on Vercel