Learning Material

From Izara Wiki
Revision as of 01:46, 16 August 2023 by Praew (talk | contribs)
Jump to navigation Jump to search

Terminal

  • Basic commands to learn:
    • ls
    • ls -l
    • cd

VSCode

  • Creating a VSCode project
  • Adding folders to a project

Javascript

Use Node environment to learn javascript, will need to change "alert" to "console.log", and browser objects like "document." will not be available

Programs to install:

  • Node (install using NVM is best)
  • Serverless Framework
  • NPM
  • We use MS Visual Studio Code IDE

coding basics:

data types:

udemy:

advanced:

Node

npm

async/await

Git

How we use git in Izara:

AWS

AWS offers a free tier, you can create an account and use most services at a limited level for free for one year, then cancel the account (or stop all services) before the year is over.

Serverless Framework (sls)

  • https://www.serverless.com/framework/docs
  • We use the Serverless Framework to deploy AWS resources
  • We do not use the Serverless hosted dashboard
  • Learn the basic concepts of Serverless Framework but do not need to learn everything, we use only some elements of the framework and have a standard template for the AWS resources we use

Lambda

Lambda container persistence

  • Lambda environments are not discarded after each use, they can be reused for multiple invocations
  • We can use this to maintain global variables, such as database connections

DynamoDB

Pagination

  • If there is the chance a query can return a large amount of data we need to paginate query results
  • Receive a subset of all results and process them, then eg re-invoke the Lambda to process the next set of results
  • messy notes: 2021-05-03 - DynamoDB pagination

SNS

SQS

SNS/SQS Message delivery

SQS Batch processing

API Gateway

API Gateway Authorizer Lambda Functions

API Gateway Authorizers

Websockets

S3

Design Concepts

Race Conditions

Idempotence

Immutable Data

Microservices

Middleware

  • especially for Lambda functions

Graph

We use Neo4j graph engine and Cypher query language

references

  • https://www.tutorialspoint.com/neo4j/neo4j_quick_guide.htm
    • Basic node relationship
    • Cypher Query Language
      • eg:MATCH,WHERE,MERGE,RETURN
    • Neo4j CQL - Creating Nodes
      • Create Node with Properties
      • Returning the Created Node
    • Neo4j CQL - Creating a Relationship
      • Creating Relationships
    • Neo4j - Return Clause
      • Return nodes
      • Return multiple nodes

Izara Backend

Services to study

Project Concepts

Information in the below pages should be understood before developing:

Tasks

  • Start working with Serverless Framework and our Empty Service Template to deploy resources to AWS
  • Create a Lambda and DynamoDB table using iamRoleStatements to allow the Lambda to perform queries on Dynamo table
    sample in Empty Service Template
  • Create 3 Lambda functions LambdaA posts to an SNS topic, LambdaB and LambdaC each have an SQS with Lambda triggers that subscribe to SNS and invoke when LambdaA posts
    eg: see ComplexFilter service, LambdaFunction: LogicalServiceResponse sends message to OutFilterComplete, which triggers LambdaFunction: ChildComplexFilterComplete (subscribes to OutFilterComplete). See:
    • Resource: sns-out.yml: outFilterComplete
    • Resource: sns-in-sqs.yml: (create Subscription in service) SNSSubscriptionMessageOutFilterComplete, Endpoint = ChildComplexFilterComplete
    • App: function.yml: ChildComplexFilterCompleteHdrSqs, iamRoleStatements: Action = SNS:Publish / Resource = OutFilterComplete
  • Create Lambda and API Gateway using http event, use Postman to send request from client to backend Lambda via API Gateway
    using Serverless http event for Lambda function
    Using Postman to send request from client to backend Lambda via API Gateway (can skip Authorizer)
    eg: https://bitbucket.org/stb_working/empty-service-template/src/development/
    • lambda Api
    • createConfig
    • getConfig
    • queryConfig
    • updateConfig
    • deleteConfig
  • Try to understand Complex Filter / Search Result / Sort Result flow
    including ProcessLogical and FindData flows
    eg:
    Complex Filter flows: https://drive.google.com/drive/folders/1C3qXeTASgPKNZOSWwBfQ0KwJqOjKO4ce

Izara Frontend

React

Microfrontends