/restart-s1-2022

reStart S1 2022

Primary LanguageJavaScript

restart

Admin

  • Canvas

  • Contact the lecturer for Zoom & Discord links.

  • Classes run from 9:45AM-3PM Mon-Thu and 10AM-2PM Fri.

  • Student Expectations: ~5 hours of lectures and ~3 hours of homework 5 days/week.

Supplementary Videos

Core Topics

  • Career
  • Cloud Foundations
  • Linux
  • Networking
  • Python Programming
  • Databases
  • AWS
  • Exam Preparation

Week 1

Core Topics

  • Hardware Basics
  • Virtual Machine Basics
  • Database Concepts
  • Cloud Service Models (IaaS, PaaS, SaaS, FaaS)

Day 1

  • Basic Computing Concepts
  • Brief history of computing & operating systems
  • CPU / Central Processing Unit
  • Moore's Law
  • RAM/Memory
  • Storage: Mechanical Hard Drives, Solid State Drives (SSD), Tape Storage, CD/DVD/BluRay
  • Brief history of Cloud Computing

Day 2

  • Virtual Machines & Amazon Machine Images (AMIs)
  • Database Basics: Relation vs Non-Relational/NoSQL (Key-Value, Document/Object, Graph)
  • EC2 Lab demonstration - Deploying a virtual machine
  • Shared Responsibility Model Basics
  • Memcached & Redis Basics (get/set): Try Redis
  • StackShare

Day 3

  • Amazon S3 Basics
  • Brief history of Internet (Phreaking, Dialup, ADSL, Fibre)
  • Brief history of World Wide Web, HTML, and using archive.org
  • Linux Basics: cd, mkdir, pwd, ls, man, /bin directory, running programs.
  • Linux Directory Structure
  • The Art of Command Line - Bookmark this for use later in the course.

Day 4

  • AWS Compute Options: EC2, Lambda, ECS, and others.
  • Hypervisor vs Containers
  • Infrastructure as a Service (IaaS)
  • Platform as a Service (PaaS) - e.g. Heroku, ElasticBeanstalk
  • Software as a Service (SaaS)
  • Function as a Service (FaaS)
  • Continuous Integration / Continuous Deployment (CI/CD)
  • Infrastructure as Code (IaC) Basics
  • Application Programming Interfaces (APIs)
  • RosettaCode
  • Installing python3 with sudo yum install python3

Day 5

  • Personal branding workshop
  • Python String data type str
  • Python Numerics data types int, float
  • Print to console print()
  • Takes input from console input()

Week 2

Core Topics

  • Python Basics
  • Git Basics

Day 1

  • Python: Lists my_list = [1, "hello", 3.14], Tuples my_tuple = (4, "blah", 1.23)
  • Functions (def my_function():)
  • Conditionals (if/else/elif)
  • Comments (#)
  • Debugging: Breakpoints, Stepping, Inspecting values

Day 2

  • Python Dictionaries my_dictionaries = {"innovation": "something new"}

  • Python Boolean type my_bool = True | False

  • Nested data types: Lists within Dictionary, Dictionaries within List, Lists within List (2D array)

  • Using pip

  • awesome-python - List of popular Python packages

  • Using pylint

  • Local vs. Global scope

  • Classes (basics - grouping of data and functions/methods)

  • Interpreted programming languages vs compiled programming languages

  • AI brief introduction - Tensorflow, Keras, PyTorch

  • Sets my_set = {1, 3, 'hello', 3, 5}, Intersection and Union methods

  • List slices & some methods (append, insert)

  • Keybr.com - Learn to touch type & speed up your typing.

Day 3

  • Python conditionals: if, elif, else
  • Exceptions, custom exceptions with raise, try, except, else, finally
  • Combine exception handling with functions and return
  • assert and raising AssertionError
  • Sentry for error tracking
  • Create / import modules in Python
  • Using pytest and assert statement for software testing.
  • Continuous Integration providers: Travis-CI, CircleCI
  • Agile software development basics: Standups, Kanban, Sprints, Scrum
  • GitHub platform in depth: Forking, Pull requests, Topics, Issue tracking, Project Management, Contributors / Bus Factor, etc

Day 4

  • Using loops (while, for, range, enumerate)
  • List comprehensions aka easily making a list from an iterable.
  • Looping through dictionaries using .keys(), .values(), and .items().
  • Printing with f-strings
  • More testing with pytest
  • More on using modules
  • Entry point
  • Python's in keyword ('b' in ['a', 'b', 'c'], and in for loops)
  • Using turtle for small visualizations and understanding loops

Day 5

  • How git is used for teams of software engineers to collaborate
  • How to create a Github repo, also called a remote repository
  • git clone from remote repository
  • git init
  • git add remote if there isn't remote repository linked already
  • see status of staged and unstaged changes with git status
  • view git history with git log
  • git commit
  • git branch
  • git checkout
  • git pull from remote repository
  • git push from local to remote repository
  • rewrite git history, squash N number of commits history with git rebase -i HEAD~N

Week 3

Core Topics

  • Linux Basics (Filesystem layout, navigating, working with files/processes)

Day 1

  • Kernel / Daemons
  • Python Revision
  • Command Line Revision
  • Git Revision

Day 2

  • Linux Basics Revision
  • Linux GUI vs CLI
  • Continuous Integration, Continuous Delivery, Continuous Deployment concepts
  • which, alias, unalias, export, unset, env, less, sudo !!, cat, sleep
  • PATH, accessing environment variables e.g. $HOME and setting PATH, .bashrc basics.
  • /proc basics
  • Processes & Process ID's
  • Job control basics: Ctrl-Z, bg, fg, Running a task in the background with &
  • strace basics & system calls (syscalls) overview/purpose
  • File Descriptors and /proc/<process_id>/fd/, stdin, stdout, stderr - More on these later.
  • tmux Basics: Prefix key (Ctrl-B), Vsplit %, Hsplit ", New window c, Next window n, Previous window p, Switching panes arrow keys
  • Types of interprocess communication: Wikipedia - Inter-process Communication

Day 3

  • More Linux: head, tail, file, Symbolic Links (symlinks), Permission basics: chmod +x (so far)
  • /etc/passwd
  • chsh, /etc/shells and different shell examples (zsh, fish)
  • gcc (aka cc) and compiling simple C programs
  • /lib directory, shared objects (.so and equivalent .dll files)
  • Binary (ELF) vs Text (Shell script) and #! at the top of scripts.
  • Using time.sleep(30) in Python and the nanosleep() syscall.
  • Created a simple shell script
  • awesome-shell - List of great programs

Day 4

  • Linux cd, pwd, ls * (list all files in nested folders) vs. ls
  • cp, mv, mkdir, nano
  • Python argsparser to run Python program with customizable input
  • Makefile, and Makefile command with input
  • Makefile command shortcut to run Python program with customizable input
  • Explained on a high level what API is, and most common API command GET, POST, PUT, DELETE
  • More Linux: useradd, groupadd, sudo su -, /etc/sudoers, /etc/passwd, /etc/group, /etc/shadow, vipw, vigr, and vipw -s (don't edit these files directly)
  • !!, !$, history and !<n>
  • More Bash scripting & handling arguments ($1, $2, etc in Bash & sys.argv in Python)
  • Linux permissions: chmod codes cheat sheet, ugo+rwx (symbolic), 421 (numeric), output of ls -al
  • LinuxJourney.com - Thanks Ben
  • Bash Cheat Sheet - Plan to learn these during your career

Optional vim stuff:

Day 5

  • CV workshops
  • Flows and conditions with Linux bash scripting: if else elif, for loop with {1..N}, for loop with StringArray(), case, conditions []

Other resources for interview preps:

Book recommendations:

Week 4

Core Topics

  • Networking Basics: Switches, Routers, TCP vs UDP, IP addresses, Ports

Day 1

  • Revision
  • More on containerization vs virtualization.
  • Architecture Basics: ARM vs x86 / x64 (aka amd64 or x86_64)
  • Virtualbox Snapshots & Amazon Machine Images
  • Demos/Presentations of useful utilities
  • Debugging a non-ELF binary named googlr (created in Swift)
  • Matthew: atop, gitmux, nnn
  • Dotfiles - Configure your own setups.
  • Joe: image-scraper, imgp, tiv, and cool mod to Alice's pokemon guesser game
  • Asimina: cointop, has
  • Michael J: prettyping, gogh & debugging shell scripts
  • Custom tmux configuration with .tmux
  • Installing Python 3.10 from source and using grep.
  • Installing Go (see office hours recording) and extracting compressed files with tar.
  • Installing Rust (also office hours)

Software Engineering advices:

Day 2

Day 3

Day 4

  • Private, Partnered (Paid), and Public APIs
  • REST vs. gRPC vs. SOAP
  • JSON vs. dictionary
  • JSON vs. XML vs. Protobuf
  • Building an IP Subnetting calculator API with Python, pytest, and FastAPI.

Day 5

  • Friday: Good Friday (No class)

Week 5

Core Topics

  • More Networking Basics: OSI & TCP/IP Models, IPv4 Subnetting

Day 1 (Tuesday, no class on Easter Monday)

  • Review of the following networking topics:
  • OSI Model & TCP/IP Model
  • Example: VPN -> OSI Layer 3 tunneling to by pass IP and domain name restriction
  • Example: Network firewall -> OSI Layer 4, block IP address range and port range
  • Example: Application firewall -> OSI Layer 7, looking at body of requests to intercept application level attack such as SQL injection
  • Network Topology
  • Ethernet and Switches (vs Hubs)
  • Media Access Control (MAC) addresses
  • Address Routing Protocol (ARP): Requests, Responses, and Spoofing/Poisoning
  • Spearphishing and some OSINT
  • Internet Control Message Protocol (ICMP, used for pings). Time To Live (TTL)
  • Network Address Translation (NAT)
  • Request For Comments (RFC's - Documents used for describing protocol specifications among other things)
  • Wireshark
  • Tom7 - Using ICMP as a hard drive for SIGBOVIK'22
  • NetworkChuck - NAT
  • Professor Messer - OSI Model
  • Professor Messer - Spoofing

Day 2

  • More VPC & Subnets, NAT, Internet Gateway, Security Group (layer 4 firewall)
  • Public subnet, private subnet
  • Security basics: Encryption in transit, encryption at rest, intelligent threat detection, anti virus/malware software
  • Bitwise Operators: NOT ~, AND &, OR |, XOR ^, Shift-Left <<, Shift-Right >>, and Rotate Left/Right (no operator in Python).
  • Subnetting deep dive.
  • SubnettingPractice.com

Day 3

  • Emerging networks: 5G, long range BlueTooth, IoT networks and applications
  • VPC lab demonstration for creating VPC, Subnets, and NAT Gateway - Lab 52 in Modules
  • Preparing for Interviews: Technical (technology you are learning vs. technology you know vs. similar technology you know vs. technology you cannot relate), and Behavioral (including scenarios based - tell a time me when you run into a conflict with co-worker, and open ended questions - tell me where you will be in 5 years time)
  • Files
  • Python's with keyword (context manager basics) and where you want to use it.
  • Windows Registry
  • Structs (examples in different programming languages)
  • Classes & Objects / OOP Basics (__init__ method, self, methods, basic inheritance).

Day 4

  • Install Node.js, create React.js app with npx create-react-app my-app

Week 6

Core Topics

  • HTML, CSS, and JavaScript Basics
  • ReactJS Basics (stateless & stateful components)

Monday: ANZAC Day (No class)

Day 1

  • More React.js - started building a TODO App
  • NodeJS & npm basics
  • HTML Basics
  • JS Basics: var vs let & const, defining functions
  • Creating simple stateless components and basic use of props.

Day 2

  • ReactJS: useState() hooks, onClick events, event handler functions, events in React, create a counter with React
  • CSS: id vs classes
  • Threads, Multiprocessing
  • Intro to async/await and fetch()

Day 3

  • ReactJS: useRef() hooks, get values out of a ref name = myRef.current.value, change value of element linked to ref myRef.current.value = "new value", deconstructing a JavaScript array (only in ES6 JSX) with new_list = ["new_item", ...my_list], validating input within a handler functions, list.map() to create a list of components
  • Building a simple Todo list
  • Connecting React frontend to FastAPI backend
  • FastAPI - Cross-Origin Resource Sharing (CORS)
  • Cross-Origin Resource Sharing (CORS) MDN - Recommended reading

Day 4

  • Interview practice
  • ReactJS: useEffect(), using useEffect to react to change of any particular state, if useEffect does not subscribe to anything -> will run once in the first render -> use this to initialize all data
  • FastAPI: backend API with GET request to get data out of a .json file, and POST request to update the .json file
  • Combine ReactJS + FastAPI: the simple Todo web app that can fetch initial data from file, and add more data to file. Reopenning the app will not lose data
  • Homework: create a delete button on the React.js app, and make sure that all data is clear, test by refreshing the web browser

Week 7

Core Topics

  • Database Basics
  • Security Basics

Day 1

  • Revision: Linux, Git & GitHub, React, Parallels between Python & JavaScript, HTTP GET/POST, API setup
  • Database Basics

Day 2

Day 3

  • SQL string searching with LIKE
  • get data from multiple tables with JOIN
  • table short names
  • multiple JOIN
  • multiple JOIN with conditions WHERE
  • JetBrains DataGrip - Free for Students
  • Cryptography: Brief History, Ciphers (Caesar, Polybius, Cipher Machines), Feistel Network
  • XOR operation, Block vs Stream Ciphers, Symmetric vs Asymmetric (Public Key) Cryptography
  • The Codebreakers Book by David Kahn for more history
  • Certificate Authority Basics (and DigiNotar/Comodo hacks), browsers Chain of Trust
  • Hashing Basics (Block size, Digest Size, MD5 / collisions, Pigeon-hole Principle, SHA3 contest)

Day 4

  • table relationships, dependency, order for adding and removing entries for inter-dependent tables (ADD artists -> albums -> tracks and DELETE tracks -> albums -> artists)
  • INSERT INTO sql statement
  • DELETE sql statement
  • Back to React homework: button to remove all contents from Todo List
  • Solving duplicate key problem for a List of <div>
  • Guest Speaker: Thiago Canestraro
  • More security: Hashing / Blockchains
  • Recommended platforms for more cybersecurity: TryHackMe, HackTheBox (in office hours)

Day 5

  • Presentation practice rounds, demo of highlights, sharing own plans with class
  • DataGrip SQL IDE tutorials
  • Revise React.js: useState, useRef, useEffect
  • Todo App with complete checkbox and remove button

Week 8

Core Topics:

  • Cloud

Day 1

  • React.js deployment Part I
  • CI/CD concepts revisit
  • Security revision: Symmetric vs Asymmetric (Public Key) Cryptography. Diffie-Hellman & RSA concepts.
  • SSH, ssh-keygen, public key authentication (authorized_keys file, private key permissions)
  • AWS Console vs awscli

Day 2

  • React.js deployment Part II (folder deployment_day_1)
  • More SSH stuff
  • Understanding an HTTP request
  • Security Groups & iptables (Firewall) demo
  • netcat & usage of sockets for networked services
  • EC2 overview

Day 3

  • React.js & FastAPI deployment Part III (folder deployment_day_1)
  • Secure password storage (bcrypt, scrypt, Argon2)
  • HaveIBeenPwned
  • Digital signature basics
  • DNS and dig: (A, AAAA, CNAME, NS, MX, TXT, PTR records)
  • Brief mention of Amazon SES (Simple Email Service)
  • Containers Concepts & Docker installation

Day 4

  • Deploying a static site to S3 Part IV (folder deployment_day_2)
  • Guest Speaker: Ash
  • EC2 deep dive
  • AWS Cost Calculator
  • RDS & ElastiCache brief mention

Day 5

  • Linkedin workshop
  • Docker: build and run
  • Deploying a FastAPI app to Docker
  • Docker port mapping
  • Homework: deploy React.js from react_day_6 with Docker, entry point is using serve

Week 9

Core Topics:

  • Cloud

Day 1

  • Deploy React.js from react_day_6 with Docker, entry point is using serve
  • Docker Compose intro
  • Environment variable intro
  • "Serverless" Computing with (AWS Lambda)
  • Different triggers for Lambda
  • Serverless Examples - FFMpeg to GIF - Supplementary. Not required for the course.

Day 2

  • More deployment with Docker
  • Virtual Private Cloud (VPC), Subnets, Route tables, Internet Gateways & deploying Web/Database servers to different subnets
  • Infrastructure as Code (IaC) Concepts (CloudFormation, Terraform, Pulumi)

Day 3

  • More IaC: Pulumi & CloudFormation
  • S3 & S3 Glacier
  • Python virtualenvs (python -m venv venv and source venv/bin/activate)

Day 4

  • AWS IAM: User, Policy (Effect, Action, Resource), Role (User, Service, Cross Account)
  • AWS CloudTrail: all API calls to AWS account are saved here
  • Issue Tracking & Project Management
  • Assignment Tips
  • PowerShell
  • EC2 Deployment & Elastic Block Store (EBS) Basics

Day 5

  • System Manager (Session Manager, Patch Manager, Compliance, Parameter - string and secrets)
  • CloudWatch Metrics (given by default, and also Custom Metrics like RAM and %Drive)
  • CloudWatch Alarms
  • Auto Scaling Group
  • EC2 Launch Template

Week 10

Day 1

  • AWS ELB - Application vs. Network load balancing
Application Load Balancer Network Load Balancer
OSI Layer Layer 7 Layer 4
Target Private/Public IP, EC2 instance in ASG, Also Lambda Private/Public IP, EC2 instance in ASG
Protocol HTTP/HTTPs/gRPC TCP/UDP/TLS
LB Static IPs No Yes
Session Yes Yes (new*)
Forward source IP Yes (new*) Yes
Cross-AZ balancing Yes (by default) Yes (not by default)
SSL Offloading Yes Yes (new*)
Authentication Yes No
Private network load balancing Yes Yes
Typical applications 1 General backend with Application level awareness Low latency media streaming (UDP) & connectivity (Gaming)
Typical applications 2 Complex authentications supported (SAML/LDAP/AD) Use static IPs to share/receive data with partner companies

Day 2

  • FastAPI body, query string, input parameters
  • Usecases for Docker ENV - default environment variable + dependency versioning
  • EC2 Instance Store vs. EBS backed
  • Type of EBS drives, and appropriate usecases for each
  • SSH/Apache log files, hardening & configuration
  • Sockets & Building network services with Python
  • Analysis of log files with Python & UNIX utils
  • Monitoring Basics (more to follow)

Day 3

  • React props and children (see react_day_8 folder)
  • More on React
  • Review of UI Component Libraries
  • Review of programming paradigms & concepts
  • CodeWars

Day 4

  • CloudFront and benefits of CDN (security, cost, user experience)
  • CloudFront usecases for caching static content: website hosting, paid content distribution, Lambda at Edge A/B testing, rerouting HTTP to HTTPS
  • CloudFront usecases for caching dynamic content: Load Balancer distribution, HTTP response caching
  • API gateway vs. Load Balancer
  • Object Relational Mappings (ORMs)
  • Abstracting interaction with databases
  • Docker revision

Day 5

  • Meeting with Spark, Datacom, and Leaven.
  • Continuation of CloudWatch with CloudWatch Logs (comparable to LogStash + ElasticSearch)
  • ELK stack: LogStash for collecting log files, ElasticSearch for log searching and metrics generation, Kibana for visualizing metrics (comparable to CloudWatch dashboard)
  • Billing console, billing report per product/department with Resource Tag
  • StepFunction state machine, enabling more usecases with Lambda function
  • RDS/Aurora - sync replication thinking of FailOver instance, async replication thinking of Read Replica
  • Queue vs. Topic, Kafka overview concepts - topics, partition, replication factor...

Week 11

Day 1

  • Topics vs. Queue revision
  • Publish subcribe (subcribers are not aware of publisher) vs. Observer pattern (the opposite)
  • SNS - push based - has many types of subscriber (email, txt messages, HTTP/HTTPs destination, SQS, Lambda...)
  • SQS - pull based - for simple queue, if item pulled out -> item becomes invisible to other pollers
  • ElastiCache in more depth
  • RDS in more depth
  • CloudQuest
  • Cloud Practitioner Essentials

Day 2

  • Migration with RDS
  • Route53 & DNS revision
  • nginx configuration & examples of using DNS
  • HowDNS.works
  • ElasticBeanstalk
  • More docker revision

Day 3

Day 4

  • Advanced EC2 features - pricing models (Spot, Reserve, On demands), Placement Group, Host settings
  • DMS - Database Migration Service (one off mode and continuous replication mode, schema migration tool to convert MySQL to PostgreSQL)
  • General AWS limits (S3 APIs, EC2 number of instances, ECS number of tasks...)
  • Presentation Practice
  • Practice Test for Cloud Practitioner exam

Day 5

Week 12

Monday: Queen's Birthday (No class)

Day 1 - Presentations:

  • Maria: S3 Static Website Hosting
  • Allan: Terraform
  • Matthew K: Scraping with BeautifulSoup
  • Matthew R: Elastic Beanstalk
  • Michael J: Automation with python and awscli
  • Jarryd: AWS Amplify
  • Heaven: CloudWatch
  • Eden: Creating a portfolio with React
  • Tahseena: Setting up and using load balancers
  • Sheldon: Using IoT TwinMaker
  • Robert: EC2 autoscaling
  • Nisheeth: Using DynamoDB
  • Nick C: Using AWS Kendra
  • Asimina: Intro to TypeScript
  • Wiremu: IP crawler that downloads certificates
  • Joe Zhu: Using Pulumi to deploy a backend API server to AWS EC2
  • Ben Browning: AWS Lambda
  • Myat Lwin: Create Custom VPC with Public&Private Subnets
  • John Simmons: AWS Comprehend
  • Alice Kokado: Boto3 Python SDK
  • Xinpeng Yang: AWS Lightsail
  • Kumar AWS EC2 Backup

Day 2

  • More Presentations
  • Another Practice Test
  • Meeting with Sky

Day 3

Day 4

  • Revision
  • Assignment help
  • Congratulations!

More AWS services to cover in Week 9-12:

  • EC2
  • IAM
  • Lambda
  • S3
  • Virtual Private Cloud (VPC), Subnets, Route tables, Internet Gateways
  • System Manager (Session Manager, Patch Manager, Compliance, Parameter - string and secrets)
  • CloudWatch Metrics (given by default, and also Custom Metrics like RAM and %Drive)
  • CloudWatch Alarms
  • Auto Scaling Group
  • EC2 Launch Template
  • Elastic Load Balancer
  • EBS + EC2 Instance Store (IOPS calculation)
  • CloudFront (how this relate to Load Balancer, S3, and APIGW)
  • Route 53
  • Elastic Beanstalk
  • StepFunction (more Lambda)
  • RDS/Aurora
  • ElastiCache
  • RedShift
  • DMS
  • EFS (NFS)
  • S3/Glacier
  • Storage Gateway

Advanced services to cover to cover in Week 9-12:

  • SNS
  • SQS
  • CloudWatch Logs
  • CloudTrail
  • Organizations
  • Tagging
  • Billing
  • Code Commit, Code Build, Code Deploy
  • IaC, CloudFormation

Projects ideas

Intended for team of up to 3 people, lasting 4 weeks

Projects ideas Difficulty Nature Suggested Week 1 milestone Suggested Week 2 milestone Suggested Week 3 milestone Suggested Week 4 milestone
Real-time World Statistics Medium Frontend development + Cloud Native Hosting Identify data source (eg. Covid data), wide frame design for the visualization website, identify a place to host the website (eg. S3+Cloudfront), finalize the scope of work 40% of planned work 80% of planned work 100% of planned work, Team presentation + Demo, figure out future directions for this projects
A fully functioning e-Commerce Website Low - Medium eCommerce platform management + Cloud Native Hosting Identify eCommerce platform (eg. Magento on LightSails, or EC2), and products to sell, finalize the features of the eCommerce website 40% of planned work 80% of planned work 100% of planned work, Team presentation + Demo, figure out future directions for this projects
A Blogging (News aggregate) Website Low - Medium CMS platform management + Cloud Native Hosting CMS engine for the Blog/News website (WordPress, Gatsby...), wide frame design for the Blog/News website, identify a place to host the website (eg. S3+Cloudfront, or LightSail, or EC2), choose and finalize the scope of work 40% of planned work 80% of planned work 100% of planned work, Team presentation + Demo, figure out future directions for this projects
A Habit tracking app Hard Backend + Frontend development + Cloud Native Hosting Identify authentication provider (AWS Cognito or Google Firebase), wide frame design for the web application, design a cloud native architecture (eg. APIGW+Lambda+S3+CloudFront), choose and finalize the scope of work All the basic infrastructure components such as Authen provider, static web hosting infras, API gateway and backend components Basic logins and half of the features 100% of planned work, Team presentation + Demo, figure out future directions for this projects
A project management app (extension of Todos) Hard Backend + Frontend development + Cloud Native Hosting Identify authentication provider (AWS Cognito or Google Firebase), wide frame design for the web application, design a cloud native architecture (eg. APIGW+Lambda+S3+CloudFront), choose and finalize the scope of work All the basic infrastructure components such as Authen provider, static web hosting infras, API gateway and backend components Basic logins and half of the features 100% of planned work, Team presentation + Demo, figure out future directions for this projects