---
title: "Homework #5: Flask API and EC2 Deployment"
subtitle: "EE 547: Fall 2026"
format:
  html:
    toc: true
    number-sections: false
    code-fold: show
    theme: cosmo
---

::: {.callout-important}
## Assignment Details
**Assigned:** 20 October <br>
**Due:** Monday, 02 November at 23:59

**Gradescope:** [Homework 5](https://www.gradescope.com/courses/1365576) | [**How to Submit**](/hw/submit-github.qmd){style="color: red;"}
:::

::: {.callout-warning}
## Requirements
- Python 3.11+ required
- Docker Desktop installed and running
- AWS CLI configured with valid credentials
- HW#4 Problem 2 DynamoDB table (`arxiv-papers`) populated with data
:::

---

## Overview

Build an authenticated REST API with Flask and deploy it to a live EC2 instance. The API serves paper metadata from DynamoDB, and the deployment makes it accessible over the public internet.

### Getting Started

Download the starter code: [`hw5-starter.zip`](hw5-starter.zip)

```bash
unzip hw5-starter.zip
cd hw5-starter
```

{{< include hw05-q1.qmd >}}

{{< include hw05-q2.qmd >}}

---

::: {.callout-tip}
## Submission {#submission}

```
README.md
q1/
├── app.py
├── Dockerfile
└── requirements.txt
q2/
└── README.md
```
:::
