commit 762ad95ef0b3c2d111ad7170a32ec2d950cdb5b3 Author: Nick Dumas Date: Sun Jun 1 18:27:21 2025 -0400 Checklist and terraform scaffolding diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000..9b5533c --- /dev/null +++ b/.gitignore @@ -0,0 +1,2 @@ +.terraform/ +*.tfstate* diff --git a/.terraform.lock.hcl b/.terraform.lock.hcl new file mode 100644 index 0000000..abf9ba6 --- /dev/null +++ b/.terraform.lock.hcl @@ -0,0 +1,24 @@ +# This file is maintained automatically by "terraform init". +# Manual edits may be lost in future updates. + +provider "registry.terraform.io/hashicorp/aws" { + version = "5.99.1" + hashes = [ + "h1:967WCGUW/vgrjUMBvC+HCie1DVgOXHwUkhm2ng3twJw=", + "zh:00b0a61c6d295300f0aa7a79a7d40e9f836164f1fff816d38324c148cd846887", + "zh:1ee9d5ccb67378704642db62113ac6c0d56d69408a9c1afb9a8e14b095fc0733", + "zh:2035977ed418dcb18290785c1eeb79b7133b39f718c470346e043ac48887ffc7", + "zh:67e3ca1bf7061900f81cf958d5c771a2fd6048c2b185bec7b27978349b173a90", + "zh:87fadbe5de7347ede72ad879ff8d8d9334103cd9aa4a321bb086bfac91654944", + "zh:901d170c457c2bff244a2282d9de595bdb3ebecc33a2034c5ce8aafbcff66db9", + "zh:92c07d6cf530679565b87934f9f98604652d787968cce6a3d24c148479b7e34b", + "zh:9b12af85486a96aedd8d7984b0ff811a4b42e3d88dad1a3fb4c0b580d04fa425", + "zh:a7d4803b4c5ff17f029f8b270c91480442ece27cec7922c38548bcfea2ac2d26", + "zh:afda848da7993a07d29018ec25ab6feda652e01d4b22721da570ce4fcc005292", + "zh:baaf16c98b81bad070e0908f057a97108ecd6e8c9f754d7a79b18df4c8453279", + "zh:c3dd496c5014427599d6b6b1c14c7ebb09a15df78918ae0be935e7bfa83b894c", + "zh:e2b84c1d40b3f2c4b1d74bf170b9e932983b61bac0e6dab2e36f5057ddcc997f", + "zh:e49c92cb29c53b4573ed4d9c946486e6bcfc1b63f1aee0c79cc7626f3d9add03", + "zh:efae8e339c4b13f546e0f96c42eb95bf8347de22e941594849b12688574bf380", + ] +} diff --git a/checklist.md b/checklist.md new file mode 100644 index 0000000..33a634b --- /dev/null +++ b/checklist.md @@ -0,0 +1,26 @@ +## Challenge Deliverables +- [ ] Architecture diagram + - [ ] saved as a PNG +- [ ] Explain decisions and trade-offs + - [ ] Document in README.md +- [ ] Terraform repo scaffolding out the service +## Air Traffic Metrics +- [ ] Ingest raw data into S3 + - [ ] Bucket best practices + - [ ] Buckets aren't public + - [ ] +- [ ] Database of my choice + - [ ] Athena? + - [ ] Aurora (Postgresql) +- [ ] API to interact with the data + - [ ] `/load` endpoint + - [ ] Python lambda to upload data to bucket + - [ ] Example data: https://zenodo.org/records/5377831 + - [ ] `/metrics` endpoint + - [ ] Python lambda that returns the following: + - [ ] row_count: number of rows in table for full data set + - [ ] last_transponder_seen_at: maximum value for `lastseen` + - [ ] most_popular_destination: most seen value for destination + - [ ] count_of_unique_transponders: unique count of the icao24 field +- [ ] Frontend to display the data + - [ ] Python lambda that renders an HTML page that displays above metrics diff --git a/providers.tf b/providers.tf new file mode 100644 index 0000000..788ee21 --- /dev/null +++ b/providers.tf @@ -0,0 +1,15 @@ +terraform { + required_providers { + "aws" { + source = "hashicorp/aws" + version = "~> 5.99" + } + } + +} + +provider "aws" { + region = "us-east-1" + profile = "transponder-tracker" + assume_role = "terraform-transponder-tracker" +}