Nietzsche
A Serverless application that fetches quotes from Goodreads and saves it to DynamoDB. (About 88K+ unique quotes)
It also includes:
- Quotes Search API
- Tweet Quotes
Architecture
High Level Block Diagram
Quote Tweet State Machine
Requirements
Setup
- Get Twitter API keys
aws ssm put-parameter --name nietzsche-twitter-consumer-secret --type String --value $CONSUMER_SECRET --profile default --overwrite --region eu-west-1
aws ssm put-parameter --name nietzsche-twitter-consumer-key --type String --value $CONSUMER_KEY --profile default --overwrite --region eu-west-1
aws ssm put-parameter --name nietzsche-twitter-access-token --type String --value $ACCESS_TOKEN --profile default --overwrite --region eu-west-1
aws ssm put-parameter --name nietzsche-twitter-access-token-secret --type String --value $ACCESS_TOKEN_SECRET --profile default --overwrite --region eu-west-1
npm i
Getting Access Token
- Set
TWITTER_API_KEY
andTWITTER_API_KEY_SECRET
in your environment variable. - Run
node scripts/get-access-token.js
Deploy
npm run deploy
Invoke
Start Quotes Scrapping Job
serverless invoke -f dispatchScrappers --stage prod
Tweet Random Quote
serverless invoke stepf --name tweetQuoteStateMachine --stage prod
Contribute
Help make this app better and future proof.
- Clone the code
- Install the dependencies with
npm install
- Create a feature branch
git checkout -b new_feature
- Lint with standard
npm run lint
License
This software is released under the MIT license. See the license file for more details.