Zig-Zag32 / CPSC-415-01-Project

MIT License
0 stars 0 forks source link

CPSC-415-01-Project: Personal Recipe Book and Kitchen Inventory Tracker

* Indicates MVP

This project is a simple Recipe Book and Kitchen Inventory service. Recipes and food items all have CRUD operations available to the user, and other functionality may include shopping list recommendations, and recipe recommendations based on current kitchen inventory. The goal of this project is to help provide a user-friendly centralized place that makes life easier for casual kitchen users.

A simple usage scenario could look like the following:

  1. Navigate to the UI
  2. Add kitchen items to the inventory, and check the current inventory.
  3. Add recipes to the recipe book, and view all recipes in the book.
  4. Generate a recipe idea using the LLM interface.
  5. (NYI) Generate a shopping list to see what is needed to make recipes in the book using the LLM interface.

Group Members :sunglasses:

Microservices :apple:

Component Diagram: Component Diagram

Configuration Diagram: Configuration Diagram

Ollama on the GKE Cluster: ollama

Dependencies and Technologies :gear:

Java Dependencies

JavaScript Dependencies

UI Layout

Milestones (0 days left) :coffee:

  1. Week 10: Set up component diagram.
  2. Week 11: Get MVP services working. Not necessarily correctly, but communicating.
  3. Week 12: Get each microservice running and containerize them
  4. Week 13: Get everything running correctly on the docker desktop cluster.
  5. Week 14: Deploy everything to the GKE cluster.
  6. Week 15(only two days): May 7 Course Project Presentations.

Getting started :rocket:

User access:

  1. MS 5 Front Page: http://34.111.130.246/

  2. Ghost: http://34.49.160.195/

Deploying instructions:

This project is a microservice-based application designed to be deployed and run on Kubernetes. To deploy it, you'll need either Docker Desktop (with Kubernetes enabled) or a standalone Kubernetes cluster. :wink:

First, clone this repository:

git clone https://github.com/Zig-Zag32/CPSC-415-01-Project

and navigate to the root directory of this project on your local device.

To deploy this application on Kubernetes, using this command (One command to deploy everything :rocket: :rocket: :rocket: ):

kubectl apply -f k8s 

It takes about one minute for everything to deploy. You can check the status of all the pods on the cluster with

kubectl get pods -A

Once all pods have a Ready status of 1/1, access the front end on the central Swagger UI by port forwarding with the following command:

kubectl port-forward service/headless-swagger-ghost-service -n krx-headless-swagger-ghost-ms

Then navigate to http://localhost:8090/swagger-ui/index.html in a browser to interact with the Swagger UI.

To delete this application on Kubernetes, using this command:

kubectl delete -f k8s 

Future Features to be Implemented

  1. Post recommendations to Ghost (fix bug).
  2. Shopping list generator.
  3. Change recipe searches from by ID to by name.
  4. More coordination between MS1 and MS2.

Citations :bulb:

  1. ChatGPT-4: The ChatGPT-4 language model is an advanced generative AI system developed by OpenAI.
  2. Claude 3 Opus: Claude 3 Opus is an AI model by Anthropic with conversational capabilities.
  3. Sock Shop Demo: This project also draws inspiration from the sock-shop-demo repository:
  4. LLaMA 2: For information about the LLaMA 2 model, refer to the Hugging Face blog post:
  5. LLaMA 2 Prompt Formatting: For information about formatting prompts for LLaMA 2, check out this Reddit post:
  6. Kubernetes Examples: This project also draws inspiration from the Kubernetes examples repository:
  7. Prof. Johnson: For continued help and support throughout the development process.