Git Product home page Git Product logo

scaffold-serverless's Introduction

README: Scaffold Serverless

https://circleci.com/gh/v-studios/scaffold-serverless.svg?style=svg&circle-token=ce137f204153b1ed6098121c3d4cb42d287ea772

This is a scaffold for Serverless projects using AWS and the Serverless Framework. It's intended to be a base for creating other projects, with all the tools you usually don't add until the very end -- when it's too late. To that end, this includes:

  • test runner: py.test
  • documentation: compiled from RST with Sphinx to HTML and PDF
  • CI/CD: with CircleCI since that's what we use
  • pep8, lint, flake8 checks
  • badges on this page for docs, tests, etc.
  • (need some serverless code at this point)
  • multiple stages: local, feature-branch, dev, qa, prod
  • 508 testing
  • security testing
  • tox

The application isn't terribly important but ideally should include common use cases, so here are a few features I can think of:

  • api: allowing GET, POST
  • uploading media: to S3, perhaps with presigned URL
  • uploading form data: to DynamoDB
  • authentication: with Cognito, so we get social media auth
  • modern web ui: with Angular2+ served from S3

To show the features of Serverless, we probably should include some triggers from (say) S3 uploads to populate the database.

The WebUI should allow login then show some metadata from the DB with links to the media in S3, and allow editing of both.

This will evolve over time and grow features, I hope. But the main point is to get the exostructure (tests, CI/CD, docs) working, since that's the boring stuff everyone avoids.

For details on each feature, head to the docs/ directory.

scaffolding-pompei.jpg

scaffold-serverless's People

Contributors

shentonfreude avatar dependabot[bot] avatar

Stargazers

Adem Yavuz avatar Tim Carlson avatar Nikolaus Schlemm avatar Josh Finnie avatar martin katrenik avatar Gabriel Dumitrescu avatar Jason Corbett avatar Sathya Narrayanan avatar David Przybilla avatar Hassan Khan avatar Raghava Nellaturu avatar Kevin Old avatar Philipp Muens avatar Felipe Frizzo avatar Fábio C. Barrionuevo da Luz avatar Salvador Marí Alacón avatar Adiyat Mubarak avatar Maksim Chistyakov avatar Daniel Roy Greenfeld avatar

Watchers

James Cloos avatar Charles Beebe avatar Moe Benesch avatar

scaffold-serverless's Issues

Add open-source security scanner to CI pipeline

This list has python-specific tools and those that support multiple languages; proprietary ones are marked with (C) symbol:
https://github.com/mre/awesome-static-analysis#multiple-languages

OWASP lists tools including SonarQube as well as open source:
https://www.owasp.org/index.php/Source_Code_Analysis_Tools

Bandit, from OpenStack, looks useful for Python; perhaps 'pyt' as well:
https://github.com/openstack/bandit
https://github.com/python-security/pyt

Document expected uses of log levels

We've used log levels inconsistently; document a standard practice, like:

  • CRITICAL: wake me up at 3am; example: the lambda can't connect to the database
  • ERROR: don't wake me up, but definitely tell me about; I probably gotta fix it
  • WARNING: something the software can recover from, I don't need to be alerted on my phone
  • INFO: something interesting happened, perhaps a significant milestone, progress in an operation's lifecycle, to answer customer questions like "what happened to that file I uploaded"
  • DEBUG: noise, probably should be turned on in Dev, QA systems, and off in Prod

Add a LICENSE file

Probably BSD or MIT rather than GPL as we don't want to discourage folks using this

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.