/Nietzsche

Scrap quotes from Goodreads and schedule random tweets.

Primary LanguageJavaScriptMIT LicenseMIT

Nietzsche

serverless Open Source Love FOSSA Status

A Serverless application that fetches quotes from Goodreads and saves it to DynamoDB. (About 88K+ unique quotes)

It also includes:

  1. Quotes Search API
  2. Tweet Quotes

Architecture

High Level Block Diagram

logo

Quote Tweet State Machine

logo

Requirements

  1. AWS CLI
  2. Serverless

Setup

  1. Get Twitter API keys
  2. aws ssm put-parameter --name nietzsche-twitter-consumer-secret --type String --value $CONSUMER_SECRET --profile default --overwrite --region eu-west-1
  3. aws ssm put-parameter --name nietzsche-twitter-consumer-key --type String --value $CONSUMER_KEY --profile default --overwrite --region eu-west-1
  4. aws ssm put-parameter --name nietzsche-twitter-access-token --type String --value $ACCESS_TOKEN --profile default --overwrite --region eu-west-1
  5. aws ssm put-parameter --name nietzsche-twitter-access-token-secret --type String --value $ACCESS_TOKEN_SECRET --profile default --overwrite --region eu-west-1
  6. npm i

Getting Access Token

  1. Set TWITTER_API_KEY and TWITTER_API_KEY_SECRET in your environment variable.
  2. 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.