{"id":23577162,"url":"https://github.com/kevinl95/scamsense","last_synced_at":"2026-02-15T06:31:14.490Z","repository":{"id":269604662,"uuid":"907963139","full_name":"kevinl95/ScamSense","owner":"kevinl95","description":"Get the latest fraud and scam news, summarized for your convenience and delivered directly to your Alexa device","archived":false,"fork":false,"pushed_at":"2025-10-02T01:21:13.000Z","size":6338,"stargazers_count":0,"open_issues_count":0,"forks_count":0,"subscribers_count":1,"default_branch":"main","last_synced_at":"2025-10-04T05:50:33.296Z","etag":null,"topics":["alexa","finance","fraud","news","safety","scams","skill"],"latest_commit_sha":null,"homepage":"https://devpost.com/software/scamsense-daily-financial-fraud-and-scam-alerts","language":null,"has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"apache-2.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/kevinl95.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,"notice":null,"maintainers":null,"copyright":null,"agents":null,"dco":null,"cla":null}},"created_at":"2024-12-24T18:06:09.000Z","updated_at":"2025-10-02T01:21:16.000Z","dependencies_parsed_at":"2025-05-16T16:09:47.288Z","dependency_job_id":"f93b8536-5647-488d-a552-982d7e30590f","html_url":"https://github.com/kevinl95/ScamSense","commit_stats":null,"previous_names":["kevinl95/scamsense"],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/kevinl95/ScamSense","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/kevinl95%2FScamSense","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/kevinl95%2FScamSense/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/kevinl95%2FScamSense/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/kevinl95%2FScamSense/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/kevinl95","download_url":"https://codeload.github.com/kevinl95/ScamSense/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/kevinl95%2FScamSense/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":29471941,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-02-15T05:26:30.465Z","status":"ssl_error","status_checked_at":"2026-02-15T05:26:21.858Z","response_time":118,"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":["alexa","finance","fraud","news","safety","scams","skill"],"created_at":"2024-12-26T22:27:04.094Z","updated_at":"2026-02-15T06:31:14.472Z","avatar_url":"https://github.com/kevinl95.png","language":null,"funding_links":[],"categories":[],"sub_categories":[],"readme":"![A green square contains a cycle of money from a piggy bank flowing to a man in a mask to a hacker sitting behind a keyboard and then finally to a credit card. The text reads \"Alexa Skill - Scam Sense. Daily fraud and scam alerts.](assets/ScamSense.png)\n# ScamSense\n[![Lint CloudFormation Templates](https://github.com/kevinl95/ScamSense/actions/workflows/main.yml/badge.svg)](https://github.com/kevinl95/ScamSense/actions/workflows/main.yml)\n\n[![A blue banner that reads \"Enable on your smart speaker or mobile app, click here!\"](assets/install.png)](https://www.amazon.com/dp/B0DRPRHXNF/)\n\nScam Sense is an Alexa skill designed to empower users with daily summaries of news articles focused on financial fraud and scams. By leveraging Llama (via SambaNova Cloud) and robust AWS infrastructure, Scam Sense delivers concise and insightful updates to help users stay informed about potential risks.\n\nThe skill utilizes the following technologies and features:\n\n- **News Aggregation**: Integrates with The News API to fetch the latest articles related to financial and cyber fraud.\n- **AI Summarization**: Employs SambaNova Cloud for generating concise, human-readable summaries of the fetched articles using Llama.\n- **Daily Updates**: Automatically updates news summaries at 6:00 AM Central Time using an AWS EventBridge trigger.\n- **Alexa Integration**: Stores summaries in DynamoDB, making them accessible via Alexa-enabled devices when invoked.\n\nThis guide provides step-by-step instructions for deploying Scam Sense using AWS CloudFormation, ensuring a seamless setup process. Whether you're a developer or a curious enthusiast, Scam Sense is a valuable tool for staying ahead of the latest financial and digital scams.\n\n\n# Scam Sense CloudFormation Deployment Guide\n\n## Overview\nThis guide explains how to deploy the Scam Sense Alexa Skill using the provided AWS CloudFormation template. The template sets up the necessary AWS infrastructure, including Lambda functions, DynamoDB, Secrets Manager, EventBridge, and IAM roles. The skill fetches news articles, generates summaries using SambaNova Cloud, and stores the results in DynamoDB for Alexa to retrieve.\n\n---\n\n## Prerequisites\nBefore deploying the CloudFormation template, ensure you have the following:\n\n1. **AWS CLI**: Installed and configured with appropriate permissions to deploy resources.\n2. **AWS Account**: Active account with necessary access to create Lambda functions, DynamoDB tables, and other resources.\n3. **CloudFormation Template**: Ensure the provided YAML file is saved locally (e.g., `scam_sense_cf_template.yaml`).\n4. **API Keys**:\n   - **SambaNova Cloud API Key** ([Get one here](https://sambanova.ai/))\n   - **The News API Token** ([Get one here](https://www.thenewsapi.com))\n5. **Lambda Layer ZIP**: Ensure the `lambda-layer.zip` file (containing the OpenAI SDK) is uploaded to an S3 bucket named `scamsense` in the same region you plan on deploying this CloudFormationdtemlate.\n6. **Permissions**: IAM permissions to create and manage the following AWS resources:\n   - Lambda functions\n   - DynamoDB tables\n   - EventBridge rules\n   - IAM roles\n   - Secrets Manager\n\n---\n\n## Deployment Steps\n\n### Step 1: Validate the CloudFormation Template\nBefore deploying, validate the template to ensure there are no syntax errors.\n```bash\naws cloudformation validate-template --template-file cloudformation.yml\n```\nIf the validation is successful, proceed to the next step.\n\n### Step 2: Deploy the CloudFormation Stack\nRun the following command to create the stack:\n```bash\naws cloudformation create-stack \\\n  --stack-name ScamSenseStack \\\n  --template-file cloudformation.yml \\\n  --parameters ParameterKey=SambaNovaCloudKey,ParameterValue=\u003cYour_SambaNova_API_Key\u003e \\\n               ParameterKey=NewsApiToken,ParameterValue=\u003cYour_News_API_Token\u003e \\\n  --capabilities CAPABILITY_NAMED_IAM\n```\nReplace `\u003cYour_SambaNova_API_Key\u003e` and `\u003cYour_News_API_Token\u003e` with your actual API keys.\n\n### Step 3: Monitor the Deployment\nMonitor the progress of the stack creation:\n```bash\naws cloudformation describe-stacks --stack-name ScamSenseStack\n```\nOnce the status changes to `CREATE_COMPLETE`, the stack is successfully deployed.\n\n---\n\n## Post-Deployment Configuration\n\n### Retrieve Outputs\nAfter the stack is created, retrieve the output values to configure your Alexa skill:\n```bash\naws cloudformation describe-stacks --stack-name ScamSenseStack --query \"Stacks[0].Outputs\"\n```\n- **LambdaFunctionArn**: The ARN of the Alexa Skill Lambda function.\n- **DatabaseName**: The name of the DynamoDB table.\n\n### Alexa Skill Integration\n1. Log in to the Alexa Developer Console.\n2. Create a new skill or update an existing one.\n3. Access the Alexa Skill Lambda function from the AWS developer console. It can be found in the Resources tab of the CloudFormation deployment as well.\n4. On the Alexa Developer Console, access the Endpoint section and copy the Skill ID.\n5. On the Lambda function page, add the Alexa trigger by adding a new trigger at the top of the page and selecting it from the dropdown. Paste teh Skill ID when prompted.\n5. In the Endpoint section, set the ARN of the Lambda function from the `LambdaFunctionArn` output.\n\n### Testing\nEnsure the skill functions correctly by:\n- Invoking it on an Alexa-enabled device.\n- Verifying summaries are retrieved from the DynamoDB table.\n\n---\n\n## Maintenance and Updates\n\n### Update the Stack\nTo update the stack with a new version of the template, use the following command:\n```bash\naws cloudformation update-stack \\\n  --stack-name ScamSenseStack \\\n  --template-file cloudformation.yml \\\n  --parameters ParameterKey=SambaNovaCloudKey,ParameterValue=\u003cYour_SambaNova_API_Key\u003e \\\n               ParameterKey=NewsApiToken,ParameterValue=\u003cYour_News_API_Token\u003e \\\n  --capabilities CAPABILITY_NAMED_IAM\n```\n\n### Delete the Stack\nTo remove all resources created by the template, delete the stack:\n```bash\naws cloudformation delete-stack --stack-name ScamSenseStack\n```\n\n---\n\n## Troubleshooting\n\n### Common Issues\n1. **Permissions Errors**:\n   - Ensure the IAM user or role executing the deployment has the necessary permissions.\n\n2. **Lambda Function Fails**:\n   - Check the CloudWatch logs for debugging.\n   - Verify API keys in Secrets Manager.\n\n3. **DynamoDB Table is Empty**:\n   - Ensure the EventBridge rule triggers the Lambda function daily.\n   - Verify news articles are fetched successfully.\n\n---\n\n## Resources Created\n- **Lambda Functions**:\n  - `ScamSenseDailySummaryFunction`: Fetches news articles and stores summaries.\n  - `ScamSenseAlexaSkillFunction`: Responds to Alexa skill requests.\n- **DynamoDB Table**: `ScamSenseSummaries`\n- **Secrets Manager Secret**: `ScamSenseSecrets`\n- **EventBridge Rule**: Triggers the daily summary Lambda function.\n- **IAM Role**: Provides permissions for Lambda functions.\n\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fkevinl95%2Fscamsense","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fkevinl95%2Fscamsense","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fkevinl95%2Fscamsense/lists"}