Skip to content
Closed
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
38 commits
Select commit Hold shift + click to select a range
585d978
Merge pull request #4 from Disasters-Learning-Portal/dev
kyle-lesinger Oct 7, 2025
f73887c
Merge pull request #7 from Disasters-Learning-Portal/dev
kyle-lesinger Oct 24, 2025
4b7183e
Merge pull request #8 from Disasters-Learning-Portal/addContent
kyle-lesinger Oct 29, 2025
e0a8ff6
Merge pull request #9 from Disasters-Learning-Portal/main
kyle-lesinger Oct 29, 2025
d4d0959
Merge pull request #10 from Disasters-Learning-Portal/dev
kyle-lesinger Oct 29, 2025
6099b14
Merge pull request #11 from Disasters-Learning-Portal/addContent
kyle-lesinger Oct 29, 2025
d195efc
Merge pull request #12 from Disasters-Learning-Portal/dev
kyle-lesinger Oct 29, 2025
b01a3d8
Merge pull request #13 from Disasters-Learning-Portal/addContent
kyle-lesinger Oct 29, 2025
64338d0
Merge pull request #14 from Disasters-Learning-Portal/dev
kyle-lesinger Oct 29, 2025
49bb497
Merge pull request #15 from Disasters-Learning-Portal/addContent
kyle-lesinger Oct 29, 2025
c81aeff
Merge pull request #16 from Disasters-Learning-Portal/dev
kyle-lesinger Oct 29, 2025
3c31d7c
Merge pull request #17 from Disasters-Learning-Portal/addContent
kyle-lesinger Oct 29, 2025
7b2363b
Merge pull request #18 from Disasters-Learning-Portal/dev
kyle-lesinger Oct 29, 2025
2f51301
Merge pull request #19 from Disasters-Learning-Portal/addContent
kyle-lesinger Oct 31, 2025
9365b4a
Merge pull request #20 from Disasters-Learning-Portal/dev
kyle-lesinger Oct 31, 2025
b935443
Merge pull request #21 from Disasters-Learning-Portal/addContent
kyle-lesinger Nov 3, 2025
cc81a19
Merge pull request #22 from Disasters-Learning-Portal/dev
kyle-lesinger Nov 3, 2025
a278a83
Merge pull request #23 from Disasters-Learning-Portal/addContent
kyle-lesinger Nov 3, 2025
651dbc1
Merge pull request #24 from Disasters-Learning-Portal/dev
kyle-lesinger Nov 3, 2025
2a715ce
Merge pull request #25 from Disasters-Learning-Portal/addContent
kyle-lesinger Nov 10, 2025
7ca25f6
Merge pull request #26 from Disasters-Learning-Portal/dev
kyle-lesinger Nov 10, 2025
28c5089
Merge pull request #27 from Disasters-Learning-Portal/addContent
kyle-lesinger Nov 13, 2025
5d6c32c
Merge pull request #28 from Disasters-Learning-Portal/dev
kyle-lesinger Nov 13, 2025
b8b1b6b
Merge pull request #29 from Disasters-Learning-Portal/addContent
kyle-lesinger Nov 13, 2025
a364024
Merge pull request #30 from Disasters-Learning-Portal/dev
kyle-lesinger Nov 13, 2025
63344f0
Merge pull request #31 from Disasters-Learning-Portal/addContent
kyle-lesinger Nov 13, 2025
107150a
Merge pull request #32 from Disasters-Learning-Portal/dev
kyle-lesinger Nov 13, 2025
e9a3328
Merge pull request #33 from Disasters-Learning-Portal/addContent
kyle-lesinger Nov 18, 2025
4207a43
Merge pull request #35 from Disasters-Learning-Portal/addContent
kyle-lesinger Nov 18, 2025
98fb0ae
update
kyle-lesinger Nov 18, 2025
4dd0405
Merge pull request #38 from Disasters-Learning-Portal/test-password-p…
kyle-lesinger Nov 18, 2025
99fd6b9
Merge pull request #39 from Disasters-Learning-Portal/dev
kyle-lesinger Nov 18, 2025
3887ebc
update aws cost management training
kyle-lesinger Nov 24, 2025
904a571
update workflows with correct installation
kyle-lesinger Nov 24, 2025
85a577a
update quarto.yml
kyle-lesinger Nov 24, 2025
1e1e8ff
adding some new files
ethankerrwx Nov 26, 2025
733cbfe
Merge branch 'main' of https://github.com/Disasters-Learning-Portal/d…
ethankerrwx Nov 26, 2025
45bff47
added notebooks
ethankerrwx Dec 1, 2025
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
12 changes: 12 additions & 0 deletions .github/workflows/deploy-with-password.yml
Original file line number Diff line number Diff line change
Expand Up @@ -18,6 +18,18 @@ jobs:
- name: Setup Quarto
uses: quarto-dev/quarto-actions/setup@v2

- name: Setup Python
uses: actions/setup-python@v5
with:
python-version: '3.12'
cache: 'pip'

- name: Install Python dependencies
run: |
python -m pip install --upgrade pip
pip install jupyter nbformat nbclient
pip install -r requirements.txt

- name: Render Quarto site
run: quarto render

Expand Down
6 changes: 4 additions & 2 deletions .github/workflows/preview.yml
Original file line number Diff line number Diff line change
Expand Up @@ -22,8 +22,10 @@ jobs:
python-version: '3.9'
cache: 'pip'

- run: pip install jupyter
- run: pip install -r requirements.txt
- run: |
python -m pip install --upgrade pip
pip install jupyter nbformat nbclient
pip install -r requirements.txt
- run: quarto render --to html

- name: Verify auth script is present in rendered HTML
Expand Down
6 changes: 4 additions & 2 deletions .github/workflows/quarto-publish.yml
Original file line number Diff line number Diff line change
Expand Up @@ -24,9 +24,11 @@ jobs:
python-version: '3.9'
cache: 'pip'

- run: pip install jupyter
- run: |
python -m pip install --upgrade pip
pip install jupyter nbformat nbclient
pip install -r requirements.txt
- run: quarto install tinytex
- run: pip install -r requirements.txt
- run: quarto render --to html

- name: Verify auth script is present in rendered HTML
Expand Down
584 changes: 584 additions & 0 deletions DataIngestion/stac-collection.ipynb

Large diffs are not rendered by default.

104 changes: 104 additions & 0 deletions Presentations/aws-cost-management.qmd
Original file line number Diff line number Diff line change
@@ -0,0 +1,104 @@
---
title: "AWS Cost Management"
subtitle: "Managing and Optimizing AWS Costs"
format:
html:
toc: false
page-layout: full
---

## AWS Cost Management

This page provides guidance for managing and optimizing costs in Amazon Web Services (AWS).

::: {.callout-note}
## About This Presentation

This presentation covers AWS cost management strategies, monitoring tools, and optimization best practices.

**Controls:**
<ul>
<li>Click the "︙" menu for additional options such as Full Screen mode</li>
<li>Advance slides using your mouse cursor</li>
</ul>
:::

---

### Tutorial Video Recording

Watch the complete walkthrough of this tutorial with live demonstrations and explanations:

::: {.callout-warning}
## Large Video File Notice

Due to the video file size, it cannot be embedded directly. Please use the button below to watch the video in a new tab.

<div style="text-align: center; margin: 1.5rem 0;">
<a href="https://drive.google.com/file/d/1fNSrA1-0WH11U9WvEfT_8jTYsfM1VTPr/view"
target="_blank"
style="display: inline-block; padding: 12px 24px; background-color: #0066cc; color: white; text-decoration: none; border-radius: 6px; font-weight: bold; box-shadow: 0 2px 4px rgba(0,0,0,0.2);">
▶ Watch Tutorial Video
</a>
</div>


:::

::: {.callout-note collapse="true"}
## Video Details

This recorded tutorial includes:
- AWS Cost Explorer walkthrough
- Setting up budgets and alerts
- Cost optimization strategies
- Tagging and cost allocation
- Best practices for cost management

:::

---

### Presentation

<div style="text-align: center; margin: 2rem 0;">
<iframe src="https://docs.google.com/presentation/d/e/2PACX-1vSWi_k461DA4LINasclBYp4SRaKuy_ycKfMwDemRqXiwRUmmq38OBHSFpU68p8pMA/pubembed?start=false&loop=false&delayms=3000"
frameborder="0"
width="1280"
height="749"
allowfullscreen="true"
mozallowfullscreen="true"
webkitallowfullscreen="true"
style="border: 1px solid #ccc; border-radius: 4px; box-shadow: 0 2px 8px rgba(0,0,0,0.1); max-width: 100%;">
</iframe>
</div>

::: {.callout-tip collapse="true"}
## Alternative Viewing Options

If the embedded presentation doesn't load properly, you can:

1. **Open in new tab**: [View presentation in Google Slides →](https://docs.google.com/presentation/d/e/2PACX-1vRmsfUNSNQStvXH2VMhYd31ZFO6s4HqPD263eSs4MoGp4pLhUvingBvRSMG6GwzQQ/pub?start=false&loop=false&delayms=3000)

2. **Fullscreen mode**: Click the fullscreen button in the embedded player above

3. **Download**: Open the link above and look for download options if available
:::

---

## Related Resources

### AWS Cost Management Documentation
- [AWS Cost Management](https://aws.amazon.com/aws-cost-management/)
- [AWS Cost Explorer](https://aws.amazon.com/aws-cost-management/aws-cost-explorer/)
- [AWS Budgets](https://aws.amazon.com/aws-cost-management/aws-budgets/)

### AWS Optimization Tools
- [AWS Trusted Advisor](https://aws.amazon.com/premiumsupport/technology/trusted-advisor/)
- [AWS Compute Optimizer](https://aws.amazon.com/compute-optimizer/)
- [AWS Well-Architected Tool](https://aws.amazon.com/well-architected-tool/)

---


34 changes: 25 additions & 9 deletions _quarto.yml
Original file line number Diff line number Diff line change
Expand Up @@ -64,6 +64,15 @@ website:
contents:
- data_workflow2/NRT_data_download.qmd
- data_workflow2/NRT_directory_structure.qmd
- section: contentcuration.qmd
text: Content Curation
contents:
- section: datasetingestion.qmd
text: Dataset Ingestion
contents:
- text: Boilerplate Ingest Example
href: DataIngestion/stac-collection.ipynb

- section: Documentation
contents:
- text: "Quarto Guide for Beginners"
Expand All @@ -80,6 +89,8 @@ website:
href: Presentations/disasters-powerpoint-template.qmd
- text: "AWS and Grafana Monitoring Tutorial"
href: Presentations/aws-grafana-tutorial.qmd
- text: "AWS Cost Management"
href: Presentations/aws-cost-management.qmd
- text: "JupyterHub and Data Conversions Tutorial"
href: Presentations/jupyterhub-data-conversions-tutorial.qmd
- text: "STAC Database and Apache Airflow Tutorial"
Expand Down Expand Up @@ -114,16 +125,21 @@ format:

// Get the base path for the current page
function getBasePath() {
const path = window.location.pathname;
// Extract base directory from current path
const parts = path.split('/').filter(p => p);
// Find the index.html or last segment
const fileIndex = parts.findIndex(p => p.endsWith('.html'));
if (fileIndex > 0) {
return '/' + parts.slice(0, fileIndex).join('/') + '/';
let path = window.location.pathname;

// If path ends with / or is a directory, it's already the base
if (path.endsWith('/')) {
return path;
}
// Default: go to root of disasters-docs
return '/disasters-docs/';

// If path ends with .html, get the directory
if (path.endsWith('.html')) {
const lastSlash = path.lastIndexOf('/');
return path.substring(0, lastSlash + 1);
}

// Otherwise, assume it's a directory and add trailing slash
return path + '/';
}

function getLoginPage() {
Expand Down
Loading