Plant Care Web Application

Overview

Web application to help users keep track of watering/fertilizing their plants by calculating upcoming dates with given information.

Link: https://lemon-plantcare.herokuapp.com/

Test Username: sampleUser

Test Password: samplePassword

Tech Stack: (Full/MERN-Stack) React, HTML, CSS, Bootstrap, JavaScript/Node.js, Express, CRUD and REST API (Axios), MongoDB, Mongoose

Features: Authentication, Password hashing, Cookies

Authentication and Encryption

Users are required to register an account before being able to access any features (other than the help page). Attempting to access any unauthorized links prompts the user to log in.

Accounts and passwords are stored in a MongoDB database, and passwords are encrypted through a cryptographic hash function (md5).

Users will stay logged into their accounts unless they log out or delete their browser's cookies.

Unique URL and Account Management

Other than logging in, users are also able to access their plant database by appending their username to the URL. The application will recognize the parameter and load the user's data (if authenticated).

Adding, Editing, and Deleting

Adding or editing a plant presents the same UI, and the application performs the required CRUD operations on the back-end database once the user provides the requested data.

Cancel, Delete, and Undo Delete functionalities are also present.

Interface

The website provides a clean UI to view the user's plants, displaying watering and fertilizing dates. A plant's background turns green when the watering date has been reached. Plants are also sorted by next watering date.

All plant information is stored and retrieved from the MongoDB Database.