diff --git a/README.md b/README.md index 0df9d5b..58b47eb 100644 --- a/README.md +++ b/README.md @@ -8,6 +8,10 @@ --- Add Link of URL in Readme ### Projects URL + - Sarthak Goel + - **[Portfolio](https://practical-mcnulty-daa87a.netlify.com)** + - **[Resume](https://nifty-kalam-55c9c2.netlify.com)** + - **[ToDoList](https://tender-turing-5ebc3e.netlify.com)** - **[Sandeep Ranjan](https://github.com/srsandy/DwarkaWebShowcases/tree/master/Summer2017/Sandeep%20Ranjan/Expenso)** - Avani Verma - **[Blogify](http://blogify-version4.bitballoon.com/)** @@ -17,7 +21,8 @@ - **[Calculator](http://cashier-suit-45113.bitballoon.com/)** - Nupur Baghel - **[Todolist](http://mercenary-cheetah-86354.bitballoon.com/)** - - **[PortFolio](http://coordinator-bird-67045.bitballoon.com/)** + - **[PortFolio](http://coordinator-bird-67045.bitballoon.com/)** + - Amartya Biswas - **[Todolist](http://fireman-florence-78507.bitballoon.com/)** - **[PortFolio](http://advisor-complexes-28855.bitballoon.com/)** @@ -54,17 +59,16 @@ - **[Google Map API Call](http://organist-aaron-32126.bitballoon.com/)** - ### Winter2018 - Dhruva Bhagdikar - **[Resume](http://dhruva.bitballoon.com)** - - **[To-do List](http://to-do-list-dhruva.bitballoon.com)* + - **[To-do List](http://to-do-list-dhruva.bitballoon.com)** + - **[Guardian-API](http://guardian-api.bitballoon.com)** - Praveen Shah - **[Resume](http://competent-morse-c4cea5.bitballoon.com)** - **[To-do List](http://upbeat-ritchie-9f6d9b.bitballoon.com)** - - **[To-do List](http://to-do-list-dhruva.bitballoon.com)** - Nikita Rai - **[Animation](http://modest-pasteur-ee6fff.bitballoon.com/)** @@ -73,4 +77,23 @@ - **[ToDo List](http://todogithub.bitballoon.com/)** - **[Weather API](https://www.bitballoon.com/sites/weatherapigithub)** +- Riya + - **[Resume](http://riya-resume-cb.bitballoon.com/)** + - **[ToDoList](http://todo-list-riya.bitballoon.com/)** + - **[Chat Bot API](http://clever-bot-riya.bitballoon.com/)** + +- Saksham Bhalla + - **[Animation](http://damping.bitballoon.com/)** + - **[Portfolio](http://sakshambhalla.bitballoon.com/)** + - **[Resume](http://sakshambhalla.bitballoon.com/resume)** + - **[ToDo List](http://saksham-todolist.bitballoon.com/)** + - **[University API](http://saksham-univ-finder.bitballoon.com/)** +- Shruti + - **[Resume](http://practical-fermi-48075e.bitballoon.com/)** + - **[ToDoList](http://quirky-wright-6cf6dd.bitballoon.com/)** + - **[Maths API](http://hardcore-booth-38eb2e.bitballoon.com/)** + +### Summer 2018 +- Ayush Poddar + - **[Portfolio](https://mr-magnificent.github.io/)** diff --git a/Sarthak Goel/Portfolio/images/arrow.jpg b/Sarthak Goel/Portfolio/images/arrow.jpg new file mode 100644 index 0000000..e31b49b --- /dev/null +++ b/Sarthak Goel/Portfolio/images/arrow.jpg @@ -0,0 +1,8 @@ + + + + + + + diff --git a/Sarthak Goel/Portfolio/images/cd-arrows.svg b/Sarthak Goel/Portfolio/images/cd-arrows.svg new file mode 100644 index 0000000..e31b49b --- /dev/null +++ b/Sarthak Goel/Portfolio/images/cd-arrows.svg @@ -0,0 +1,8 @@ + + + + + + + diff --git a/Sarthak Goel/Portfolio/images/fabian-irsara-92113-unsplash.jpg b/Sarthak Goel/Portfolio/images/fabian-irsara-92113-unsplash.jpg new file mode 100644 index 0000000..fa87c52 Binary files /dev/null and b/Sarthak Goel/Portfolio/images/fabian-irsara-92113-unsplash.jpg differ diff --git a/Sarthak Goel/Portfolio/images/modified.jpg b/Sarthak Goel/Portfolio/images/modified.jpg new file mode 100644 index 0000000..fbaa3ac Binary files /dev/null and b/Sarthak Goel/Portfolio/images/modified.jpg differ diff --git a/Sarthak Goel/Portfolio/images/original.jpg b/Sarthak Goel/Portfolio/images/original.jpg new file mode 100644 index 0000000..fdc775c Binary files /dev/null and b/Sarthak Goel/Portfolio/images/original.jpg differ diff --git a/Sarthak Goel/Portfolio/index.html b/Sarthak Goel/Portfolio/index.html new file mode 100644 index 0000000..610f45d --- /dev/null +++ b/Sarthak Goel/Portfolio/index.html @@ -0,0 +1,56 @@ + + + + + Sarthak Goel + + + + + + + + + + + + + +
+
+

PORTFOLIO

+
+
+
+ Original Image + Who I am +
+ + Modified Image + What I do +
+ + +
+
+
+

+
+
+
+
+
+
+ +
+ +
+ + + + + + diff --git a/Sarthak Goel/Portfolio/landing_page.css b/Sarthak Goel/Portfolio/landing_page.css new file mode 100644 index 0000000..7dd0bcd --- /dev/null +++ b/Sarthak Goel/Portfolio/landing_page.css @@ -0,0 +1,56 @@ +/* #background{ + position :absolute; + width:98%; + height:720px; +} */ +.container{ + display: flex; + flex-wrap: wrap; +} +body{ + background-color: #000033; +} +.container{ + border-radius:20% +} +.jumbotron>h1{ + font-size: 2em; +} +#box{ + position:absolute; + z-index: 100; + top:180px; + left:90px; + color:white; +} +#result{ + position:absolute; + z-index: 100; + top:300px; + left:980px; + color:white; + font-size: 1.5em; + /* background-color:#ccccff; */ + /* border-radius: 10%; */ + height:70px; + padding-top: 25px; + padding-left: 10px; + padding-right: 10px; +} +#box2,#box3{ + position:absolute; + z-index: 50; + top:400px; + left:980px; +} +#box3{ + top: 400px; + left:1120px; +} +#photo{ + width:150px; + height:150px; + border-radius:50%; + border: 5px solid white; + +} diff --git a/Sarthak Goel/Portfolio/landing_page.js b/Sarthak Goel/Portfolio/landing_page.js new file mode 100644 index 0000000..bc13d7d --- /dev/null +++ b/Sarthak Goel/Portfolio/landing_page.js @@ -0,0 +1,41 @@ + +var i = 0; +var txt = 'HI , I AM SARTHAK GOEL!'; /* The text */ +var speed = 200; /* The speed/duration of the effect in milliseconds */ + +function typeWriter() { + + //audioElement.play(); + if (i < txt.length) { + document.getElementById("result").innerHTML += txt.charAt(i); + + //audioElement.pause(); + setTimeout(typeWriter, speed); + i++; + } + + + if(i==txt.length) + { + + var btn=document.createElement('a'); + btn.className="btn btn-success"; + btn.href="portfolio.html"; + btn.id="know"; + btn.innerHTML="Know More"; + document.body.appendChild(btn); + document.getElementById('box2').appendChild(btn); + var btn2=document.createElement('a'); + btn2.className="btn btn-success"; + btn2.href="resume.html"; + btn2.innerHTML="Download Resume"; + document.body.appendChild(btn2); + document.getElementById('box3').appendChild(btn2); + i++; + } +} +setTimeout(typeWriter,1000); +// function but(){ +// +// } +// setTimeout(but,6000); diff --git a/Sarthak Goel/Portfolio/main.js b/Sarthak Goel/Portfolio/main.js new file mode 100644 index 0000000..a353c61 --- /dev/null +++ b/Sarthak Goel/Portfolio/main.js @@ -0,0 +1,117 @@ +jQuery(document).ready(function($){ + var dragging = false, + scrolling = false, + resizing = false; + //cache jQuery objects + var imageComparisonContainers = $('.cd-image-container'); + //check if the .cd-image-container is in the viewport + //if yes, animate it + checkPosition(imageComparisonContainers); + $(window).on('scroll', function(){ + if( !scrolling) { + scrolling = true; + ( !window.requestAnimationFrame ) + ? setTimeout(function(){checkPosition(imageComparisonContainers);}, 100) + : requestAnimationFrame(function(){checkPosition(imageComparisonContainers);}); + } + }); + + //make the .cd-handle element draggable and modify .cd-resize-img width according to its position + imageComparisonContainers.each(function(){ + var actual = $(this); + drags(actual.find('.cd-handle'), actual.find('.cd-resize-img'), actual, actual.find('.cd-image-label[data-type="original"]'), actual.find('.cd-image-label[data-type="modified"]')); + }); + + //upadate images label visibility + $(window).on('resize', function(){ + if( !resizing) { + resizing = true; + ( !window.requestAnimationFrame ) + ? setTimeout(function(){checkLabel(imageComparisonContainers);}, 100) + : requestAnimationFrame(function(){checkLabel(imageComparisonContainers);}); + } + }); + + function checkPosition(container) { + container.each(function(){ + var actualContainer = $(this); + if( $(window).scrollTop() + $(window).height()*0.5 > actualContainer.offset().top) { + actualContainer.addClass('is-visible'); + } + }); + + scrolling = false; + } + + function checkLabel(container) { + container.each(function(){ + var actual = $(this); + updateLabel(actual.find('.cd-image-label[data-type="modified"]'), actual.find('.cd-resize-img'), 'left'); + updateLabel(actual.find('.cd-image-label[data-type="original"]'), actual.find('.cd-resize-img'), 'right'); + }); + + resizing = false; + } + + //draggable funtionality - credits to http://css-tricks.com/snippets/jquery/draggable-without-jquery-ui/ + function drags(dragElement, resizeElement, container, labelContainer, labelResizeElement) { + dragElement.on("mousedown vmousedown", function(e) { + dragElement.addClass('draggable'); + resizeElement.addClass('resizable'); + + var dragWidth = dragElement.outerWidth(), + xPosition = dragElement.offset().left + dragWidth - e.pageX, + containerOffset = container.offset().left, + containerWidth = container.outerWidth(), + minLeft = containerOffset + 10, + maxLeft = containerOffset + containerWidth - dragWidth - 10; + + dragElement.parents().on("mousemove vmousemove", function(e) { + if( !dragging) { + dragging = true; + ( !window.requestAnimationFrame ) + ? setTimeout(function(){animateDraggedHandle(e, xPosition, dragWidth, minLeft, maxLeft, containerOffset, containerWidth, resizeElement, labelContainer, labelResizeElement);}, 100) + : requestAnimationFrame(function(){animateDraggedHandle(e, xPosition, dragWidth, minLeft, maxLeft, containerOffset, containerWidth, resizeElement, labelContainer, labelResizeElement);}); + } + }).on("mouseup vmouseup", function(e){ + dragElement.removeClass('draggable'); + resizeElement.removeClass('resizable'); + }); + e.preventDefault(); + }).on("mouseup vmouseup", function(e) { + dragElement.removeClass('draggable'); + resizeElement.removeClass('resizable'); + }); + } + + function animateDraggedHandle(e, xPosition, dragWidth, minLeft, maxLeft, containerOffset, containerWidth, resizeElement, labelContainer, labelResizeElement) { + var leftValue = e.pageX + xPosition - dragWidth; + //constrain the draggable element to move inside his container + if(leftValue < minLeft ) { + leftValue = minLeft; + } else if ( leftValue > maxLeft) { + leftValue = maxLeft; + } + + var widthValue = (leftValue + dragWidth/2 - containerOffset)*100/containerWidth+'%'; + + $('.draggable').css('left', widthValue).on("mouseup vmouseup", function() { + $(this).removeClass('draggable'); + resizeElement.removeClass('resizable'); + }); + + $('.resizable').css('width', widthValue); + + updateLabel(labelResizeElement, resizeElement, 'left'); + updateLabel(labelContainer, resizeElement, 'right'); + dragging = false; + } + + function updateLabel(label, resizeElement, position) { + if(position == 'left') { + ( label.offset().left + label.outerWidth() < resizeElement.offset().left + resizeElement.outerWidth() ) ? label.removeClass('is-hidden') : label.addClass('is-hidden') ; + } else { + ( label.offset().left > resizeElement.offset().left + resizeElement.outerWidth() ) ? label.removeClass('is-hidden') : label.addClass('is-hidden') ; + } + } +}); diff --git a/Sarthak Goel/Portfolio/modernizr.js b/Sarthak Goel/Portfolio/modernizr.js new file mode 100644 index 0000000..3365339 --- /dev/null +++ b/Sarthak Goel/Portfolio/modernizr.js @@ -0,0 +1,1406 @@ +/*! + * Modernizr v2.8.3 + * www.modernizr.com + * + * Copyright (c) Faruk Ates, Paul Irish, Alex Sexton + * Available under the BSD and MIT licenses: www.modernizr.com/license/ + */ + +/* + * Modernizr tests which native CSS3 and HTML5 features are available in + * the current UA and makes the results available to you in two ways: + * as properties on a global Modernizr object, and as classes on the + * element. This information allows you to progressively enhance + * your pages with a granular level of control over the experience. + * + * Modernizr has an optional (not included) conditional resource loader + * called Modernizr.load(), based on Yepnope.js (yepnopejs.com). + * To get a build that includes Modernizr.load(), as well as choosing + * which tests to include, go to www.modernizr.com/download/ + * + * Authors Faruk Ates, Paul Irish, Alex Sexton + * Contributors Ryan Seddon, Ben Alman + */ + +window.Modernizr = (function( window, document, undefined ) { + + var version = '2.8.3', + + Modernizr = {}, + + /*>>cssclasses*/ + // option for enabling the HTML classes to be added + enableClasses = true, + /*>>cssclasses*/ + + docElement = document.documentElement, + + /** + * Create our "modernizr" element that we do most feature tests on. + */ + mod = 'modernizr', + modElem = document.createElement(mod), + mStyle = modElem.style, + + /** + * Create the input element for various Web Forms feature tests. + */ + inputElem /*>>inputelem*/ = document.createElement('input') /*>>inputelem*/ , + + /*>>smile*/ + smile = ':)', + /*>>smile*/ + + toString = {}.toString, + + // TODO :: make the prefixes more granular + /*>>prefixes*/ + // List of property values to set for css tests. See ticket #21 + prefixes = ' -webkit- -moz- -o- -ms- '.split(' '), + /*>>prefixes*/ + + /*>>domprefixes*/ + // Following spec is to expose vendor-specific style properties as: + // elem.style.WebkitBorderRadius + // and the following would be incorrect: + // elem.style.webkitBorderRadius + + // Webkit ghosts their properties in lowercase but Opera & Moz do not. + // Microsoft uses a lowercase `ms` instead of the correct `Ms` in IE8+ + // erik.eae.net/archives/2008/03/10/21.48.10/ + + // More here: github.com/Modernizr/Modernizr/issues/issue/21 + omPrefixes = 'Webkit Moz O ms', + + cssomPrefixes = omPrefixes.split(' '), + + domPrefixes = omPrefixes.toLowerCase().split(' '), + /*>>domprefixes*/ + + /*>>ns*/ + ns = {'svg': 'http://www.w3.org/2000/svg'}, + /*>>ns*/ + + tests = {}, + inputs = {}, + attrs = {}, + + classes = [], + + slice = classes.slice, + + featureName, // used in testing loop + + + /*>>teststyles*/ + // Inject element with style element and some CSS rules + injectElementWithStyles = function( rule, callback, nodes, testnames ) { + + var style, ret, node, docOverflow, + div = document.createElement('div'), + // After page load injecting a fake body doesn't work so check if body exists + body = document.body, + // IE6 and 7 won't return offsetWidth or offsetHeight unless it's in the body element, so we fake it. + fakeBody = body || document.createElement('body'); + + if ( parseInt(nodes, 10) ) { + // In order not to give false positives we create a node for each test + // This also allows the method to scale for unspecified uses + while ( nodes-- ) { + node = document.createElement('div'); + node.id = testnames ? testnames[nodes] : mod + (nodes + 1); + div.appendChild(node); + } + } + + // '].join(''); + div.id = mod; + // IE6 will false positive on some tests due to the style element inside the test div somehow interfering offsetHeight, so insert it into body or fakebody. + // Opera will act all quirky when injecting elements in documentElement when page is served as xml, needs fakebody too. #270 + (body ? div : fakeBody).innerHTML += style; + fakeBody.appendChild(div); + if ( !body ) { + //avoid crashing IE8, if background image is used + fakeBody.style.background = ''; + //Safari 5.13/5.1.4 OSX stops loading if ::-webkit-scrollbar is used and scrollbars are visible + fakeBody.style.overflow = 'hidden'; + docOverflow = docElement.style.overflow; + docElement.style.overflow = 'hidden'; + docElement.appendChild(fakeBody); + } + + ret = callback(div, rule); + // If this is done after page load we don't want to remove the body so check if body exists + if ( !body ) { + fakeBody.parentNode.removeChild(fakeBody); + docElement.style.overflow = docOverflow; + } else { + div.parentNode.removeChild(div); + } + + return !!ret; + + }, + /*>>teststyles*/ + + /*>>mq*/ + // adapted from matchMedia polyfill + // by Scott Jehl and Paul Irish + // gist.github.com/786768 + testMediaQuery = function( mq ) { + + var matchMedia = window.matchMedia || window.msMatchMedia; + if ( matchMedia ) { + return matchMedia(mq) && matchMedia(mq).matches || false; + } + + var bool; + + injectElementWithStyles('@media ' + mq + ' { #' + mod + ' { position: absolute; } }', function( node ) { + bool = (window.getComputedStyle ? + getComputedStyle(node, null) : + node.currentStyle)['position'] == 'absolute'; + }); + + return bool; + + }, + /*>>mq*/ + + + /*>>hasevent*/ + // + // isEventSupported determines if a given element supports the given event + // kangax.github.com/iseventsupported/ + // + // The following results are known incorrects: + // Modernizr.hasEvent("webkitTransitionEnd", elem) // false negative + // Modernizr.hasEvent("textInput") // in Webkit. github.com/Modernizr/Modernizr/issues/333 + // ... + isEventSupported = (function() { + + var TAGNAMES = { + 'select': 'input', 'change': 'input', + 'submit': 'form', 'reset': 'form', + 'error': 'img', 'load': 'img', 'abort': 'img' + }; + + function isEventSupported( eventName, element ) { + + element = element || document.createElement(TAGNAMES[eventName] || 'div'); + eventName = 'on' + eventName; + + // When using `setAttribute`, IE skips "unload", WebKit skips "unload" and "resize", whereas `in` "catches" those + var isSupported = eventName in element; + + if ( !isSupported ) { + // If it has no `setAttribute` (i.e. doesn't implement Node interface), try generic element + if ( !element.setAttribute ) { + element = document.createElement('div'); + } + if ( element.setAttribute && element.removeAttribute ) { + element.setAttribute(eventName, ''); + isSupported = is(element[eventName], 'function'); + + // If property was created, "remove it" (by setting value to `undefined`) + if ( !is(element[eventName], 'undefined') ) { + element[eventName] = undefined; + } + element.removeAttribute(eventName); + } + } + + element = null; + return isSupported; + } + return isEventSupported; + })(), + /*>>hasevent*/ + + // TODO :: Add flag for hasownprop ? didn't last time + + // hasOwnProperty shim by kangax needed for Safari 2.0 support + _hasOwnProperty = ({}).hasOwnProperty, hasOwnProp; + + if ( !is(_hasOwnProperty, 'undefined') && !is(_hasOwnProperty.call, 'undefined') ) { + hasOwnProp = function (object, property) { + return _hasOwnProperty.call(object, property); + }; + } + else { + hasOwnProp = function (object, property) { /* yes, this can give false positives/negatives, but most of the time we don't care about those */ + return ((property in object) && is(object.constructor.prototype[property], 'undefined')); + }; + } + + // Adapted from ES5-shim https://github.com/kriskowal/es5-shim/blob/master/es5-shim.js + // es5.github.com/#x15.3.4.5 + + if (!Function.prototype.bind) { + Function.prototype.bind = function bind(that) { + + var target = this; + + if (typeof target != "function") { + throw new TypeError(); + } + + var args = slice.call(arguments, 1), + bound = function () { + + if (this instanceof bound) { + + var F = function(){}; + F.prototype = target.prototype; + var self = new F(); + + var result = target.apply( + self, + args.concat(slice.call(arguments)) + ); + if (Object(result) === result) { + return result; + } + return self; + + } else { + + return target.apply( + that, + args.concat(slice.call(arguments)) + ); + + } + + }; + + return bound; + }; + } + + /** + * setCss applies given styles to the Modernizr DOM node. + */ + function setCss( str ) { + mStyle.cssText = str; + } + + /** + * setCssAll extrapolates all vendor-specific css strings. + */ + function setCssAll( str1, str2 ) { + return setCss(prefixes.join(str1 + ';') + ( str2 || '' )); + } + + /** + * is returns a boolean for if typeof obj is exactly type. + */ + function is( obj, type ) { + return typeof obj === type; + } + + /** + * contains returns a boolean for if substr is found within str. + */ + function contains( str, substr ) { + return !!~('' + str).indexOf(substr); + } + + /*>>testprop*/ + + // testProps is a generic CSS / DOM property test. + + // In testing support for a given CSS property, it's legit to test: + // `elem.style[styleName] !== undefined` + // If the property is supported it will return an empty string, + // if unsupported it will return undefined. + + // We'll take advantage of this quick test and skip setting a style + // on our modernizr element, but instead just testing undefined vs + // empty string. + + // Because the testing of the CSS property names (with "-", as + // opposed to the camelCase DOM properties) is non-portable and + // non-standard but works in WebKit and IE (but not Gecko or Opera), + // we explicitly reject properties with dashes so that authors + // developing in WebKit or IE first don't end up with + // browser-specific content by accident. + + function testProps( props, prefixed ) { + for ( var i in props ) { + var prop = props[i]; + if ( !contains(prop, "-") && mStyle[prop] !== undefined ) { + return prefixed == 'pfx' ? prop : true; + } + } + return false; + } + /*>>testprop*/ + + // TODO :: add testDOMProps + /** + * testDOMProps is a generic DOM property test; if a browser supports + * a certain property, it won't return undefined for it. + */ + function testDOMProps( props, obj, elem ) { + for ( var i in props ) { + var item = obj[props[i]]; + if ( item !== undefined) { + + // return the property name as a string + if (elem === false) return props[i]; + + // let's bind a function + if (is(item, 'function')){ + // default to autobind unless override + return item.bind(elem || obj); + } + + // return the unbound function or obj or value + return item; + } + } + return false; + } + + /*>>testallprops*/ + /** + * testPropsAll tests a list of DOM properties we want to check against. + * We specify literally ALL possible (known and/or likely) properties on + * the element including the non-vendor prefixed one, for forward- + * compatibility. + */ + function testPropsAll( prop, prefixed, elem ) { + + var ucProp = prop.charAt(0).toUpperCase() + prop.slice(1), + props = (prop + ' ' + cssomPrefixes.join(ucProp + ' ') + ucProp).split(' '); + + // did they call .prefixed('boxSizing') or are we just testing a prop? + if(is(prefixed, "string") || is(prefixed, "undefined")) { + return testProps(props, prefixed); + + // otherwise, they called .prefixed('requestAnimationFrame', window[, elem]) + } else { + props = (prop + ' ' + (domPrefixes).join(ucProp + ' ') + ucProp).split(' '); + return testDOMProps(props, prefixed, elem); + } + } + /*>>testallprops*/ + + + /** + * Tests + * ----- + */ + + // The *new* flexbox + // dev.w3.org/csswg/css3-flexbox + + tests['flexbox'] = function() { + return testPropsAll('flexWrap'); + }; + + // The *old* flexbox + // www.w3.org/TR/2009/WD-css3-flexbox-20090723/ + + tests['flexboxlegacy'] = function() { + return testPropsAll('boxDirection'); + }; + + // On the S60 and BB Storm, getContext exists, but always returns undefined + // so we actually have to call getContext() to verify + // github.com/Modernizr/Modernizr/issues/issue/97/ + + tests['canvas'] = function() { + var elem = document.createElement('canvas'); + return !!(elem.getContext && elem.getContext('2d')); + }; + + tests['canvastext'] = function() { + return !!(Modernizr['canvas'] && is(document.createElement('canvas').getContext('2d').fillText, 'function')); + }; + + // webk.it/70117 is tracking a legit WebGL feature detect proposal + + // We do a soft detect which may false positive in order to avoid + // an expensive context creation: bugzil.la/732441 + + tests['webgl'] = function() { + return !!window.WebGLRenderingContext; + }; + + /* + * The Modernizr.touch test only indicates if the browser supports + * touch events, which does not necessarily reflect a touchscreen + * device, as evidenced by tablets running Windows 7 or, alas, + * the Palm Pre / WebOS (touch) phones. + * + * Additionally, Chrome (desktop) used to lie about its support on this, + * but that has since been rectified: crbug.com/36415 + * + * We also test for Firefox 4 Multitouch Support. + * + * For more info, see: modernizr.github.com/Modernizr/touch.html + */ + + tests['touch'] = function() { + var bool; + + if(('ontouchstart' in window) || window.DocumentTouch && document instanceof DocumentTouch) { + bool = true; + } else { + injectElementWithStyles(['@media (',prefixes.join('touch-enabled),('),mod,')','{#modernizr{top:9px;position:absolute}}'].join(''), function( node ) { + bool = node.offsetTop === 9; + }); + } + + return bool; + }; + + + // geolocation is often considered a trivial feature detect... + // Turns out, it's quite tricky to get right: + // + // Using !!navigator.geolocation does two things we don't want. It: + // 1. Leaks memory in IE9: github.com/Modernizr/Modernizr/issues/513 + // 2. Disables page caching in WebKit: webk.it/43956 + // + // Meanwhile, in Firefox < 8, an about:config setting could expose + // a false positive that would throw an exception: bugzil.la/688158 + + tests['geolocation'] = function() { + return 'geolocation' in navigator; + }; + + + tests['postmessage'] = function() { + return !!window.postMessage; + }; + + + // Chrome incognito mode used to throw an exception when using openDatabase + // It doesn't anymore. + tests['websqldatabase'] = function() { + return !!window.openDatabase; + }; + + // Vendors had inconsistent prefixing with the experimental Indexed DB: + // - Webkit's implementation is accessible through webkitIndexedDB + // - Firefox shipped moz_indexedDB before FF4b9, but since then has been mozIndexedDB + // For speed, we don't test the legacy (and beta-only) indexedDB + tests['indexedDB'] = function() { + return !!testPropsAll("indexedDB", window); + }; + + // documentMode logic from YUI to filter out IE8 Compat Mode + // which false positives. + tests['hashchange'] = function() { + return isEventSupported('hashchange', window) && (document.documentMode === undefined || document.documentMode > 7); + }; + + // Per 1.6: + // This used to be Modernizr.historymanagement but the longer + // name has been deprecated in favor of a shorter and property-matching one. + // The old API is still available in 1.6, but as of 2.0 will throw a warning, + // and in the first release thereafter disappear entirely. + tests['history'] = function() { + return !!(window.history && history.pushState); + }; + + tests['draganddrop'] = function() { + var div = document.createElement('div'); + return ('draggable' in div) || ('ondragstart' in div && 'ondrop' in div); + }; + + // FF3.6 was EOL'ed on 4/24/12, but the ESR version of FF10 + // will be supported until FF19 (2/12/13), at which time, ESR becomes FF17. + // FF10 still uses prefixes, so check for it until then. + // for more ESR info, see: mozilla.org/en-US/firefox/organizations/faq/ + tests['websockets'] = function() { + return 'WebSocket' in window || 'MozWebSocket' in window; + }; + + + // css-tricks.com/rgba-browser-support/ + tests['rgba'] = function() { + // Set an rgba() color and check the returned value + + setCss('background-color:rgba(150,255,150,.5)'); + + return contains(mStyle.backgroundColor, 'rgba'); + }; + + tests['hsla'] = function() { + // Same as rgba(), in fact, browsers re-map hsla() to rgba() internally, + // except IE9 who retains it as hsla + + setCss('background-color:hsla(120,40%,100%,.5)'); + + return contains(mStyle.backgroundColor, 'rgba') || contains(mStyle.backgroundColor, 'hsla'); + }; + + tests['multiplebgs'] = function() { + // Setting multiple images AND a color on the background shorthand property + // and then querying the style.background property value for the number of + // occurrences of "url(" is a reliable method for detecting ACTUAL support for this! + + setCss('background:url(https://),url(https://),red url(https://)'); + + // If the UA supports multiple backgrounds, there should be three occurrences + // of the string "url(" in the return value for elemStyle.background + + return (/(url\s*\(.*?){3}/).test(mStyle.background); + }; + + + + // this will false positive in Opera Mini + // github.com/Modernizr/Modernizr/issues/396 + + tests['backgroundsize'] = function() { + return testPropsAll('backgroundSize'); + }; + + tests['borderimage'] = function() { + return testPropsAll('borderImage'); + }; + + + // Super comprehensive table about all the unique implementations of + // border-radius: muddledramblings.com/table-of-css3-border-radius-compliance + + tests['borderradius'] = function() { + return testPropsAll('borderRadius'); + }; + + // WebOS unfortunately false positives on this test. + tests['boxshadow'] = function() { + return testPropsAll('boxShadow'); + }; + + // FF3.0 will false positive on this test + tests['textshadow'] = function() { + return document.createElement('div').style.textShadow === ''; + }; + + + tests['opacity'] = function() { + // Browsers that actually have CSS Opacity implemented have done so + // according to spec, which means their return values are within the + // range of [0.0,1.0] - including the leading zero. + + setCssAll('opacity:.55'); + + // The non-literal . in this regex is intentional: + // German Chrome returns this value as 0,55 + // github.com/Modernizr/Modernizr/issues/#issue/59/comment/516632 + return (/^0.55$/).test(mStyle.opacity); + }; + + + // Note, Android < 4 will pass this test, but can only animate + // a single property at a time + // goo.gl/v3V4Gp + tests['cssanimations'] = function() { + return testPropsAll('animationName'); + }; + + + tests['csscolumns'] = function() { + return testPropsAll('columnCount'); + }; + + + tests['cssgradients'] = function() { + /** + * For CSS Gradients syntax, please see: + * webkit.org/blog/175/introducing-css-gradients/ + * developer.mozilla.org/en/CSS/-moz-linear-gradient + * developer.mozilla.org/en/CSS/-moz-radial-gradient + * dev.w3.org/csswg/css3-images/#gradients- + */ + + var str1 = 'background-image:', + str2 = 'gradient(linear,left top,right bottom,from(#9f9),to(white));', + str3 = 'linear-gradient(left top,#9f9, white);'; + + setCss( + // legacy webkit syntax (FIXME: remove when syntax not in use anymore) + (str1 + '-webkit- '.split(' ').join(str2 + str1) + + // standard syntax // trailing 'background-image:' + prefixes.join(str3 + str1)).slice(0, -str1.length) + ); + + return contains(mStyle.backgroundImage, 'gradient'); + }; + + + tests['cssreflections'] = function() { + return testPropsAll('boxReflect'); + }; + + + tests['csstransforms'] = function() { + return !!testPropsAll('transform'); + }; + + + tests['csstransforms3d'] = function() { + + var ret = !!testPropsAll('perspective'); + + // Webkit's 3D transforms are passed off to the browser's own graphics renderer. + // It works fine in Safari on Leopard and Snow Leopard, but not in Chrome in + // some conditions. As a result, Webkit typically recognizes the syntax but + // will sometimes throw a false positive, thus we must do a more thorough check: + if ( ret && 'webkitPerspective' in docElement.style ) { + + // Webkit allows this media query to succeed only if the feature is enabled. + // `@media (transform-3d),(-webkit-transform-3d){ ... }` + injectElementWithStyles('@media (transform-3d),(-webkit-transform-3d){#modernizr{left:9px;position:absolute;height:3px;}}', function( node, rule ) { + ret = node.offsetLeft === 9 && node.offsetHeight === 3; + }); + } + return ret; + }; + + + tests['csstransitions'] = function() { + return testPropsAll('transition'); + }; + + + /*>>fontface*/ + // @font-face detection routine by Diego Perini + // javascript.nwbox.com/CSSSupport/ + + // false positives: + // WebOS github.com/Modernizr/Modernizr/issues/342 + // WP7 github.com/Modernizr/Modernizr/issues/538 + tests['fontface'] = function() { + var bool; + + injectElementWithStyles('@font-face {font-family:"font";src:url("https://")}', function( node, rule ) { + var style = document.getElementById('smodernizr'), + sheet = style.sheet || style.styleSheet, + cssText = sheet ? (sheet.cssRules && sheet.cssRules[0] ? sheet.cssRules[0].cssText : sheet.cssText || '') : ''; + + bool = /src/i.test(cssText) && cssText.indexOf(rule.split(' ')[0]) === 0; + }); + + return bool; + }; + /*>>fontface*/ + + // CSS generated content detection + tests['generatedcontent'] = function() { + var bool; + + injectElementWithStyles(['#',mod,'{font:0/0 a}#',mod,':after{content:"',smile,'";visibility:hidden;font:3px/1 a}'].join(''), function( node ) { + bool = node.offsetHeight >= 3; + }); + + return bool; + }; + + + + // These tests evaluate support of the video/audio elements, as well as + // testing what types of content they support. + // + // We're using the Boolean constructor here, so that we can extend the value + // e.g. Modernizr.video // true + // Modernizr.video.ogg // 'probably' + // + // Codec values from : github.com/NielsLeenheer/html5test/blob/9106a8/index.html#L845 + // thx to NielsLeenheer and zcorpan + + // Note: in some older browsers, "no" was a return value instead of empty string. + // It was live in FF3.5.0 and 3.5.1, but fixed in 3.5.2 + // It was also live in Safari 4.0.0 - 4.0.4, but fixed in 4.0.5 + + tests['video'] = function() { + var elem = document.createElement('video'), + bool = false; + + // IE9 Running on Windows Server SKU can cause an exception to be thrown, bug #224 + try { + if ( bool = !!elem.canPlayType ) { + bool = new Boolean(bool); + bool.ogg = elem.canPlayType('video/ogg; codecs="theora"') .replace(/^no$/,''); + + // Without QuickTime, this value will be `undefined`. github.com/Modernizr/Modernizr/issues/546 + bool.h264 = elem.canPlayType('video/mp4; codecs="avc1.42E01E"') .replace(/^no$/,''); + + bool.webm = elem.canPlayType('video/webm; codecs="vp8, vorbis"').replace(/^no$/,''); + } + + } catch(e) { } + + return bool; + }; + + tests['audio'] = function() { + var elem = document.createElement('audio'), + bool = false; + + try { + if ( bool = !!elem.canPlayType ) { + bool = new Boolean(bool); + bool.ogg = elem.canPlayType('audio/ogg; codecs="vorbis"').replace(/^no$/,''); + bool.mp3 = elem.canPlayType('audio/mpeg;') .replace(/^no$/,''); + + // Mimetypes accepted: + // developer.mozilla.org/En/Media_formats_supported_by_the_audio_and_video_elements + // bit.ly/iphoneoscodecs + bool.wav = elem.canPlayType('audio/wav; codecs="1"') .replace(/^no$/,''); + bool.m4a = ( elem.canPlayType('audio/x-m4a;') || + elem.canPlayType('audio/aac;')) .replace(/^no$/,''); + } + } catch(e) { } + + return bool; + }; + + + // In FF4, if disabled, window.localStorage should === null. + + // Normally, we could not test that directly and need to do a + // `('localStorage' in window) && ` test first because otherwise Firefox will + // throw bugzil.la/365772 if cookies are disabled + + // Also in iOS5 Private Browsing mode, attempting to use localStorage.setItem + // will throw the exception: + // QUOTA_EXCEEDED_ERRROR DOM Exception 22. + // Peculiarly, getItem and removeItem calls do not throw. + + // Because we are forced to try/catch this, we'll go aggressive. + + // Just FWIW: IE8 Compat mode supports these features completely: + // www.quirksmode.org/dom/html5.html + // But IE8 doesn't support either with local files + + tests['localstorage'] = function() { + try { + localStorage.setItem(mod, mod); + localStorage.removeItem(mod); + return true; + } catch(e) { + return false; + } + }; + + tests['sessionstorage'] = function() { + try { + sessionStorage.setItem(mod, mod); + sessionStorage.removeItem(mod); + return true; + } catch(e) { + return false; + } + }; + + + tests['webworkers'] = function() { + return !!window.Worker; + }; + + + tests['applicationcache'] = function() { + return !!window.applicationCache; + }; + + + // Thanks to Erik Dahlstrom + tests['svg'] = function() { + return !!document.createElementNS && !!document.createElementNS(ns.svg, 'svg').createSVGRect; + }; + + // specifically for SVG inline in HTML, not within XHTML + // test page: paulirish.com/demo/inline-svg + tests['inlinesvg'] = function() { + var div = document.createElement('div'); + div.innerHTML = ''; + return (div.firstChild && div.firstChild.namespaceURI) == ns.svg; + }; + + // SVG SMIL animation + tests['smil'] = function() { + return !!document.createElementNS && /SVGAnimate/.test(toString.call(document.createElementNS(ns.svg, 'animate'))); + }; + + // This test is only for clip paths in SVG proper, not clip paths on HTML content + // demo: srufaculty.sru.edu/david.dailey/svg/newstuff/clipPath4.svg + + // However read the comments to dig into applying SVG clippaths to HTML content here: + // github.com/Modernizr/Modernizr/issues/213#issuecomment-1149491 + tests['svgclippaths'] = function() { + return !!document.createElementNS && /SVGClipPath/.test(toString.call(document.createElementNS(ns.svg, 'clipPath'))); + }; + + /*>>webforms*/ + // input features and input types go directly onto the ret object, bypassing the tests loop. + // Hold this guy to execute in a moment. + function webforms() { + /*>>input*/ + // Run through HTML5's new input attributes to see if the UA understands any. + // We're using f which is the element created early on + // Mike Taylr has created a comprehensive resource for testing these attributes + // when applied to all input types: + // miketaylr.com/code/input-type-attr.html + // spec: www.whatwg.org/specs/web-apps/current-work/multipage/the-input-element.html#input-type-attr-summary + + // Only input placeholder is tested while textarea's placeholder is not. + // Currently Safari 4 and Opera 11 have support only for the input placeholder + // Both tests are available in feature-detects/forms-placeholder.js + Modernizr['input'] = (function( props ) { + for ( var i = 0, len = props.length; i < len; i++ ) { + attrs[ props[i] ] = !!(props[i] in inputElem); + } + if (attrs.list){ + // safari false positive's on datalist: webk.it/74252 + // see also github.com/Modernizr/Modernizr/issues/146 + attrs.list = !!(document.createElement('datalist') && window.HTMLDataListElement); + } + return attrs; + })('autocomplete autofocus list placeholder max min multiple pattern required step'.split(' ')); + /*>>input*/ + + /*>>inputtypes*/ + // Run through HTML5's new input types to see if the UA understands any. + // This is put behind the tests runloop because it doesn't return a + // true/false like all the other tests; instead, it returns an object + // containing each input type with its corresponding true/false value + + // Big thanks to @miketaylr for the html5 forms expertise. miketaylr.com/ + Modernizr['inputtypes'] = (function(props) { + + for ( var i = 0, bool, inputElemType, defaultView, len = props.length; i < len; i++ ) { + + inputElem.setAttribute('type', inputElemType = props[i]); + bool = inputElem.type !== 'text'; + + // We first check to see if the type we give it sticks.. + // If the type does, we feed it a textual value, which shouldn't be valid. + // If the value doesn't stick, we know there's input sanitization which infers a custom UI + if ( bool ) { + + inputElem.value = smile; + inputElem.style.cssText = 'position:absolute;visibility:hidden;'; + + if ( /^range$/.test(inputElemType) && inputElem.style.WebkitAppearance !== undefined ) { + + docElement.appendChild(inputElem); + defaultView = document.defaultView; + + // Safari 2-4 allows the smiley as a value, despite making a slider + bool = defaultView.getComputedStyle && + defaultView.getComputedStyle(inputElem, null).WebkitAppearance !== 'textfield' && + // Mobile android web browser has false positive, so must + // check the height to see if the widget is actually there. + (inputElem.offsetHeight !== 0); + + docElement.removeChild(inputElem); + + } else if ( /^(search|tel)$/.test(inputElemType) ){ + // Spec doesn't define any special parsing or detectable UI + // behaviors so we pass these through as true + + // Interestingly, opera fails the earlier test, so it doesn't + // even make it here. + + } else if ( /^(url|email)$/.test(inputElemType) ) { + // Real url and email support comes with prebaked validation. + bool = inputElem.checkValidity && inputElem.checkValidity() === false; + + } else { + // If the upgraded input compontent rejects the :) text, we got a winner + bool = inputElem.value != smile; + } + } + + inputs[ props[i] ] = !!bool; + } + return inputs; + })('search tel url email datetime date month week time datetime-local number range color'.split(' ')); + /*>>inputtypes*/ + } + /*>>webforms*/ + + + // End of test definitions + // ----------------------- + + + + // Run through all tests and detect their support in the current UA. + // todo: hypothetically we could be doing an array of tests and use a basic loop here. + for ( var feature in tests ) { + if ( hasOwnProp(tests, feature) ) { + // run the test, throw the return value into the Modernizr, + // then based on that boolean, define an appropriate className + // and push it into an array of classes we'll join later. + featureName = feature.toLowerCase(); + Modernizr[featureName] = tests[feature](); + + classes.push((Modernizr[featureName] ? '' : 'no-') + featureName); + } + } + + /*>>webforms*/ + // input tests need to run. + Modernizr.input || webforms(); + /*>>webforms*/ + + + /** + * addTest allows the user to define their own feature tests + * the result will be added onto the Modernizr object, + * as well as an appropriate className set on the html element + * + * @param feature - String naming the feature + * @param test - Function returning true if feature is supported, false if not + */ + Modernizr.addTest = function ( feature, test ) { + if ( typeof feature == 'object' ) { + for ( var key in feature ) { + if ( hasOwnProp( feature, key ) ) { + Modernizr.addTest( key, feature[ key ] ); + } + } + } else { + + feature = feature.toLowerCase(); + + if ( Modernizr[feature] !== undefined ) { + // we're going to quit if you're trying to overwrite an existing test + // if we were to allow it, we'd do this: + // var re = new RegExp("\\b(no-)?" + feature + "\\b"); + // docElement.className = docElement.className.replace( re, '' ); + // but, no rly, stuff 'em. + return Modernizr; + } + + test = typeof test == 'function' ? test() : test; + + if (typeof enableClasses !== "undefined" && enableClasses) { + docElement.className += ' ' + (test ? '' : 'no-') + feature; + } + Modernizr[feature] = test; + + } + + return Modernizr; // allow chaining. + }; + + + // Reset modElem.cssText to nothing to reduce memory footprint. + setCss(''); + modElem = inputElem = null; + + /*>>shiv*/ + /** + * @preserve HTML5 Shiv prev3.7.1 | @afarkas @jdalton @jon_neal @rem | MIT/GPL2 Licensed + */ + ;(function(window, document) { + /*jshint evil:true */ + /** version */ + var version = '3.7.0'; + + /** Preset options */ + var options = window.html5 || {}; + + /** Used to skip problem elements */ + var reSkip = /^<|^(?:button|map|select|textarea|object|iframe|option|optgroup)$/i; + + /** Not all elements can be cloned in IE **/ + var saveClones = /^(?:a|b|code|div|fieldset|h1|h2|h3|h4|h5|h6|i|label|li|ol|p|q|span|strong|style|table|tbody|td|th|tr|ul)$/i; + + /** Detect whether the browser supports default html5 styles */ + var supportsHtml5Styles; + + /** Name of the expando, to work with multiple documents or to re-shiv one document */ + var expando = '_html5shiv'; + + /** The id for the the documents expando */ + var expanID = 0; + + /** Cached data for each document */ + var expandoData = {}; + + /** Detect whether the browser supports unknown elements */ + var supportsUnknownElements; + + (function() { + try { + var a = document.createElement('a'); + a.innerHTML = ''; + //if the hidden property is implemented we can assume, that the browser supports basic HTML5 Styles + supportsHtml5Styles = ('hidden' in a); + + supportsUnknownElements = a.childNodes.length == 1 || (function() { + // assign a false positive if unable to shiv + (document.createElement)('a'); + var frag = document.createDocumentFragment(); + return ( + typeof frag.cloneNode == 'undefined' || + typeof frag.createDocumentFragment == 'undefined' || + typeof frag.createElement == 'undefined' + ); + }()); + } catch(e) { + // assign a false positive if detection fails => unable to shiv + supportsHtml5Styles = true; + supportsUnknownElements = true; + } + + }()); + + /*--------------------------------------------------------------------------*/ + + /** + * Creates a style sheet with the given CSS text and adds it to the document. + * @private + * @param {Document} ownerDocument The document. + * @param {String} cssText The CSS text. + * @returns {StyleSheet} The style element. + */ + function addStyleSheet(ownerDocument, cssText) { + var p = ownerDocument.createElement('p'), + parent = ownerDocument.getElementsByTagName('head')[0] || ownerDocument.documentElement; + + p.innerHTML = 'x'; + return parent.insertBefore(p.lastChild, parent.firstChild); + } + + /** + * Returns the value of `html5.elements` as an array. + * @private + * @returns {Array} An array of shived element node names. + */ + function getElements() { + var elements = html5.elements; + return typeof elements == 'string' ? elements.split(' ') : elements; + } + + /** + * Returns the data associated to the given document + * @private + * @param {Document} ownerDocument The document. + * @returns {Object} An object of data. + */ + function getExpandoData(ownerDocument) { + var data = expandoData[ownerDocument[expando]]; + if (!data) { + data = {}; + expanID++; + ownerDocument[expando] = expanID; + expandoData[expanID] = data; + } + return data; + } + + /** + * returns a shived element for the given nodeName and document + * @memberOf html5 + * @param {String} nodeName name of the element + * @param {Document} ownerDocument The context document. + * @returns {Object} The shived element. + */ + function createElement(nodeName, ownerDocument, data){ + if (!ownerDocument) { + ownerDocument = document; + } + if(supportsUnknownElements){ + return ownerDocument.createElement(nodeName); + } + if (!data) { + data = getExpandoData(ownerDocument); + } + var node; + + if (data.cache[nodeName]) { + node = data.cache[nodeName].cloneNode(); + } else if (saveClones.test(nodeName)) { + node = (data.cache[nodeName] = data.createElem(nodeName)).cloneNode(); + } else { + node = data.createElem(nodeName); + } + + // Avoid adding some elements to fragments in IE < 9 because + // * Attributes like `name` or `type` cannot be set/changed once an element + // is inserted into a document/fragment + // * Link elements with `src` attributes that are inaccessible, as with + // a 403 response, will cause the tab/window to crash + // * Script elements appended to fragments will execute when their `src` + // or `text` property is set + return node.canHaveChildren && !reSkip.test(nodeName) && !node.tagUrn ? data.frag.appendChild(node) : node; + } + + /** + * returns a shived DocumentFragment for the given document + * @memberOf html5 + * @param {Document} ownerDocument The context document. + * @returns {Object} The shived DocumentFragment. + */ + function createDocumentFragment(ownerDocument, data){ + if (!ownerDocument) { + ownerDocument = document; + } + if(supportsUnknownElements){ + return ownerDocument.createDocumentFragment(); + } + data = data || getExpandoData(ownerDocument); + var clone = data.frag.cloneNode(), + i = 0, + elems = getElements(), + l = elems.length; + for(;i>shiv*/ + + // Assign private properties to the return object with prefix + Modernizr._version = version; + + // expose these for the plugin API. Look in the source for how to join() them against your input + /*>>prefixes*/ + Modernizr._prefixes = prefixes; + /*>>prefixes*/ + /*>>domprefixes*/ + Modernizr._domPrefixes = domPrefixes; + Modernizr._cssomPrefixes = cssomPrefixes; + /*>>domprefixes*/ + + /*>>mq*/ + // Modernizr.mq tests a given media query, live against the current state of the window + // A few important notes: + // * If a browser does not support media queries at all (eg. oldIE) the mq() will always return false + // * A max-width or orientation query will be evaluated against the current state, which may change later. + // * You must specify values. Eg. If you are testing support for the min-width media query use: + // Modernizr.mq('(min-width:0)') + // usage: + // Modernizr.mq('only screen and (max-width:768)') + Modernizr.mq = testMediaQuery; + /*>>mq*/ + + /*>>hasevent*/ + // Modernizr.hasEvent() detects support for a given event, with an optional element to test on + // Modernizr.hasEvent('gesturestart', elem) + Modernizr.hasEvent = isEventSupported; + /*>>hasevent*/ + + /*>>testprop*/ + // Modernizr.testProp() investigates whether a given style property is recognized + // Note that the property names must be provided in the camelCase variant. + // Modernizr.testProp('pointerEvents') + Modernizr.testProp = function(prop){ + return testProps([prop]); + }; + /*>>testprop*/ + + /*>>testallprops*/ + // Modernizr.testAllProps() investigates whether a given style property, + // or any of its vendor-prefixed variants, is recognized + // Note that the property names must be provided in the camelCase variant. + // Modernizr.testAllProps('boxSizing') + Modernizr.testAllProps = testPropsAll; + /*>>testallprops*/ + + + /*>>teststyles*/ + // Modernizr.testStyles() allows you to add custom styles to the document and test an element afterwards + // Modernizr.testStyles('#modernizr { position:absolute }', function(elem, rule){ ... }) + Modernizr.testStyles = injectElementWithStyles; + /*>>teststyles*/ + + + /*>>prefixed*/ + // Modernizr.prefixed() returns the prefixed or nonprefixed property name variant of your input + // Modernizr.prefixed('boxSizing') // 'MozBoxSizing' + + // Properties must be passed as dom-style camelcase, rather than `box-sizing` hypentated style. + // Return values will also be the camelCase variant, if you need to translate that to hypenated style use: + // + // str.replace(/([A-Z])/g, function(str,m1){ return '-' + m1.toLowerCase(); }).replace(/^ms-/,'-ms-'); + + // If you're trying to ascertain which transition end event to bind to, you might do something like... + // + // var transEndEventNames = { + // 'WebkitTransition' : 'webkitTransitionEnd', + // 'MozTransition' : 'transitionend', + // 'OTransition' : 'oTransitionEnd', + // 'msTransition' : 'MSTransitionEnd', + // 'transition' : 'transitionend' + // }, + // transEndEventName = transEndEventNames[ Modernizr.prefixed('transition') ]; + + Modernizr.prefixed = function(prop, obj, elem){ + if(!obj) { + return testPropsAll(prop, 'pfx'); + } else { + // Testing DOM property e.g. Modernizr.prefixed('requestAnimationFrame', window) // 'mozRequestAnimationFrame' + return testPropsAll(prop, obj, elem); + } + }; + /*>>prefixed*/ + + + /*>>cssclasses*/ + // Remove "no-js" class from element, if it exists: + docElement.className = docElement.className.replace(/(^|\s)no-js(\s|$)/, '$1$2') + + + // Add the new classes to the element. + (enableClasses ? ' js ' + classes.join(' ') : ''); + /*>>cssclasses*/ + + return Modernizr; + +})(this, this.document); diff --git a/Sarthak Goel/Portfolio/portfolio.css b/Sarthak Goel/Portfolio/portfolio.css new file mode 100644 index 0000000..c400d2e --- /dev/null +++ b/Sarthak Goel/Portfolio/portfolio.css @@ -0,0 +1,197 @@ + html, body { + margin: 0; + padding: 0; + /* background-color:#000033; */ + /* background-image: url(https://lh3.googleusercontent.com/e7TitxeMXgGbOT-PhRfHH9etKwwE-EKdodDwhbcMOFJPJf2iMtY4YZcsA0Wip7GOgg=w300); */ + } + + * { + font-family: Helvetica, Arial, sans-serif; + font-weight: 400; + + } + + .strip { + width: 100%; + } + .inner { + /* background-image: url(https://lh3.googleusercontent.com/e7TitxeMXgGbOT-PhRfHH9etKwwE-EKdodDwhbcMOFJPJf2iMtY4YZcsA0Wip7GOgg=w300); */ + padding: 0px 50px; + padding-bottom: 15px; + display: inline-block; + /* background:#000033; */ + width: 100%; + } + + .inner img { + width: 150px; + height: 150px; + border-radius: 50%; + -webkit-border-radius: 50%; + -moz-border-radius: 50%; + -o-border-radius: 50%; + border: 5px solid white; + } + + .tagline h2 { + color: white; + text-align: center; + margin:55px; + } + .intro-text h1 + { + color:white; + text-align: center; + } + .tagline h2 { + font-size: 160%; + background-color: rgb(100, 100, 100); + display: inline-block; + padding: 14px 36px; + } +h2{ + color: white; +} + .centered { + text-align: center; + } +#Education,#TestScores{ + background-color: #ebebe0; +} + +/* #AboutMe{ + background-image: url(https://encrypted-tbn0.gstatic.com/images?q=tbn:ANd9GcTmtop5i8qq41oiPNMicaU2nTlHKlMN1qFtxUWRRmsTsX4VguJo); + +} */ +.container-fluid { + width: 85%; + max-width: 1024px; + margin: 0 auto; +} + +.container-text { + font-size: 120%; + text-align: justify; +} + + +.progress { + background-color: rgb(50, 50, 50); + height: 30px; + margin-bottom: 20px; + border-radius: 0; + -webkit-border-radius: 0; + -moz-border-radius: 0; + -o-border-radius: 0; +} + +.progress-bar { + line-height: 30px; + font-size: 114%; + text-align: left; + background-color: rgb(79, 79, 79); +} + +.bar-text span { + padding: 40px 15px; +} +.card-img-top { + width: 150px; + height:150px; + margin: 0 auto; +} + +.card { + background: rgb(100, 100, 100); +} + +.card-block { + padding: 13px 15px; + color: white; +} + + +a.btn.btn-primary { + background: #009933; + border: 0; + width: 100%; + padding: 9px; + border-radius: 0; +} + +a.btn.btn-primary:hover, a.btn.btn-primary:visited, a.btn.btn-primary:active { + background: #009933; + border: 0; +} + +.card h4 { + font-size: 130%; +} + +button.btn.btn-primary { + border-radius: 0; +} + +.form-group input { + background: rgb(80, 80, 80); + border-radius: 0; + color: white; + width: 100%; +} + +.form-group textarea { + background: rgb(80, 80, 80); + border-radius: 0; + border: 0; + outline: 0; + color:white; + resize: none; +} + +input { + border: none !important; + outline: none; + -webkit-box-shadow: none !important; + -moz-box-shadow: none !important; + box-shadow: none !important; +} + +#submit { + background: #009933; + color: white; + outline: 0; + font-size: 100%; + padding: 2px 40px; + width: 150px; + border: 0 !important; +} + +.form-control { + position: relative; + left: 0; + +} + +.form-control::-webkit-input-placeholder { /* WebKit, Blink, Edge */ + color: white; +} +.form-control:-moz-placeholder { /* Mozilla Firefox 4 to 18 */ + color: white; + opacity: 1; +} +.form-control::-moz-placeholder { /* Mozilla Firefox 19+ */ + color: white; + opacity: 1; +} +.form-control:-ms-input-placeholder { /* Internet Explorer 10-11 */ + color: white; +} +@media screen and (max-width: 992px) { + .whitespace { + height: 15px; + } + + #submit { + width: 100%; + } +} diff --git a/Sarthak Goel/Portfolio/portfolio.html b/Sarthak Goel/Portfolio/portfolio.html new file mode 100644 index 0000000..0d9b4ee --- /dev/null +++ b/Sarthak Goel/Portfolio/portfolio.html @@ -0,0 +1,271 @@ + + + + + Sarthak Goel :: Portfolio + + + + + + + + + + +
+ + + + + + + +
+
+
+
+

Web Development Enthusiast.

+
+
+ +
+ +
+
+ Sarthak Goel +
+ +
+

Hi! I'm Sarthak Goel.

+
+
+
+
+ + +
+ + +
+
+

About Me

+
An Aspiring Software Engineer
+
I am a Technology Enthusiast.I love to explore new fields in Computer Science and passionate about Competitive Programming and Web Development.
+ +
+
+

Education

+
DPS Mathura Road New Delhi
+
School
+
2002-2015
+
+
Netaji Subhas Institute Of Technology
+
B.E. in Computer Engineering
+
2015-2019
+
Currently in the penultimate year (3rd Year) with an aggregate of 81.84%.
+
+ +
+

Position Of Responsibility

+
Member (2016- Present)
+
Algorithm Society Of NSIT
+
Teaching Competitive Programming to Peers and Juniors.
+
+
Ecounsellors.in
+
Mentor
+
2015-2017
+
Gave Mentorship to Students for various competitive examinations like JEE-MAINS, IITJEE.
+
+ +
+

Test Scores

+
CBSE CLASS 10 : 10 CGPA
+
CBSE CLASS 12 : 97.4%
+
JEE MAINS ALL INDIA RANK : 193 (GEN)
+
+
+
+ + + +
+
+
+

Skills

+ + +
+
+
C,C++
+
+
+ +
+
+
DS AND ALGORITHMS
+
+
+ +
+
+
HTML,CSS
+
+
+ +
+
+
ANDROID
+
+
+ + +
+
+
PYTHON,JAVA
+
+
+

+
+
+
+ + +
+ +
+

Technical Projects

+
+
+
+
+ Your browser cannot display this image. +
+

Android Application ClassRoom

+ +

+ A Chat Portal for a class with added features of an Attendance and Subject Manager along with Profile and Status Update facilities. +

+
+ View on Github +
+
+
+
+ Your browser cannot display this image. +
+

Audio Steganography Desktop Application

+ +

+ A Desktop Application incorportaing features of Steganography using Audio built in Java with added features of Remote Monitoring. +

+
+ View on Github +
+
+
+
+ Your browser cannot display this image. +
+

Music Recommender Web App

+ +

+ A Web Application built with Flask that can be used to recommend songs. Recommender uses Deep Learning techniques for predictions. +

+
+ View on Github +
+
+
+
+ + +

+ +
+

Honours & Awards

+ + + + + + + + + + + + + +
KVPY Scholar 2014-15
Rank Opener at NSIT2015
Merit Scholarship for Academic excellence in NSIT2015-16
ACM ICPC AMRITAPURI ONSITE REGIONALS AIR: 1572016
ACM ICPC CHENNAI ONLINE ROUND AIR: 1482016
ACM ICPC AMRITAPURI ONSITE REGIONALS AIR: 412017
ACM ICPC GWALIOR ONSITE REGIONALS AIR: 412017
Ranked 2nd in Science Stream in CLass 12th2015
Consecutive 9 years Scholar(Gold Medalist)2007-15
Merit Scholarship for Academic Excellence2015
SNACKDOWN ELIMINATION ROUND BY CODECHEF #598(World)2016
SNACKDOWN ELIMINATION ROUND BY CODECHEF #774(World)2017
+
+

+ + +
+ +

Let's Catch Up!

+
+
+
+ +
+ +
+ +
+ +
+ +
+ +
+ +
+
+
+
+ +
+
+ + diff --git a/Sarthak Goel/Portfolio/portfolio.js b/Sarthak Goel/Portfolio/portfolio.js new file mode 100644 index 0000000..3194a52 --- /dev/null +++ b/Sarthak Goel/Portfolio/portfolio.js @@ -0,0 +1,19 @@ + +var i = 0; +function change() { + + function getRandomColor() { + var letters = '0123456789DEF'.split(''); + var color = '#'; + for (var i = 0; i < 6; i++ ) { + color += letters[Math.floor(Math.random() * 13)]; + } + return color; +} + + var doc = document.getElementById("background"); + var color = ["#030d1c", "#00050c", "#091321", "#021e44"]; + doc.style.backgroundColor = color[i]; + i = (i + 1) % color.length; +} +setInterval(change, 500); diff --git a/Sarthak Goel/Portfolio/reset.css b/Sarthak Goel/Portfolio/reset.css new file mode 100644 index 0000000..7093aa2 --- /dev/null +++ b/Sarthak Goel/Portfolio/reset.css @@ -0,0 +1,48 @@ +/* http://meyerweb.com/eric/tools/css/reset/ + v2.0 | 20110126 + License: none (public domain) +*/ + +html, body, div, span, applet, object, iframe, +h1, h2, h3, h4, h5, h6, p, blockquote, pre, +a, abbr, acronym, address, big, cite, code, +del, dfn, em, img, ins, kbd, q, s, samp, +small, strike, strong, sub, sup, tt, var, +b, u, i, center, +dl, dt, dd, ol, ul, li, +fieldset, form, label, legend, +table, caption, tbody, tfoot, thead, tr, th, td, +article, aside, canvas, details, embed, +figure, figcaption, footer, header, hgroup, +menu, nav, output, ruby, section, summary, +time, mark, audio, video { + margin: 0; + padding: 0; + border: 0; + font-size: 100%; + font: inherit; + vertical-align: baseline; +} +/* HTML5 display-role reset for older browsers */ +article, aside, details, figcaption, figure, +footer, header, hgroup, menu, nav, section, main { + display: block; +} +body { + line-height: 1; +} +ol, ul { + list-style: none; +} +blockquote, q { + quotes: none; +} +blockquote:before, blockquote:after, +q:before, q:after { + content: ''; + content: none; +} +table { + border-collapse: collapse; + border-spacing: 0; +} diff --git a/Sarthak Goel/Portfolio/resume.css b/Sarthak Goel/Portfolio/resume.css new file mode 100644 index 0000000..a0aa52a --- /dev/null +++ b/Sarthak Goel/Portfolio/resume.css @@ -0,0 +1,143 @@ +html,body{ + background-color:#000a19; + font-size: 95%; + font-family: "Open Sans", sans-serif; +} + +.container{ + display: flex; + flex-wrap:wrap; + justify-content: center; + border: 5px solid black; + max-width: 980px; + margin:0 auto; + background-color: white; + +} +.container1{ + + width:100%; + display: flex; + flex-wrap: wrap; + border:1px solid white; + +} +.containier2{ + width:100%; + display: flex; + flex-wrap: wrap; + margin-left: 5px; + +} +.box:nth-child(3)>.box{ + border:0px; +} +.container2>.box{ + width: 49.5%; + border: 1px solid white; + max-height:500px; + background-color: #798ca8; + /* padding:px; */ +} +.container1>.box{ + border:0px; + width:100%; + border: 1px solid green; +background-color: #466087; + color:white; +} +h1,h3,h4{ +font-family: 'Audiowide', cursive; +font-weight: bold; +color:white; +} + +img +{width: 80px; +height: 80px; +border-radius: 50%; +-webkit-border-radius: 50%; +-moz-border-radius: 50%; +-o-border-radius: 50%; +border: 5px solid black; +margin-right: 30px; +margin-bottom: 50px;} +#icon{ + text-shadow: 1px 1px 1px #ccc; + font-size: 1.5em; + color:#010e23; +} +#myimg,#profiles{ + display:flex; + flex-wrap: wrap; + justify-content:center; + +} +.ip{ +background-color: #466087; +} +@media(max-width:900px){ + .container2{ + display: flex; + flex-wrap:wrap; + } + .conatiner2>.box{ + width:49%; + } + /* img{ + position:relative; + top:20px; + left:200px; + } + #profiles{ + padding-left: 170px; + } */ + #Interests,#int{ + display:flex; + flex-wrap:wrap; + justify-content:center; + margin-top:10px; + } + #int{ + margin-top:-15px; + } +} +@media(min-width:900px){ + .container{ + display:flex; + flex-wrap:wrap; + } + .container1{ + width:29%; + display: flex; + flex-wrap: wrap; + } + .container2{ + display:flex; + flex-wrap: wrap; + width:70%; + height:1024px; + margin-left: 2px; + } + .box:nth-child(3)>.box{ + border:0px; + } + .container1>.box{ + border:0px; + } + #Interests,#int{ + display:flex; + flex-wrap:wrap; + justify-content:center; + margin-top:20px; + } + #int{ + margin-top:-15px; + } + /* img{ + position:relative; + top:20px; + left:100px; + } */ + +} diff --git a/Sarthak Goel/Portfolio/resume.html b/Sarthak Goel/Portfolio/resume.html new file mode 100644 index 0000000..8032f19 --- /dev/null +++ b/Sarthak Goel/Portfolio/resume.html @@ -0,0 +1,122 @@ + + + + + Sarthak Goel :: Resume + + + + + + + + +
+ +
+ +
+ +

SARTHAK GOEL

+
+
Sarthak Goel
+
+    +      +      +    +
+
+
+

INTERESTS

+
+
+

  Listening to Music    

+

  Playing Football    

+
+
+
+
+ +
+

PROFILE

+

  +91 ******4925

+

  sarthakgoel20000@gmail.com

+

  New Delhi, India

+ +
+ +
+

SKILLS

+
    +
  • C,C++
  • +
  • DS AND ALGORITHMS
  • +
  • HTML,CSS
  • +
  • ANDROID
  • +
  • Python, Java
  • +
+ + +
+

EDUCATION

+

DPS Mathura Road New Delhi

+

School (2002-15)

+

Netaji Subhas Institute Of Technology

+

B.E. in Computer Engineering(2015-19)

+

Currently in the penultimate year (3rd Year) with an aggregate of 81.84%.

+

+ +
+

TEST SCORES

+

CBSE CLASS 10 : 10 CGPA

+

CBSE CLASS 12 : 97.4%

+

JEE MAINS ALL INDIA RANK : 193 (GEN)

+
+
+ + +
+

HONOURS AND AWARDS

+
    +
  • KVPY Scholar 2014-15
  • +
  • Rank Opener at NSIT 2015
  • +
  • Merit Scholarship for Academic excellence in NSIT 2015-16
  • +
  • ACM ICPC Amritapuri Onsite Regionals AIR: 157 2016
  • +
  • ACM ICPC Chennai AIR: 148 2016
  • +
  • ACM ICPC Amritapuri Onsite Regionals AIR: 41 2017
  • +
  • ACM ICPC Gwalior Onsite Regionals AIR: 41 2017
  • +
  • Ranked 2nd in Science Stream in CLass 12th 2015
  • +
  • Consecutive 9 years Scholar(Gold Medalist) 2007-15
  • +
  • Merit Scholarship for Academic Excellence 2015
  • +
  • SnackDown Elimination Round By Codechef #598(World) 2016
  • +
  • SnackDown Elimination Round By Codechef #774(World) 2017
  • +
+
+ +
+

POSITION OF RESPONSIBILITY

+

Algorithm Society Of NSIT

+

Member (2016- Present)

+ +

Teaching Competitive Programming to Peers and Juniors.

+

Ecounsellors.in

+

Mentor

+

2015-2017

+

Gave Mentorship to Students for various competitive examinations like JEE-MAINS, IITJEE.

+ +
+ + +
+

TECHNICAL PROJECTS

+

ANDROID APPLICATION- CLASSROOM

+

A chat portal for a class with added features of an attendance manager and Subject Manager along with Profile and Status update abilities. +

AUDIO STEGANOGRAPHY

+

A Desktop Application incorportaing features of Steganography using Audio built in Java with added features of Remote Monitoring.

+

MUSIC RECOMMENDER WEB APP

+

A Web Application built with Flask that can be used to recommend songs. Recommender uses Deep Learning techniques for predictions.

+
+
+
+ + diff --git a/Sarthak Goel/Portfolio/style.css b/Sarthak Goel/Portfolio/style.css new file mode 100644 index 0000000..8451620 --- /dev/null +++ b/Sarthak Goel/Portfolio/style.css @@ -0,0 +1,203 @@ +/* -------------------------------- + +Primary style + +-------------------------------- */ +*, *:after, *:before { + -webkit-box-sizing: border-box; + -moz-box-sizing: border-box; + box-sizing: border-box; +} + +body { + font-size: 100%; + font-family: "Open Sans", sans-serif; + color: #445b7c; + /* background-color: #445b7c; */ + background-color: #000711; +} + +a { + color: #dc717d; + text-decoration: none; +} + +img { + max-width: 100%; +} + +/* -------------------------------- + +Main components + +-------------------------------- */ +header { + position: relative; + height: 160px; + line-height: 160px; + text-align: center; +} +header h1 { + font-size: 22px; + font-size: 1.375rem; + color: #ffffff; + font-weight: 300; + -webkit-font-smoothing: antialiased; + -moz-osx-font-smoothing: grayscale; +} +@media only screen and (min-width: 768px) { + header { + height: 240px; + line-height: 240px; + } + header h1 { + font-size: 32px; + font-size: 2rem; + } +} + +.cd-image-container { + position: relative; + width: 90%; + max-width: 768px; + margin: 0em auto; +} +.cd-image-container img { + display: block; +} + +.cd-image-label { + position: absolute; + bottom: 0; + right: 0; + color: #ffffff; + padding: 1em; + -webkit-font-smoothing: antialiased; + -moz-osx-font-smoothing: grayscale; + opacity: 0; + -webkit-transform: translateY(20px); + -moz-transform: translateY(20px); + -ms-transform: translateY(20px); + -o-transform: translateY(20px); + transform: translateY(20px); + -webkit-transition: -webkit-transform 0.3s 0.7s, opacity 0.3s 0.7s; + -moz-transition: -moz-transform 0.3s 0.7s, opacity 0.3s 0.7s; + transition: transform 0.3s 0.7s, opacity 0.3s 0.7s; +} +.cd-image-label.is-hidden { + visibility: hidden; +} +.is-visible .cd-image-label { + opacity: 1; + -webkit-transform: translateY(0); + -moz-transform: translateY(0); + -ms-transform: translateY(0); + -o-transform: translateY(0); + transform: translateY(0); +} + +.cd-resize-img { + position: absolute; + top: 0; + left: 0; + width: 0; + height: 100%; + overflow: hidden; + /* Force Hardware Acceleration in WebKit */ + -webkit-transform: translateZ(0); + -moz-transform: translateZ(0); + -ms-transform: translateZ(0); + -o-transform: translateZ(0); + transform: translateZ(0); + -webkit-backface-visibility: hidden; + backface-visibility: hidden; +} +.cd-resize-img img { + position: absolute; + left: 0; + top: 0; + display: block; + height: 100%; + width: auto; + max-width: none; +} +.cd-resize-img .cd-image-label { + right: auto; + left: 0; +} +.is-visible .cd-resize-img { + width: 50%; + /* bounce in animation of the modified image */ + -webkit-animation: cd-bounce-in 0.7s; + -moz-animation: cd-bounce-in 0.7s; + animation: cd-bounce-in 0.7s; +} + +@-webkit-keyframes cd-bounce-in { + 0% { + width: 0; + } + 60% { + width: 55%; + } + 100% { + width: 50%; + } +} +@-moz-keyframes cd-bounce-in { + 0% { + width: 0; + } + 60% { + width: 55%; + } + 100% { + width: 50%; + } +} +@keyframes cd-bounce-in { + 0% { + width: 0; + } + 60% { + width: 55%; + } + 100% { + width: 50%; + } +} +.cd-handle { + position: absolute; + height: 44px; + width: 44px; + /* center the element */ + left: 50%; + top: 50%; + margin-left: -22px; + margin-top: -22px; + border-radius: 50%; + background: #dc717d url("images/cd-arrows.svg") no-repeat center center; + cursor: move; + box-shadow: 0 0 0 6px rgba(0, 0, 0, 0.2), 0 0 10px rgba(0, 0, 0, 0.6), inset 0 1px 0 rgba(255, 255, 255, 0.3); + opacity: 0; + -webkit-transform: translate3d(0, 0, 0) scale(0); + -moz-transform: translate3d(0, 0, 0) scale(0); + -ms-transform: translate3d(0, 0, 0) scale(0); + -o-transform: translate3d(0, 0, 0) scale(0); + transform: translate3d(0, 0, 0) scale(0); +} +.cd-handle.draggable { + /* change background color when element is active */ + background-color: #445b7c; +} +.is-visible .cd-handle { + opacity: 1; + -webkit-transform: translate3d(0, 0, 0) scale(1); + -moz-transform: translate3d(0, 0, 0) scale(1); + -ms-transform: translate3d(0, 0, 0) scale(1); + -o-transform: translate3d(0, 0, 0) scale(1); + transform: translate3d(0, 0, 0) scale(1); + -webkit-transition: -webkit-transform 0.3s 0.7s, opacity 0s 0.7s; + -moz-transition: -moz-transform 0.3s 0.7s, opacity 0s 0.7s; + transition: transform 0.3s 0.7s, opacity 0s 0.7s; +} diff --git a/Sarthak Goel/Portfolio/thankyou.html b/Sarthak Goel/Portfolio/thankyou.html new file mode 100644 index 0000000..a87df44 --- /dev/null +++ b/Sarthak Goel/Portfolio/thankyou.html @@ -0,0 +1,19 @@ + + + + + Thank You + + + + + + +
+
+ +
+
+ + + diff --git a/Sarthak Goel/Portfolio/thankyou.js b/Sarthak Goel/Portfolio/thankyou.js new file mode 100644 index 0000000..28cfe2e --- /dev/null +++ b/Sarthak Goel/Portfolio/thankyou.js @@ -0,0 +1,18 @@ +window.onload=function(){ + var ele=document.createElement('h1'); + var ele2=document.createElement('p'); + var text=window.location.search; + var text2="I will get back to you soon!"; + ele2.innerHTML=text2; + ele.innerHTML="Thank You "+ (text.split('=')[1]).split(/[^A-Za-z]/)[0]+" !"; + var thankyou=document.getElementById('thankyou'); + document.body.appendChild(ele); + document.body.appendChild(ele2); + thankyou.appendChild(ele); + thankyou.appendChild(ele2); + //result.appendChild(ele); + // var value=inp.value; + // document.getElementById('result').innerHTML=value; + } +// console.log(inp); +// } diff --git a/Sarthak Goel/Portfolio/typewriter-1.mp3 b/Sarthak Goel/Portfolio/typewriter-1.mp3 new file mode 100644 index 0000000..783d558 Binary files /dev/null and b/Sarthak Goel/Portfolio/typewriter-1.mp3 differ diff --git a/Sarthak Goel/Resume/index.html b/Sarthak Goel/Resume/index.html new file mode 100644 index 0000000..8032f19 --- /dev/null +++ b/Sarthak Goel/Resume/index.html @@ -0,0 +1,122 @@ + + + + + Sarthak Goel :: Resume + + + + + + + + +
+ +
+ +
+ +

SARTHAK GOEL

+
+
Sarthak Goel
+
+    +      +      +    +
+
+
+

INTERESTS

+
+
+

  Listening to Music    

+

  Playing Football    

+
+
+
+
+ +
+

PROFILE

+

  +91 ******4925

+

  sarthakgoel20000@gmail.com

+

  New Delhi, India

+ +
+ +
+

SKILLS

+
    +
  • C,C++
  • +
  • DS AND ALGORITHMS
  • +
  • HTML,CSS
  • +
  • ANDROID
  • +
  • Python, Java
  • +
+ + +
+

EDUCATION

+

DPS Mathura Road New Delhi

+

School (2002-15)

+

Netaji Subhas Institute Of Technology

+

B.E. in Computer Engineering(2015-19)

+

Currently in the penultimate year (3rd Year) with an aggregate of 81.84%.

+

+ +
+

TEST SCORES

+

CBSE CLASS 10 : 10 CGPA

+

CBSE CLASS 12 : 97.4%

+

JEE MAINS ALL INDIA RANK : 193 (GEN)

+
+
+ + +
+

HONOURS AND AWARDS

+
    +
  • KVPY Scholar 2014-15
  • +
  • Rank Opener at NSIT 2015
  • +
  • Merit Scholarship for Academic excellence in NSIT 2015-16
  • +
  • ACM ICPC Amritapuri Onsite Regionals AIR: 157 2016
  • +
  • ACM ICPC Chennai AIR: 148 2016
  • +
  • ACM ICPC Amritapuri Onsite Regionals AIR: 41 2017
  • +
  • ACM ICPC Gwalior Onsite Regionals AIR: 41 2017
  • +
  • Ranked 2nd in Science Stream in CLass 12th 2015
  • +
  • Consecutive 9 years Scholar(Gold Medalist) 2007-15
  • +
  • Merit Scholarship for Academic Excellence 2015
  • +
  • SnackDown Elimination Round By Codechef #598(World) 2016
  • +
  • SnackDown Elimination Round By Codechef #774(World) 2017
  • +
+
+ +
+

POSITION OF RESPONSIBILITY

+

Algorithm Society Of NSIT

+

Member (2016- Present)

+ +

Teaching Competitive Programming to Peers and Juniors.

+

Ecounsellors.in

+

Mentor

+

2015-2017

+

Gave Mentorship to Students for various competitive examinations like JEE-MAINS, IITJEE.

+ +
+ + +
+

TECHNICAL PROJECTS

+

ANDROID APPLICATION- CLASSROOM

+

A chat portal for a class with added features of an attendance manager and Subject Manager along with Profile and Status update abilities. +

AUDIO STEGANOGRAPHY

+

A Desktop Application incorportaing features of Steganography using Audio built in Java with added features of Remote Monitoring.

+

MUSIC RECOMMENDER WEB APP

+

A Web Application built with Flask that can be used to recommend songs. Recommender uses Deep Learning techniques for predictions.

+
+
+
+ + diff --git a/Sarthak Goel/Resume/resume.css b/Sarthak Goel/Resume/resume.css new file mode 100644 index 0000000..a0aa52a --- /dev/null +++ b/Sarthak Goel/Resume/resume.css @@ -0,0 +1,143 @@ +html,body{ + background-color:#000a19; + font-size: 95%; + font-family: "Open Sans", sans-serif; +} + +.container{ + display: flex; + flex-wrap:wrap; + justify-content: center; + border: 5px solid black; + max-width: 980px; + margin:0 auto; + background-color: white; + +} +.container1{ + + width:100%; + display: flex; + flex-wrap: wrap; + border:1px solid white; + +} +.containier2{ + width:100%; + display: flex; + flex-wrap: wrap; + margin-left: 5px; + +} +.box:nth-child(3)>.box{ + border:0px; +} +.container2>.box{ + width: 49.5%; + border: 1px solid white; + max-height:500px; + background-color: #798ca8; + /* padding:px; */ +} +.container1>.box{ + border:0px; + width:100%; + border: 1px solid green; +background-color: #466087; + color:white; +} +h1,h3,h4{ +font-family: 'Audiowide', cursive; +font-weight: bold; +color:white; +} + +img +{width: 80px; +height: 80px; +border-radius: 50%; +-webkit-border-radius: 50%; +-moz-border-radius: 50%; +-o-border-radius: 50%; +border: 5px solid black; +margin-right: 30px; +margin-bottom: 50px;} +#icon{ + text-shadow: 1px 1px 1px #ccc; + font-size: 1.5em; + color:#010e23; +} +#myimg,#profiles{ + display:flex; + flex-wrap: wrap; + justify-content:center; + +} +.ip{ +background-color: #466087; +} +@media(max-width:900px){ + .container2{ + display: flex; + flex-wrap:wrap; + } + .conatiner2>.box{ + width:49%; + } + /* img{ + position:relative; + top:20px; + left:200px; + } + #profiles{ + padding-left: 170px; + } */ + #Interests,#int{ + display:flex; + flex-wrap:wrap; + justify-content:center; + margin-top:10px; + } + #int{ + margin-top:-15px; + } +} +@media(min-width:900px){ + .container{ + display:flex; + flex-wrap:wrap; + } + .container1{ + width:29%; + display: flex; + flex-wrap: wrap; + } + .container2{ + display:flex; + flex-wrap: wrap; + width:70%; + height:1024px; + margin-left: 2px; + } + .box:nth-child(3)>.box{ + border:0px; + } + .container1>.box{ + border:0px; + } + #Interests,#int{ + display:flex; + flex-wrap:wrap; + justify-content:center; + margin-top:20px; + } + #int{ + margin-top:-15px; + } + /* img{ + position:relative; + top:20px; + left:100px; + } */ + +} diff --git a/Sarthak Goel/Todolist/index.html b/Sarthak Goel/Todolist/index.html new file mode 100644 index 0000000..6303e6f --- /dev/null +++ b/Sarthak Goel/Todolist/index.html @@ -0,0 +1,31 @@ + + + + + Todolist + + + + + + + +
+
+

Todolist

+
+ + +


+

TODO

+
+
+
+

COMPLETED

+
+
+
+
+ + + diff --git a/Sarthak Goel/Todolist/todolist.css b/Sarthak Goel/Todolist/todolist.css new file mode 100644 index 0000000..fd54ed4 --- /dev/null +++ b/Sarthak Goel/Todolist/todolist.css @@ -0,0 +1,41 @@ +body{ + background-color: #f2f4f7; + /* background-image: url(todolist.jpg); */ +} +.cont,#task{ + display:flex; + flex-wrap: wrap; + margin-top: 10px; + margin-bottom: 5px; + /* width: 40px; */ +} + +.cont:hover{ + background-color: #c8cace; +} +#task,#inp{ + width:90%; + padding:5px; +} + +#sp{ + align:right; +} +.para{ + width:60%; + height:40px; + border:1px solid #c1c6cc; + padding-left: 5px; + margin-left:5px; + margin-right:5px; +} + +.tick{ + width:30px; + height:40px; + border-radius: 5 +} + +#update_btn,#confirm_btn{ + margin-right: 5px; +} diff --git a/Sarthak Goel/Todolist/todolist.jpg b/Sarthak Goel/Todolist/todolist.jpg new file mode 100644 index 0000000..3334cdb Binary files /dev/null and b/Sarthak Goel/Todolist/todolist.jpg differ diff --git a/Sarthak Goel/Todolist/todolist.js b/Sarthak Goel/Todolist/todolist.js new file mode 100644 index 0000000..2185d0b --- /dev/null +++ b/Sarthak Goel/Todolist/todolist.js @@ -0,0 +1,127 @@ +var taskarray; +var counter=0; +function del(el) +{ + + var id =$(el).parent().parent().parent().attr('id'); + taskarray[id].keep=0; + $(el).parent().parent().parent().remove(); + localStorage.setItem('data',JSON.stringify(taskarray)); +} +function check(el) +{ + var result2=$('#result2'); + var id =$(el).parent().parent().attr('id'); + taskarray[id].done=true; + var value=taskarray[id].name; + $(el).parent().parent().remove(); + //taskarray[id].keep=0; + var val=$(el).is(':checked'); + if(val==true) + { + result2.append(`
+
`); + } + else { + result2.append(`
+
`); + } + localStorage.setItem('data',JSON.stringify(taskarray)); +} +function uncheck(el) +{ + var result=$('#result'); + var id =$(el).parent().parent().attr('id'); + taskarray[id].done=false; + var value=taskarray[id].name; + $(el).parent().parent().remove(); + var val=$(el).is(':checked'); + if(val==true) + { + result.append(`
+
`); + } + else { + result.append(`
+
`); + } + localStorage.setItem('data',JSON.stringify(taskarray)); +} + +function update(el) +{ + alert("Click the CONFIRM button after you update the task!!") + $(el).parent().prev().prop('disabled',false); + $(el).next().prop('disabled',false); + $("#confirm_btn").on("click",function(){ + $(el).parent().prev().prop('disabled',true); + $(el).next().prop('disabled',true); + var id =$(el).parent().parent().parent().attr('id'); + var val=$(el).parent().prev().val(); + taskarray[id].name=val; + $(el).parent().prev().prop('value',val); + localStorage.setItem('data',JSON.stringify(taskarray)); + }); + +} + +$(document).ready(function(){ + taskarray = JSON.parse(localStorage.getItem('data')) || [] ; + var inp=$('#inp'); + var add_btn=$('#add_btn'); + var result=$('#result'); + var result2=$('#result2'); + + display(); + + $("#inp").keyup(function(event) { + if (event.keyCode === 13) { + $("#add_btn").click(); + } + }); + + add_btn.on('click',function(){ + + var val=inp.val(); + if(val!=""){ + var task={ + name:val, + done:false, + keep:1 + } + taskarray.push(task); + result.append(`
+ + +
`); + inp.val(""); + counter++; + // localStorage.setItem('counter',JSON.stringify(counter)); + localStorage.setItem('data',JSON.stringify(taskarray)); + } + else{ + alert("Please enter the Task name!!") + } + }); + + function display(){ + var c=0; + var arr=taskarray; + //console.log(arr.length); + for(var i=0;i
+
`); + } + else { + result.append(`
+
`); + } + c++; + } + } + counter=c; + } +}); diff --git a/Summer2018/Ayush Poddar/Mr-Magnificent.github.io/README.md b/Summer2018/Ayush Poddar/Mr-Magnificent.github.io/README.md new file mode 100644 index 0000000..9f39ead --- /dev/null +++ b/Summer2018/Ayush Poddar/Mr-Magnificent.github.io/README.md @@ -0,0 +1,3 @@ +# Mr-Magnificent.github.io + +Portfolio diff --git a/Summer2018/Ayush Poddar/Mr-Magnificent.github.io/index.html b/Summer2018/Ayush Poddar/Mr-Magnificent.github.io/index.html new file mode 100644 index 0000000..1039cb5 --- /dev/null +++ b/Summer2018/Ayush Poddar/Mr-Magnificent.github.io/index.html @@ -0,0 +1,275 @@ + + + + + Portfolio + + + + + + + + + + +
+
+
+
+
+ ApictureofMyself +
+

Ayush Poddar

+

Web Developer | Tech Enthusiast | Music Lover

+

emailEmail:- ayush_poddar@live.com | callPhone:- 9013369678

+ + +
+
+
+
+ +
+
+
+
+

About Me

+

+ A curious, theoretic yet pragmatic person who wishes to learn in-depth about every technology to widen my horizon of knowledge. + Since, half knowledge is dangerous, therefore I try to leave no stone unturned to try to find workarounds about probblems that occur. +
+ Completed my schooling from Mount Carmel School, a reputable school situated in Delhi and currently pursuing B. Tech from + Maharaja Surajmal Institute of Technology, a well-known college under Indraprastha University, also known as I. P University.
+

+
Trying to strive to become a better programmer and a better problem solver!
+
+
+

Languages & Techs

+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
cout <<  "C++";
print  ("Python")
printf  ("C");
var = JavaScript
.css  {}
html />
out.println  ("Java");
sudo  linux
dir  Windows
select * from  MySql
+
+ +
+ +
+
Languages
+
+
+
+ +
C++
+
+
+
+
+ +
C
+
+
+
+
+ +
Python
+
+
+
+
+ +
Java
+
+
+
+
Web Technologies
+
+
+
+ +
JavaScript
+
+
+
+
+ +
CSS
+
+
+
+
+ +
HTML
+
+
+
+
+ +
Maps
+
+
+
+
Databases
+
+
+
+ +
MySql
+
+
+
+
+ +
Postgres
+
+
+
+
Operating Systems
+
+
+
+ +
Windows
+
+
+
+
+ +
Linux
+
+
+
+
+
+
+
+
+

Projects

+ +
+

VacciIndia  

+

+ It is a social initiative website that emphasize the need for vaccination that provides scheduled reminder + for vaccination according to the child's birth date for a more personalized approach.
+ It is purely built upon J2SE as a technology for backend and program logic and follows MVC model for connectivity with + database. It uses bootstrap as frontend framework and used GAE (Google App Engine) for hosting of the website.

+ Final project of training for Java Core and Advanced from OSAHUB Technologies. during first year of + undergraduate. +

+
+
+
+
+
+

Education

+
+
    +
  • Mount Carmel School +
      +
    • 10th CGPA: 9.2
    • +
    • 12th Percentage: 93.6%
    • +
    +
  • +
+
+
+

Experience

+ + + + + + + + + + + + + + + + + +
CourseOrganizationYearType
Java Core And Advanced with Cloud computingOSAHUB2017Training
+
+
+
+
+
+

Contact

+ + + + + + + + + + + +
call Contact:-9013369678
email Email:-ayush_poddar@live.com
+ +
+
+
+
+
+ + + \ No newline at end of file diff --git a/Summer2018/Ayush Poddar/Mr-Magnificent.github.io/js.js b/Summer2018/Ayush Poddar/Mr-Magnificent.github.io/js.js new file mode 100644 index 0000000..8c83e88 --- /dev/null +++ b/Summer2018/Ayush Poddar/Mr-Magnificent.github.io/js.js @@ -0,0 +1,85 @@ +function getRandomInt() { + return (Math.floor(Math.random() * 256)); +} + + +function e() { + + function getLocation() { + return (Math.floor(Math.random() * 10)); + } + + // rgb(30, 87, 167); + // rgb(167, 30, 30); + // rgb(47, 181, 99); + + function colorChange() { + let nomargin = document.getElementsByClassName("no-margin"); + let col1 = getRandomInt(); + let col2 = getRandomInt(); + nomargin[0].style.background = `linear-gradient(25deg, rgb(0, 150, ${col1}), rgb(0, 150, ${col2})`; + } + return colorChange; +} + +let x = e(); +// let nomargin = document.getElementsByClassName("no-margin"); + +setInterval(x, 2000); + +window.onload = function() { + function colorCh () { + let lang = document.getElementsByClassName('lang'); + for(let i = 0; i < lang.length; i++) { + let tempColor = getRandomInt(); + lang[i].style.color = `hsl(${tempColor}, 100%, 25%)`; + // console.log(lang[i]); + } +} + +colorCh(); +} + +function scrolling(obj) { + let ide = obj.id; + + if (ide == 1) { + document.querySelector('#lang').scrollIntoView({ + behavior: 'smooth', + block: "start", + // inline: "nearest" + }); + setTimeout(scrollTen, 700); + } + else if (ide == 2) { + document.querySelector('#projects').scrollIntoView({ + behavior: 'smooth', + block: "start", + // inline: "nearest" + }); + setTimeout(scrollTen, 700); + } + else if (ide == 3) { + document.querySelector('#education').scrollIntoView({ + behavior: 'smooth', + block: "start", + // inline: "nearest" + }); + setTimeout(scrollTen, 800); + } + else if (ide == 4) { + document.querySelector('#contact').scrollIntoView({ + behavior: 'smooth', + block: "start", + // inline: "nearest" + }); + } + +} + +function scrollTen () { + window.scrollBy({ + top: -50, + behavior: "smooth" + }) +} \ No newline at end of file diff --git a/Summer2018/Ayush Poddar/Mr-Magnificent.github.io/style-lg.css b/Summer2018/Ayush Poddar/Mr-Magnificent.github.io/style-lg.css new file mode 100644 index 0000000..de40251 --- /dev/null +++ b/Summer2018/Ayush Poddar/Mr-Magnificent.github.io/style-lg.css @@ -0,0 +1,17 @@ +@media screen and (min-width: 550px) { + #about, .education, .projects { + min-height: 100vh; + } +} + +@media screen and (min-height: 562px) { + .about { + position: relative; + } + + #stickName { + position: sticky; + top: 10px; + padding-bottom: 10px; + } +} \ No newline at end of file diff --git a/Summer2018/Ayush Poddar/Mr-Magnificent.github.io/style-md.css b/Summer2018/Ayush Poddar/Mr-Magnificent.github.io/style-md.css new file mode 100644 index 0000000..920ac6e --- /dev/null +++ b/Summer2018/Ayush Poddar/Mr-Magnificent.github.io/style-md.css @@ -0,0 +1,158 @@ +@media screen and (min-width: 815px) { + .bigger-screen-email { + display: inline !important; + /*display: inline-block !important;*/ + } + + .smaller-screen-email { + display: none !important; + } + + .rlink { + font-size: 20px !important; + } +} + +@media screen and (min-width: 550px){ + .about { + width: 30%; + } + + .wider-screen { + width: 70%; + } + + .smaller-screen-lang { + display: none; + } + + .larger-screen-lang { + display: flex; + flex-wrap: wrap; + justify-content: space-around; + align-items: flex-start; + align-content: space-between; + } + + .larger-screen-lang>div { + /*flex-grow: 1;*/ + } + + .larger-screen-lang>div>figure { + position: relative; + top: 0px; + display: flex; + flex-direction: column; + } + + .lang-heading { + width: 100%; + padding-left: 5%; + } + + .tech-img { + height: 70px; + width: 70px; + } + + .nav { + height: 40px; + } + + .anchor-nav > span { + display: initial; + font-size: 12px; + } + + .anchor-nav { + display: flex; + flex-wrap: wrap; + flex-direction: column; + position: relative; + top: 0; + } + + .anchor-nav > i { + text-align: center; + margin-bottom: 1px; + font-size: 16px; + } + + .anchor-nav > span { + opacity: 0; + position: absolute; + top: 25px; + transition: opacity 0.1s linear; + left: -5px; + } + + .anchor-nav:hover > span { + opacity: 1; + display: initial; + color: #000; + transition: opacity 0.2s linear; + } + + .tech-img>div>figure { + border: thin #c0c0c0 solid; + display: flex; + flex-flow: column; + margin: 0; + padding: 5px; + } + + .hov-enlarge { + position: absolute; + top: 80px; + margin: 0 auto; + left: 0px; + right: 0px; + } + + .tech-img + figcaption { + display: none; + } + + .tech-img:hover { + z-index: 10; + transform: scale(1.2, 1.2); + transition: transform 0.2s ease-out; + } + + .tech-img:hover + figcaption { + display: initial; + background-color: #222; + color: #fff; + font: italic smaller sans-serif; + text-align: center; + } + + .profile-pic { + width: 80%; + } + + .top>h1 { + font-size: 40px; + margin-bottom: 24.800px; + margin-top: 21.800px; + } + + .top>p { + font-size: 1em; + text-align: center; + } + + .bigger-screen-email { + display: none; + } + + .smaller-screen-email { + display: block !important; + vertical-align: top; + /*horiz-align: left;*/ + } + + .rlink { + font-size: 16px !important; + } +} \ No newline at end of file diff --git a/Summer2018/Ayush Poddar/Mr-Magnificent.github.io/style.css b/Summer2018/Ayush Poddar/Mr-Magnificent.github.io/style.css new file mode 100644 index 0000000..9c87d3d --- /dev/null +++ b/Summer2018/Ayush Poddar/Mr-Magnificent.github.io/style.css @@ -0,0 +1,237 @@ +.main { + width: 100%; + margin: 0 auto; + max-width: 1500px; + /*display: inline-block;*/ + clear: both; + /*overflow-x: hidden;*/ +} + +h3, h5 { + width: 100%; + font-family: 'Roboto', sans-serif; +} + +p { + font-family: 'Open Sans', sans-serif; +} + +.row > div { + background-color: white; +} + +.no-margin { + margin: 0 auto; + width: 100%; + background: linear-gradient(90deg, #009688, #9ed6f1); + height: 100%; + /*-webkit-transition: background 0.2s linear;*/ + /*-moz-transition: background 0.2s linear;*/ + /*-o-transition: background 0.2s linear;*/ + /*transition: background 0.2s linear;*/ +} + +.container { + width: 100%; + margin: 0 auto; +} + +.describe, .projects, .education, .contact { + padding: 0 5%; +} + + +.contact { + width: 100%; + background-color: rgb(200, 200, 200) !important; + position: relative; + font-size: 0px; + height: 100%; +} + +.wider-screen { + width: 100%; +} + +/*.contact table { + padding-left: 5%; +}*/ + +.about { + margin: 0 auto; + background: linear-gradient(153deg, #ffd24b94, #9ed6f1); +} + +h4 { + padding-left: 10px; +} + +.row { + display: flex; + flex-wrap: wrap; +} + +.top { + text-align: center; + margin-bottom: 10px; +} + +.top>h1 { + margin-bottom: 0.1em; +} + +.text-below-name { + font-size: 12px; + margin-top: 1em; +} + +.nav { + position: sticky; + top: -1px; + height: 30px; + z-index: 1000; + background-color: #ffffff; + width: 100%; + display: flex; + justify-content: space-evenly; +} + +.anchor-nav:hover { + cursor: pointer; +} + +.anchor-nav > span { + display: none; +} + +.profile-pic { + width: 45%; + display: block; + margin: 10px auto; + border-radius: 50%; +} + +.cont { + display: none; + vertical-align: top; +} + +.link { + height: 28px; + width: 28px; +} + + +.lang { + font-size: 1em; +} + +.smaller-screen-lang { + margin: 0 auto; +} + +.smaller-screen-email { + display: none; +} + +.centered { + margin: 0 auto; + width: 80%; + table-layout: fixed; + /*float: center;*/ +} + +.divider { + width: 90%; + margin: 16px auto; + border-top: 1px solid rgba(0, 0, 0, 0.4); +} + +.centered td { + text-align: center; + vertical-align: middle; + font-size: 5vw; + min-font-size: 12px; + max-font-size: 19px; + /*width: 50%;*/ + padding-bottom: 5px; +} + +.centered-course { + margin: 0 auto; + table-layout: fixed; + border-collapse: collapse; + border: 1px solid black; +} + +.centered-course td, .centered-course th { + padding-left: 11px; + /*border: 1px solid black;*/ + text-align: center; +} + +#padd-right { + padding-right: 11px; +} + +.flow-text { + width: 90%; + margin: 0 auto; +} + +.education { + max-width: 100%; + margin-bottom: 10px; +} + +.larger-screen-lang { + display: none; +} + +#vacci-link { + height: 14px; +} + +#contact { + width: 70%; + font-size: 1.2rem; +} + +#contact ~ table { + width: 70%; + font-size: initial; + margin-bottom: 70px; +} + +#contact ~ div { + width: 29%; + /*background-color: none !important;*/ +} + +#contact ~ div > a > div > img { + max-width: 100%; +} + +#contact ~ div > a > div { + width: 57%; + margin-bottom: 5px; +} + +#contact ~ div > a > div:hover { + background-color: grey; + display: inline-block; + transition: background-color 0.4s ease-in-out; + border-radius: 5%; +} + +#no-color { + background-color: initial; + position: absolute; + top: 0; + right: 0; +} + +.describe, .projects, .education { + margin-bottom: 50px; +} + diff --git a/Winter2018/Dhruva/Guardian-API/index.html b/Winter2018/Dhruva/Guardian-API/index.html new file mode 100644 index 0000000..f0a669f --- /dev/null +++ b/Winter2018/Dhruva/Guardian-API/index.html @@ -0,0 +1,36 @@ + + + + + + + + + + + Guardian-API + + +
+ + +
+ + + + +
+
+
+
+ + + + diff --git a/Winter2018/Dhruva/Guardian-API/script.js b/Winter2018/Dhruva/Guardian-API/script.js new file mode 100644 index 0000000..1a73799 --- /dev/null +++ b/Winter2018/Dhruva/Guardian-API/script.js @@ -0,0 +1,177 @@ +window.onload=function(){ +var key="fbdbc2ec-c5e4-41fd-97d8-303bb487735e"; +var url="https://content.guardianapis.com/"; +var t={}; +t.page=1; +t.text=''; +t.max=1; +t.days=1; +localStorage.setItem("data",JSON.stringify(t)); +function d() +{ + var b=JSON.parse(localStorage.getItem('data')) || {}; + var x=JSON.parse(localStorage.getItem('object')) || {}; + if(Object.keys(x).length!=0) + { + // var g=document.getElementsByClassName('input')[0]; + var l=document.getElementsByClassName('Content')[0]; + var f=document.getElementsByClassName('footer')[0]; + if(x.response.total){ + l.style.display="flex"; + l.style.flexWrap="wrap"; + l.style.textAlign="center"; + // var strin=''; + var strin2=''; + var strin3=''; + // strin=` `; + strin2=``; + for(var y=0;(y<5)&&(y+b.page<=x.response.pages);y++) + strin2+=`  ${y+b.page}  `; + strin2+=``; + // g.innerHTML+=strin; + for(var o=0;o ${x.response.results[o].webTitle}

`; + l.innerHTML=strin3; + f.innerHTML=strin2; + document.getElementById('f').onclick=function(){ + older(document.getElementById('w').value); + } + } + else { + g.innerHTML=''; + l.innerHTML=`

Sorry We Could not find what you were looking for

`; + } + } +} +var today = new Date(); +today.setDate(today.getDate()-1); +var dd = today.getDate(); +var mm = today.getMonth()+1; //January is 0! +var yyyy = today.getFullYear(); +if(dd<10) + dd='0'+dd; +if(mm<10) + mm='0'+mm; +var fromDate = yyyy+'-'+mm+'-'+dd; +var stype=''; +function convert(g){ + var t=g.split(' '); + var r=''; + for(var i=0;im){ + t=m; + call=false; + } + f.page=t; + localStorage.setItem('data',JSON.stringify(f)); + if(call) + submit(); +} +window.next=next; +function previous(){ + var f=JSON.parse(localStorage.getItem('data')); + var t=f.page; + var m=f.max; + t=t-1; + var call=true; + if(t<1){ + t=1; + call=false; + } + f.page=t; + localStorage.setItem('data',JSON.stringify(f)); + if(call) + submit(); +} +window.previous=previous; +window.paged=function(a){ + var f=JSON.parse(localStorage.getItem('data')); + f.page=a; + localStorage.setItem('data',JSON.stringify(f)); + submit(); +} +window.older=function(date){ + // console.log(Date.parse(date)); + var f=JSON.parse(localStorage.getItem('data')); + var t=new Date(); + f.days=Math.round((t.getTime()-Date.parse(date))/(24*60*60*1000)); + localStorage.setItem('data',JSON.stringify(f)); + submit(); +} +} diff --git a/Winter2018/Dhruva/Guardian-API/style.css b/Winter2018/Dhruva/Guardian-API/style.css new file mode 100644 index 0000000..28f7cb9 --- /dev/null +++ b/Winter2018/Dhruva/Guardian-API/style.css @@ -0,0 +1,138 @@ +#container{ + background-color: #284863; + height:18vw; + position: relative; +} +#icon{ + position: absolute; + width:6vw; + left:1vw; + top:1vw; +} +body{ + margin: 0; + font-family: 'Roboto Mono', monospace; + background-color: #ecf3f1; +} +#container .input{ + width: 100%; + position:relative; + transform: translateY(9vw); +} +#dp , #next , #prev{ + background-color: transparent; + width:5vw; + overflow:hidden; + border-style: none; +} +#dp{ + transform: translateX(8vw); +} +#submit{ + font:inherit; + padding:0.4vw; + width: 10vw; + transform: translateX(8vw); + font-size: 2vw; + border-radius: 1vw; + background-color: transparent; + border-style:solid; + border-width:0.2vw; + border-color: #ecf3f1; + color:#ecf3f1; +} +#w { + font:inherit; + padding:0.4vw; + width: 18vw; + transform: translateX(8vw); + font-size: 1.8vw; + border-radius: 1vw; + background-color: transparent; + border-style:solid; + border-width:0.2vw; + border-color:#ecf3f1; + color:#ecf3f1; +} +#f{ + font:inherit; + padding:0.4vw; + width: 12vw; + font-size: 2vw; + border-width:0.2vw; + border-radius: 1vw; + transform: translateX(8vw); + background-color: transparent; + border-style:solid; + border-color: #ecf3f1; + color:#ecf3f1; +} +#ibox{ + font:inherit; + width:29vw; + font-size: 1.5vw; + padding: 0.4vw; + transform: translateX(6vw); + background-color:transparent; + border-style: none; + color:#ecf3f1; +} +.dropdown{ + font:inherit; + font-size: 1.5vw; + position: absolute; + visibility: hidden; + /*width:6.5%;*/ + z-index:1; + top:6.5vw; + left:36vw; + color:#ecf3f1; +} +.content{ + width: 100%; + overflow-y: auto; + margin-bottom: 0.5vh; + margin-top:0.5vh; + margin-left: 0; + margin-right:0; +} +.footer{ + position:relative; + text-align: center; + bottom:0; + width:100%; + transform: translateY(4vw); + font-size: 3.7vw; +} +p{ + margin: 0.65vw; + font-size: 1.5vw; + width:31%; + overflow:auto; + background-color: rgba(22,137,185,0.1); +} +a{ + text-decoration: none; + color:#2D2D2D; +} +p::-webkit-scrollbar{ + display: none; +} +p::scrollbar{ + display:none; +} +p::-moz-scrollbar{ + display: none; +} +@media (min-width:700px) and (max-width:1024px) { + p{ + width:47.4%; + font-size: 2.5vw; + } +} +@media (max-width:699px){ + p{ + width:97%; + font-size:4.5vw; + } +} diff --git a/Winter2018/Riya/ChatBotAPI/index.html b/Winter2018/Riya/ChatBotAPI/index.html new file mode 100644 index 0000000..e897380 --- /dev/null +++ b/Winter2018/Riya/ChatBotAPI/index.html @@ -0,0 +1,27 @@ + + + + + + + + + + CHAT BOT + + +
+
+

CleverBot

+
+
+
+
+ + +
+ +
+ + + diff --git a/Winter2018/Riya/ChatBotAPI/new.js b/Winter2018/Riya/ChatBotAPI/new.js new file mode 100644 index 0000000..2332ee2 --- /dev/null +++ b/Winter2018/Riya/ChatBotAPI/new.js @@ -0,0 +1,75 @@ +window.onload=function(){ + var me=document.getElementById('me'); + var btn=document.getElementById('btn'); + var reply=document.getElementById('reply'); + var cs=''; + var endPoint='https://www.cleverbot.com/getreply?key='; + var api='CC6ei4i2ZeuXhvBGYNHg6LPz_aQ'; + var url=endPoint+api; + + btn.onclick=function(){ + var botmsg; + var bot; + var botcon; + var botspan; + var myspan; + var mymsg; + var mytext; + var bottext; + var my; + var myicon; + if(me.value) + { + my=document.createElement("DIV"); + mymsg=document.createElement("DIV"); + myspan=document.createElement("SPAN"); + myspan.className="myspan"; + mymsg.className="mydiv"; + myicon=document.createElement("I"); + my.className="my"; + myicon.className="fa fa-male fa-lg"; + mytext=document.createTextNode(` ${me.value} `); + mymsg.appendChild(mytext); + myspan.appendChild(myicon); + my.appendChild(myspan); + my.appendChild(mymsg); + reply.appendChild(my); + var xhttp=new XMLHttpRequest(); + if(cs) + url=url+`&input=${me.value}`+`&cs=${cs}`; + else { + url=url+`&input=${me.value}`; + } + me.value=null; + xhttp.open('GET',url,true); + xhttp.send(); + xhttp.onreadystatechange=function(){ + if(this.readyState==4 && this.status==200){ + var t=JSON.parse(this.responseText); + cs=t.cs; + // console.log(t); + bot=document.createElement("DIV"); + botmsg=document.createElement("DIV"); + botspan=document.createElement("SPAN"); + botspan.className="botspan"; + botcon=document.createElement("I"); + botcon.className="fa fa-github-alt fa-lg"; + botmsg.className="botdiv"; + bot.className="bot"; + bottext=document.createTextNode(` ${t.output} `); + botspan.appendChild(botcon); + botmsg.appendChild(bottext); + + bot.appendChild(botspan); + bot.appendChild(botmsg); + reply.appendChild(bot); + } + } + // mymsg.style.textAlign='right'; + + + } + + + } +} diff --git a/Winter2018/Riya/ChatBotAPI/style.css b/Winter2018/Riya/ChatBotAPI/style.css new file mode 100644 index 0000000..1ddc9ce --- /dev/null +++ b/Winter2018/Riya/ChatBotAPI/style.css @@ -0,0 +1,167 @@ +body{ + font-family: 'Montserrat', sans-serif; + box-sizing: border-box; + background-color: #ddd; + background-color: #2D2D2D; + +} +.container{ + position: relative; + width:70vw; + margin: auto; + background-color: #F5C400; + min-height: 96vh; + border-radius: 0.2vw; +} +h2{ + margin: 0; + font-size: 5vh; + padding: 2vh; +} +.name{ + height:10vh; + box-shadow: inset 0px 0px 14px 0px rgba(4, 4, 4, 0.75); +} +#reply{ + position: absolute; + /*bottom: 23px;*/ + top:10vh; + width: 100%; + margin: auto; + background-color: white; + height: 77vh; + overflow-y: auto; + background-image: url(https://thumbs.dreamstime.com/b/social-media-word-icon-pattern-background-doodle-icons-sketchy-hand-drawing-set-backdrop-fabric-wallpaper-vector-54678226.jpg); + /*background-size: cover; */ +} +#reply::-webkit-scrollbar { + display: none; +} +.inp{ + bottom: 2.4vh; + width: 70vw; + height: 7vh; + top:77vh; + background-color:#F5C400; + position: relative; + padding-top: 0.4vh; + padding-bottom: 2vh; + align-items: center; + box-shadow: inset 0px 0px 14px 0px rgba(4, 4, 4, 0.75); +} +input{ + font-family: inherit; + font-size: 3vh; + height: 6vh; + /*width: ;*/ + margin-left: 1vw; + border: none; + color: black; + border-bottom-style: dashed; + background-color: transparent; +} +input:focus{ + /*border: none;*/ +} +button{ + border-radius: 50%; + border: none; + width: 6vh; + height: 6vh; + padding: 1vh; + float: right; + margin-right: 3vh; + /*background-color: transparent;*/ + +} +.mydiv, .myspan{ + display: inline-block; + background-color: #C2C2C2; + margin: 1.2vh; + font-size: 2.2vh; + padding: 1vh; + min-height: 3.2vh; + font-weight: bolder; + box-shadow: inset 0px 0px 6px 0px rgba(8, 8, 8, 0.93); + float: right; + border-radius: 14vh; + +} +.botdiv, .botspan{ + display: inline-block; + background-color: #6cc7c2; + margin: 1.2vh; + font-size: 2.2vh; + padding: 1vh; + min-height: 3.2vh; + float:left; + /*color: white;*/ + box-shadow: inset 0px 0px 6px 0px rgba(8, 8, 8, 0.93); + font-weight: bolder; + border-radius:14vh; + +} +.my{ + min-height: 6vh; + width: 68vw; + margin: auto; +} +.bot{ + min-height: 6vh; + width: 68vw; + margin: auto; +} +.botspan{ + margin-right: 0.2vw; + border-radius: 50%; + min-width: 1.6vw; + text-align: center; +} +.myspan{ + margin-left: 0.2vw; + border-radius: 50%; + min-width: 1.6vw; + text-align: center; +} +#me{ + width: 89%; +} + +@media (max-width:900px) and (min-width:600px){ + .container{ + width: 100%; + } + .inp{ + width: 100%; + } + input{ + width:90%; + } + .my, .bot{ + width: 98%; + } + #me{ + width:88%; + } +} + +@media (max-width:600px) { + .container{ + width: 100%; + + } + .inp{ + width: 100%; + } + input{ + width:90%; + /*font-size: 3vh;*/ + } + .my, .bot{ + width: 98%; + } + #me{ + width:80%; + } + +} diff --git a/Winter2018/Riya/ToDoList/index.html b/Winter2018/Riya/ToDoList/index.html new file mode 100644 index 0000000..c6047e3 --- /dev/null +++ b/Winter2018/Riya/ToDoList/index.html @@ -0,0 +1,28 @@ + + + + + + + + + + TO DO LIST + + +
+
+ My Activities +
+
+ + +
+
+ +
+ + + + + diff --git a/Winter2018/Riya/ToDoList/to.css b/Winter2018/Riya/ToDoList/to.css new file mode 100644 index 0000000..3cbf1f6 --- /dev/null +++ b/Winter2018/Riya/ToDoList/to.css @@ -0,0 +1,84 @@ +body{ + font-family: 'Montserrat', sans-serif; + box-sizing: border-box; + background-color: #ddd; + +} +.headd{ + width: 100%; + background-color: #5D5757; + padding: 1vw; + margin-left: -1vw; + margin-top: -1vw; + margin-right: -1vw; + font-size: 3.5vw; + font-weight: bolder; + color:white; + min-height: 10vw; + + box-shadow: -2px 6px 47px -9px rgba(0,0,0,0.75); +} +.valuee{ + margin-top: 2vw; + width:96vw; + margin-left: 1vw; + box-shadow: -2px 6px 47px -9px rgba(0,0,0,0.75); + background-color: white; +} + + +#inp{ + background-color:white; + min-width: 71vw; + font-size: 2vw; + width:60%; +} +#bt{ + min-width: 17vw; + margin-right:0.5vw; + margin-top:0.2vw; + float: right; + font-size: 1.8vw; + border-radius: 0%; +} +table { + margin-top: 2vw; + background-color: white; + border-collapse: collapse; + width:96vw; + box-shadow: -2px 6px 47px -9px rgba(0,0,0,0.75); +} +td, th { + font-size: 1.8vw; + padding: 0.5vw; + border-bottom: 1px solid #ddd; + +} +.list{ + margin-left: 1vw; +} +button{ + + padding: 0.8vw; + border-radius: 10%; + text-align: center; + font-size: 1.8vw; + margin-left: 1vw; + cursor: pointer; +} +input{ + width:80%; + padding: 1vw; + font-size: 1.8vw; + border: 0px; + font-family: 'Montserrat', sans-serif; +} +.done{ + background-color: #66bb6a; +} +.rem{ + background-color: #FC97A7; +} +.up{ + background-color: #90caf9; +} diff --git a/Winter2018/Riya/ToDoList/to.js b/Winter2018/Riya/ToDoList/to.js new file mode 100644 index 0000000..6995ec5 --- /dev/null +++ b/Winter2018/Riya/ToDoList/to.js @@ -0,0 +1,70 @@ +(function(){ + "use strict"; + window.onload=function(){ + var inp=document.getElementById('inp'); + var bt=document.getElementById('bt'); + var res=document.getElementById('res'); + var todoList=JSON.parse(localStorage.getItem("mylist")) || []; + + bt.onclick=function(){ + var task={}; + task.act=inp.value; + task.done=false; + todoList.push(task); + localStorage.setItem('mylist',JSON.stringify(todoList)); + display(); + inp.value=""; + } + display(); + function display(){ + res.innerHTML=null; + let final=""; + final=`
`; + for(var i=0;i` + + } + final+=`
 ${i+1}.  
`; + res.innerHTML=final; + for(let k=0;k + + + + + + + + Resume + + + + +
+
+
+
+
+

RIYA

+
A budding Computer Engineer
+
+
+
+
+
+

EDUCATION


+  NSIT, DU
+ B.E. in Computer Engineering
+ From July 2016 To June 2020(expected)
+ CGPA:7.6(out of 10)
+
+  Kendriya Vidyalaya
+ Class XII
+ Studied Physics, Chemistry, Maths , Biology and English
+ Aggregate:92.2%
+
+  Kendriya Vidyalaya
+ Class X
+ CBSE
+ CGPA:10(Out of 10)
+
+ +
+

Skills


+  Languages
+ C/C++ || Java || HTML || CSS || SQL || Git

+  Technologies
+ Data Structures || Algorithms || computer architecture || MySQL
+
+ +
+

Courses


+  Studied:
+ Data Structures with c++( At Coding Blocks)
+ Full stack web development(At Coding Blocks)
+
+ +
+

Projects


+   Created technical dictionary using tries Data Structure>
+   Created Library management system in c++ language
+   Created an application for review collection and analysis in Java and mysql
+ +
+
+
+
+ + + +
+
+ + + +
+
+ + + +
+
+ + + +
+
+
+
+
+
+ + diff --git a/Winter2018/Saksham/Animation/PendulumAnimation.html b/Winter2018/Saksham/Animation/PendulumAnimation.html new file mode 100755 index 0000000..b384b45 --- /dev/null +++ b/Winter2018/Saksham/Animation/PendulumAnimation.html @@ -0,0 +1,129 @@ + + + + + + + + + + +
+ +
+ + +
+
+
+ + + diff --git a/Winter2018/Saksham/Portfolio and Resume/Portfolio.html b/Winter2018/Saksham/Portfolio and Resume/Portfolio.html new file mode 100755 index 0000000..31b49b6 --- /dev/null +++ b/Winter2018/Saksham/Portfolio and Resume/Portfolio.html @@ -0,0 +1,224 @@ + + + + + My Portfolio + + + + + + + +
+
+
+ +
+

Saksham Bhalla

+ +
+ +
+
+ +
+ +

About me..

Hey There,
Welcome to my portfolio
I am a nineteen year old budding web developer. Currently pursuing my Btech degree, I've worked a lot in and have a decent experience in programming languages like C/C++/Java. This very portfolio has been designed by me using simple HTML and scratch CSS as a part of practice. This portfolio includes all my important details like, academics, experience ,schooling, hobbies, interests, achievements ,etc.
You can also refer to my attached resume, linkedin profile.
Do feel free to contact/msg me.
ThankYou. +
+
+ +

Personal Details:

+
+ + + + + + + + + + + + + + + + + + + + +
Name:Saksham Bhalla
Age:19
Date Of Birth:11/01/1998
Blood Group:B+
Marital Status:Single
+
+
+

Contact Details:

+ +
+ + + + + + + + + + + + + + + + + + + + + + + +
Email:sakshambhalla11@gmail.com
LinkedIn Profile:www.linkedin.com/in/saksham-bhalla-b12a33147
Github Profile:https://github.com/sakshambhalla
Resume:My Resume
Contact Number:(+91)9971470013
+
+ +
+ + +
+ + +

Skills:

+ +
+
    +
  • + C/C++ +
  • +
  • + Java +
  • +
  • + HTML +
  • +
  • + CSS +
  • +
  • + Javascripts +
  • +
  • + Public Speaking +
  • +
  • + Web designing +
  • +
  • + Strong Problem Solving +
  • +
  • + Programming +
  • +
  • + Acting +
  • +
  • + Dramatics +
  • +
  • + Street Play +
  • +
  • + Communication Skills +
  • + +
+
+

+

Education:

+
+
    +
  • +
    + Maharaja Surajmal Institute Of Technology:   (Janakpuri,New Delhi) +
    Btech-Computer Science Engineering (2016-2020)
    +
    +
  • + +
  • +
    + Ryan International School:   (Rohini, New Delhi) +
    CBSE: 94%
    +
    +
  • + +
+ +
+

+ +

Work Experience:

+ +
+
    +
  • +
    + Make A Difference (MAD) +
    + Academic Support Volunteer    (2016-2017) +
    + +
    + +
  • +
+ +
+

+ +
+
+ + +
+
+

Hobbies:

+
    +
  • +
    + Acting +
    + I've always participated in events like, Street Plays, Solo/Group Stage Acts +
    +
    +
  • +
  • +
    + Chess +
    + I'm always ready for a match of chess.. +
    +
    +
  • +
  • +
    + TV Shows/Movies +
    + Watching TV Shows and Movies in free time as leisure.. +
    +
    +
  • +
+
+
+

Achievements:

+
    +
  • CBSE scholar class-9th
  • +
  • CBSE scholar class-10th
  • +
+
+ +
+
+ + \ No newline at end of file diff --git a/Winter2018/Saksham/Portfolio and Resume/Resume.html b/Winter2018/Saksham/Portfolio and Resume/Resume.html new file mode 100755 index 0000000..d667c9f --- /dev/null +++ b/Winter2018/Saksham/Portfolio and Resume/Resume.html @@ -0,0 +1,181 @@ + + + + + Title + + + + + + +
+
+
Saksham Bhalla +
+
+ + +
+
+
+ +
+
B-1/6, Rajouri Garden,
New Delhi, 110027 +
+
+
+
+ + + + + + + + + +
+ E-mail: + + sakshambhalla11@gmail.com@gmail.com +
+ Cell: + + (+91)9971470013 +
+
+
+
+
+
Professional Summary +
+
+ +
+
+ Dedicated and Focussed programmer and web developer who excels at prioritising, completing multiple tasks simultaneously. Specialise in administrative support to busy engineering firms. Committed to deliver high quality results with little supervision. Energetic, organised, and professional. +
+
+
+
+
Areas Of Expertise
+
+ +
+
+
    +
  • + C/C++ +
  • +
  • + Java +
  • +
  • + HTML +
  • +
  • + CSS +
  • +
+ +
+ +
+
    +
  • + Public Speaking +
  • +
  • + Web designing +
  • +
  • + Strong Problem Solving +
  • +
  • + Programming +
  • +
+ +
+ +
+
+ +
+
Education
+
+ +
+
+
    +
  • +
    + Maharaja Surajmal Institute Of Technology:   (Janakpuri,New Delhi) +
    Btech-Computer Science Engineering (2016-2020)
    +
    +
  • + +
  • +
    + Ryan International School:   (Rohini, New Delhi) +
    CBSE: 94%
    +
    +
  • + +
+
+

+ +
+
Work Experience
+
+
+
+
    +
  • +
    + Make A Difference (MAD) +
    + Academic Support Volunteer    (2016-2017) +
    + +
    + +
  • +
+
+
+ +
+
+
+
+ +
+ + + + \ No newline at end of file diff --git a/Winter2018/Saksham/Portfolio and Resume/portfoliostyle.css b/Winter2018/Saksham/Portfolio and Resume/portfoliostyle.css new file mode 100755 index 0000000..512ee89 --- /dev/null +++ b/Winter2018/Saksham/Portfolio and Resume/portfoliostyle.css @@ -0,0 +1,200 @@ +@media(max-width:819px) +{ + .main{ + display:flex; + flex-flow:column ; + } + .first{ + display: flex; + flex-direction:column; + width:100%; + + } + .one{ + background-color:#e8eceb; + width:100%; + border-radius:1%; + + } + .two{ + background-color:#c7d4d2; + width:100%; + border-radius:1%; + + } + .second{ + background-color:#b1c1bf; + width:100%; + border-radius:1%; + + } + #image{ + margin:0 auto; + max-width: 200px; + display:block; + border-radius:50%; + } + .about{ + border-radius:5%; + margin:0 auto; + background-color:palegoldenrod; + border:2px solid red; + padding:20px; + width:80%; + } +} + +@media(min-width:820px) and (max-width:1160px) +{ + + .main{ + display:flex; + flex-flow:column ; + + } + .first{ + display: flex; + flex-direction:row; + width:100%; + } + .one{ + background-color: #e8eceb; + width:60%; + order:2; + border-radius:1%; + position:relative; + + + } + .two{ + background-color: #c7d4d2; + width:40%; + order:1; + border-radius:1%; + + } + .second{ + background-color: #b1c1bf; + width:100%; + border-radius:1%; + display:flex; + justify-content:space-around; + } + #image{ + margin:0 auto; + max-width: 200px; + display:block; + border-radius:50%; + } + .about{ + border-radius:5%; + margin-left:25px; + position:absolute; + width:30%; + max-height:50px; + transition:width 4s, height 4s; + z-index:5; + overflow:hidden; + } + div.about:hover{ + background-color:palegoldenrod; + border:2px solid red; + padding:20px; + width:80%; + max-height:500px; + } + #note{ + margin-top:100px; + + } +} + +@media screen and (min-width:1161px) +{ + + .main{ + display:flex; + flex-flow:row ; + + } + .first{ + display: flex; + flex-direction:row; + width:70%; + + } + .one{ + position:relative; + background-color: #e8eceb; + width:60%; + order:2; + border-radius:1%; + } + .two{ + background-color: #c7d4d2; + width:40%; + order:1; + border-radius:1%; + + } + .second{ + background-color: #c7d4d2; + width:30%; + border-radius:1%; + display:flex; + flex-flow:column; + } + + #image{ + margin:0 auto; + max-width: 200px; + display:block; + border-radius:50%; + } + .about{ + border-radius:5%; + margin-left:25px; + position:absolute; + width:30%; + max-height:50px; + transition:width 4s, height 4s; + z-index:5; + overflow:hidden; + } + div.about:hover{ + background-color:palegoldenrod; + border:2px solid red; + padding:20px; + width:80%; + max-height:500px; + } + #note{ + margin-top:100px; + + } + + +} + +td{ + padding:10px; + +} + +*{ + box-sizing:border-box; + +} +.data{ + width:80%; + margin:0 auto; + +} +.info{ + margin:20px; + +} +.two,.one{ + + overflow-x:auto; +} \ No newline at end of file diff --git a/Winter2018/Saksham/SakshamTodoList/myToDoList.html b/Winter2018/Saksham/SakshamTodoList/myToDoList.html new file mode 100644 index 0000000..20d7b5c --- /dev/null +++ b/Winter2018/Saksham/SakshamTodoList/myToDoList.html @@ -0,0 +1,34 @@ + + + + + Todo List + + + + + + + + + +
+

To-Do List

+ +


+
    +
    + + + diff --git a/Winter2018/Saksham/SakshamTodoList/myTodoList.js b/Winter2018/Saksham/SakshamTodoList/myTodoList.js new file mode 100644 index 0000000..9342beb --- /dev/null +++ b/Winter2018/Saksham/SakshamTodoList/myTodoList.js @@ -0,0 +1,104 @@ +var global = {}; +window.onload = function() { + + let inp = document.getElementById('inp'); + let result = document.getElementById('result'); + let btn = document.getElementById('btn'); + + global.todoList = JSON.parse(localStorage.getItem("todoList"))||[]; + display(); + + inp.onkeydown = function(event){ + if(event.keyCode === 13) + btn.onclick(); + }; + + btn.onclick = function() { + + let task = { + task: inp.value, + done: false + }; + + global.todoList.push(task); + localStorage.setItem("todoList",JSON.stringify(global.todoList)); + display(); + }; + + function display() { + let finalList = ""; + for(let i=0; i + + + delete + edit + ` + + } + result.innerHTML = ""; + result.innerHTML = finalList; + inp.value = ""; + } + + window.display = display; +}; + +function toggle(el){ + + let id = el.id.substr(5); + global.todoList[id].done = !global.todoList[id].done; + let checked = global.todoList[id].done; + strikeOff(checked, id); + +} + +function strikeOff(check, id) { + let el = document.getElementById(id); + if (check) { + document.getElementById('check' + id).checked = true; //Just to ensure(keep tickedones ticked after dipslay is called again and again) as incase of Call from EDIT() + el.style.textDecoration = 'line-through'; + document.getElementById('li' + id).style.backgroundColor = '#16487b2e'; + console.log("jiejnfi") + } + else { + el.style.textDecoration = 'none'; + document.getElementById('li' + id).style.backgroundColor = 'bisque'; + } +} + +function Delete(el){ + let id = el.id.substr(5); + global.todoList.splice(id,1); + localStorage.setItem("todoList",JSON.stringify(global.todoList)); + display(); + for(let x = 0; x`; + + document.getElementById('Btn').onclick = function () { + global.todoList[id].task = editedText.value; + localStorage.setItem("todoList", JSON.stringify(global.todoList)); + display(); + for(let x = 0; x + + + + + + + Title + + + + +
    + +
    +

    University Finder

    +
    + + + + + + + +
    +
    + +
    + + + + + \ No newline at end of file diff --git a/Winter2018/Saksham/UniversityApi/api.js b/Winter2018/Saksham/UniversityApi/api.js new file mode 100644 index 0000000..870a28d --- /dev/null +++ b/Winter2018/Saksham/UniversityApi/api.js @@ -0,0 +1,94 @@ + + +var univ = document.getElementById('univ'); +var cont = document.getElementById('cont'); +var results = document.getElementById('results'); +var btn = document.getElementById('btn'); +var search = document.getElementById('search'); +var caution = document.getElementById('caution'); + +var check =function(keyy) { + if(keyy.keyCode === 8 ) { + if (univ.value.length === 2) { + caution.innerHTML = `NOTE: Please Enter atleast two characters`; + + } + else { + caution.innerHTML = ''; + } + } + else + { + if (univ.value.length === 0) { + caution.innerHTML = `NOTE: Please Enter atleast two characters`; + + } + else { + caution.innerHTML = ''; + } + } +}; + +function Request(data) { + + var url = `http://universities.hipolabs.com/search?name=${univ.value}&country=${cont.value}`; + var httpRequest = new XMLHttpRequest(); + + httpRequest.onreadystatechange = function () { + + if (this.status === 200 && this.readyState === 4) { + data(JSON.parse(this.responseText)); + } + }; + + httpRequest.open('GET', url, true); + httpRequest.send(); + + if(httpRequest.readyState !== 4) + { + results.innerHTML = `
    The Search results are loading...
    `; + } +} + +var dataItemArr = []; + +btn.onclick = function () { + dataItemArr = []; + search.innerHTML = "

    Search Results

    \n"; + results.innerHTML = ""; + Request(function (data) { + var i = 0; + results.innerHTML = ''; + + for (dataItem of data) { + dataItemArr.push(dataItem); + console.log(dataItem); + results.innerHTML += `
    ${dataItem.name}
    `; + i++; + } + + if (results.innerHTML === "") { + results.innerHTML = `
    error

    Sorry, No results match your Query
    Please try a different search

    `; + } + }); +}; + +function importData(ele) { + + if (ele.innerHTML === dataItemArr[ele.id].name) { + + ele.innerHTML = `
    University${dataItemArr[ele.id].name}
    Country${dataItemArr[ele.id].country}
    `; + ele.classList.add("Active"); + } + else { + ele.innerHTML = dataItemArr[ele.id].name; + ele.classList.remove("Active"); + } +} + + +function Submit(event) { + + if (event.keyCode == 13) + btn.onclick(); +} diff --git a/Winter2018/shruti/API/index.html b/Winter2018/shruti/API/index.html new file mode 100644 index 0000000..eb744ae --- /dev/null +++ b/Winter2018/shruti/API/index.html @@ -0,0 +1,107 @@ + + + + + + XML Request + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    OperationExpressionResult
    simplify(Simplify)2^2+2(2)8
    factor(Factor)x^2 + 2xx (x + 2)
    derive(Derive)x^2+2x2 x + 2
    integrate(Integrate)x^2+2x1/3 x^3 + x^2 + C
    zeroes(Find 0's)x^2+2x[-2, 0]
    tangent(Find Tangent)2lx^312 x + -16
    area(Area Under Curve)2:4lx^360
    cos(Cosine)pi-1
    sin(Sine)00
    tan(Tangent)00
    arccos(Inverse Cosine)10
    arcsin(Inverse Sine)00
    arctan(Inverse Tangent)00
    abs(Absolute Value)-11
    log(Logarithm)2l83
    +
    + + + +
    +
    +
    +

    +
    + + + \ No newline at end of file diff --git a/Winter2018/shruti/API/xmlrequest.css b/Winter2018/shruti/API/xmlrequest.css new file mode 100644 index 0000000..5f4cd95 --- /dev/null +++ b/Winter2018/shruti/API/xmlrequest.css @@ -0,0 +1,53 @@ +table { + font-family: arial, sans-serif; + border-collapse: collapse; + width: 42%; + margin: 0 auto; +} + +td, th { + border: 1px solid #dddddd; + text-align: left; + padding: 8px; +} +th{ + background-color: maroon; + color: floralwhite; + font-weight: bold; +} + +tr:nth-child(even) { + background-color: #dddddd; +} +#head{ + margin-bottom: 30px; + font-size: 30px; + font-family: cursive; + color: crimson; +} +#inp1,#inp2{ + width: 20%; + + font-size: 20px; +} +#sub{ + height: 20px; + +} +#main1{ + background-color: crimson; + padding: 40px; +} +#demo{ + margin-top: -5px; + padding: 40px; + background-color: antiquewhite; + font-size: large; +} +@media screen and (max-width:600px ) +{ + #inp1,#inp2{ + width: 20%; + font-size: 15px; + } +} \ No newline at end of file diff --git a/Winter2018/shruti/API/xmlrequest.js b/Winter2018/shruti/API/xmlrequest.js new file mode 100644 index 0000000..a22ca5c --- /dev/null +++ b/Winter2018/shruti/API/xmlrequest.js @@ -0,0 +1,19 @@ +function loadXMLDoc() + { + var inp2 = document.getElementById('inp2').value; + var inp1 = document.getElementById('inp1').value; + var xhttp = new XMLHttpRequest(); + xhttp.onreadystatechange = function () { + if (this.readyState == 4 && this.status == 200) + { + let x=JSON.parse(this.responseText); + console.log(x); + let y=x.result; + document.getElementById("demo").innerHTML =`The answer is ${y}`; + document.getElementById("demo").style.fontSize="30px"; + document.getElementById("demo").style.fontFamily="cursive"; + } + }; + xhttp.open("GET", `https://newton.now.sh/${inp1}/${inp2}`, true); + xhttp.send(); + } diff --git a/Winter2018/shruti/resume/index.html b/Winter2018/shruti/resume/index.html new file mode 100644 index 0000000..6b8883c --- /dev/null +++ b/Winter2018/shruti/resume/index.html @@ -0,0 +1,80 @@ + + + + + Resume + + + + + + + +
    +
    +
    +

    SHRUTI GARG

    +

    2017UIT2532/7042652510/gargshruti30@gmail.com

    +
    +

    https://www.linkedin.com/in/gargshruti30/

    +

    https://github.com/gargshruti30

    + +
    +
      EDUCATION
    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    ExaminationYearInstitute%/CGPA
    B.E.(IT)2017-2021Netaji Subhas Institute of Technology
    AISSCE(XII)2017Salwan Public School97.2
    AISSE(X)2015Salwan Public School10
    +
    +
      TECHNICAL SKILLS
    +
      +
    • C
    • +
    • C++
    • +
    • HTML
    • +
    • CSS
    • +
    +
      ACADEMIC ACHIEVEMENTS
    +
      +
    • Passed the national level (B1) French exam (FRENCH ALLIANCE OF ROUEN NORMANDIE)
    • +
    • Topper of the school in class 12th
    • +
    • Secured 290 international rank in International Olympiad of Mathematics,2014
    • +
    • Secured 994 international rank in International Olympiad of Science,2014
    • +
    +
      EXTRA CURRICULAR ACTIVITIES AND INTERESTS
    +
      +
    • Won first position in various athletic events(200m,400m,4X100m relay) at Zonal level(2015)
    • +
    • Won second position in 4X400m relay in CBSE CLUSTER XII athletic meet(2016)
    • +
    • Participated in the Largest Practical Science Lesson conducted by VIBHA at IIT Delhi(2015)
    • +
    • Volunteer at Joy of giving week and Rotaract society,NSIT
    • +
    • Part of organizing committee of TEAMC 2018
    • +
    +
    +
    + + \ No newline at end of file diff --git a/Winter2018/shruti/resume/resume.css b/Winter2018/shruti/resume/resume.css new file mode 100644 index 0000000..bf95acc --- /dev/null +++ b/Winter2018/shruti/resume/resume.css @@ -0,0 +1,43 @@ +.outerbox{ + width:95%; + border: 2px solid black; + margin: 0 auto; + height:910px; +} +.name{ + + font-weight: bold ; + font-size: 30px ; + margin-top: -50px; +} +.info{ + margin-top: -5px; + margin-bottom: -20px; +} +.jumbotron{ + padding-bottom: 0px !important; + border-bottom: 1px solid darkolivegreen !important; +} +.links1{ + font-weight: lighter; + text-align: right; + margin-top: -20px; +} +.links2{ + font-weight: lighter; + text-align: right; + margin-top: -20px; +} +.education{ + + text-align: left ; + font-size: 23px ; + background-color: #ececec; + margin-top: -15px; +} +.tc{ + line-height: 150%; + margin-top: 10px; + margin-bottom: 25px; + list-style-type: circle; +} \ No newline at end of file diff --git a/Winter2018/shruti/todo/index.html b/Winter2018/shruti/todo/index.html new file mode 100644 index 0000000..ea03f89 --- /dev/null +++ b/Winter2018/shruti/todo/index.html @@ -0,0 +1,33 @@ + + + + + To Do List + + + + + + + + +
    +

    My Todolist

    +
    + + +
    +
    +
    +
    +
    +
    + +
    + +
    + + + + + \ No newline at end of file diff --git a/Winter2018/shruti/todo/new.css b/Winter2018/shruti/todo/new.css new file mode 100644 index 0000000..347e905 --- /dev/null +++ b/Winter2018/shruti/todo/new.css @@ -0,0 +1,26 @@ +.jumbotron{ + font-family: 'Joti One', cursive; !important; + font-size: 20px; !important; + text-align: center; !important; +} +.heading{ + font-size: 60px; + font-family: 'Joti One', cursive; + margin-bottom: 25px; + margin-top: -30px; +} +td{ + font-size: 15px; +} +.done{ + background-color: #66bb6a; +} +.delete{ + background-color: #FC97A7; +} +.update{ + background-color: #90caf9; +} + + + diff --git a/Winter2018/shruti/todo/todoup.js b/Winter2018/shruti/todo/todoup.js new file mode 100644 index 0000000..73e51c1 --- /dev/null +++ b/Winter2018/shruti/todo/todoup.js @@ -0,0 +1,100 @@ +let todolist = JSON.parse(localStorage.getItem('todolist')) || []; +window.onload= function() { + let inp = document.getElementById('inp'); + let result = document.getElementById('result'); + let btn = document.getElementById('btn'); + + display(); + btn.onclick = function () { + let task = { + item: inp.value, + done: false + }; + todolist.push(task); + localStorage.setItem('todolist', JSON.stringify(todolist)); + display(); + } + window.display=display; +}; + + function display() { + let list = " "; + for (let i = 0; i < todolist.length; i++) { + // list += ` ${i+1}.   ` + list+=` ${i+1}.   ` + + } + result.innerHTML = " "; + result.innerHTML = list; + for (let i = 0; i < todolist.length; i++) { + let checked = todolist[i].done; + console.log(checked); + strikeOff(checked, i); + } + document.getElementById('inp').value = ' '; + } + + +todolist=JSON.parse(localStorage.getItem('todolist')) || []; +function toggle(e1) +{ + + let id=e1.id.substr(1); + todolist[id].done=!todolist[id].done; + let checked=todolist[id].done; + + + strikeOff(checked,id); + localStorage.setItem('todolist',JSON.stringify(todolist)); + +} + +function strikeOff(check,id) +{let e1=document.getElementById(id); + let c=`i${id}`; + let checkbox=document.getElementById(c); + if(check) + { + + e1.style.textDecoration="line-through"; + checkbox.checked=true; + console.log(check); + + } + else + { checkbox.checked=false; + e1.style.textDecoration="none"; + console.log(check); + } +} + +function toggle1(e) +{ + var ans = window.confirm("Are you sure you want to delete this item?"); + if(ans) { + console.log(e); + let id = e.id.substr(1); + console.log(id); + todolist.splice(id, 1); + localStorage.setItem('todolist', JSON.stringify(todolist)); + display(); + } +} +function toggle2() +{ + + var ans = window.confirm("Are you sure you want to delete all items ?"); + if(ans) { + todolist = []; + localStorage.setItem('todolist', JSON.stringify(todolist)); + display(); + } +} + +function toggle3(e2){ + let index=e2.id.substr(1); + var newVal=document.getElementById(index); + todolist[index].item=newVal.value; + localStorage.setItem('todolist',JSON.stringify(todolist)); + display(); +} \ No newline at end of file