This application allows users to view a list of plants identified as being either "Plots" (plants for their gardens) or "Pots" (houseplants). Users may add to the list, and all plants are available for everyone to see so that users may get some ideas and inspiration for how to build their own collections. Users may also edit or remove any plants that they have added, but not those created by others.
- HTML
- CSS, Sass, & Bootstrap
- JavaScript & JQuery
- Rails (1st Iteration)
- Handlebars
- MongoDB (2nd Iteration)
- Mongoose (2nd Iteration)
- Express.js (2nd Iteration)
- Node.js (2nd Iteration)
- As a user, I want to sign up.
- As a user, I want to sign in.
- As a user, I want to change my password.
- As a user, I want to sign out.
- As a user, I want to view a list of plants.
- As a user, I want to add plants to the list.
- As a user, I want to edit plants that I have created.
- As a user, I want to delete plants that I have created.
My original plan was to focus only on houseplants and create watering schedules, but I wanted to allow users to add to the list. I realized that could be a challenge, as people may not necessarily know average watering cycles. I chose to keep the required data simple and focus on creating a collaborative list. My process was roughly as follows:
- Build back end
- Create plants table
- Add editable to serializer
- Inherit Plant controller from OpenRead
- Build front end
- Authorization: API routes, events, user interface 1. Ensure user can sign up, sign in, change password, and sign out
- Add functionality for creating, reading, updating, and deleting plants 1. Ensure users were appropriately authorized for actions
- Create handlebars template
- Add update and delete actions to individual plants, only available to the user who created them.
- Add messages to reflect user actions
- Testing, polishing
- Styling
- Allow users to create personalized lists separated by "plots" and "pots."
- Allow lists to be sortable.
- Add images.
- Note that 1st goal has been accomplished through second iteration.
1st Iteration Rails Back-End Repository 2nd Iteration MongoDB Back-End Repository