An app to generate small talk for those who hate small talk. Helpful for those who are socially awkward, or just want to avoid it. Could also be helpful to workers who need to communicate with coworkers who are geographically located in different areas.
- Weather - OpenWeather
- News - Hackernews (most news APIs aren't good or cost $)
Other channel ideas are welcome! Feel free to submit an issue with your idea.
- Node.js
- TypeScript
- AWS
- API Gateway
- Step Functions
- Lambda
- IAM
- Cognito (Coming Soon™️)
- Secrets Manager
- CDK
- Caching service - likely Momento (Coming Soon™️)
- Frontend - TBD (Likely React or Flutter web)
- v1.0.0 - CLI app that generates small talk based on a location that a user inputs
- v2.0.0 - Web app that generates small talk based on a location that a user inputs
- v3.0.0 - Add optional authentication to web app to allow users to save their favorite locations
- Install Node.js
- Ensure you have an AWS account, install the AWS CLI, and configure your credentials
- Get an API key from OpenWeather
- Create a Secret in Secrets Manager titled
smalltalk-weather
with a plaintext secret value that is your OpenWeather API key -> Save the secret ARN (will need this for step 4) - Clone the repo
- Copy
.env.example
to.env
and fill in the values - Run
npm install
- Run
export AWS_PROFILE=<your_aws_profile>
- Optional if you have a default profile or use
--profile
instead
- Optional if you have a default profile or use
- Run
npm run deploy
- Get the api URL
- Base URL comes from the console output after deploy
SmallTalkStack.SmallTalkStackapiEndpoint
- Add
/small-talk
to the end
- Get the api key
- The api-id should be from the console output after deploy
SmallTalkStack.CLIApiKeyId
aws apigateway get-api-key --api-key your-api-id --include-value
- Run a curl command
curl --location 'your-url' \ --header 'x-api-key: your-api-key' \ --header 'Content-Type: application/json' \ --data '{ "location": "Portland, Oregon, US" } '
-
Note: Units of measurement returned are imperial (e.g. Fahrenheit, miles, etc.). Location should be in format
{city name},{state code},{country code}
. See OpenWeather docs for more info.
If you want to delete the resources created by this project, run npm run destroy
.
TODO #5
npm run test
.
See CONTRIBUTING.md for more info on our guidelines.