User:Ujsr/sandbox

E_LEARNING LINKS

https://www.udacity.com/course/intro-to-algorithm= s--cs215

https://www.udacity.com/course/intro-= to-artificial-intelligence--cs271

https://www.udacit= y.com/course/applied-cryptography--cs387

http= s://www.udacity.com/course/data-wrangling-with-mongodb--ud032

=

https://www.udacity.com/course/computability-comple= xity-algorithms--ud061

https://www.udacity.com/cou= rse/full-stack-foundations--ud088

https://= www.udacity.com/course/data-visualization-in-tableau--ud1006

<= br>

https://www.udacity.com/course/asynchronous-javascript-= requests--ud109

https://www.udacity.com/course/intro-to-aja= x--ud110

https://www.udacity.com/course/javascript= -and-the-dom--ud117

https://www.udacity.com/cou= rse/intro-to-machine-learning--ud120

https://www= .udacity.com/course/version-control-with-git--ud123

=

https://www.udacity.com/course/database-systems-concepts-design-= -ud150

https://www.udacity.com/course/intr= oduction-to-cybersecurity--ud1337

https://www.udac= ity.com/course/intro-to-data-analysis--ud170

https://www.= udacity.com/course/intro-to-jquery--ud245

https= ://www.udacity.com/course/full-stack-interview-prep--ud252

htt= ps://www.udacity.com/course/ab-testing--ud257

<= a href=3D" https://www.udacity.com/course/deploying-applications-with-heroku-= -ud272"> https://www.udacity.com/course/deploying-applications-with-heroku--u= d272

https://www.udacity.com/course/au= thentication-authorization-oauth--ud330

https://w= ww.udacity.com/course/es6-javascript-improved--ud356

https://www.udacity.com/course/intro-to-data-science--ud359

=

https://www.udacity.com/course/designing-restful-apis--ud388=

https://www.udacity.com/course/product-design--ud509

https://www.udacity.com/course/data-stru= ctures-and-algorithms-in-python--ud513

https://www.udaci= ty.com/course/javascript-testing--ud549

https:= //www.udacity.com/course/object-oriented-javascript--ud711

https://www.udacity.com/course/javascript-design-patterns--ud98= 9

https://www.udacity.com/course/javascript-promises-= -ud898

PICTURE LINKS

https://desmanipal.org/bhagavadgita-course/

http://www.bhagavad-gita.de/gita-reflections/bhagavad-gita-logo.jpg

https://www.google.com/imgres?imgurl=http%3A%2F%2Fwww.bhagavad-gita.de%2Fgita-reflections%2Fbhagavad-gita-logo.jpg&imgrefurl=http%3A%2F%2Fwww.bhagavad-gita.de%2Fgita-reflections.html&docid=XFLIVLbEMzcQ9M&tbnid=9bNQbMecxc2mjM%3A&vet=1&w=550&h=320&safe=active&bih=969&biw=1920&ved=2ahUKEwj59oaUrvflAhUEy1kKHV7VBNcQxiAoB3oECAEQIg&iact=c&ictx=1#h=320&imgdii=R9KnOh4usG1PqM:&vet=1&w=550

http://www.forbesindia.com/fbimages/900x600/proportional/jpeg/media/images/2016/Apr/topimg_30755_gita-kalamkari-painting.jpg

https://t2.genius.com/unsafe/997x0/https%3A%2F%2Fimages.rapgenius.com%2F8cx67bo8i6zpzo9lzoutj3nfr.479x380x1.jpg

https://www.pinterest.com/pin/297026537910744901/

https://iskconnews.org/media/img_versions/2017/08-Aug/1_-_the_one_is_the_story_of_16-year-old_mahabharat_hero_abhimanyu_slideshow.jpg

I have a strong background in Relational and non-relational databases as well as the Salesforce CRM setup.I have implemented the User Interface Design as well as data binding and am aware of various user specific data ( like calculated fields) that might help in the design of the system. I also work towards designing database structures that help maintain data integrity and data quality. I can also analyse exisiting CRMs and db structures and help tweak them in order to improve the overall system ( including data conversion and relationships between components in the design).

I enjoy learning new technical skills and dealing with new architecture to create an efficient setup. I am constantly on the lookout for opportunites to work on projects that I can add value to as well as learn from.I would be honored to work for your organizaton and contribute to your cause in my own small way. Looking forward to connecting with you.

https://careers.google.com/jobs/results/77447547594908358/

https://careers.google.com/jobs/results/81693449184518854/

https://careers.google.com/jobs/results/77447547594908358/

https://careers.google.com/jobs/results/126830600527979206/

https://blog.hubspot.com/sales/linkedin-summary-examples

An expert in content management and portal development, I keenly work towards bringing a vision to life using the best technology options available in a given environment. I specialize in building and maintaining content portals and websites involving varied technologies like Salesforce Lightning, Microsoft SharePoint, as well as Full Stack Development with JavaScript frameworks and Relational as well as non-relational databases.

I am passionate about understanding of the architecture of existing systems as well as designing efficiently structured ones. I combine my communication skills as well as logical technical skills to provide the best experience to the end users as well as client organizations. My experience consists of a range of projects including application development, migration or upgrade of systems, reporting automations, restructuring of data

A strong background in UX, object oriented programming as well as database design and development have helped me understand the architecture of existing systems as well as designing efficiently structured ones. I work constantly on simplifying processes and strive on strategically creating and utilizing reusable pieces of functionality to make the system flexible and efficient.

I am avid learner and have been able to quickly absorb and use different languages or applications within projects. I look forward to introducing new functionalities or value adds in every project I am associated with. I am passionate about developing systems from the scratch and often conceptualize or volunteer for challenging projects in Salesforce as well as Full Stack Website Development to exercise my new skillsets and technology during my off hours as well.

Experienced Senior Associate Project Manager with a demonstrated history of working in the information technology and services industry. Skilled in Salesforce.com Development, Mean Stack, Full-Stack Development, Visual Studio, and User Experience (UX). Strong engineering professional with a Master's degree ALM focused in Digital Media and Design from Harvard Extension School.

An avid learner, I absorb the fundamentals and apply them quickly on to various projects htta I have been working on.

Travel tool

Resource Management

Financial Reporting Automations

Resource Reporting Automation

Pipeline and Demand Management Automations

Activity and Event Trackers

SDLC tasks process trackers

Color coded calendar system

= Work Experience = Cognizant Technology Solutions            2007 To Present Projects in: Collaboration, Reporting Enhancements, Development of Portals, Content Management Migration, Upgrade, Redesign, Analysis, Enhancement, Support

Roles: Team Lead, Senior Developer, System Solutions and Design, Onsite Coordinator,Data Analyst, Quality Champion, Testing

Roles: Banking and Infrastructure, Healthcare, Demand and Supply Chain Management, Manufacturing Logistics

= Independent Research and Development = AppRaise   Website Development – MEAN Stack

A MEAN (MongoDb,Express.js, Angular.js, and Node.js ) stack-based application designed as a solution for managing the quality and compliance status of various software systems and sites being developed and managed by any Organization.

TravelTicket   SalesForce Application

An application simulated in the Dev environment of Salesforce to capture and process requests for Travel within an organization. It uses declarative programing approach as well as complex process flows and automations available in the CRM.

AppStack   SalesForce Application

An application created in the Dev environment of Salesforce for storing application details and the annual surveys collected in order to maintain the standards of quality for them. The application has been created using APEX,Visual Force pages and Process flows apart from the declarative salesforce elements.

Pharos   User Experience Design

A User Experience Design Project for a proposed application to integrate various efforts involved in the on boarding process of the Novak Bank. This captures the design of the user interface for the app in mobile and desktop versions through various phases of the requirement including telemetry and user testing.

Section 1 (Evaluate at least one criteria in this section)

1) Monitor database by providing technical guidance to the team and performing root-cause analysis to resolve discrepancy    NA

2) Create reusable assets to improve productivity, enterprise architecture and solutions and present them in external forums to showcase Cognizant capabilities

·        SharePoint solutions designed, developed and showcased during the year that was re-used in other sides include

·        Policy Activity Tracker set up which includes a three level approval, configurable elements which allow the set up to be configured as a template.

·        Travel Tool Set up – a four level approval tool which handles the travel requests within the organization efficiently.

·        Idea and Pipeline Updates – contents with the project management software to pull out any new demand requests that need to funded and eventually converted to projects. The code is configurable to set up the various departments.

·        SOW Resource Management: A SP site that helps maintain the SOWs as well as the vendor resources hired by Wells Fargo. This has also included values add like a Setup with Access database connectors for verifying data uploaded every month as well as uploading them very quickly avowing manual errors.

3) Create design documents and POC to ensure that the design is in line with overall solution direction

·        Helped the Cognizant Wells Fargo team with Data cleanup and a quick demo of SharePoint connections – helped them pitch a relational database setup with a possible front end in Angular.

·        The creation of the Travel tool (with a four level approval) has been documented by me and passed on to the other accounts where they had been requested of similar implementations. The tool has been successfully implemented in two accounts with some help from my end as well.

·        Recent design changes and enhancement made to cumbersome lengthy lists have been documented with screenshots (before and after) showcasing the value adds provided over and above the requested requirements.

4) Effectively resolve escalations related to critical technical issues

·        Maintain 1000 sites in 62 site collections – this includes creating sites, developing solutions and helping people with any issues they face.

·        Enhancement, Bugs and issues included older InfoPath forms and JavaScript code snippets added to web parts not functioning correctly, workflow breakdowns or errors and approval system issues.

·        A request queue is maintained for any issues and the tickets are resolved with the specified SLA time.

6) Effectively contribute in defect triage meetings and identify ways to prevent defect

·        Have helped in data analysis of data sources for the reporting tools and helped place various checks and validations to avoid loss of data integrity within the system.

·        Have created checkpoints in code and documentation to help reduce errors in report creations for steps which require manual intervention.

·        Have worked with various teams to trace and document various assumptions that were made when the tools/product was created and how it might change based on the impact the enhancement or requirement might have in the current environment.

·        Have worked on resolving bugs or common issues within the environments work and have documented many of the common ones in order to help various owners with full control access resolve them on their own ( instead of having to wait for Admin support).

7) Identify and implement innovative processes to improve productivity

·        I have been handing the agreements for the applications in the Wells Fargo org. This includes helping app owners and their teams set up a document with the defined OLA/SLA criteria applicable to the specific apps in a customized Azure cloud based site called Partnerships.

·        Have been now working on Process improvement with the Partnerships team – that houses the Operational as well as Service Level agreements of all the WIMT Apps.

·        I help application owners annually review and approve their Service Level agreements as well as onboard/setup the agreements as a part of the application deployed process.

·        I have made several changes to the process and added in detailed documentation and alerts to help the teams navigate the rules while creating agreements or reviewing them. This has reduced the follow-up time for the entire process by almost two weeks.

8) Guide team members to attain their career goals in alignment with organization needs

·        Even though I do not have any one specific working with me in my team, I have been actively involved in connecting with the teams that use SharePoint and helping developers implement various enhancements.

·        These include guiding different app teams from other accounts to design and implement the travel tool.

·        Help in the onboarding process of any new joiner who intends to work in SharePoint

·        Guide them as they make enhancements including code reviews which make sure they are compliant with the standards of coding allowed in the Wells Fargo Enterprise Environment.

Section 2 (Evaluate all criteria in this section)

1)     Understand the linkage of one’s own role to the organizational strategy clearly

·        Role of senior developer and on site coordinator – is involved in the design, planning and execution as well as quality check of the SharePoint and reporting tool enhancements being made in the WIMT world.

·        Connecting with multiple teams with Cognizant as well as Client team members to provide them support during as well as post development of the app.

·        Working on process improvements in the application agreement and onboarding process.

·        Initiating discussion with various stakeholders and documenting process change as well as publishing these changes to be easily accessed by all users.

·        Setting up and maintain various reporting tools and systems in order to provide quality data reporting. I have also introduced various automations through code and testing to produce highly detailed and specific reports based on requests.

2)     Understand the client's situation and business needs and resolve client queries and complaints proactively by employing resources available

·        Have quickly picked up multiple BI tools and Web portal technologies in order help in the reporting as well as enhancements requested by the client.

·        Attuned to the Wells Fargo Enterprise and the tools available in the environment. I have been able to purpose them resourcefully in order to create alternate and convenient workarounds and solutions based on the client’s request. These are configurable and have been reused by other teams with little setup overhead.

·        Have worked in providing reporting solutions and helping the teams maintain data integrity at the data source level by designing validation rules and data filter to help in the efficiency

·        Coordinate with application teams that own the various tools that we use and have helped them re-design or enhance the tool based on the client’s requirement in a manner which makes it easier for our development team to connect to the app.

3)     Identify, delegate and prioritize tasks for self and team

·        Have been to prirotize and complete tasks assigned as well as balance them with those that I have volunteered for with external teams.

·        I have also worked on creating a structure around the people I have been working with – encouraging them to task tracks and their progress as well as provide periodic updates.

·        Any guided resource now has up- to- date documentation along with the completed enhancement. We also have the reusable code and additional features listed as Value adds.

4)     Identify critical stakeholders who can impact work outcome and build relationships with them

·        Coordinate and connect with any applications teams being impacted by a tool or enhancement change

·        Also coordinate with various department heads in order to explain existing process flows and suggesting process changes

·        Have worked with other department’s technical teams to help them with enhancements that could impact multiple departments.

·        Have analyzed large data sets and helped establish data integrity by coordinating with specific teams and explaining the short comings of the rules.

5) Understand others’ point of view and use rational arguments, information and clear communication to influence others

·        Have been collaborating with external and internal teams to bring them together to highlight the need for change in process

·        Helped various teams to conduct impact analysis for the requests and this has included dealing with different environments at simultaneously (eg SQL server  ,Tableau, SharePoint)

5)     Being willing to take risks within own work area and to proactively offer own view & support team in exploring novel ways of meeting client needs

·        Have consistently gone above and beyond the immediate requests and made sure that all areas of impact are covered.

·        Have worked on providing efficient and quick solutions using compliant software and code. I have also helped many system transition into the compliance range using reviews

·        Process improvements are documented in detail and shared. This has created a knowledge base which is useful for any new person who joins in.

6)     Maintain professionalism when dealing with changing circumstances and priorities - Adapt own approaches, priorities and behavior to the change and deliver identified accountabilities even under uncertain conditions

·        Keenly aware of the current technologies being used in the company, I have also quickly adapted to any new ones that have been coming up by creating personal projects or working on test environments within the bank – this is in order to research and come up with various scenarios in implementation as we work on discussing an optimal solutions or alternates.

·        Well aware of teams that work on many significant apps in the environment and have been able to stay updated with changes happening within the tools and their impacts to the others.

·        Have established a reliable and trustworthy communication with my client team managers as well as the application managers in order to be able to provide suggestion for upgrade or enhancements to process or product. I have also been able to bring in Cognizant to take on these enhancement updates and help them tag offshore/onsite associates to the opportunity generated.

7)     Work collaboratively with team members, manage and develop their capabilities in order to set and deliver team goals effectively and efficiently.

·        Have been working with various teams and have drawn up plans for execution for enhancements having impacts across multiple teams. This has helped the teams understand the requirements as well as the updates and progress in the implementation and any changes in plan.

·        Have also been able to work towards providing suggestions for value adds to every project which has been achieved by the team members

·        Have included a few offshore resources into research/test projects in order to understand a new tool or software expected to be transitioned to. This has helped us understand the inner workings (especially in terms of code capability and testing methods) as well as help in providing working demos to showcase the impacts (if any) to the multiple teams.

☁

https://www.infoworld.com/article/3343180/how-to-prepare-for-the-salesforce-certified-platform-developer-i-exam.html

http://www.sfdc99.com/2017/04/22/guide-to-passing-all-salesforce-certifications-2017/

https://www.salesforceben.com/get-salesforce-certifed/

https://focusonforce.com/certification-courses/

_______

https://quizlet.com/216046018/flashcards

https://certifiedondemand.com/courses/salesforce-certified-administrator/lectures/3596818

https://focusonforce.com/certification-courses/

____________________

//What To Learn Before A JavaScript Framework

Javascript fundamentals

Basic Syntax

Variables

Arrayss and Object Literals

Events

Functions, Loops and conditions

DOM manipulation

all of ES6 needs to be learnt  before you are confident in the Framework

Modules

Import pieces of code / files into anotehr file

Without this no Framework

ES6 modules ( typescript used them in angular)

Parcel,Webpack,Babel

Export and Export default.

Classes

React and Angular and classes and inheirtance is required

Structing a classes

Constructors

Methods and properties

Instantiations - creating objects from teh class

Extending Classes and inheirtance

Arrow functions

compact and clean code

Advatages in scope when it comes to some sitiations

Lexical "this"

Promises and Async requests

Alrenates to callback in ES6

requesting to server takes a while to respond = move on do the otehr stuff and then fulfill it while the task is done

learn how to create recieve Promises

standrad .then and .catch Syntax

Asyn Await is optional recommended

Fetch API - for making HTTP requests

Destructuring

Unpack values from objs and Arrayss

Makes a clean and readable code

const {name,email}= user;

const (name,email,address{city}) = user

address is an objetc within it

concept of components adn state

UIs are broken into individual componetns of which each have a state associatred with them

eg menubar,header,search bar,main content

ech component has its own data adn state

wrapped up in the individual component - state and data eg menu - open state and has somer links in it

Eg STat Componenet or tweet component or main display header

Share state - redux for react - veux for vue or Graph QL and appollo

App state - hovers over all UI components

Spread operator

Impt for dealing with state - make a copy make a change and then send it down to the component. I ti s immuatable and cannot be changed directlly

The spread operator ... makes a copy of the most current state and then you can make a change to teh copy

Userd often in React Redux reducer

const UserState = {

name : "tester"

}

const NewState = {

...UserState,

age:30 // ... is the Spread operator

}

Higher Order array functions

For Each Basic loopong

map manipulate to create a new array from the objetcs of the array

Filter - filter out pieces of data userd in state reducers - for state managegement

Common to all three frameworks :

Important to recognize which piece of the code is plain JavaScript and what is actually relevant to react or angular or vue

Typescript - > Angular uses this

UI CSS Frameworks - > Bootstrap ,materialize,bulma

Front end JS frameowrks - > react, angular, vue

backend frameworks - > laravel,express,djanjo

Tutorials

Udemy:

Frameworks : React and Node js

https://www.udemy.com/nodejs-express-mongodb-dev-to-deployment/learn/v4/

https://www.udemy.com/vuejs-2-the-complete-guide/learn/v4/

https://www.udemy.com/react-front-to-back/learn/v4/

https://www.udemy.com/react-the-complete-guide-incl-redux/learn/v4/overview

Youtube:

Vue Js Crash Course 2019 https://www.youtube.com/watch?v=sBws8MSXN7A

React Js Crash Course 2019 https://www.youtube.com/watch?v=sBws8MSXN7A

Node Js with Passport Authentication https://www.youtube.com/watch?v=6FOq4cUdH8k

Mutistep Form with React and Material UI https://www.youtube.com/watch?v=zT62eVxShsY

Pluralsign login Page clone https://www.youtube.com/watch?v=wIx1O5Y5EB4

Nodejs REST API wuith Restify Moongoose and JWT Playlist https://www.youtube.com/watch?v=bqn-sx0v-l0

Full stack Vuew Express Node and Mongo.db Playlist https://www.youtube.com/watch?v=j55fHUJqtyw

Introducing React Hooks https://www.youtube.com/watch?v=mxK8b99iJTg

GraphQL Reach and Appollo Playlist https://www.youtube.com/watch?v=SEMTj8w04Z8

Javscript Cardio Sessions Series Playlist https://www.youtube.com/watch?v=tcoiPHktCwQ

GutHub Pages Deploy and Domain https://www.youtube.com/watch?v=SKXkC4SqtRk

HTML and CSS Easy Elebant Landing Page with Blur Effect https://www.youtube.com/watch?v=HZv8YHYUHTU

Lyrics Search App with Reach and Content Api playlisthttps://www.youtube.com/watch?v=ktPocNL0qGg

Responsive Portfolio Website https://www.youtube.com/watch?v=qGYNbrT9P6Y

Learn the MERN Stack https://www.youtube.com/watch?v=PBTYxXADG_k

Async JS Crash Course https://www.youtube.com/watch?v=PoRJizFvM7s

Javascript OOP Crash Course https://www.youtube.com/watch?v=vDJpGenyHaA

Responsive mobile first website https://www.youtube.com/watch?v=XsEnj-1hG2o

Build a Slackbot https://www.youtube.com/watch?v=nyyXTIL3Hkw

Fancy Form Ui from scratch https://www.youtube.com/watch?v=AiTdhLc8JCo

Travel agency theme with Materialize CSS https://www.youtube.com/watch?v=MaP3vO-vEsg

Vue.js Firebase Authentication https://www.youtube.com/watch?v=MoBYBc1dkhE

Buld a responsive grid CSS website layout from scratch https://www.youtube.com/watch?v=moBhzSC455o

Modern Image Gallery with ES6 Vanilla JS https://www.youtube.com/watch?v=afoxd5b0bJo

Vue.Js and Firestore App https://www.youtube.com/watch?v=sYNjEzcOTOs

Inrto to node.js REST SDKhttps://www.youtube.com/watch?v=7k03jobKGXM

Javascript DOM Crash course Series https://www.youtube.com/watch?v=0ik6X4DJKCc

Awesome Split Screen Slider CSS3 and Javascript https://www.youtube.com/watch?v=5F0EvajMlXo

Intro to Javascript Unit testsing with Mocha JS and Chaihttps://www.youtube.com/watch?v=MLTRHc5dk6s

JSON Crash Course https://www.youtube.com/watch?v=wI1CWzNtE-M

Google Geocode API and JS https://www.youtube.com/watch?v=pRiQeo17u6c

Google maps JAVAscript API https://www.youtube.com/watch?v=Zxf1mnP5zcw

Gertting started with chart Js https://www.youtube.com/watch?v=sE08f4iuOhA

Materialize CSS crash course playlisthttps://www.youtube.com/watch?v=nqT8c5OFjEQ

Easy responsive CSS3 Pricing tables https://www.youtube.com/watch?v=7rJ5rhdVvOo

Fitlerable List with JS https://www.youtube.com/watch?v=G1eW3Oi6uoc

Basic Parallax website CSS And HTML https://www.youtube.com/watch?v=JttTcnidSdQ

Animate your font awesome icon

Basics : https://www.youtube.com/watch?v=XP-MRCUPZao

Simple weight coverter with Javscriot abd Bootstrao https://www.youtube.com/watch?v=7l-ZAuU8TXc

Easy fillscreen lnading page with HTML and CSS https://www.youtube.com/watch?v=hVdTQWASliE

Connecting to fire base using a contact form : https://www.youtube.com/watch?v=PP4Tr0l08NE

Build a bootstrap theme https://www.youtube.com/watch?v=NDcfKNQBqAk

Sass workflow and Dev server from scratch using GULP   https://www.youtube.com/watch?v=rmXVmfx3rNo

Create a modal with HTML CSS And Javscroipt https://www.youtube.com/watch?v=6ophW7Ask_0

Festch API intro https://www.youtube.com/watch?v=Oive66jrwBs

NPM Crash course https://www.youtube.com/watch?v=jHDhaSSKmB0

Vanialla JS Number facts apps Ajax and Fecth https://www.youtube.com/watch?v=tUE2Nic21BA

Rem and CSS Unites explaination https://www.youtube.com/watch?v=H4UtKu11yXg

Full scnree video bakcgrounf https://www.youtube.com/watch?v=Xy3GlrddZFI

Guklp js crash course https://www.youtube.com/watch?v=1rw9MfIleEg

Facebook login and grph api https://www.youtube.com/watch?v=gXux8b3wcYw

Build Bootstrap theme with Scroll https://www.youtube.com/watch?v=ePgnR4gHIi4

TypeSctip Crash course https://www.youtube.com/watch?v=rAy_3SIqT-E

Learn a Jscasctip bookmarker app app https://www.youtube.com/watch?v=DIVfDZZeGxM

Jquery an dAjax – build a Githib finder app https://www.youtube.com/watch?v=lIKrfLWNsUI

CMS Admin theme from scratch https://www.youtube.com/watch?v=pXbEcGUtHgo

HTML Responsoive laybout https://www.youtube.com/watch?v=Wm6CUkswsNw

Custom Bootstreap with Sass https://www.youtube.com/watch?v=pB7EwxwSfVk

RxJS oberservables crash course https://www.youtube.com/watch?v=ei7FsoXKPl0

Express Js crash course https://www.youtube.com/watch?v=gnsO8-xJ8rs

JavaScript Es6/ES2015 Playlist https://www.youtube.com/watch?v=2LeqilIw-28

Javscript imge slideshow https://www.youtube.com/watch?v=4YQ4svkETS0

Build and deploy React Js text generator app https://www.youtube.com/watch?v=yU5DYccb77A

App Hosting digital ocean https://www.youtube.com/watch?v=BUasdmczmMw

Deploy Node js app to digital ocean https://www.youtube.com/watch?v=RE2PLyFqCzE

Youtube :

What to learn before you learn a JS Framewrokhttps://www.youtube.com/watch?v=qi9VQqYcXqY

CSS grid layout : https://youtu.be/jV8B24rSN5o

JS Booklist App https://www.youtube.com/watch?v=JaMCxVWtW58

CSS Test Background Animation https://www.youtube.com/watch?v=lX5LZTWc4f8

Flexbox in 20 minutes: https://www.youtube.com/watch?v=JJSoEo8JSnc&list=PLillGF-RfqbZTASqIqdvm1R5mLrQq79CU&index=8

Udemy

https://www.udemy.com/modern-javascript-from-the-beginning/

https://www.udemy.com/bootstrap-4-from-scratch-with-5-projects/learn/v4/

https://www.udemy.com/css-the-complete-guide-incl-flexbox-grid-sass/learn/v4/overview

https://www.udemy.com/mern-stack-front-to-back/

https://www.udemy.com/materialize-css-from-scratch-with-5-projects/

COD ECODE



// Document object model

// tree of nodes / elements created by browser - tags

// root element element attribute text

// libraries like jquery - easy to access tags

// JS is easy too - DOM select and manipulate - faster than Jquery

// vanilla JS

let val;

val = document.all; // HTML COllection like an array - but use foreach loop

val = document.all[4]; // access indeices or items in the collection like an arrray node lists also like arrayxs - but cant use for each on them

val = document.all.length;

val = document.head;

val = document.body;

val = document.doctype;

val = document.URL;

val = document.domain;

val = document.contentType;

//selecting without using selectors

val = document.forms;

val = document.forms[0];

val = document.forms[0].id;

val = document.forms[0].method;

val = document.links;

val = document.links[0];

val = document.links[0].className;

val = document.links[0].classList[0];

val = document.images;

val = document.scripts;

val = document.scripts[2].getAttribute("src");

let scripts = document.scripts;

let scriptsarray = Array.from(scripts);

scriptsarray.forEach(function(x) {

// console.log(x.getAttribute("src"));

});

//

//console.log(val);

//single element selector

//grab an element by ID and class and stores only one thing

//2 single element selectors

//get attribute

console.log(document.getElementById("task-title"));

const taskTitle = document.getElementById("task-title");

console.log(document.getElementById("task-title").id);

//change styling

document.getElementById("task-title").style.background = "green";

document.getElementById("task-title").style.color = "#FFF";

document.getElementById("task-title").style.padding = "5px";

//hide something completely using the code below

//document.getElementById("task-title").style.display = "none";

//change content

document.getElementById("task-title").textContent = "Task List";

//document.getElementById("task-title").innerText = "My Tasks";

//document.getElementById("task-title").innerHTML =

(" Tasking list ");

//return all elements with that specific selector and returns a nodelist.

//document.queryselector

console.log(document.querySelector("#task-title"));

console.log(document.querySelector(".card-title"));

console.log(document.querySelector("h5"));

//nested and li selectors

document.querySelector("ul li").style.color = "blue";

//lastchild psuedo selector

document.querySelector("li:last-child").style.color = "yellow";

document.querySelector("li:nth-child(2)").style.color = "pink";

document.querySelector("li:nth-child(3)").textContent = "Changed this!";

//odd and even psuedo selector

document.querySelector("li:nth-child(odd)").style.color = "red";

document.querySelector("li:nth-child(even)").style.color = "grey";

//doc selectors for multple elements

//getemlementsbyclassname

//includes all element tags that have the class in teh document

const items = document.getElementsByClassName("collection-item");

console.log(items);

//treat like an array for a specific one

console.log(items[0]);

items[0].style.color = "pink";

items[1].textContent = "this is new !";

//selecting from the UL -> excludes DIV which was included in all - adds a level of specificity

const listitems = document

.querySelector("ul")

.getElementsByClassName("collection-item");

console.log(listitems);

let listtags = document.getElementsByTagName("li");

console.log(listtags);

console.log(listtags[0]);

listtags[0].style.color = "maroon"; //even though accessed by the indices this is not an array

//listtags[4].textContent = "MAROON";

//convert HTML collection into an array

listtags = Array.from(listtags);

listtags.reverse;

listtags.forEach(function(tag, index) {

console.log(tag.textContent);

//tag.textContent = `${index} :${tag.textContent}`;

});

console.log(listtags);

//node list - includes just elemetns but also text nodes - dont need to convert to array

const liitems = document.querySelectorAll("ul.collection li.collection-item");

console.log(liitems); // this is a nodelist

//note this does not have to be converted to an array - worked directly

// liitems.forEach(function(item, index) {

//  item.textContent = `Hello! ${item.textContent}`;

// });

//changing style for odd and even

const liodd = document.querySelectorAll("li:nth-child(odd)");

const lieven = document.querySelectorAll("li:nth-child(even)");

liodd.forEach(function(oddone, index) {

oddone.style.background = "grey";

});

for (i = 0; i < lieven.length; i++) {

lieven[i].style.background = "lightgrey";

}

//_---//

//traversing the DOM - paretns and children of specific nodes that are being selected

var valn;

const listul = document.querySelector("ul.collection"); //UL all of it

var listitemul = document.querySelector("li.collection-item:first-child"); // first list time

//get child node

valn = listul.childNodes; //this ia NODE LIST - we also get the text nodes which are line breaks in the html

//to get the children only and no text nodes

valn = listul.children; // this returns an HTML Collection

//for more processing with ChildNodes piece

valn = listul.childNodes[3].nodeName;

valn = listul.childNodes[3].nodeType; //element node - 1 text - 3 commnet node -8 doctype -10 attribte - 2

//children more than childnodes in terms of use - but childnode includes text as well

valn = listul.children;

valn = listul.children[0];

//listul.children[1].textContent = "Me first!";

//children of children

valn = listul.children[3].children[0]; //gives specific info about the button

listul.children[3].children[0].id = "testlink"; //addiing ids etc

//first child

valn = listul.firstChild; //gives back text node at times

valn = listul.firstElementChild; //gives back element and no text nodes

valn = listul.lastChild; //gives back text node at times

valn = listul.lastElementChild; //gives back text node at times

valn = listul.childElementCount; //count child elemnets

//get parent node

valn = listitemul.parentNode; //this gives text nodes as well - though here there is no text node

valn = listitemul.parentElement; //could be the same as the Parent Node if there are no text nodes

valn = listitemul.parentElement.parentElement;

//get next siblings

valn = listitemul.nextSibling; //this gives text nodes as well

valn = listitemul.nextElementSibling; //this traveses only elements

valn = listitemul.nextElementSibling.nextElementSibling; //next to next sibling

valn = listitemul.previousSibling; //this gives text nodes as well

valn = listitemul.previousElementSibling; //this traveses only elements - it is the first list item - has no prev sibling

//lets try and move to the thrid one and check the property

valn = listitemul.nextElementSibling.nextElementSibling.previousElementSibling; //gives back 2

valn =

listitemul.nextElementSibling.nextElementSibling.previousElementSibling

.previousElementSibling; //gives back 1

console.log(valn);

//---//

//create an element and insert it into the DOM

//create the elememnt and add a link of X

var licreate = document.createElement("li");

licreate.className = "collection-item";

licreate.id = "new-item"; //add id

//add attribute

licreate.setAttribute("title", "New Item");

//create text node and append

licreate.appendChild(document.createTextNode("Hello World"));

//create a new link element

const lilink = document.createElement("a");

lilink.className = "delete-item secondary-content";

lilink.href = "#";

//creating   

lilink.innerHTML = '  ';

//creating    // another way to  do it

// const icolink = document.createElement("i");

// icolink.className = "fa fa-remove";

// lilink.appendChild(icolink);

licreate.appendChild(lilink);

//Append li as child to ul

document.querySelector("ul.collection").appendChild(licreate);

console.log(licreate);

//-

//How to remove elements, replace elements , get attributes classes etc

//replace element

//create element

const newheading = document.createElement("h2");

//add id

newheading.id = "task-title";

//new text node

newheading.appendChild(document.createTextNode("Task List"));

//replacing hte old heading

const oldheading = document.getElementById("task-title");

//parent child to append and replace

const cardparent = document.querySelector(".card-action");

//replace old with new

cardparent.replaceChild(newheading, oldheading);

console.log(newheading);

//remove element

const removelist = document.querySelectorAll("li");

const listulselect = document.querySelector("ul");

//remove items from list

//removelist[0].remove;

//remove the child element

listulselect.removeChild(removelist[3]);

// classes and atrributes

const firstli = document.querySelector("li:first-child");

const linklia = firstli.children[0];

//classes

let vala;

vala = linklia.className; //all classes for that link

vala = linklia.classList; //dom class list access like array?

linklia.classList.add("test"); //add classs

vala = linklia;

linklia.classList.remove("test"); //remove class

vala = linklia;

//attributes

vala = linklia.getAttribute("href");

vala = linklia.setAttribute("href", " https://google.com ");

linklia.setAttribute("title", "google");

vala = linklia.hasAttribute("title");

linklia.removeAttribute("title");

vala = linklia;

console.log(vala);



CODE CODE

// alert('hello worldish2');

console.log('hello hello')

console.log(1234)

console.log(true)

var greeting = 'hellow'

console.log(greeting)

console.log([1, 2, 3, 4])

console.log({ a: 1, b: 2 })

console.table({ a: 1, b: 2 })

console.error('This an error')

console.warn('This is a warning')

console.clear

console.time('Hello')

console.log([1, 2, 3, 4])

console.log([1, 2, 3, 4])

console.log([1, 2, 3, 4])

console.timeEnd('Hello')

console.clear

// var let and const - const and let are newly introduced.

// var name = 'john doe'

// console.log(name)

// name = 'steve smith'

// console.log(name)

// init var

var greetings

console.log(greetings)

// rules and conventions

// Letters,numbers,_and $ - cant start with a number

// let name = 'john doe'

// console.log(name)

// name = 'steve smith'

// console.log(name)

const name = 'john doe'

console.log(name)

// name = 'steve smith'

// console.log(name)

const newpage = 'hello'

const person = {

name: 'new gae',

age: 12

}

person.name = 'hello age'

console.log(person)

// not allowed const person= {

//  name : "hello agre",

//  age:12

// }; cannot be reassigned - but can mutate if object or array

// Primitive datatype

const namer = 'john'

const age = 12

const haskids = true

const personal = null

let test

const sym = Symbol

console.log(typeof namer)

console.log(typeof age)

console.log(typeof haskids)

console.log(typeof personal) // null has a object type is actually a bogus value

console.log(typeof test)

console.log(typeof sym)

// Reference tyypes - objects

// array

const hobby = ['new', 'next']

const nester = {

bird: 'canary',

color: 'yellow'

}

const today = new Date

console.log(typeof hobby)

console.log(typeof nester)

console.log(typeof today)

// type conversion - taking from form - apply calcuations

let valer

// number to string

valer = String(5)

valer = String(4 + 4)

valer = String(true)

valer = String(new Date)

valer = String([1, 2, 3, 4, 5, 6])

valer = true.toString

valer = Number('6')

valer = Number(true)

valer = Number(false)

valer = Number(null)

valer = Number('Hello') // NaN

valer = Number([1, 2, 3, 4])

// string to number

valer = parseInt('100')

// string to float

valer = parseFloat('100.30')

// output

console.log(valer)

console.log(typeof valer)

console.log(valer.length)

console.log(valer.toFixed)

// type coercion

const val1 = 5

const val2 = '6' // different datatypes are concatenated as string - int+string=string - Use the Number to make concatenated string a number if needed

const sum = Number(val1 + val2)

console.log(sum)

console.log(typeof sum)

// Numbers and Math Object

const num1 = 100

const num2 = 50

let sumval

// simple math

sumval = num1 + num2

sumval = num1 % num2

// math object

sumval = Math.PI

sumval = Math.round(2.78)

sumval = Math.ceil(2.78)

sumval = Math.floor(2.78)

sumval = Math.sqrt(64)

sumval = Math.abs(-13)

sumval = Math.pow(8, 2)

sumval = Math.min(12, 34, 23)

sumval = Math.min(12, 34, 23)

sumval = Math.floor(Math.random * 24 + 1) // the *20 is the generator for 0-20. Add 1 to start with 1 - the floor then makes it without a decimal

console.log(sumval)

// Strings and concatenation

// / is an escapte character

let str1 = " this isn't a change"

// program to find all the

console.log(str1)

// charAt(1),indexOf('a'),substring(0,4),slice(0,4) Starts from the back as well., split,replace,includes

let str2 = str1.split(' ')

str2 = str1.replace('this', 'that')

str2 = str2.includes('this')

console.log(str2)

// template literals ES6 - no need to compile - older browsers may not work like IE7

const name1 = 'Ria'

const age1 = 23

const job = 'Actor'

const city = 'Mumbai'

// without template strings (es5)

html =

' Name:' +

name1 +

'   Age: ' +

age1 +

'   Job:' +

job +

'   City: ' +

city +

' </li> </ul> '

document.body.innerHTML = html // displaying html

function hellosay {

return 'new gello'

}

// with template strings

html = `

<ul>

<li>Name :${name1}</li>

<li>Age :${age1}</li>

<li>Job :${job}</li>

<li>City :${city}</li>

<li>New checks :${2 + 5}</li>

<li>City :${hellosay}</li>

<li>Consition :${age1 > 10 ? 'Over 10' : ' Under 10'}</li>

</ul>

`

document.body.innerHTML = html // displaying html

// arrays and iterations

const num12 = [1, 2, 3, 4, 5] // direct assignment

const num3 = new Array(52, 332, 3, 40) // contrstuctor new Array

const fruit = new Array('Apple', 'Banana', 'Pear')

const mixed = new Array('Hello', 22, undefined, null, { a: 1, b: 2 }, Date)

let val12

val12 = num12.length

val12 = Array.isArray(fruit) // useful for DOM

// Get a single value from a array

val12 = mixed[0]

// insert at teh array

fruit[5] = 'Mango'

val12 = mixed.indexOf(Date)

fruit.push('Chikoo') // add to end

fruit.unshift('Orange') // add to front

fruit.pop // take off front back

fruit.shift // take off fron front

fruit.splice(3, 2) // starting value and number of values to be reomoved

fruit.reverse // reversing arrays

val12 = fruit.concat(num12)

val12 = num3.sort /// / this doesnt give a direct correct answer - uses only the first digit to order whih is incorrect

// use the compare for the teh number arrays for the sorting

val12 = num3.sort(function (x, y) {

return x - y

})

// reverse sort

val12 = num3.sort(function (x, y) {

return y - x

})

// find testing function

function lessthan50 (numm) {

return numm > 50

}

function overthan50 (numm) {

return numm > 50

}

val12 = num12.find(lessthan50) // use an array that is not sorted for any function - sort makes a difference here

val12 = num12.find(overthan50)

console.log(val12)

console.log(fruit)

// object literals reference types

const persn = {

fname: 'steve',

lname: 'smith',

age: 25,

email: 'xyz@gmail.com',

hobbies: ['cooking', 'skiing', 'reading'],

address: {

city: 'Charlotte',

state: 'NC'

},

getBirthYear: function {

return 2018 - this.age // use of this to get the properties of the object

}

}

let person21

person21 = persn.fname

person21 = persn['lname']

person21 = persn.age

person21 = persn.address.state

person21 = persn.address['city']

person21 = persn.getBirthYear

console.log(person21)

const people = [

{ pname: 'new', page: 10 },

{ pname: 'new2', page: 12 },

{ pname: 'new3', page: 13 }

]

for (let i = 0; i < people.length; i++) {

console.log(people[i]['pname']) // same as people[i].pname

}

// trying out adding new objects towards teh end and also changing properties

people.push({ pname: 'angel' })

people[people.length - 1].page = 14

console.log(people[people.length - 1])

// Date and time

let dval

const todaydate = new Date // todays date by default

let bday = new Date('1-10-1986')

bday = new Date('march 18 1989') // different declarations

// getting date data

dval = todaydate.getMonth // Jan is 0 and then onwards

dval = todaydate.getDate

dval = todaydate.getDay // Mon is 1

dval = todaydate.getYear

dval = todaydate.getHours

dval = todaydate.getMinutes

dval = todaydate.getSeconds

dval = todaydate.getMilliseconds

dval = todaydate.getTime

// setting a date

bday.setMonth(10)

bday.setDate(15)

bday.setFullYear(1987)

bday.setHours(15)

bday.setMinutes(45)

bday.setSeconds(30)

console.log(bday)

console.log(dval)

console.log(typeof dval)

// if stamtement

const id = '100'

if (id == 100) {

// double ==

console.log('correct')

} else {

console.log('incorrect')

}

if (id != 100) {

//! = not equal

console.log('correct not queal')

} else {

console.log('incorrect not equal')

}

// this one takes care of value AND type as well

if (id === 100) {

// triple ===

console.log('correct')

} else {

console.log('incorrect')

}

if (id !== 100) {

// triple !==

console.log('correct not equal in type')

} else {

console.log('incorrect not equal in type')

}

// check if ID is defined

// use typeof instead of doing the id diretcly - else it would give an error if the var is not defined.

if (typeof id1 !== 'undefined') {

// note teh "" in undefined

console.log(`the id is ${id1}`)

} else {

console.log('not defined')

}

// great than and less than > <

// greater than and equal >=

// if else

const color = 'brown'

if (color == 'yellow') {

console.log(`color is yellow- ${color}`)

} else if (color == 'green') {

console.log(`color is green- ${color}`)

} else {

console.log(`color is just ${color}`)

}

// logical operator

// for more than one thing

const name23 = 'Steve'

const age23 = 45

if (age23 > 0 && age23 < 50) {

// && AND

console.log(`correct age of ${age23} for ${name23}`)

}

if (age23 < 50 || age23 < 40) {

// || OR

console.log(`correct age of ${age23} for ${name23}`)

}

// shporthand conditions

// Ternary operators

console.log(id === 100 ? 'Correct is 100' : 'Not 100')

// without braces - NOT Recommended

if (id === 100) console.log('that is correct')

else console.log('that is incorrect')

// swicth statements

const color2 = 'brown'

switch (color2) {

case 'yellow':

console.log(`color is yellow- ${color2}`)

break

case 'green':

onsole.log(`color is yellow- ${color2}`)

break

default:

console.log(`color is just ${color2}`)

break

}

let day

console.log(new Date.getDay + 5)

switch (new Date.getDay) {

case 0:

day = 'Weekend'

break

case 6:

day = 'Weekend'

break

default:

day = 'Weekday'

break

}

console.log(`today is ${day}`)

// functions

function greetme (fname = 'Default John') {

// default cuts off undefined

// if (typeof fname==="undefined"){fname="default"} before ES6

console.log('hello gellow ' + fname)

return 'retun hello gellow'

}

console.log(greetme)

// function expression

// using function as variable assignment

// named variable anonymous function

const sqr = function (x = 2) {

return x * x

}

// no argumetns are possible too dclare with an assignmnet in the argumnet section

console.log(sqr)

// default is 2 based on the declaration

// Immediately invokable function expressions - IIFE

// fucntion you declare and run at teh same time

; (function {

console.log('this worked IIFE')

}) // note teh in the end to make the function work

// the function has to be enclosed in

; (function (name) {

console.log('Hello on Tuesday ' + name)

console.log(`Hello on Tuesday this time ${name}`)

})('Steve') // note that argument was defined and then defaulted automatically

// Module design pattern - for instance the calorie counter - private methods and properties

// When placed inside an object - a function becomes a method

// Property mething

const todo = {

add: function {

console.log('Add to do..')

},

edit: function (id) {

console.log(`Edit to do ${id}`)

}

} // note the multiple methods within the same object

todo.add

todo.edit(45)

// Loops - for, do while and while

for (let i = 0; i <= 6; i++) {

// only let or var to be used for declare - no const

// can use if else statements for the breaks

// continue can be used to go into the next iteration instead of the next statement

if (i === 2) {

console.log('This is 2!')

continue // moves on to i=3 directly without printing next line

}

// break would get out of the loop and stop it

if (i === 4) {

console.log('This is 4!')

break // stops the printing and loop post 4

}

console.log(`number ${i}`)

}

// while loops - general rule - For loop when you know the limit of iterations and a while when the cieling is not clear

let j = 0

while (j < 6) {

console.log(`while number ${j}`)

j++

}

// do while loop - runs atleast once - irrespective of the condition added in

let i = 0

do {

console.log(`do while number ${i}`)

i++

} while (i < 0)

// Looping through arrays

const fruits = ['apple', 'pear', 'orange', 'banana']

// for loop for array

for (let i = 0; i < fruits.length; i++) {

console.log(fruits[i])

}

// for each takes in a anonymous function as a argument

// can access index as well as the whole array during any item access using ForEach

fruits.forEach(function (fruit, index, arrayfruit) {

console.log(`for each ${index}:${fruit}`)

console.log(arrayfruit)

})

// Map method

const users = [

{ ID: 1, NM: 'John' },

{ ID: 2, NM: 'Steve' },

{ ID: 3, NM: 'Bob' },

{ ID: 4, NM: 'Rob' }

]

// trying to make an array of IDs using MAP

// anonymous function

const IDs = users.map(function (user) {

return user.ID

})

console.log(IDs)

// For IN loop

const userper = {

first: 'Himani',

last: 'shipuri',

age: 33

}

// FOr in loop

for (let x in userper) {

console.log(`${x} :${userper[x]}`)

}

// Window object and Node Js

// Node JS - JS runtime that runs as a stand alone process on your machine/comp - your comp is your enviroment

// clinet site Js - window or browser is the enviroment - global enviroment

// chrome and nodejs use the same engine called v8

// Window has a lot - local strogage,fetch API

// window.document: document : DOM methof

// fetch - fecth http requests

// localstoruage

// window methods and properties

// alert

// window.alert("hello"); // can also say alert

// Prompt

// const input = prompt;

// alert(input);

// confrim - used berfore delete

// if(confirm("Are you sure?"))

// {

//  console.log("yes please")

// }

let val123

val123 = window.outerHeight // used during resize of window

val123 = window.outerWidth

val123 = window.innerHeight // dimensions within the scene

val123 = window.innerWidth

// Scroll points

val123 = window.scrollY // used for annimations show at a certain point

// Locatiobn object

val123 = window.location

val123 = window.location.hostname

val123 = window.location.port

val123 = window.location.href

val123 = window.location.search // show the query string where everything from ? onwards in the URL can be the taken

// redirect

// window.location.href="www.google.com"

// window.location.reload;//reload

// HIstory object - browse thrpugh history

// window.history.go(-3)

// val123= window.history.length // number of pages we have had in the history behind us

// Navigator object - has to do with the browser - not just the window - teh type of browser

val123 = window.navigator

val123 = window.navigator.appName

val123 = window.navigator.appVersion

val123 = window.navigator.userAgent

val123 = window.navigator.platform // Win32 for windows DarWin for mac

val123 = window.navigator.vendor

val123 = window.navigator.language

console.log(val123)

// scope for const and var and let

// global scope - not in any method or function

var a = 1

let b = 2

const c = 3

//fucntion scope

// function tester {

//  var a = 4

//  let b = 5

//  const c = 6

//  console.log('Function tester scope', a, b, c)

// }

// tester;

// if(true)

// {

//  //block scope

// var a = 4

// let b = 5

// const c = 6

// console.log('if scope', a, b, c) // only var changes globally - but let and const dont change - shows as 4 2 3 - hence var is not preferred

// }

for (let a=0;a<10;a++) //using let here makes the 'a' value gloabally the same (not 10) - but if they had the var - it would be 10 globally instead of 1/ Var is finction scope let const are block level scope

{

console.log(`loop scope : ${a}`)

}

console.log('Global scope', a, b, c)

<TESTER>

<NOTES>

//CSS measurements

Fixed pixels - 12 px is fixed

EM and REM are relative and can adjust based on the screensize

1 rem - 16px relative to the HTML font size (default 16 px)

rem - user can change the size of the font from browser

can change using browser setting - while px might not be able to accomodate any changes or setting from user - not good for accessibility

html font size can be changed or explicitly specified using

html {

font-size : 10px

}

in this case 1rem=10px and 2 rem=20px

Example :

border size is 0.1rem

padding is 0.5rem

this now makes everthing increase using the user settings

EM

Em works the same way - but the size is relative to teh parent element

for instance

.box {

font-size:30 px

}

now the same p with the 1em font size would have

font-size=30 px ( 1em = 30 px based on parent which is .box)

if there is no parent - then it automatically picks from the base HTML

with the box or parent element around - then the user settings would make sense to em - beucase the parent would change based on the HTML as well and that would change the em.

DIFFERCE BETWEEN REM AND EM

************

But if there is no parent and the em has to depend on HTML directly - the em will not be able to adapt to the user settings - since it  does not change based on HTML - though it does derive the base px value by default - but the settings of the HTML will not be taken into account.

***********

VH and VW - Viewport height and viewport width

Example with the

.box{

background : blue;

height : 20vh;

}

this takes 20 viewport height based on the browser

the whole screen ( irrepsective of size) is considered 100 slices so 20vh would mean 20% of those.

20 of those 100 slices.

paragraphs and body tags also have a margin and padding and to remove the margin we need to add one more piece in CSS

reset using this

* {

margin :0

padding :0

}

adding anything below the box

Hello

You wont be able to see the element on the screen if the height is set to height=100vh - since the whole screen is covered by this box area - you will have to scroll to see the element you have added below the box

GOOD WAY TO MAKE FULL SCREEN LANDING PAGES.

View port width - mostly not needed to be used often

widht : 50 vw - takes half the page and 100 vw goes completely acorss ( as it was by default)

For responsive - use REM - for making it more readable.

</NOTES>