devalias.net icon indicating copy to clipboard operation
devalias.net copied to clipboard

[DeepDive] Serverless Web App + Chat Bot + Mobile App (iOS) + Desktop App (Catalyst, Electron)

Open 0xdevalias opened this issue 6 years ago • 0 comments

Architecture, Patterns, etc

  • https://jamstack.org/

Languages, Libraries, Technologies

  • GraphQL
    • https://graphql.org/
    • https://www.howtographql.com/
    • https://www.apollographql.com/
    • See also: https://github.com/0xdevalias/devalias.net/issues/66
  • https://reactjs.org/
    • https://reactjs.org/docs/create-a-new-react-app.html#create-react-app
    • https://github.com/facebook/create-react-app
  • https://facebook.github.io/flux/
    • https://github.com/facebook/flux
  • https://redux.js.org/
  • https://redux-saga.js.org/

Serverless API / Database / Storage

AWS

  • https://aws.amazon.com/appsync/
    • AWS AppSync simplifies application development by letting you create a flexible API to securely access, manipulate, and combine data from one or more data sources. AppSync is a managed service that uses GraphQL to make it easy for applications to get exactly the data they need.

  • https://aws.amazon.com/lambda/
  • https://aws.amazon.com/dynamodb/
  • https://aws.amazon.com/rds/aurora/serverless/
    • https://aws.amazon.com/blogs/aws/new-data-api-for-amazon-aurora-serverless/
      • https://docs.aws.amazon.com/AmazonRDS/latest/AuroraUserGuide/data-api.html
    • https://almirzulic.com/posts/create-serverless-aurora-cluster-with-cdk/
      • https://github.com/bind-almir/cdk-aurora-serverless
  • https://aws.amazon.com/step-functions/
    • AWS Step Functions lets you coordinate multiple AWS services into serverless workflows so you can build and update apps quickly.

  • https://aws.amazon.com/eventbridge/
    • Serverless event bus that connects application data from your own apps, SaaS, and AWS services

    • Schema Registry: As your applications become more interconnected through events, you need to spend more effort in finding events and understanding their structure in order to write code to react to those events. The Amazon EventBridge schema registry stores event structure - or schema - in a shared central location and maps those schemas to code for Java, Python, and Typescript so it’s easy to use events as objects in your code.

  • https://aws.amazon.com/app-mesh/
    • AWS App Mesh is a service mesh that provides application-level networking to make it easy for your services to communicate with each other across multiple types of compute infrastructure.

Fauna

  • https://fauna.com/
    • https://fauna.com/blog
      • https://fauna.com/blog/jamstack
    • https://fauna.com/pricing
    • https://docs.fauna.com/fauna/current/start/graphql
    • https://docs.fauna.com/fauna/current/api/graphql/
    • https://fauna.com/blog/getting-started-with-graphql-part-1-importing-and-querying-your-schema
    • https://fauna.com/blog/getting-started-with-graphql-part-2-relations
    • https://fauna.com/blog/getting-started-with-graphql-part-3-the-unique-directive
    • https://fauna.com/blog/getting-started-with-graphql-part-4-updating-your-schema

Firebase

  • https://firebase.google.com/
    • A comprehensive app development platform

  • https://firebase.google.com/pricing
  • https://firebase.google.com/products
  • https://firebase.google.com/products/firestore
    • Cloud Firestore is a NoSQL document database that lets you easily store, sync, and query data for your mobile and web apps - at global scale.

  • https://firebase.google.com/products/realtime-database
    • The Firebase Realtime Database is a cloud-hosted NoSQL database that lets you store and sync data between your users in realtime.

    • https://firebase.google.com/docs/database/web/start
  • https://firebase.google.com/docs/database/rtdb-vs-firestore
    • Choose a Database: Cloud Firestore or Realtime Database

    • Cloud Firestore is Firebase's newest database for mobile app development. It builds on the successes of the Realtime Database with a new, more intuitive data model. Cloud Firestore also features richer, faster queries and scales further than the Realtime Database.

    • Realtime Database is Firebase's original database. It's an efficient, low-latency solution for mobile apps that require synced states across clients in realtime.

Authentication

  • https://www.npmjs.com/package/@aws-cdk/aws-cognito
    • https://docs.aws.amazon.com/cdk/api/latest/docs/aws-cognito-readme.html
    • https://docs.aws.amazon.com/cdk/api/latest/docs/@aws-cdk_aws-cognito.UserPool.html
      • https://docs.aws.amazon.com/cognito/latest/developerguide/cognito-user-identity-pools.html
    • https://docs.aws.amazon.com/cdk/api/latest/docs/@aws-cdk_aws-cognito.CfnIdentityPool.html
      • https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-cognito-identitypool.html
      • https://docs.aws.amazon.com/cognito/latest/developerguide/cognito-identity.html
    • https://github.com/aws-samples/aws-cdk-examples/issues/244
      • Cognito user pool + APIGW + Lambda

  • https://aws-amplify.github.io/docs/js/authentication
  • https://openid.net/developers/certified/
    • https://github.com/panva/node-oidc-provider
    • https://github.com/AKIRA-MIYAKE/serverless-oidc-provider
  • http://www.passportjs.org/
    • https://github.com/jaredhanson/passport

Deployment

  • https://aws.amazon.com/cdk/
    • https://docs.aws.amazon.com/cdk/api/latest/
    • https://github.com/aws/aws-cdk
  • https://almirzulic.com/posts/create-ci-cd-pipeline-with-aws-cdk/
    • https://github.com/bind-almir/cdk-ci-cd-pipeline

Chat Bot: Facebook / Messenger Integration, etc

  • https://developers.facebook.com/
    • https://developers.facebook.com/apps/
    • https://github.com/fbsamples/messenger-platform-samples
  • https://developers.facebook.com/docs/graph-api
    • https://developers.facebook.com/tools/explorer/
  • https://developers.facebook.com/docs/messenger-platform/
    • https://developers.facebook.com/docs/messenger-platform/getting-started
    • https://developers.facebook.com/docs/messenger-platform/getting-started/quick-start
    • https://developers.facebook.com/docs/messenger-platform/introduction/integration-components
    • https://developers.facebook.com/docs/messenger-platform/guides/chat-extensions
    • https://developers.facebook.com/docs/messenger-platform/webview
    • https://developers.facebook.com/docs/messenger-platform/webview/extensions
    • https://developers.facebook.com/docs/messenger-platform/reference/messenger-extensions-sdk/
  • https://developers.facebook.com/docs/graph-api/webhooks/
    • https://developers.facebook.com/docs/graph-api/webhooks/getting-started/webhooks-for-messenger
      • https://developers.facebook.com/docs/messenger-platform/webhook
  • Articles
    • https://tutorials.botsfloor.com/run-facebook-messenger-chat-bot-on-aws-lambda-2fa800a67d76
    • https://medium.com/muhammet-arslan/develop-a-facebook-messenger-bot-via-lambda-api-gateway-c8c49457f707
    • https://medium.com/@tchpnk/facebook-messenger-chat-bot-using-aws-lambda-node-js-and-promises-6a6ca503521a
  • https://aws.amazon.com/lex/
    • Amazon Lex is a service for building conversational interfaces into any application using voice and text.

    • https://github.com/nazreen/aws-cdk-for-lex-messenger
  • https://github.com/pinzler/fb-messenger-bot-aws-lambda
    • Build a simple FB Messenger Bot with AWS Lambda

Mobile App

iOS

  • Getting Started
    • https://developer.apple.com/documentation/
    • https://developer.apple.com/documentation/ios_ipados_release_notes
    • https://developer.apple.com/documentation/xcode_release_notes
  • https://developer.apple.com/documentation/swift_packages
    • https://developer.apple.com/documentation/xcode/adding_package_dependencies_to_your_app
  • https://developer.apple.com/swift/
  • https://developer.apple.com/xcode/swiftui/
  • https://developer.apple.com/documentation/messages#1864841
  • https://developer.apple.com/icloud/cloudkit/
    • https://developer.apple.com/documentation/cloudkit

Desktop App

Catalyst (macOS)

  • https://developer.apple.com/documentation/xcode/creating_a_mac_version_of_your_ipad_app

Electron

  • https://electronjs.org/
    • https://electronjs.org/docs/tutorial/first-app
  • https://github.com/electron/electron
  • https://github.com/electron/electron-packager
  • https://github.com/electron/electron-notarize
  • https://github.com/electron/electron-osx-sign

Misc

  • https://dev.to/hasurahq/the-ultimate-guide-to-handling-jwts-on-frontend-clients-graphql-252a
  • https://serverless-stack.com/
    • https://github.com/AnomalyInnovations/serverless-stack-com
    • https://serverless-stack.com/chapters/create-a-cognito-user-pool.html
    • https://serverless-stack.com/chapters/create-a-cognito-identity-pool.html
    • https://serverless-stack.com/chapters/configure-aws-amplify.html
    • https://serverless-stack.com/chapters/login-with-aws-cognito.html
    • https://serverless-stack.com/chapters/signup-with-aws-cognito.html
    • https://serverless-stack.com/chapters/configure-cognito-user-pool-in-serverless.html
    • https://serverless-stack.com/chapters/configure-cognito-identity-pool-in-serverless.html
    • https://serverless-stack.com/chapters/manage-environments-in-create-react-app.html
      • https://create-react-app.dev/docs/adding-custom-environment-variables/
        • NODE_APP, REACT_APP_*`

      • https://webpack.js.org/guides/environment-variables/

0xdevalias avatar Sep 24 '19 07:09 0xdevalias