{"id":28216202,"url":"https://github.com/samshad/csci-5410-serverless-data-processing","last_synced_at":"2026-05-09T07:04:47.541Z","repository":{"id":256609274,"uuid":"811620973","full_name":"samshad/CSCI-5410-Serverless-Data-Processing","owner":"samshad","description":"CSCI 5410 – Serverless Data Processing (Dalhousie, Summer 2024). AWS \u0026 GCP labs plus a capstone React + Lambda feedback platform showcasing event‑driven pipelines, Step Functions orchestration, and DynamoDB persistence 100 % serverless.","archived":false,"fork":false,"pushed_at":"2025-05-13T23:05:05.000Z","size":39075,"stargazers_count":0,"open_issues_count":0,"forks_count":0,"subscribers_count":1,"default_branch":"master","last_synced_at":"2025-05-21T02:44:53.612Z","etag":null,"topics":["aws","aws-lambda","cloud","cloudwatch-logs","cognito","data-processing","dynamodb","event-driven-architecture","gcp-cloud-functions","iac","javascript","python","react","s3","serverless","step-functions"],"latest_commit_sha":null,"homepage":"","language":"JavaScript","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/samshad.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null}},"created_at":"2024-06-07T00:59:29.000Z","updated_at":"2025-05-13T23:08:36.000Z","dependencies_parsed_at":null,"dependency_job_id":"c5a6d9da-4e28-4ab0-9646-e300506fe2db","html_url":"https://github.com/samshad/CSCI-5410-Serverless-Data-Processing","commit_stats":null,"previous_names":["samshad/5410-serverless","samshad/csci-5410-serverless-data-processing"],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/samshad/CSCI-5410-Serverless-Data-Processing","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/samshad%2FCSCI-5410-Serverless-Data-Processing","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/samshad%2FCSCI-5410-Serverless-Data-Processing/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/samshad%2FCSCI-5410-Serverless-Data-Processing/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/samshad%2FCSCI-5410-Serverless-Data-Processing/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/samshad","download_url":"https://codeload.github.com/samshad/CSCI-5410-Serverless-Data-Processing/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/samshad%2FCSCI-5410-Serverless-Data-Processing/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":32810382,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-05-08T08:22:46.396Z","status":"online","status_checked_at":"2026-05-09T02:00:06.633Z","response_time":123,"last_error":null,"robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":true,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["aws","aws-lambda","cloud","cloudwatch-logs","cognito","data-processing","dynamodb","event-driven-architecture","gcp-cloud-functions","iac","javascript","python","react","s3","serverless","step-functions"],"created_at":"2025-05-17T23:12:03.512Z","updated_at":"2026-05-09T07:04:47.536Z","avatar_url":"https://github.com/samshad.png","language":"JavaScript","funding_links":[],"categories":[],"sub_categories":[],"readme":"# CSCI 5410 — Serverless Data Processing  \nDalhousie University · Summer 2024  \nAuthor · Md Samshad Rahman (`@samshad`)\n\n\u003e A bite‑sized journey through **serverless architectures** from AWS Lambda image pipelines and Google Cloud Functions to a full‑stack feedback‑analytics platform orchestrated entirely with managed services.\n\n---\n\n## 🌐 What you’ll find here\n\n| Folder | Theme | Key tech \u0026 skills |\n|--------|-------|-------------------|\n| **Lab/Lab1** | *Image‑processing on AWS Lambda* | Python 3.11 · Boto3 · S3 · DynamoDB\u003cbr\u003eUpload, resize \u0026 audit images |\n| **Lab/Lab2** | *GCP Cloud Functions \u0026 Pub/Sub* | Python · Google Cloud Functions · Pub/Sub triggers; serverless sentiment extraction using Google Cloud NLP API |\n| **Lab/Lab3** | *Event‑driven data pipeline* | AWS Step Functions · SQS · SNS; orchestrates multi‑stage ETL (code in `Lab/Lab3/`) |\n| **Project** | *Serverless feedback \u0026 room‑booking platform* | React front‑end + Python Lambda back‑end:\u003cbr\u003e• **Backend** – 23 Lambda functions for auth, CRUD, sentiment analysis, chat‑bot helpers, and DynamoDB persistence volume \u003cbr\u003e• **Frontend** – Create React App dashboard \u0026 forms for admins and users |\n\n\u003e ⭐ **Languages:** ≈ 51 % JavaScript, 31 % Python, 16 % CSS, 2 % HTML  \n\u003e 📁 **Repo activity:** 16 commits, labs + capstone milestones\n\n---\n\n## 🧠 Learning outcomes\n\n* **Serverless primitives** – authoring \u0026 provisioning Lambda, Cloud Functions, and Step Functions without servers to patch.  \n* **Event‑driven design** – S3/Object events, Pub/Sub and API Gateway triggers; fan‑in/out patterns with queues \u0026 topics.  \n* **Poly‑cloud mindset** – mixed AWS + GCP toolchains; credential isolation and cross‑platform SDK use.  \n* **Data processing pipelines** – on‑the‑fly image optimisation, feedback ingestion, sentiment scoring, and dashboard aggregation.  \n* **Full‑stack delivery** – React SPA backed by RESTful Lambda APIs \u0026 DynamoDB—CI‑friendly and cost‑efficient.  \n\n---\n\n## 🛠 Toolchain\n\n| Domain | Stack |\n|--------|-------|\n| **Back‑end** | AWS Lambda · API Gateway · DynamoDB · S3 · Step Functions · GCP Cloud Functions · Cloud NLP |\n| **Front‑end** | React 18 · Vite/CRA · Tailwind CSS |\n| **Infra‑as‑Code** | AWS SAM · CloudFormation \u0026 `gcloud` CLI scripts |\n| **Auth** | Amazon Cognito |\n| **DevOps** | GitHub Actions (lint + deploy), pre‑commit hooks |\n\n---\n\n## 📂 Repository layout\n\n```\n.\n├── Lab/\n│   ├── Lab1/                # Image optimise pipeline (AWS)\n│   ├── Lab2/                # GCP Cloud Functions + Pub/Sub\n│   └── Lab3/                # Serverless ETL with Step Functions\n├── Project/\n│   ├── backend/             # Python Lambda functions \u0026 utils\n│   └── frontend/            # React SPA\n└── .gitignore\n```\n\nEach sub‑folder ships a mini‑README or docstrings with deployment steps.\n\n---\n\n## 📄 Licence\n\nThis project is licensed under the MIT License.\nSee the [LICENSE](LICENSE) file for details.  \n© 2025 Md Samshad Rahman\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fsamshad%2Fcsci-5410-serverless-data-processing","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fsamshad%2Fcsci-5410-serverless-data-processing","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fsamshad%2Fcsci-5410-serverless-data-processing/lists"}