Giter Site home page Giter Site logo

wooodhead / footballpoll Goto Github PK

View Code? Open in Web Editor NEW

This project forked from mtrajk/footballpoll

0.0 1.0 0.0 2.81 MB

A serverless poll application which uses Amazon Web Services

License: Apache License 2.0

Python 16.76% JavaScript 75.84% HTML 5.11% CSS 2.30%

footballpoll's Introduction

Football Poll

A serverless application which uses the Amazon Web Services (Lambda, DynamoDB, CloudWatch, API Gateway) as the backend and the frontend is hosted on GitHub pages.

Official banner

Inspired by Doodle, this application is recreating the poll after it ends (the new poll lasts one week and after that, the new event day&time are the same as in the previous poll, only the admin can change this).
At the end of the poll, if there aren't enough participants, all participants will be deleted because that means the poll was canceled (the poll could have at most 2 participants less than the needed participants, e.g. if the poll needs 12 participants, then the poll won't be canceled if there are at least 10 participants available).
This application is saving the old polls and everyone can access them, also there is a simple statistic: in how many events has each player participated and how many friends has each player invited.

App workflow

Project Architecture

The project is composed of 3 parts: database, functions and web site.

Project architecture

Database (Amazon DynamoDB)

Located in src/dynamodb directory.
More info about the database in the README file.

Functions (AWS Lambda)

Located in src/lambda directory.
More info about the lambdas in the README file.

Web site

Located in src/site directory.
The web site is fully responsive and mobile-friendly. It's hosted on GitHub, from the gh-pages branch.

Tech/frameworks

Amazon Pricing

Only for the services used in this application, EU-Central-1 region (Frankfurt).

API Gateway

2 types of pricing: requests and data out

  • requests (12 months free - 1 million requests per month) - $3.5 per 1 million requests monthly (1 request = $0.0000035)
  • data out (not free) - $0.09 per 1GB response payload monthly (1KB = $0.0000009) (100 000 calls * 5KB response body = 0.5GB data out)

Lambda

2 types of pricing: requests and memory allocation (execution time)

  • requests (always free - 1 million requests per month) - $0.20 per 1 million requests monthly (1 request = $0.0000002)
  • memory allocation (always free - 400 000 GB-seconds per month up to 3.2 million seconds of compute time per month) - $0.00001667 for every GB-second

CloudWatch

1 type of pricing: events

  • execution/invoke of event (not free) - $1 per 1 million events (1 event = $0.000001)

DynamoDB

3 types of pricing for provisioned capacity: storage, RCU and WCU (enough to handle up to 200 million requests per month)

  • storage (always free - 25GB) - $0.306 per GB-month
  • RCU (always free - 25 units per month) - $0.0001586 per RCU per hour (for items up to 4 KB in size, one RCU for each strongly consistent read per second, and one-half of an RCU for each eventually consistent read per second)
  • WCU (always free - 25 units per month) - $0.000793 per WCU per hour (for month with 30 days 0.000793*720 = $0.57096)(for items up to 1 KB in size, one WCU can perform one standard write request per second)

Calculators

License

This project is licensed under the Apache 2.0 License - see the LICENSE file for details

footballpoll's People

Contributors

srdjanrakic avatar

Watchers

 avatar

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.