From 21c8e2aa43c8bf0a1afc109cc5f9b124e90d849b Mon Sep 17 00:00:00 2001
From: Nathan Meyer <Canon44444@gmail.com>
Date: Fri, 26 Oct 2018 18:38:10 -0400
Subject: [PATCH] Update Labs

---
 Lab 4/Question Answers.txt          |   5 ++
 Lab 4/css/index.css                 |  53 ++++++++++++++++++++
 Lab 4/index.html                    |  35 +++++++++++++
 Lab 4/js/index.js                   |  73 ++++++++++++++++++++++++++++
 Lab 5/CI101-Lab5-InfoRetrieval.docx | Bin 0 -> 10369 bytes
 5 files changed, 166 insertions(+)
 create mode 100644 Lab 4/Question Answers.txt
 create mode 100644 Lab 4/css/index.css
 create mode 100644 Lab 4/index.html
 create mode 100644 Lab 4/js/index.js
 create mode 100644 Lab 5/CI101-Lab5-InfoRetrieval.docx

diff --git a/Lab 4/Question Answers.txt b/Lab 4/Question Answers.txt
new file mode 100644
index 0000000..1d57a76
--- /dev/null
+++ b/Lab 4/Question Answers.txt	
@@ -0,0 +1,5 @@
+1. I see the value of Agile software development, but this
+   trial run was too rushed to fully represent its benefits.
+2. My role as programmer was fun, I'm not very good at coming
+   up with ideas on short notice, but I can implement other
+   people's ideas and have fun doing it.
\ No newline at end of file
diff --git a/Lab 4/css/index.css b/Lab 4/css/index.css
new file mode 100644
index 0000000..03e6c86
--- /dev/null
+++ b/Lab 4/css/index.css	
@@ -0,0 +1,53 @@
+*{
+	font-family: verdana;
+}
+
+#Main{
+	padding-left: 20px;
+	padding-top: 4px;
+}
+.navbar-brand{
+	user-select: none;
+	cursor: default;
+}
+
+/* Begin rainbow background (https://codepen.io/nohoid/pen/kIfto?editors=1100) */
+.wrapper{
+	z-index: -1;
+	height: 100%;
+	width: 100%;
+	left:0;
+	right: 0;
+	top: 0;
+	bottom: 0;
+	position: absolute;
+	background: linear-gradient(124deg, #ff2400, #e81d1d, #e8b71d, #e3e81d, #1de840, #1ddde8, #2b1de8, #dd00f3, #dd00f3);
+	background-size: 1800% 1800%;
+
+	-webkit-animation: rainbow 120s ease infinite;
+	-z-animation: rainbow 120s ease infinite;
+	-o-animation: rainbow 120s ease infinite;
+	animation: rainbow 120s ease infinite;
+}
+
+@-webkit-keyframes rainbow{
+	0%{background-position:0% 82%}
+	50%{background-position:100% 19%}
+	100%{background-position:0% 82%}
+}
+@-moz-keyframes rainbow{
+	0%{background-position:0% 82%}
+	50%{background-position:100% 19%}
+	100%{background-position:0% 82%}
+}
+@-o-keyframes rainbow{
+	0%{background-position:0% 82%}
+	50%{background-position:100% 19%}
+	100%{background-position:0% 82%}
+}
+@keyframes rainbow{ 
+	0%{background-position:0% 82%}
+	50%{background-position:100% 19%}
+	100%{background-position:0% 82%}
+}
+/* End rainbow background */
\ No newline at end of file
diff --git a/Lab 4/index.html b/Lab 4/index.html
new file mode 100644
index 0000000..7ceab14
--- /dev/null
+++ b/Lab 4/index.html	
@@ -0,0 +1,35 @@
+<!doctype html>
+<html>
+	<!-- Hosted on https://www.cs.drexel.edu/~nim28/CS101/Lab-4/index.html -->
+	<head>
+		<link rel="stylesheet" href="https://stackpath.bootstrapcdn.com/bootstrap/4.1.3/css/bootstrap.min.css"
+			integrity="sha384-MCw98/SFnGE8fJT3GXwEOngsV7Zt27NXFoaoApmYm81iuXoPkFOJwJ8ERdknLPMO" crossorigin="anonymous">
+		<link rel="stylesheet" href="./css/index.css"/>
+		<!-- Util Libraries -->
+		<script src="https://code.jquery.com/jquery-3.3.1.slim.min.js"
+			integrity="sha384-q8i/X+965DzO0rT7abK41JStQIAqVgRVzpbzo5smXKp4YfRvH+8abtTE1Pi6jizo" crossorigin="anonymous"></script>
+		<script src="https://cdnjs.cloudflare.com/ajax/libs/popper.js/1.14.3/umd/popper.min.js"
+			integrity="sha384-ZMP7rVo3mIykV+2+9J3UJ46jBk0WLaUAdn689aCwoqbBJiSnjAK/l8WvCWPIPm49" crossorigin="anonymous"></script>
+		<script src="https://stackpath.bootstrapcdn.com/bootstrap/4.1.3/js/bootstrap.min.js"
+			integrity="sha384-ChfqqxuZUCnJSK3+MXmPNIyE6ZbWh2IMqE241rYiqJxyMiZ6OW/JmZQ5stwEULTy" crossorigin="anonymous"></script>
+		<script src="./js/index.js"></script>
+	<head>
+	<body>
+		<nav class="navbar navbar-expand-lg navbar-dark bg-dark">
+			<div class="collapse navbar-collapse" id="navbarSupportedContent">
+				<div class="navbar-brand">
+					Password Generator
+				</div>
+				<input id="in" class="form-control mr-sm-2">
+				<button id="bt" class="btn btn-outline-success my-2 my-sm-0">Generate</button>
+			</div>
+		</nav>
+		<div class="wrapper">
+			<div id="Main">
+				<p class="output"></p>
+			</div>
+		</div>
+	<body>
+
+	
+</html>
\ No newline at end of file
diff --git a/Lab 4/js/index.js b/Lab 4/js/index.js
new file mode 100644
index 0000000..01d0348
--- /dev/null
+++ b/Lab 4/js/index.js	
@@ -0,0 +1,73 @@
+var invalid = new Set(["and","not","the","it","is","or","an","a","i"]);
+var passes = 10; // Change pass number (WIP)
+var output;
+var input;
+var questions = new Array(
+	"Describe your dream house", // ~Nick
+	"Describe the term \"family\"", // ~Nick
+	"Describe why your role model is your role model", // ~Alec
+	"Describe your ideal vacation" // ~Alec
+);
+
+$(document).ready(function(){ // Upon DOM load
+	$("#in").attr("placeholder", questions[Math.floor(Math.random()*questions.length)] + "..."); // Ask question
+});
+
+$(function(){ // JQuery event listener
+	$("#bt").click(function(){ // On button click
+		/* Logic */
+		input = new String($('input.form-control').val()); // Get input
+		$('input.form-control').val(""); // Clear box
+		if(input.trim() === "")return; // Abort if no input
+		$('p.input').html(input); // Print input text for user
+		var parse = input.split(" ");
+		for(var i=0; i<parse.length; i++){
+			// Delete invalid words
+			if(invalid.has(parse[i].toLowerCase())){
+				delete parse[i];
+			}
+		}
+		for(var j=0; j<passes; j++){
+			$("p.output").append(getRandomPass() + "<br/>"); // Display passwords for user
+		}
+		/* Nested Functions */
+		function getRandomPass(){
+			return populate(
+				shuffle( // Fisher-Yates shuffle
+					parse.filter(function (el){
+						// Remove empty elements
+						return el != null;
+					})
+				).join(" ").split("") // To char array -> Spaces to numbers
+			);
+		}
+		// Replace spaces with single digit random numbers
+		function populate(input){
+			var output = "";
+			for(var j in input){
+				if(input[j] === " "){
+					input[j] = Math.round(Math.random() * 9);
+				}
+				output += input[j];
+			}
+			return output;
+		}
+		// Begin Fisher-Yates randomization algorithm (http://sedition.com/perl/javascript-fy.html)
+		function shuffle(array){
+			var currentIndex = array.length, temporaryValue, randomIndex;
+			// While there remain elements to shuffle...
+			while (0 !== currentIndex){
+				// Pick a remaining element...
+				randomIndex = Math.floor(Math.random() * currentIndex);
+				currentIndex -= 1;
+				// And swap it with the current element.
+				temporaryValue = array[currentIndex];
+				array[currentIndex] = array[randomIndex];
+				array[randomIndex] = temporaryValue;
+			}
+			return array;
+		}
+		// End Fisher-Yates randomization algorithm
+	});
+});
+
diff --git a/Lab 5/CI101-Lab5-InfoRetrieval.docx b/Lab 5/CI101-Lab5-InfoRetrieval.docx
new file mode 100644
index 0000000000000000000000000000000000000000..d5f49c58c01a3642afe0a28499b455b921e984dc
GIT binary patch
literal 10369
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
Uyjj^mia?7E`I#6PV$?u90J_)bPXGV_

literal 0
HcmV?d00001

-- 
GitLab