Check out the magic live: Pantry Wizard Login Portal
Username: admin
Password: password
...or make your own credentials!
Pantry Wizard is a culinary companion like no other, revolutionizing the way chefs and home cooks approach meal planning. With its intuitive and user-friendly interface, users can effortlessly add locally sourced ingredients to their virtual pantry. This inventory becomes the cornerstone for crafting exquisite recipes that celebrate the richness of locally grown produce. The application offers a secure login interface with customizable credentials, ensuring that your culinary creations are for your eyes only. But Pantry Wizard is not just about convenience; it's about precision. The platform meticulously tracks caloric and pricing information for both ingredients and recipes, empowering chefs to create menus that cater to dietary needs and budget constraints.
Behind the scenes, the application relies on a robust technology stack, including Java, Spring Boot, Hibernate, JPA, HTML, CSS, Maven, Bootstrap, and a hosted MySQL Database. Pantry Wizard is hosted seamlessly on AWS Elastic Beanstalk, ensuring a harmonious and responsive experience for users as they embark on journey that involves unlocking the potential of local ingredients in the most innovative way possible.
Pantry Wizard is a sophisticated culinary application that operates on the principles of Spring MVC (Model-View-Controller), making it a robust CRUD (Create, Read, Update, Delete) application. Let's delve into how Pantry Wizard utilizes Spring MVC to provide a seamless user experience while managing essential operations:
Spring MVC is a web application framework that follows the MVC architectural pattern. Pantry Wizard effectively implements this pattern:
- Model: In Pantry Wizard, the model represents the data structure of the application's entities (User, Ingredient, and Recipe). The application relies on Hibernate and JPA for ORM (Object-Relational Mapping) to interact with the AWS hosted MySQL database. These technologies ensure that data is efficiently stored and retrieved.
- View: The view layer is responsible for rendering the user interface. Pantry Wizard employs HTML, CSS, and Bootstrap to create a visually appealing and user-friendly interface. Users can seamlessly interact with their pantry ingredients and recipes.
- Controller: Controllers act as intermediaries between the model and view. Pantry Wizard utilizes Spring Boot's controller classes to handle HTTP requests and direct them to the appropriate services. These controllers are responsible for CRUD operations, ensuring that users can create, read, update, and delete their pantry ingredients and recipes effortlessly.
- Create: Users can add new ingredients to their pantry and use these ingredients to create new recipes.
- Read: Through the application's intuitive interface, users can view their pantry inventory, browse recipes, and access detailed information about each ingredient or recipe through clickable Bootstrap cards.
- Update: When users need to modify an ingredient or recipe, Pantry Wizard allows them to make updates easily. The application ensures data consistency and accuracy by employing Spring MVC's mechanisms for form submissions and data validation.
- Delete: Removing ingredients or recipes from the pantry is a straightforward process. Spring MVC handles the request to remove the selected items from the database, ensuring that data integrity is maintained.
- Web Browser (works well in Google Chrome)
- Java JDK 17.0.8 (Download)
- Spring Boot Starter Data JPA
- Spring Boot Starter Thymeleaf
- Spring Boot Starter Web
- Spring Boot Devtools
- MySQL Connector J
- Spring Boot Starter Test
- Spring Boot Maven Plugin
Pantry Wizard is hosted via AWS Elastic Beanstalk and can be accessed using the following link: Pantry Wizard Login Portal
Common Issues:
- In this current release, when recipes are added or updated, the first form within the "Add Ingredient" selectors must have an ingredient category selection before the recipe submission will be approved. In future updates this will be changed.
Author can be contacted via the following link: