Giter VIP home page Giter VIP logo

ibd-2022-master-repository's Introduction

#IBelieveinDoing - Learning bytes edition ( Learn - Build - Inspire )

Welcome to IBD Challenge - Learning bytes edition for December. This document contains information about What the challenge is, How to participate, and the process for participation. So get ready to Learn-Build-Inspire!!

What is the #IBelieveinDoing challenge?

It is an opportunity to create excellent experiential learning content to help 1000s learn tech skills through practical activities.

What do you need to do as a part of the challenge?

You are supposed to create short learning modules that assist developers in learning tech skills in an applied way. You have to create a module called Microbyte.

What is a Microbyte?

Micro-Bytes are short learning experiences, where others can learn a topic by doing the Micro-Byte.

  • It should take roughly 1 hour of learning time for learners to go through it.
  • It involves learn-by-doing exercises, i.e., learning by executing tasks hands-on.
  • It will clearly teach one topic or one aspect of a topic using exercises that learners will work on.

ibd-2022-master-repository's People

Contributors

akg1301 avatar aman1905 avatar anjali1102 avatar ansharora28 avatar ayumilan avatar durgesh4040 avatar gauravsahu21 avatar himanshusinghnegi avatar jus1anotherdev avatar mayankesh239 avatar mohitsupolia avatar nitesh-thapliyal avatar nsachin08 avatar prashanthlingala avatar priyanshupardhi avatar raibove avatar ritikasingh02 avatar sammy8825 avatar simranquirky avatar sonalsahu255 avatar sudhanshutiwari264 avatar suryasekhar14 avatar yakshit-criodo avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar

ibd-2022-master-repository's Issues

Create Calculator Desktop Application using Swing

Domain: Desktop Application using swing.

Scope of learning for learners: Learners will get an idea how to create a desktop application using swing and get the basic knowledge of following activities.

Activities:

1.) What is GUI ?
2.) How to create a Frame using Swing ?
3.) How to create a Button ?
4.) How to create a Label ?
5.) How to create a TextField ?
6.) How to set the background color ?
7.) How to use the action Listener ?
8.) How to create a calculator by using these classes ?

HashMap vs HashSet

MicroByte Title: HashMap vs HashSet

Domain: DSA

Scope of learning for learners: users will know about hashmap and hashset

Activities:
"What is the performance difference between HashSet and HashMap in Java? When should you use what?

Web Design - Mobile First Approach

MicroByte Title: Web Design - Mobile First Approach

Domain: Web Development

Scope of learning for learners: Learners will learn how to design web pages with mobile-first approach using HTML and CSS.

Activities:

  • Find out the design approaches of different websites.
  • Designing a webpage with mobile-first approach.
  • Designing the same webpage with desktop-first approach.
  • Listing the differences.

Authentication Using OAuth 2.0 and OpenID

MicroByte Title: Authentication Using OAuth 2.0 and OpenID

Domain: Web/Security

Scope of learning for learners: Learners will learn the basics of OAuth 2.0 and OpenID (authentication), learn to use the services of an identity provider like Amazon Cognito and setup authentication for a sample application.

Activities:

  • Setup a sample application.
  • Setup a user pool and client in Amazon Cognito.
  • Setup authentication for the sample application by integrating with Cognito.

Add microbyte GitHub Actions

MicroByte Title: GitHub Actions

Domain: Developer Essentials

Scope of learning for learners: Learning about continuous integration and continuous delivery (CI/CD) using GitHub Actions by creating simple workflows in a particular repository.

Activities:

  • Explain the need for CI/CD.
  • Explain why to use GitHub Actions.
  • Explain how to create workflows in GitHub actions.
  • How to write a workflow in YAML.
  • How to trigger a workflow by various GitHub events like push, pull request, commit, workflow dispatch event, etc.

Add Byte - Therads vs Processes

MicroByte Title: Therads vs Processes

Domain: Operating Systems, Processes, Therads

Scope of learning for learners: This will give them a basic idea of processes and threads in Operating Systems, their differences, use cases, and also a hands-on coding section.

Activities:

  1. Introduction
  2. Definition
  3. Memory Usage
  4. Communication
  5. Synchronization
  6. Use Cases
  7. How to Create Threads in Python
  8. Summary

Add MicroByte: Static code analysis using SonarCloud

MicroByte Title: Static code analysis using SonarCloud

Domain: Software development, Security

Scope of learning for learners: Get an introduction to static code analysis, understand its importance, and activity to set up SonarCloud in any project.

Activities:

  • What is static code analysis
  • Why is it important
  • What is SonarCloud
  • Activity: static code analysis of personal projects using SonarCloud.

Add MicroByte Caching in Django

MicroByte Title: Caching in Django

Domain: Developer Essentials - Web

Scope of learning for learners: Learners will learn about what are the different types of caching in Django and how to implement them.

Activities: Activities of creating different types of caching like DB-based , per-site etc will be there

Traffic Cop - Learn Load Balancer using HAProxy

MicroByte Title: Traffic Cop - Learn Load Balancer using HAProxy

Domain: System Design, Networking

Scope of learning for learners: Learners will get an idea of how the systems in the real world are made scalable and handle millions of requests by routing the requests to various machines in the cluster using Load Balancer.

Activities: The MicroByte activities will start with

  1. Experience the real-world load balancer of google.com
  2. Installation of HA-proxy
  3. Launch server applications with different ports.
  4. Configure HA-Proxy to load balance server with different load balancing strategies.

Add MicroByte : Function Call in C

MicroByte Title: Function Call in C ( Prologue and Epilogue )

Domain: C Concepts .

Scope of learning for learners: Learners will be able to know what happens when we call a function in a program.

Activities:

  • Write a program that makes a call to the user-built function.
  • Analyze the Code using GDB
  • Disassembly of the function after being compiled with the gdb option.
  • Identify the prologue and Epilogue sections.

Postman Tutorial

MicroByte Title: Postman Tutorial

Domain: API Testing

Scope of learning for learners: users know how postman use for API Testing
Activities: How to use for API Testing?

Add MicroByte : GitHub CodeSpaces

MicroByte Title: GitHub CodeSpaces

Domain: Developer Essentials

Scope of learning for learners: Learners will learn about VsCode's cloud version called Codespaces.

Activities:

  • Creating a Codespace
  • Difference between GitHub.dev and GitHub codespaces
  • Using codespace template in Github
  • Port forwarding in GitHub CodeSpaces

Add Byte - Using common Networking Tools

MicroByte Title: Using comming Networking Tools

Domain: Networking, OSI Model, DNS, IP, ping command, traceroute command, dig command

Scope of learning for learners: The learners will get to learn about Networking, and the OSI Model behind it. They will also get to ping networks, dig into their DNS entries and trace the route - how their computer got the information and see all the network hops.

Activities:

  1. Setup - Linux is easy but Windows users will have to manually install the 'dig' tool and add it to the PATH
  2. OSI Model - Brief Note about the OSI Model
  3. DNS - Brief about what DNS is
  4. ping - using the ping command
  5. traceroute - using the traceroute command (tracert for windows)
  6. dig - using the dig command

How does an interface in Java work?

MicroByte Title: How does an interface in Java work?

Domain: Connection between a different service provider and client using it.

Scope of learning for learners: Learners will get an idea about the different Service provider that how they make a interface connection with the Client using their Service and helps the main framework of applications.

Activities:

  1. It is used to achieve total abstraction.
  2. Since java does not support multiple inheritances in the case of class, by using an interface it can achieve multiple inheritances.
  3. Any class can extend only 1 class but can any class implement infinite number of interface.
    It is also used to achieve loose coupling.

Data Structure complexities (Time and Space)

MicroByte Title: Data Structure complexities (Time and Space)

Domain: DSA

Scope of learning for learners: Know how Hash/Array/List/etc. differ in time and Space complexities

Activities:
"How do Hash/Array/List/Tree etc. differ in time complexities?
Notes: Demonstrate best cases and average case complexities."

Add MicroByte: Understanding feature toggles

MicroByte Title: An Introduction to Feature Toggles: What They Are and How They Can Benefit Your Development Process"

Domain: Continuous Delivery, DevOps
Scope of learning for learners: Understand what are feature toggles, why we need them, and different ways to implement feature toggles.

Activities:

  • Understand what are feature toggles.
  • Know how feature toggles are used in production-level applications.
  • Different ways we can implement feature toggle
  • Adding feature toggle in ReactJs

JavaScript Functions as First-Class Citizens

MicroByte Title: JavaScript Functions as First-Class Citizens

Domain: Programming

Scope of learning for learners: Learners will be able to understand what are first-class citizens in a programming language and how functions in JavaScript as first-class citizens is a powerful feature of JavaScript.

Activities:

  1. Storing a function in a variable
  2. Passing a function to another function as a parameter
  3. Returning a function from another function
  4. Storing a function in a data structure
  5. Functions having their own properties and methods
  6. Usecases of first-class functions

Fetch API

MicroByte Title: Fetch API - JavaScript

Domain: JavaScript, Front-end Development

Scope of learning for learners: Learners will understand and work with JavaScript Fetch API.

Activities:

  1. Sending the request
  2. Reading the response
  3. Handling the response

Add microbyte working with Django Template Engine

MicroByte Title: Django Template Engine

Domain: Developer Essentials - Web

Scope of learning for learners: Learners will learn how to use the Django template engine (like Jinja 2 or Smarty )

Activities:

  • Creating a template
  • Connecting a template with an API
  • Rendering data in templates
  • Data formatting in template

Networking Basics: Public and Private IP Addresses

MicroByte Title: Networking Basics: Public and Private IP Addresses

Domain: Networking

Scope of learning for learners: Learners will learn about IP addresses, difference between public and private IP addresses, network address translation (NAT), etc.

Activities:

  1. Identify a public IP address.
  2. Identify a private IP address.
  3. Change a device's public IP address.
  4. Change a device's private IP address.
  5. Learn and use commands like ping, etc.

User Authentication - Learn Password Hashing Using Bcryptjs

MicroByte Title: How does password Hashing work?

Domain: Password Hashing and Storage

Scope of learning for learners: Helping to understand the importance of Hashing passwords during sign-up and how hashing is performed. How to store hashed passwords in MongoDB and signup.

Activities: The MicroByte activity will start with

  1. Explaining the problem with storing plain passwords in the Database
  2. Creating a server with Node.js Express Mongoose
  3. Creating a MongoDB connection with the application
  4. Launching server application with SignIn and SignUp ports
  5. Adding bcrypt for hashing and storing hashed passwords
  6. Validating password at the time of user Sign In

Good Parts of ReactJS: It's Beauty and Why It's popular

MicroByte Title: Good Parts of ReactJS: It's Beauty and Why It's popular
Domain: Web

Scope of learning for learners: A Great developer is the one who understand things beyond Abstraction. Learners will understand Why we need ReactJS, what problems it's solving and Why it's so popular.

Activities:

  1. Component
  2. Declarative
  3. Library
  4. Hooks, SideEffects, Props, state.

How do SSH keys work?

MicroByte Title : What are SSH Keys, How do they work?

Domain : Security, Authentication

Scope of learning for learners: Learners can expect content that explains SSH keys and their working in a fun way.

Activities:

  1. Learning how SSH keys work
  2. Practical hands on to generate SSH keys to make sure endpoints are secure.

Public and Private IP addresses

MicroByte Title: Public and Private IP addresses

Domain: Networking

Scope of learning for learners: Learners get an understanding of what a Public/Private IP address is and how it is used in the real world by inspecting their home network.

Activities:

  • Identify the public and Private IP addresses of the user's computer.
  • Set up a simple lab using Network Simulation software and understand how NAT works.

Content Delivery Network - Explained

MicroByte Title: Content Delivery Network (CDN)

Domain: System Design

Scope of learning for learners: What is CDN, how do they work, how does it make data retrieval faster!

Activities:
TBD - To map a custom CDN based on the requirements.

DNS Load Balancing

MicroByte Title: Basics of DNS Load Balancing

Domain: Networking

Scope of learning for learners: Help to understand the term Load balancing, know about the need for DNS load balancing, and understand load balancing with help of www.google.com.

Activities: The MicroByte has the following activities:
1: Run ping www.google.com on the Linux terminal twice to see the different IP addresses.
2: Explain the concept of load balancing.
3. Explain DNS and DNS load balancing
4: Draw conclusions, as to why different IP addresses were returned in activity 1.
5: Run ping www.google.com on windows cmd.
6: Run ping www.google.com on windows cmd by changing the wifi connection.
7: Explain why the results in activities 5 and 6 are different.

Inheritance in OOP

MicroByte Title: Inheritance in OOP

Domain: Programming, OOP
Scope of learning for learners: Learners will get an idea of How the concept of inheritance works, What are the different types of inheritance we have, the Pros and Cons of Inheritance

Activities:

  1. Learn how to write code for different types of inheritance in Java

How to Become a Better Debugger

MicroByte Title: How to Become a Better Debugger

Domain: Technical Skills

Scope of learning for learners: Users of all skill levels in software development can comprehend how to identify and correct bugs in code.

Activities: knowledge of NPE

Fun with Python

MicroByte Title: Fun with Python

Domain: Python Skills

Scope of learning for learners: Coders will understand how we create Python scripts. how Python is helpful for routine tasks

Activities: Coders will understand how we create Python scripts. how Python is helpful for routine tasks

Add Byte - Basics of NGINX

MicroByte Title: Basics of NGINX

Domain: Web Development, Backend Development, Cloud Computing, DevOps

Scope of learning for learners: They will learn what NGINX is, what are it's benefits, How to install it and deploy it on the cloud, and how to serve a static HTML app with it.

Activities:

  1. Introduction
  2. What is NGINX
  3. Benefits of NGINX
  4. Creating and Deploying an EC2 instance and SSHing into it
  5. Installing and deploying NGINX
  6. Accessing the public IP
  7. Serve static HTML document using NGINX
  8. Summary

Validating Routes and Adding Security to our Server in our express app

MicroByte Title: Validating Routes and Adding Security to our Server in our express app

Domain: NodeJs , ExpressJS

Scope of learning for learners: We will validate the request which comes from the Client/Browser and Adds Security to our Server

Activities: Activity 1: Adding Validations to our signup routes
Activity 2: Adding Validations to our signup routes using the Joi library
Activity 3: Adding Security using Environment Variables

Add microbyte CSS Box Model

MicroByte Title: The CSS Box Model

Domain: Developer essentials,Front end

Scope of learning for learners: Learners will get an idea on how to deal with various CSS properties like borders,padding,display,margins and learn about CSS units like ems and rems.

Activities:
Open Chrome developer tools and see how everything on the given page is present inside a box.
Experiment by changing the properties of these boxes using chrome dev tools.
Recreate a given image using CSS properties.
See how CSS units differ and practically observe the differences they can make to an element.

AWS Automation using Terraform

MicroByte Title: AWS Automation using Terraform

Domain: Cloud Computing

Scope of learning for learners:

Learners will be able to configure and create Terraform script which will help them automate to launch Cloud resources with the help of face detection

Activities:

  • Create a Dataset of the user face image
  • Create a Face detection model
  • Create Terraform Script
  • Integrate Terraform Script with Face Detection model to automate launching of Cloud Resources

Hashing

MicroByte Title: Hashin

Domain: DSA

Scope of learning for learners: this byte will give idea to how computer stores the data efficiently and randomly taking less space and time. Also how the fetching the data also takes the least time posible

Activities: how to create hash table, will also contain how to store data in hash table and retrieve the same

Add Byte - Introduction to Django

MicroByte Title: Introduction to Django

Domain: Python, Django, Web Development, Backend

Scope of learning for learners: They will get to learn about how to start using the Django Python Web Framework to build Backends. They will learn how to set up a Django App.

Activities:

  1. Introduction to Django
  2. Setup & Installations
  3. Create Django Project
  4. Start a new Django App
  5. Django Project Structure
  6. Start the development server
  7. Further Steps

Add Byte - Cloud Computing

MicroByte Title: Cloud computing

Domain: Cloud Computing, AWS, SSH, NGINX

Scope of learning for learners:
The learners will get an idea about how to create an AWS Account, spin up an EC2 Instance, SSH into the instance, install and start the NGINX Service

Activities:

  1. Setup: It will include creating the account on AWS
  2. Start an Instance: Spin up an EC2 Instance
  3. SSH into the server after downloading the .pem files
  4. Update && Upgrade the apt list
  5. Install NGINX
  6. Whitelist Post 80 on the firewall
  7. Access NGINX Public IP from Browser
  8. Summary

Hashing

MicroByte Title: Hashing

Domain: DSA

Scope of learning for learners: Learners will learn everything about hashing:

  • Hash tables in data structure.
  • Use of hashing in dbms.
  • Ways to calculate hashing.
  • Hashing in different programming languages.
  • Different terminologies used in hashing.
  • Time complexity analysis of hashing.

Activities:

  1. How does hashing work and what happens during collisions?
  2. Learn about hash table
  3. Learn about hash function

Add MicroByte: pagination in Reactjs

MicroByte Title: How to add pagination in Reactjs using MUI

Domain: Web development, Interview Questions

Scope of learning for learners: In this microbyte we will focus on fetching data from API and adding pagination to display data using MUI.

Activities:

  • setting up react application and required packages.
  • fetching the data.
  • adding logic for pagination.

Add MicroByte: Managing branches in git

MicroByte Title: Managing branches in git

Domain: Software Development, Version Control

Scope of learning for learners: In this microbyte we will learn Trunk-based development and feature-based development.

Activities:

  • What is Trunk-based development.
  • What is feature-based development.
  • Trying out trunk-based development.
  • Trying out feature-based development.
  • Difference between trunk-based and feature-based development.

Add Micro-Byte: REST API

MicroByte Title: REST API

Domain: Web | Backend (Node.js)

Scope of learning for learners: How to create a service that supports one GET and one POST request and responds back?

Activities:

  • Real world examples as to what are REST APIs and why are they needed.
  • Code snippets of how we can create APIs using raw Node.js (without any packages) and a full understanding of it
  • In flow short explanations of the 'Event Loop' of Node.js
  • Reasoning as to how packages can make our task a bit easier in terms of writing the same thing
  • Introduction of Express JS
  • Code snippets as to how we can create the same APIs using Express JS and detailed explanation of all variations of achieving it

Gui Application

MicroByte Title: Simple Gui Application

Domain: Desktop Development

Scope of learning for learners: Learner will be able to get an idea how to built gui application using Qt framework and get the basic knowledge of how to create widget button,label and many more.

  • Activities:
  1. What is Qt ?
  2. Steps to download Qt .
  3. Learn how to create widget.
  4. Signals and Slots
  5. Working with Settings

CRUD Operations with SQL

MicroByte Title: CRUD Operations with SQL

Domain: SQL

Scope of learning for learners:
Learners will able to perform following operations with SQL after this MicroByte:

  1. Create
  2. Read
  3. Update
  4. Delete

Activities:

  1. Creating a table.
  2. Reading the table.
  3. Modifying the table.
  4. Deleting the table.

Apart from these four main activities, learners will also get to know some additional queries.

Creating a signup route, login route, and how passwords are stored in the database using Hashing

MicroByte Title: Add Micro-Byte: Creating signup, login route, and how passwords are stored in the database using Hashing

Domain: Nodejs , ExpressJS

Scope of learning for learners: We will see how signup and login routes are made and how we store the password in the database

Activities: Activity 1: Start a new project
Activity 2: Steps to create an Express.js Application
Activity 3: Creating a Signup Route and understanding why we use express.json() middleware
Activity 4: Creating a Signup Route in a structured way
Activity 5: Creating a model and storing user data
Activity 6:Connect our express app with the model we just created in Activity 5
Activity 7:Storing Password as a hashed password
Activity 8:Creating Login Route, Controller, and login method in the service layer as we do for the signup route
and verify login

Add MicroByte: Understanding ADR

MicroByte Title: Understanding ADR - A Guide to Documenting Architectural Decisions

Domain: Software Development

Scope of learning for learners: This micro-byte will help to understand what exactly ADRs are and why to create ADR. Also, we will see an example of how to write ADR.

Activities:

  • What is ADR
  • How to create an ADR
  • What are the benefits of using ADR
  • Sample ADR

How to implement RecyclerView in Android (java)

MicroByte Title: Implementation of RecyclerView

Domain: Android App

Scope of learning for learners: By this learner will able to work with RecyclerView, CustomAdapter and also learn how to create a simple interface in Android Studio.

Activities:

  1. Installation of Android Studio.
  2. How to create a project in Android Studio.
  3. How to create a simple interface for RecyclerView.
  4. How to implement RecyclerView with Custom Adapter.
  5. How to run this application on android mobile and share apk to your friends.

Chrome Browser Extension : Learn Building a Chrome Extension using HTML,CSS & JS.

MicroByte Title: Chrome Browser Extension .

Domain: Web Development

Scope of learning for learners: Learners will be able to get an idea of how plugins of the browsers work and will be able to create their chrome Extension and build some more cool Extensions of their own.

Activities: The Microbyte activities will start with:
1 ). What is a chrome extension?
2). How to create your own Chrome Extension.
3). Using it in your own chrome Browser.

String search

MicroByte Title: String search

Domain: DSA

Scope of learning for learners: Users will Understand String search algo used(mainly KMP and RabinKarp)

Activities: "What is the difference between KMP and RabinKarp algorithm?

Web Authentication - learn to add authentication to your site

MicroByte Title: Web Authentication - learn to add authentication to your site

Domain: Web/Security

Scope of learning for learners: Learners will get an idea of how to add authentication to your site using tools provided by Firebase.

Activities: The MicroByte activities contains:

  1. Experience web authentication with real world examples
  2. How authentication works
  3. How you can add authentication on your own project with Firebase.

virtual memory, memory leak

MicroByte Title: virtual memory, memory leak

Domain: OS
Scope of learning for learners: people will understand Memory Leak
Activities:
"What is memory leak?
Notes: Write a C program to leak memory, help ppl understand whether the process gets killed or if the OS gets killed when there is memory leak"

Add MicroByte: Promises in Javascript

MicroByte Title: Promises in Javascript
Domain: Javascript, Web development

Scope of learning for learners: After going through this micro byte you will know what a promise is and understand how to create and use a promise in Javascript.

Activities:

  • What is Promise
  • Real-world examples
  • How can you create a Promise

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.