{"id":17689532,"url":"https://github.com/ubaniabalogun/uscis-case-status-notifier","last_synced_at":"2026-04-26T20:32:06.319Z","repository":{"id":85923197,"uuid":"151634986","full_name":"ubaniabalogun/uscis-case-status-notifier","owner":"ubaniabalogun","description":"Serverless application that sends an SMS when a USCIS case status changes","archived":false,"fork":false,"pushed_at":"2018-12-12T20:05:13.000Z","size":128,"stargazers_count":1,"open_issues_count":0,"forks_count":1,"subscribers_count":0,"default_branch":"master","last_synced_at":"2025-05-27T15:11:24.917Z","etag":null,"topics":["aws","aws-dynamodb","aws-lambda","immigration","python","serverless","twilio","uscis"],"latest_commit_sha":null,"homepage":"","language":"Python","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/ubaniabalogun.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":null,"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}},"created_at":"2018-10-04T20:58:51.000Z","updated_at":"2019-09-07T20:01:26.000Z","dependencies_parsed_at":null,"dependency_job_id":"59f6c71a-33ed-4262-87f4-2855ace52a5f","html_url":"https://github.com/ubaniabalogun/uscis-case-status-notifier","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/ubaniabalogun/uscis-case-status-notifier","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ubaniabalogun%2Fuscis-case-status-notifier","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ubaniabalogun%2Fuscis-case-status-notifier/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ubaniabalogun%2Fuscis-case-status-notifier/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ubaniabalogun%2Fuscis-case-status-notifier/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/ubaniabalogun","download_url":"https://codeload.github.com/ubaniabalogun/uscis-case-status-notifier/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ubaniabalogun%2Fuscis-case-status-notifier/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":32312252,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-04-26T19:15:34.056Z","status":"ssl_error","status_checked_at":"2026-04-26T19:15:15.467Z","response_time":129,"last_error":"SSL_read: unexpected eof while reading","robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":false,"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-dynamodb","aws-lambda","immigration","python","serverless","twilio","uscis"],"created_at":"2024-10-24T11:48:06.944Z","updated_at":"2026-04-26T20:32:06.304Z","avatar_url":"https://github.com/ubaniabalogun.png","language":"Python","funding_links":[],"categories":[],"sub_categories":[],"readme":"# uscis-case-status-notifier\n**What does it do?**\n\nSends an SMS notification when a USCIS case status changes on the [USCIS website](https://egov.uscis.gov/casestatus/landing.do).\n\n**How does it do it?**\n\nThe solution makes use of the following services: AWS Lambda, AWS Cloudwatch, AWS DynamoDB, Twilio API and the USCIS case status website.\n\nAn AWS Cloudwatch Event triggers an AWS Lambda function that makes a post request with a USCIS case receipt number to the USCIS case status website. The Lambda function scrapes the returned HTML page for the most current status of the case and compares it with the last status of the case which is stored in DynamoDB.\nIf the current status of the case differs from the last status, the Lambda function updates DynamoDB with the current status then uses the Twilio API to send an SMS with the current status to the designated number.\n\n![sequence diagram](./docs/uscis_case_status_diagram.png)\n\n## Deployment\nThe solution is designed to be deployed to AWS using the [Serverless Framework](https://serverless.com).\n\nEnsure the below requirements are handy before deploying:\n- An AWS account and API keys for a `serverless-admin` profile\n- awscli\n- Node.js \u0026 npm installed on local system\n- USCIS Case Receipt Number\n- [Twilio](https://www.twilio.com) Account SID, Auth Token and SMS Capable Phone Number\n- Your (or the notification recipient's) phone number\n\nFirst, execute the below command to configure the service (first-time deploy per only)\n```\nnpm run config\n```\n\nThe command will prompt you to supply your USCIS Case Receipt Number; Twilio Account SID, Auth Token \u0026 Phone Number, and the recipient's phone number. The script will upload this information to AWS SSM Parameter Store to be used by the Lambda Function.\n\nOnce the script completes, execute the below command to deploy the service\n```\nnpm run deploy\n```\n\nThe service deploys to AWS' us-west-2 region by default. You can change the deployment region (or AWS Profile used for deployment), in the `config` variable of the package.json.\n\nTo remove the service, execute:\n```\nnpm run remove\n```\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fubaniabalogun%2Fuscis-case-status-notifier","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fubaniabalogun%2Fuscis-case-status-notifier","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fubaniabalogun%2Fuscis-case-status-notifier/lists"}