GithubHelp home page GithubHelp logo

feedm3 / event-guru-backend Goto Github PK

View Code? Open in Web Editor NEW
0.0 4.0 0.0 44.61 MB

Aggregate data to upcoming concerts

Home Page: https://eventguru.io

License: MIT License

JavaScript 100.00%
alexa alexa-skill javascript serverless aws-lambda concerts

event-guru-backend's Introduction

Event Guru Backend

Build Status License

Get upcoming concerts for a location of your choice with a bunch of additional data.

API documentation can be found here: https://documenter.getpostman.com/view/4279998/RWaC1rD5

How to run

Prerequisites:

  • make sure you are logged in with your aws cli
  • create a src/config/config-prod.json file (or -dev, depending on the stage) and make sure following variables are set (can also be set as environment variable):
{
    "SONGKICK_API_KEY": "YOUR_SONGKICK_API_KEY",
    "BITLY_ACCESS_TOKEN": "YOUR_BITLY_ACCESS_TOKEN",
    "SLS_APP": "SERVERLESS PLATFORM APP",
    "SLS_TENANT": "SERVERLESS PLATFORM TENANT"
}

Also make sure that AWS_ACCESS_KEY_ID and AWS_SECRET_ACCESS_KEY are set as environment variable.

Architectural decisions are tracked in ARCHITECTURAL_DECISIONS.md.

Test

To test the app run

npm test

Deploy

To deploy the app run

npm run deploy

// do to an suboptimal webpack configuration we have to deploy the artists function separately
npm run deploy:artists

Make sure to have a proper config file for every stage, like mentioned in the "Prerequisites" section.

Enable the TTL feature in the DynamoDB tables manually in the AWS console for the events cache table. The TTL attribute is ttl.

You cannot deploy from a windows machine, as the execution permissions for linux cannot be copied!


next lines are outdated!

Mail with AWS SES

You have to react to bounce and complaint messages. We do this via SNS which is connected to SES. SNS sends the notification to lambda.

  1. Setup a domain on SES
  2. Go to you domain's SES settings and setup Notifications. Use the sns notifications that are build by serverless
  3. Handle bounce and complaint notifications within aws-ses-notifications

event-guru-backend's People

Contributors

feedm3 avatar patrick-michelberger avatar

Watchers

 avatar  avatar  avatar  avatar

event-guru-backend's Issues

Fetch the most popular locations every night

The make the skill as fast as possible we should get all events by the most popular cities every night so that even the first user gets a fast and cached response.

10 most popular cities in Germany:
Berlin
Hamburg
München
Cologne
Frankfurt
Essen
Dortmund
Stuttgart
Düsseldorf
Bremen

10 most popular cities in USA:
New York
Los Angeles
Chicago
Houston
Philadelphia
Phoenix
San Antonio
San Diego
Dallas
San Jose
San Francisco

10 most popular cities in England:
London
Birmingham
Leeds
Glasgow
Sheffield
Bradford
Liverpool
Edinburgh
Manchester
Bristol

We should not forget that if the user searches the same city but uses another name of it (like 'München' and 'Munich') we request another time because the names of the city get saved directly. So we have to search for aliases and translations of those cities and cache them as well.

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.