https://github.com/mondo-mob/santas-helper
Santa's Helper allocation demonstration code
https://github.com/mondo-mob/santas-helper
Last synced: 8 months ago
JSON representation
Santa's Helper allocation demonstration code
- Host: GitHub
- URL: https://github.com/mondo-mob/santas-helper
- Owner: mondo-mob
- License: mit
- Created: 2022-11-23T21:01:11.000Z (almost 3 years ago)
- Default Branch: main
- Last Pushed: 2022-12-14T03:52:17.000Z (almost 3 years ago)
- Last Synced: 2025-01-16T06:58:27.999Z (9 months ago)
- Language: Jupyter Notebook
- Size: 10.5 MB
- Stars: 2
- Watchers: 6
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
README

# Santa's Helper
This is the companion code for the [Santa's Helper](https://medium.com/@marc_at_mondo/santas-helper-7eca86c64e14)
blog. The blog explains what the code is trying to do, but focuses on the logic output - rather than the "how to".
This code is the "how to".In order to setup and run this code, you will need a [Google Cloud](https://cloud.google.com/) account, with a
credit card attached (this project requires some paid resources - although it won't cost much to run so long
as you shut everything down once you've finished).Next, create a new project in your GCP (Google Cloud Platform) account. The one used here and with the demonstration
has a project id of `mv-santas-helper` (if you let Google select a random project id, you can see what it is
by navigating to the `Cloud Overview` page).
## Technology
There are a number of technologies used for this project, which are listed below along
with their respective usages.- [BigQuery](https://cloud.google.com/bigquery) - Used as the underlying RDB (Relational Database). Sample child &
present data is created using views. Additional views are then added as required in order to
obtain the *score* for every child/parent combination.
- [Vertex AI](https://cloud.google.com/vertex-ai/) - Specifically, we are using a hosted/managed
[Jupyter](https://jupyter.org/) Notebook to review the data in BigQuery and demonstrate the allocation logic.## Setup Steps
There are few steps required to setup your environment to make all the code run. These are listed below - in the
order they should be executed.- [Notebook Setup](etc/docs/notebook-setup.md) - Setting up the managed Jupyter Notebook in GCP
- [Service Account Setup](etc/docs/service-acc-setup.md) - Setting up the GCP Service Account - required by the
Jupyter Notebook to create and access the data in BigQuery.
- [BigQuery Setup](etc/docs/bigquery-setup.md) - Initialising BigQuery for use by the Notebook - specifically creating
a dataset.
- [Running the Notebook](etc/docs/running-the-notebook.md) - working through the algorithm and allocating presents.