Skip to content

Open-Source-University-of-AI/OSUAI-Winter-of-Code

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

9 Commits
 
 
 
 

Repository files navigation

OSUAI-Winter-of-Code

Description

This is syllabus taken from Harikirat Singh Youtube channel and , I have kept here and used it for refrence/guidance purpose. Learn the MERN Stack from beginner to advanced, covering the basics of DevOps, open-source contributions, and project development.

Syllabus

Foundation

Git and Github

  • git add .
  • git commit -m "message"
  • Github account setup
  • git push origin main
  • git branch
  • git switch branch_name
  • git checkout branch_name
  • Conflict Resolution between files
  • Forking and Cloning Repositories

Foundation Javascript, async nature of JS

  • Basics of JavaScript syntax
    • Variables
    • Data types
    • Operators
    • Expressions
    • Control flow
      • if statements
      • Ternary operator
      • For loops
      • While loops
      • Do While loop
    • Functions and scope
    • ES6 Features
      • Arrow Functions
      • Template Literals
      • Destructuring
      • Let and Const
      • Classes and Modules
  • Understanding asynchronous nature
    • Callback functions
    • Promises
    • Chaining
    • Async/await syntax

Node.js and its runtime

  • Introduction to Node.js
    • Installation and setup
    • Node.js modules and npm
    • Event-driven architecture

Databases (NoSQL/SQL)

  • Basics of NoSQL and SQL databases
  • Differences between NoSQL and SQL

Mongo and Postgres deep dive

  • MongoDB basics and CRUD operations
    • Creating and querying documents
    • Indexing and optimization
  • PostgreSQL fundamentals
    • Tables, queries, and data types
    • Joins and transactions

Typescript beginner to advance

  • TypeScript syntax and types
    • Variables and data types
    • Functions and classes
    • Interfaces and type aliases
  • Advanced TypeScript features and best practices
    • Generics and conditional types
    • Decorators and modules
    • Using TypeScript with JavaScript

Backend

  • Backend communication protocols
  • Express basic to advance
  • ORMs
  • Middlewares, routes, status codes, global catches
  • Zod
  • MonoRepos, turborepo
  • Serverless Backends
  • OpenAPI Spec
  • Autogenerated clients
  • Authentication using external libraries
  • Scaling Node.js, performance benchmarks
  • Deploying npm packages

Frontend

Reconcilers and Frontend frameworks

  • React beginner to advance
  • Internals of state, Context API
  • State management using recoil
  • CSS you need to know of, Flexbox, basic styling
  • Frontend UI frameworks, Deep dive into Tailwind
  • Containerization, Docker
  • Next.js
  • Custom hooks
  • In house auth using next auth

Basic Devops

Docker end to end

  • Building and managing Docker containers
    • Docker CLI and commands
    • Container networking and storage
  • Docker networking and data management
    • Connecting containers and data volumes
    • Docker network modes

Deploying to AWS servers

  • Setting up and deploying applications on AWS servers
    • EC2 instances and server configurations
    • Managing deployments with AWS services
  • Configuring AWS services for scalability
    • Load balancing with ELB
    • Utilizing AWS Auto Scaling for dynamic workloads

Newer clouds like fly/Remix

  • Exploring alternative cloud platforms like Fly or Remix
    • Understanding the architecture of Fly.io
    • Deployment and hosting with Remix

Nginx and reverse proxies

  • Understanding Nginx and configuring reverse proxies
    • Nginx as a web server and reverse proxy
    • Configuring Nginx for load balancing

Projects

GSoC Project setting up and issue solving

  • Setting up a GSoC project environment
    • Clone and configure the project repository
    • Install dependencies and build the project
  • Resolving issues and contributing to the project
    • Identifying and solving project issues
    • Collaborating with the project community

Building Paytm/Wallet End to End

  • Developing a complete Paytm/Wallet application
    • Designing and implementing features
    • Testing and debugging the application
  • Addressing end-to-end functionality and challenges
    • Payment processing, security, and user experience
    • Deploying the application to a production environment

Description

This syllabus is taken from Harikirat Singh Paid Cohort, I've kept here and used it for refrence/guidance purpose. In the 1-100 journey, learn advanced Backend communication, Advanced Devops, System design, and set up real-world open-source projects. Also, build 2 capstone projects: a trading app and a Zapier clone.

Syllabus

Advanced Backend, System Design

  • Advanced backend communication
  • Message queues and PubSubs
  • Proxies, Load balancers
  • Redis Deep dive
  • Kafka Deep dive
  • Common Design Patterns in JS
  • Advanced DB concepts (Indexing, normalization)
  • Rate limiting
  • Captchas and DDoS protection
  • Sharding, Replication, Resiliency
  • Horizontal and vertical scaling
  • Polling and websockets
  • Grpc
  • Capacity Estimation
  • Load Balancers
  • CAP Theorem
  • Testing Node.js Apps in 2023
  • Real-time communication, basics of WebRTC

Advanced Devops

  • Container Orchestration, Docker Swarm
  • Kubernetes
  • CI/CD
  • Monitoring systems basics to advance
  • Prometheus, Grafana
  • Newrelic as a paid service
  • Serverless Deep dive
  • AWS Constructs (EC2, S3, CDNs, LB, EKS)

Projects

  • Zerodha end to end
  • Zapier end to end
  • Real-world open-source projects

Complete in One go syllabus

Foundation (Weeks 1-6)

Week 1-2:

Foundation JavaScript, async nature of JS:

  • Basics of JavaScript syntax
    • Variables and data types
    • Operators and expressions
    • Control flow (if statements, loops)
    • Functions and scope
  • Understanding asynchronous nature
    • Callback functions
    • Promises and chaining
    • Async/await syntax

Node.js and its runtime:

  • Introduction to Node.js
    • Installation and setup
    • Node.js modules and npm
    • Event-driven architecture

Week 3-4:

Databases (NoSQL/SQL):

  • Basics of NoSQL and SQL databases
  • Differences between NoSQL and SQL

Mongo and Postgres deep dive:

  • MongoDB basics and CRUD operations
    • Creating and querying documents
    • Indexing and optimization
  • PostgreSQL fundamentals
    • Tables, queries, and data types
    • Joins and transactions

Week 5-6:

Typescript beginner to advance:

  • TypeScript syntax and types
    • Variables and data types
    • Functions and classes
    • Interfaces and type aliases
  • Advanced TypeScript features and best practices
    • Generics and conditional types
    • Decorators and modules
    • Using TypeScript with JavaScript

Backend communication protocols:

  • Understanding HTTP/HTTPS protocols
    • Request methods (GET, POST, etc.)
    • Status codes and headers
  • Exploring RESTful APIs and GraphQL
    • Designing RESTful APIs
    • GraphQL queries and mutations

Foundation - Continued (Weeks 7-12)

Week 7-8:

Express basic to advance:

  • Setting up Express.js
    • Installation and basic configuration
    • Creating routes and handling requests
  • Routing, middleware, and error handling
    • Express middleware functions
    • Route parameters and error handling

ORMs:

  • Introduction to Object-Relational Mapping
    • Understanding ORM concepts
    • Popular ORM libraries (Sequelize, TypeORM)
  • Working with popular ORMs like Sequelize or TypeORM
    • Defining models and associations
    • Querying and updating data using ORMs

Week 9-10:

Middlewares, routes, status codes, global catches:

  • Implementing middleware functions
    • Custom middleware and third-party middleware
    • Handling authentication middleware
  • Defining routes, handling status codes, and global error catching
    • Structuring Express routes
    • Utilizing HTTP status codes and global error handling

Zod:

  • Understanding and implementing data validation with Zod
    • Defining schemas with Zod
    • Validating data using Zod

MonoRepos, turborepo:

  • Overview of monorepos
    • Benefits and challenges of monorepos
  • Implementing with tools like TurboRepo
    • Setting up a monorepo with TurboRepo
    • Managing shared dependencies

Week 11-12:

Serverless Backends:

  • Concepts of serverless architecture
    • Serverless functions and FaaS
    • Pros and cons of serverless
  • Serverless deployment using platforms like AWS Lambda
    • Configuring serverless functions
    • Connecting serverless functions with other services

OpenAPI Spec, Autogenerated clients:

  • Creating APIs using OpenAPI Specification
    • Documenting RESTful APIs with OpenAPI
    • Using Swagger for API documentation
  • Generating client code automatically
    • Tools for autogenerating API clients
    • Consuming APIs with autogenerated clients

Authentication using external libraries:

  • Implementing authentication with Passport.js or Auth0
    • Setting up authentication strategies
    • Integrating third-party authentication providers
  • Understanding OAuth and JWT
    • Implementing OAuth authentication
    • Using JSON Web Tokens for secure authentication

Scaling Node.js, performance benchmarks:

  • Techniques for scaling Node.js applications
    • Horizontal scaling with load balancing
    • Vertical scaling with optimized server configurations
  • Performing performance benchmarks
    • Tools for benchmarking Node.js applications
    • Analyzing benchmark results and optimizing performance

Deploying npm packages:

  • Publishing npm packages
    • Creating a package.json file
    • Publishing packages to npm registry
  • Deployment strategies for npm packages
    • Versioning and updating npm packages
    • Handling dependencies and package security

Frontend (Weeks 13-18)

Week 13-14:

Reconcilers and Frontend frameworks:

  • Understanding the role of reconcilers
    • Virtual DOM and its significance
  • Overview of popular frontend frameworks
    • React, Angular, and Vue.js

React beginner to advance:

  • Building components and managing state
    • Functional and class components
    • State and props in React
  • Advanced concepts like hooks and context
    • useEffect, useState, useContext
    • Custom hooks and state management libraries

Week 15-16:

Internals of state, Context API:

  • In-depth understanding of React state
    • Local state vs global state
    • Immutability and updating state
  • Utilizing the React Context API
    • Creating and consuming context
    • Context for state management

State management using recoil:

  • Implementing state management with Recoil
    • Atom and selector concepts
    • Managing complex state with Recoil

CSS you need to know of, Flexbox, basic styling:

  • Essential CSS concepts
    • Selectors, specificity, and cascade
    • [ ]

Box model and layout

  • Mastering Flexbox and basic styling techniques
    • Flex containers and items
    • Styling using Flexbox and CSS Grid

Week 17-18:

Frontend UI frameworks, Deep dive into Tailwind:

  • Exploring UI frameworks like Bootstrap or Material-UI
    • Components and styling in UI frameworks
    • Responsive design and grid systems
  • Deep dive into Tailwind CSS
    • Utility-first CSS approach
    • Customization and theming in Tailwind

Containerization, Docker:

  • Understanding containerization concepts
    • Docker containers and images
    • Dockerfile and containerization best practices
  • Docker basics and container orchestration
    • Running and managing Docker containers
    • Docker Compose for multi-container applications

Next.js, Custom hooks:

  • Building applications with Next.js
    • Installation and setup of Next.js
    • Pages, routing, and data fetching in Next.js
  • Creating custom React hooks
    • Building and using custom hooks
    • Managing state and side effects with custom hooks

In-house auth using next auth:

  • Implementing in-house authentication using NextAuth.js
    • Configuring NextAuth.js
    • Customizing authentication flows

Basic DevOps (Weeks 19-22)

Week 19-20:

Docker end to end:

  • Building and managing Docker containers
    • Docker CLI and commands
    • Container networking and storage
  • Docker networking and data management
    • Connecting containers and data volumes
    • Docker network modes

Week 21-22:

Deploying to AWS servers:

  • Setting up and deploying applications on AWS servers
    • EC2 instances and server configurations
    • Managing deployments with AWS services
  • Configuring AWS services for scalability
    • Load balancing with ELB
    • Utilizing AWS Auto Scaling for dynamic workloads

Newer clouds like fly/Remix:

  • Exploring alternative cloud platforms like Fly or Remix
    • Understanding the architecture of Fly.io
    • Deployment and hosting with Remix

Nginx and reverse proxies:

  • Understanding Nginx and configuring reverse proxies
    • Nginx as a web server and reverse proxy
    • Configuring Nginx for load balancing

Projects (Weeks 23-24)

Week 23-24:

GSoC Project setting up and issue solving:

  • Setting up a GSoC project environment
    • Clone and configure the project repository
    • Install dependencies and build the project
  • Resolving issues and contributing to the project
    • Identifying and solving project issues
    • Collaborating with the project community

Building Paytm/Wallet End to End:

  • Developing a complete Paytm/Wallet application
    • Designing and implementing features
    • Testing and debugging the application
  • Addressing end-to-end functionality and challenges
    • Payment processing, security, and user experience
    • Deploying the application to a production environment

About

No description, website, or topics provided.

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published