├── typing-speed-js-master ├── README.md ├── public │ ├── Snapshot.JPG │ ├── style.css │ └── index.js └── index.html ├── Calculator using Tkinter ├── readme.md └── calc.py ├── Validation using JS ├── readme.md ├── Screenshot (10).png ├── Screenshot (11).png └── valid.html ├── Contact List using Tkinter ├── readme.md ├── __pycache__ │ └── phones.cpython-38.pyc ├── phones.py └── phone.py ├── img-to-sketch ├── a.jpg └── imgsketch.py ├── Payment_Gateway_Integration ├── bg.jpg ├── style.css └── index.html ├── Student Registration Portal ├── Sigin.jpg ├── camp.jpg ├── bg.jpg.jpg ├── sihagad.jpg ├── wel.html ├── success.html ├── login.css ├── signin.css ├── home.css ├── login.html ├── Signin.html └── signin.php ├── Angular JS form Submit ├── Screenshot (8).png ├── Screenshot (9).png ├── angu.js └── angu.html ├── README.md ├── My First Firebase app ├── package.json ├── README.md ├── style.css ├── index.html ├── index.js ├── LICENSE.txt └── .vscode │ └── settings.json ├── Talking paragraph Using HTML & CSS ├── style.css └── index.html └── Form using Tkinter.py /typing-speed-js-master/README.md: -------------------------------------------------------------------------------- 1 | # typing-speed-js -------------------------------------------------------------------------------- /Calculator using Tkinter/readme.md: -------------------------------------------------------------------------------- 1 |

Simple Calculator using Tkinter

2 | -------------------------------------------------------------------------------- /Validation using JS/readme.md: -------------------------------------------------------------------------------- 1 |

This is Validation of Form using JS

2 | -------------------------------------------------------------------------------- /Contact List using Tkinter/readme.md: -------------------------------------------------------------------------------- 1 |

Contact List Manipulation using Tkinter

2 | -------------------------------------------------------------------------------- /img-to-sketch/a.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/arjundhav/Miniprojects/main/img-to-sketch/a.jpg -------------------------------------------------------------------------------- /Payment_Gateway_Integration/bg.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/arjundhav/Miniprojects/main/Payment_Gateway_Integration/bg.jpg -------------------------------------------------------------------------------- /Student Registration Portal/Sigin.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/arjundhav/Miniprojects/main/Student Registration Portal/Sigin.jpg -------------------------------------------------------------------------------- /Student Registration Portal/camp.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/arjundhav/Miniprojects/main/Student Registration Portal/camp.jpg -------------------------------------------------------------------------------- /Student Registration Portal/bg.jpg.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/arjundhav/Miniprojects/main/Student Registration Portal/bg.jpg.jpg -------------------------------------------------------------------------------- /Student Registration Portal/sihagad.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/arjundhav/Miniprojects/main/Student Registration Portal/sihagad.jpg -------------------------------------------------------------------------------- /Validation using JS/Screenshot (10).png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/arjundhav/Miniprojects/main/Validation using JS/Screenshot (10).png -------------------------------------------------------------------------------- /Validation using JS/Screenshot (11).png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/arjundhav/Miniprojects/main/Validation using JS/Screenshot (11).png -------------------------------------------------------------------------------- /Angular JS form Submit/Screenshot (8).png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/arjundhav/Miniprojects/main/Angular JS form Submit/Screenshot (8).png -------------------------------------------------------------------------------- /Angular JS form Submit/Screenshot (9).png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/arjundhav/Miniprojects/main/Angular JS form Submit/Screenshot (9).png -------------------------------------------------------------------------------- /typing-speed-js-master/public/Snapshot.JPG: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/arjundhav/Miniprojects/main/typing-speed-js-master/public/Snapshot.JPG -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- 1 | # Mini-Projects 2 | 3 |

This repository is collection of short projects, you could try and implement these in your larger project.

4 | -------------------------------------------------------------------------------- /Contact List using Tkinter/__pycache__/phones.cpython-38.pyc: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/arjundhav/Miniprojects/main/Contact List using Tkinter/__pycache__/phones.cpython-38.pyc -------------------------------------------------------------------------------- /My First Firebase app/package.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "js-5pf7ig", 3 | "version": "0.0.0", 4 | "private": true, 5 | "dependencies": { 6 | "@firebase/util": "^0.2.45", 7 | "firebase": "^7.14.1", 8 | "firebaseui": "^4.5.0" 9 | } 10 | } -------------------------------------------------------------------------------- /Contact List using Tkinter/phones.py: -------------------------------------------------------------------------------- 1 | phonelist = [['Kunal', 'Jadhav', '241-343-4349'], 2 | ['Pratik', 'Jadhav', '202-689-1234'], 3 | ['Yogesh', 'Pawar', '609-483-5432'], 4 | ['Vivek', 'Oberio', '215-683-2341'], 5 | ['Salman', 'Khan', '571-485-2689'], 6 | ['Sai', 'Kadam', '703-987-6543'] 7 | ] -------------------------------------------------------------------------------- /Student Registration Portal/wel.html: -------------------------------------------------------------------------------- 1 | 2 | Welcome 3 | 4 | 5 |

Congrats U have Logged in Successfully

6 | 7 | -------------------------------------------------------------------------------- /Angular JS form Submit/angu.js: -------------------------------------------------------------------------------- 1 | var app=angular.module("simpleApp",[]); 2 | app.controller("simpleController",function($scope) 3 | { 4 | $scope.collection=[ 5 | {name:"Arjun",age:22,city:"Nanded"}, 6 | {name:"Yash",age:21,city:"Pune"}]; 7 | $scope.addEntry=function() 8 | { 9 | $scope.collection.push($scope.newData); 10 | $scope.newData=''; 11 | }; 12 | }); -------------------------------------------------------------------------------- /Student Registration Portal/success.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | Sign Up 4 | 5 | 6 | 7 | 8 |

You Have Signed in Succesfully

9 | 10 | 11 | -------------------------------------------------------------------------------- /Student Registration Portal/login.css: -------------------------------------------------------------------------------- 1 | body { 2 | background: black; 3 | font-family: sans-serif; 4 | background-image: url('bg.jpg.jpg'); 5 | background-repeat: no-repeat; 6 | background-attachment: fixed; 7 | background-size: cover; 8 | } 9 | 10 | .heading { 11 | background: #b4e014; 12 | margin: 0 120px 0 100px; 13 | text-align: center; 14 | text-transform: uppercase; 15 | font-style: oblique; 16 | font-size: 19px; 17 | font-weight: bold; 18 | padding: 05px; 19 | } -------------------------------------------------------------------------------- /Student Registration Portal/signin.css: -------------------------------------------------------------------------------- 1 | body { 2 | background: black; 3 | font-family: sans-serif; 4 | background: black; 5 | font-family: sans-serif; 6 | background-image: url('Sigin.jpg'); 7 | background-repeat: no-repeat; 8 | background-attachment: fixed; 9 | background-size: cover; 10 | } 11 | 12 | .heading { 13 | background: #1097cc; 14 | color: black; 15 | text-align: center; 16 | text-transform: uppercase; 17 | font-style: oblique; 18 | font-size: 19px; 19 | font-weight: bold; 20 | padding: 05px; 21 | } -------------------------------------------------------------------------------- /Talking paragraph Using HTML & CSS/style.css: -------------------------------------------------------------------------------- 1 | body { 2 | margin: 0; 3 | padding: 0; 4 | background: white; 5 | overflow: hidden; 6 | } 7 | section { 8 | background: #ffee25; 9 | } 10 | p { 11 | font-size: 13px; 12 | line-height: 10px; 13 | background: url(https://media.giphy.com/media/41x8G9RQjdKSKbO7it/giphy.gif) no-repeat; 14 | background-size: cover; 15 | background-position: center; 16 | background-attachment: fixed; 17 | -webkit-background-clip: text; 18 | -webkit-text-fill-color: rgba(255,255,255,0); 19 | font-weight: 900; 20 | margin: 0; 21 | mix-blend-mode: darken; 22 | } -------------------------------------------------------------------------------- /Student Registration Portal/home.css: -------------------------------------------------------------------------------- 1 | body { 2 | margin: 0; 3 | padding: 0; 4 | background: black; 5 | font-family: sans-serif; 6 | font-weight: bold; 7 | } 8 | 9 | .wrapper { 10 | position: relative; 11 | width: 100%; 12 | height: 100%; 13 | overflow: hidden; 14 | } 15 | 16 | .wrapper video { 17 | position: absolute; 18 | top: 0; 19 | left: 0; 20 | width: 100%; 21 | height: 100%; 22 | } 23 | 24 | .wrapper h3 { 25 | width: 100%; 26 | height: 100%; 27 | margin: 0; 28 | background-color: #fff; 29 | text-align: center; 30 | mix-blend-mode: screen; 31 | text-transform: uppercase; 32 | font-size: 250px; 33 | font-weight: 600; 34 | } -------------------------------------------------------------------------------- /My First Firebase app/README.md: -------------------------------------------------------------------------------- 1 | # WTM Summit 2019 Firebase Workshop 2 | 3 | Check out each step: 4 | * https://stackblitz.com/edit/wtm-start 5 | * https://stackblitz.com/edit/wtm-checkpoint1 6 | * https://stackblitz.com/edit/wtm-checkpoint2 7 | * https://stackblitz.com/edit/wtm-checkpoint3 8 | * https://stackblitz.com/edit/wtm-next-steps 9 | 10 | ### How to use 11 | 1) Create a project in the Firebase console 12 | 2) Enable 13 | * Firestore (with rules in test mode) - https://console.firebase.google.com/u/0/project/_/database 14 | * Email / Password Auth - https://console.firebase.google.com/u/0/project/_/authentication/providers 15 | 3) Add a web app, and add the config snippet to index.js after `// Add Firebase config here`- https://console.firebase.google.com/u/0/project/_/settings/general/web 16 | -------------------------------------------------------------------------------- /Angular JS form Submit/angu.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 |

AngularJS Form Submit Application

8 |
9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 |
No Name Age City
{{$index+1}} {{entry.name}} {{entry.age}} {{entry.city}}
21 |
22 |

New Data Entry Form

23 | 24 | 25 | 26 | 27 | 28 | 29 | 30 | 31 | 32 | 33 | 34 | 35 |
Name:
Age:
city:
36 |
37 |
38 | 39 | -------------------------------------------------------------------------------- /typing-speed-js-master/index.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | Typing Speed Tester! 4 | 5 | 6 | 7 | 8 |
9 |
Typing Speed Tester!

10 |
11 |
12 | 13 |
14 |
Words/min
15 |
100
16 |
17 | 18 |
19 |
Errors
20 |
0
21 |
22 | 23 |
24 |
Time(s)
25 |
60s
26 |
27 | 28 |
29 |
Accuracy(%)
30 |
100
31 |
32 |
33 |
34 | 35 | 36 | 38 |
39 |
40 | 41 |
42 | 43 | 44 | 45 | -------------------------------------------------------------------------------- /Form using Tkinter.py: -------------------------------------------------------------------------------- 1 | # Import the Required libraries 2 | from tkinter import * 3 | 4 | # Create an instance of tkinter frame or window 5 | win = Tk() 6 | 7 | # Set the size of the window 8 | win.geometry("700x350") 9 | 10 | # Add a Frame widget 11 | frame = Frame(win) 12 | 13 | # Define a function to get the data and display a message 14 | def on_key_up(): 15 | name = fname 16 | frame.pack_forget() 17 | win.configure(bg="green4") 18 | Label(win, text="Hey " + fname.get() + " Welcome to Our Page !!", 19 | font=('Segoe UI', 18, 'bold'), 20 | background="white").pack(pady=30) 21 | # Create a Label widget 22 | Label(frame, text="Registration Form", 23 | font=('Helvetica 16 bold'), 24 | background="green3").grid(row=5, column=0, pady=30) 25 | frame.pack() 26 | 27 | # Add Field for First Value 28 | Label(frame, text="First Name").grid(row=7, column=0, padx=5) 29 | fname = Entry(frame) 30 | fname.grid(row=10, column=0, padx=10) 31 | 32 | # Add Field for Second Value 33 | Label(frame, text="Family name").grid(row=12, column=0, padx=5) 34 | sname = Entry(frame) 35 | sname.grid(row=15, column=0, padx=10) 36 | 37 | # Add Field for Email Address 38 | Label(frame, text="Email address").grid(row=17, column=0, padx=5) 39 | email = Entry(frame) 40 | email.grid(row=20, column=0, padx=10) 41 | 42 | # Add another field for accepting password value 43 | Label(frame, text="Enter a Password").grid(row=22, column=0, padx=5) 44 | password = Entry(frame, show="*") 45 | password.grid(row=25, column=0, padx=10) 46 | 47 | # Create a button 48 | Button(frame, text="Register", command=on_key_up).grid(row=15, 49 | column=1, padx=5) 50 | 51 | win.mainloop() -------------------------------------------------------------------------------- /Payment_Gateway_Integration/style.css: -------------------------------------------------------------------------------- 1 | body{ 2 | background-image: url(./bg.jpg); 3 | background-color: #cccccc; 4 | height: 500px; 5 | background-repeat: no-repeat; 6 | background-size: cover; 7 | position: relative; 8 | 9 | } 10 | 11 | .header h1{ 12 | 13 | padding-top: 0px; 14 | padding-bottom:30px;; 15 | } 16 | 17 | .container{ 18 | padding-top: 50px; 19 | } 20 | 21 | .title{ 22 | padding-top: 30px; 23 | } 24 | 25 | .title h1{ 26 | color: yellow; 27 | font-weight: bolder; 28 | } 29 | 30 | .title h3{ 31 | padding-top: 10px; 32 | color: aqua; 33 | font-weight: 300px; 34 | } 35 | 36 | .title form{ 37 | padding-top: 30px; 38 | } 39 | 40 | ul { 41 | list-style-type: none; 42 | margin: 0; 43 | padding: 0; 44 | overflow: hidden; 45 | background-color: #333; 46 | } 47 | 48 | li { 49 | float: left; 50 | } 51 | 52 | li a { 53 | display: block; 54 | color: white; 55 | text-align: center; 56 | padding: 14px 16px; 57 | text-decoration: none; 58 | } 59 | 60 | li a:hover { 61 | background-color: #111; 62 | } 63 | 64 | 65 | .icon-bar { 66 | position: fixed; 67 | top: 50%; 68 | -webkit-transform: translateY(-50%); 69 | -ms-transform: translateY(-50%); 70 | transform: translateY(-50%); 71 | } 72 | 73 | .icon-bar a { 74 | display: block; 75 | text-align: center; 76 | padding: 16px; 77 | transition: all 0.3s ease; 78 | color: white; 79 | font-size: 20px; 80 | } 81 | 82 | .icon-bar a:hover { 83 | background-color: #000; 84 | } 85 | 86 | .facebook { 87 | background: #3B5998; 88 | color: white; 89 | } 90 | 91 | .linkedin { 92 | background: #007bb5; 93 | color: white; 94 | } 95 | 96 | .instagram { 97 | background: #bb0000; 98 | color: white; 99 | } 100 | -------------------------------------------------------------------------------- /Student Registration Portal/login.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | Sinhgad Log-in 5 | 6 | 7 | 8 | 9 | 10 |
Sinhgad Logo
11 |

12 | 13 |
14 |
15 |

Student Log-in

16 |
17 | 18 |
19 |
20 | 21 |

22 | 23 |

24 | 25 | 26 |

27 | 28 |

29 | 30 | 31 | Remember me 32 |

33 | 34 | 35 | 36 |

37 | 38 | Forgot password? 39 |

40 | Need an Account, Sign-in !! 41 |
42 |
43 |
44 | 47 | 48 | -------------------------------------------------------------------------------- /img-to-sketch/imgsketch.py: -------------------------------------------------------------------------------- 1 | ''' 2 | Image to Pencil Sketch with Python 3 | The only library we need for converting an image into a pencil sketch with Python is an OpenCV library 4 | Command to install CV: pip install opencv-python 5 | ''' 6 | 7 | import cv2 8 | 9 | 10 | ''' 11 | Now the next thing to do is to read the image 12 | cv2.imshow(“Title You want to give”, Image) and 13 | then simply write cv2.waitKey(0). 14 | This will display the image 15 | ''' 16 | 17 | image = cv2.imread("a.jpg") #image_Read 18 | cv2.imshow("Orignal Img", image) #display the image 19 | cv2.waitKey(0) #display the image 20 | 21 | ''' 22 | #To create a new image by converting the original image to greyscale 23 | gray_image = cv2.cvtColor(image, cv2.COLOR_BGR2GRAY) #cv2. cvtColor(input_image, flag) method is used to convert an image from one color space to another 24 | cv2.imshow("Black & White", gray_image) 25 | cv2.waitKey(0) 26 | 27 | #next step is to invert the new grayscale image 28 | inverted_image = 255 - gray_image 29 | cv2.imshow("Inverted -ve Img", inverted_image) 30 | cv2.waitKey() 31 | 32 | 33 | #next step in the process is to blur the image by using the Gaussian Function in OpenCV 34 | blurred = cv2.GaussianBlur(inverted_image, (21, 21), 0) 35 | 36 | #final step is to invert the blurred image, then we can easily convert the image into a pencil sketch 37 | inverted_blurred = 255 - blurred 38 | pencil_sketch = cv2.divide(gray_image, inverted_blurred, scale=256.0) 39 | cv2.imshow("Sketch", pencil_sketch) 40 | cv2.waitKey(0) 41 | 42 | 43 | ''' 44 | #if you want to have a look at both the original image and the pencil sketch side by side 45 | cv2.imshow("original image", image) 46 | 47 | gray_image = cv2.cvtColor(image, cv2.COLOR_BGR2GRAY) 48 | inverted_image = 255 - gray_image 49 | blurred = cv2.GaussianBlur(inverted_image, (21, 21), 0) 50 | inverted_blurred = 255 - blurred 51 | pencil_sketch = cv2.divide(gray_image, inverted_blurred, scale=150.0) 52 | cv2.imshow("pencil sketch", pencil_sketch) 53 | cv2.waitKey(0) 54 | 55 | 56 | 57 | 58 | -------------------------------------------------------------------------------- /Payment_Gateway_Integration/index.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | TSF | Services 10 | 11 | 12 |
13 |

The Sparks Foundation

14 |
15 | 16 |
17 | 24 |
25 | 26 |
27 |
28 |
29 |

THE SPARKS FOUNDATION


30 |

"Hey guys! If you wish to get our Services & Utlize paid content
Please Subscribe :)"


31 | 32 |
33 | 34 |
35 |
36 |
37 | 38 |
39 | 40 | 41 | 42 |
43 | 44 | -------------------------------------------------------------------------------- /typing-speed-js-master/public/style.css: -------------------------------------------------------------------------------- 1 | body { 2 | background-color: rgb(231, 216, 8); 3 | color: black; 4 | text-align: center; 5 | font-family: sans-serif; 6 | } 7 | 8 | .container { 9 | display: flex; 10 | flex-direction: column; 11 | align-items: center; 12 | } 13 | 14 | 15 | .title { 16 | margin-bottom: 20px; 17 | font-size: 3rem; 18 | color: rgba(0, 0, 0, 0.884); 19 | width: 100%; 20 | height: auto; 21 | background-color: skyblue; 22 | } 23 | 24 | .header { 25 | display: flex; 26 | align-items: center; 27 | } 28 | 29 | .timer, .errors, 30 | .accuracy, .cpm, .wpm { 31 | background-color:white; 32 | height: 60px; 33 | width: 70px; 34 | margin: 8px; 35 | padding: 12px; 36 | border-radius: 20%; 37 | box-shadow: grey 5px 8px 5px; 38 | } 39 | 40 | .errors{ 41 | color: red; 42 | } 43 | .wpm{ 44 | color: rgb(16, 197, 16); 45 | } 46 | .cpm, .wpm { 47 | display: none; 48 | } 49 | 50 | .head { 51 | text-transform: uppercase; 52 | font-size: 10px; 53 | font-weight: 600; 54 | color: skyblue; 55 | font-weight: bolder; 56 | } 57 | 58 | .init_time, .init_errors, 59 | .init_accuracy, .init_cpm, 60 | .init_wpm { 61 | font-size: 35px; 62 | } 63 | 64 | .content { 65 | background-color: white; 66 | font-weight: bolder; 67 | margin: 10px; 68 | padding: 25px; 69 | box-shadow: grey 5px 8px 5px; 70 | border-radius: 10px 10px 10px 10px; 71 | } 72 | 73 | .input_box { 74 | background-color: white; 75 | font-weight: bolder; 76 | height: 80px; 77 | width: 40%; 78 | font-size: 1.5rem; 79 | font-weight: 600; 80 | margin: 10px; 81 | padding: 15px; 82 | border: 0px; 83 | box-shadow: grey 5px 8px 5px; 84 | border-radius: 10px 10px 10px 10px; 85 | } 86 | 87 | 88 | .correct{ 89 | color: rgb(82, 200, 82); 90 | } 91 | 92 | .restart { 93 | display: none; 94 | background-color: skyblue; 95 | font-size: 1.5rem; 96 | padding: 10px; 97 | border: 0px; 98 | color: whitesmoke; 99 | border-radius: 10px 10px 10px 10px; 100 | width: 30%; 101 | font-weight: bold; 102 | box-shadow: grey 5px 8px 5px; 103 | } 104 | 105 | .start { 106 | background-color: skyblue; 107 | font-size: 1.5rem; 108 | padding: 10px; 109 | border: 0px; 110 | color: whitesmoke; 111 | border-radius: 10px 10px 10px 10px; 112 | width: 30%; 113 | font-weight: bold; 114 | box-shadow: grey 5px 8px 5px; 115 | } -------------------------------------------------------------------------------- /My First Firebase app/style.css: -------------------------------------------------------------------------------- 1 | @media all and (min-width:1200px){ 2 | #app{ 3 | max-width: 1000px; 4 | margin: 0 auto; 5 | } 6 | } 7 | @media all and (min-width: 960px) and (max-width: 1199px) { 8 | #app{ 9 | max-width: 900px; 10 | margin: 0 auto; 11 | } 12 | } 13 | 14 | @media all and (max-width: 599px) { 15 | img{ 16 | width:100%; 17 | height:200px; 18 | object-fit: cover; 19 | } 20 | } 21 | 22 | @media all and (min-width: 600px) { 23 | section { 24 | clear: both; 25 | display: block; 26 | } 27 | #event-details-container{ 28 | clear: none; 29 | } 30 | img{ 31 | width:60%; 32 | height:300px; 33 | float: left; 34 | border-radius: 8px; 35 | object-fit: cover; 36 | margin-right: 20px; 37 | margin-left: 20px; 38 | margin-bottom: 20px; 39 | } 40 | } 41 | 42 | hr { 43 | clear: both; 44 | margin-bottom: 20px; 45 | margin-top: 20px; 46 | } 47 | 48 | section { 49 | margin: 20px; 50 | } 51 | 52 | .material-icons { 53 | padding-right: 10px; 54 | } 55 | 56 | body { 57 | margin: 0; 58 | font-family: 'Open Sans', sans-serif; 59 | } 60 | 61 | h1, h2, h3, p { 62 | font-family: 'Roboto', sans-serif; 63 | font-weight: normal; 64 | } 65 | 66 | h1 { 67 | font-size: 48px; 68 | } 69 | 70 | h2 { 71 | margin-bottom: 0px; 72 | } 73 | 74 | label{ 75 | font-size: 18px; 76 | } 77 | 78 | p { 79 | font-size: 18px; 80 | margin-top:10px; 81 | margin-bottom:0px; 82 | } 83 | 84 | #guestbook > p { 85 | font-weight: lighter; 86 | font-size: 14px; 87 | } 88 | 89 | input{ 90 | border: none; 91 | border-bottom: 1px solid rgba(0,0,0,.12); 92 | font-size: 14px; 93 | padding: 4px 0; 94 | background: 0 0; 95 | text-align: left; 96 | color: inherit; 97 | } 98 | 99 | button.clicked{ 100 | background-color: rgb(60, 67, 154); 101 | border-color: rgb(60, 67, 154); 102 | color: white; 103 | outline-color: rgb(60, 67, 154); 104 | } 105 | 106 | button, button.firebaseui-id-submit.mdl-button--raised.mdl-button--colored{ 107 | align-items: center; 108 | background-color: rgba(0, 0, 0, 0); 109 | border-color: rgb(60, 67, 154); 110 | border-radius: 4px; 111 | border-style: solid; 112 | border-width: 1px; 113 | box-shadow: none; 114 | color: rgb(60, 67, 154); 115 | cursor: default; 116 | display: inline-flex; 117 | font-family: Roboto, sans-serif; 118 | font-size: 14px; 119 | font-weight: bold; 120 | height: 36px; 121 | justify-content: center; 122 | margin: 8px 16px; 123 | outline-color: rgb(60, 67, 154); 124 | overflow: hidden; 125 | padding: 0px 15px; 126 | position: relative; 127 | text-align: center; 128 | text-transform: uppercase; 129 | vertical-align: middle; 130 | } 131 | -------------------------------------------------------------------------------- /Contact List using Tkinter/phone.py: -------------------------------------------------------------------------------- 1 | from tkinter import * 2 | from phones import * 3 | 4 | 5 | def which_selected(): 6 | print("At {0}".format(select.curselection())) 7 | return int(select.curselection()[0]) 8 | 9 | 10 | def add_entry(): 11 | phonelist.append([fnamevar.get(), lnamevar.get(), phonevar.get()]) 12 | set_select() 13 | 14 | 15 | def update_entry(): 16 | phonelist[which_selected()] = [fnamevar.get(), 17 | lnamevar.get(), 18 | phonevar.get()] 19 | 20 | 21 | def delete_entry(): 22 | del phonelist[which_selected()] 23 | set_select() 24 | 25 | 26 | def load_entry(): 27 | fname, lname, phone = phonelist[which_selected()] 28 | fnamevar.set(fname) 29 | lnamevar.set(lname) 30 | phonevar.set(phone) 31 | 32 | def make_window(): 33 | global fnamevar, lnamevar, phonevar, select 34 | win = Tk() 35 | win.geometry("600x320") 36 | win['background']='#856ff8' 37 | 38 | frame1 = Frame(win) 39 | frame1.pack() 40 | 41 | Label(frame1, text="First Name").grid(row=0, column=0, sticky=W) 42 | fnamevar = StringVar() 43 | fname = Entry(frame1, textvariable=fnamevar) 44 | fname.grid(row=0, column=1, sticky=W) 45 | 46 | Label(frame1, text="Last Name").grid(row=1, column=0, sticky=W) 47 | lnamevar = StringVar() 48 | lname = Entry(frame1, textvariable=lnamevar) 49 | lname.grid(row=1, column=1, sticky=W) 50 | 51 | Label(frame1, text="Phone").grid(row=2, column=0, sticky=W) 52 | phonevar = StringVar() 53 | phone = Entry(frame1, textvariable=phonevar) 54 | phone.grid(row=2, column=1, sticky=W) 55 | 56 | frame2 = Frame(win) # Row of buttons 57 | frame2.pack() 58 | b1 = Button(frame2, text=" Add ", command=add_entry) 59 | b2 = Button(frame2, text="Update", command=update_entry) 60 | b3 = Button(frame2, text="Delete", command=delete_entry) 61 | b4 = Button(frame2, text="Load ", command=load_entry) 62 | b5 = Button(frame2, text="Refresh", command=set_select) 63 | b1.pack(side=LEFT) 64 | b2.pack(side=LEFT) 65 | b3.pack(side=LEFT) 66 | b4.pack(side=LEFT) 67 | b5.pack(side=LEFT) 68 | 69 | frame3 = Frame(win) # select of names 70 | frame3.pack() 71 | scroll = Scrollbar(frame3, orient=VERTICAL) 72 | select = Listbox(frame3, yscrollcommand=scroll.set, height=6) 73 | scroll.config(command=select.yview) 74 | scroll.pack(side=RIGHT, fill=Y) 75 | select.pack(side=LEFT, fill=BOTH, expand=1) 76 | return win 77 | 78 | 79 | def set_select(): 80 | phonelist.sort(key=lambda record: record[1]) 81 | select.delete(0, END) 82 | for fname, lname, phone in phonelist: 83 | select.insert(END, "{0}, {1}".format(lname, fname)) 84 | 85 | 86 | win = make_window() 87 | set_select() 88 | win.mainloop() -------------------------------------------------------------------------------- /My First Firebase app/index.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | Firebase Meetup 4 | 5 | 7 | 8 | 9 | 10 | 11 | 12 |
13 | 14 | 15 |
16 |

Firebase Meetup

17 | 18 |

calendar_today August 17

19 |

location_city Nanded

20 | 21 | 22 |
23 | 24 |
25 | 26 |
27 | 28 |
29 |

What we'll be doing

30 |

Join us for a day full of Firebase Workshops and Pizza!

31 | 32 |

33 | 34 |
35 | 36 |
37 |

Are you attending?

38 | 39 | 40 | 41 |

Discussion

42 | 43 |
44 | 45 | 46 | 50 |
51 | 52 |
53 | 54 |
55 | 56 |
57 | 58 | 59 | 60 | 61 | 63 | 64 | 65 | 81 | -------------------------------------------------------------------------------- /typing-speed-js-master/public/index.js: -------------------------------------------------------------------------------- 1 | let timer_text = document.querySelector(".init_time"); 2 | let accuracy_text = document.querySelector(".init_accuracy"); 3 | let error_text = document.querySelector(".init_errors"); 4 | let words_text = document.querySelector(".init_wpm"); 5 | let content_text = document.querySelector(".content"); 6 | let input_box = document.querySelector(".input_box"); 7 | let start_btn = document.querySelector(".start"); 8 | let restart_btn = document.querySelector(".restart"); 9 | let wpm_group = document.querySelector(".wpm"); 10 | let error_group = document.querySelector(".errors"); 11 | let accuracy_group = document.querySelector(".accuracy"); 12 | 13 | let time_left = 60; 14 | let time_passed = 0; 15 | let total_errors = 0; 16 | let errors = 0; 17 | let accuracy = 0; 18 | let typed = 0; 19 | let current_content = ""; 20 | let c = 0; 21 | let timer = null; 22 | 23 | 24 | function ChangeContent() { 25 | content_text.textContent = null; 26 | current_content = "Lorem ipsum, or lipsum as it is sometimes known, is dummy text used in laying out print, graphic or web designs. The passage is attributed to an unknown typesetter in the 15th century. If you have come this far without making lot of errors, then you really have a great typing speed!" 27 | 28 | current_content.split('').forEach(char => { 29 | const charSpan = document.createElement('span'); 30 | charSpan.innerText = char; 31 | content_text.appendChild(charSpan); 32 | }) 33 | 34 | } 35 | 36 | function textInput() { 37 | input = input_box.value; 38 | input_array = input.split(''); 39 | typed++; 40 | errors = 0; 41 | quoteSpanArray = content_text.querySelectorAll('span'); 42 | quoteSpanArray.forEach((char, index) => { 43 | let typed = input_array[index] 44 | if (typed == null) { 45 | char.classList.remove('correct'); 46 | } 47 | else if (typed === char.innerText) { 48 | char.classList.add('correct'); 49 | } 50 | else { 51 | errors++; 52 | } 53 | }); 54 | 55 | error_text.textContent = total_errors + errors; 56 | let correctCharacters = (typed - (total_errors + errors)); 57 | let accuracyData = ((correctCharacters / typed) * 100); 58 | accuracy_text.textContent = Math.round(accuracyData); 59 | 60 | if (input.length == current_content.length) { 61 | ChangeContent(); 62 | total_errors += errors; 63 | input_box.value = ""; 64 | } 65 | } 66 | 67 | 68 | function updateTimer() { 69 | if (time_left > 0) { 70 | time_left--; 71 | time_passed++; 72 | timer_text.textContent = time_left ; 73 | } 74 | else { 75 | finishGame(); 76 | } 77 | } 78 | 79 | function finishGame() { 80 | clearInterval(timer) 81 | input_box.disabled = true; 82 | content_text.style.display="none"; 83 | wpm = Math.round((((typed / 5) / time_passed) * 60)); 84 | words_text.textContent = wpm; 85 | wpm_group.style.display = "block"; 86 | } 87 | 88 | 89 | function startGame() { 90 | content_text.style.display="block"; 91 | resetGame(); 92 | ChangeContent(); 93 | clearInterval(timer); 94 | timer = setInterval(updateTimer, 1000); 95 | } 96 | 97 | function resetGame() { 98 | time_left = 60; 99 | time_passed = 0; 100 | errors = 0; 101 | total_errors = 0; 102 | accuracy = 0; 103 | typed = 0; 104 | c = 0; 105 | input_box.disabled = false; 106 | input_box.value = ""; 107 | content_text.textContent = ""; 108 | accuracy_text.textContent = 100; 109 | timer_text.textContent = time_left; 110 | error_text.textContent = 0; 111 | restart_btn.style.display = "none"; 112 | wpm_group.style.display = "none"; 113 | } 114 | -------------------------------------------------------------------------------- /Student Registration Portal/Signin.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | Sinhgad Students Signup 5 | 6 | 7 | 8 | 9 | 10 | 11 |
Sinhgad Logo
12 | 13 |
14 | 15 |
16 |
17 |

Student Sign-in Form

18 |
19 | 20 |
21 |

22 | 23 |

24 | 25 |

26 | 27 | 28 |

29 | 30 |

31 | 32 | 33 |

34 | 35 |

36 | 37 | 38 |

39 | 40 |


41 | 42 | 43 |

44 | 45 |


46 | 47 |
48 | 49 |

50 | 51 |


52 | 53 | 54 | 55 | 56 | 61 |


62 | 63 | 64 | 65 | 66 | 71 |


72 | 73 | 74 |

75 | 76 |

77 | 78 | 79 | 80 | 81 |

82 |
83 |
84 | I already have a account, Log in !! 85 | 86 |
87 |
88 |
89 | 92 | 93 | 94 | -------------------------------------------------------------------------------- /Validation using JS/valid.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 |
6 | 7 | Student Registration 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | 22 | 28 | 29 | 30 | 31 | 37 | 38 | 39 | 40 | 41 | 42 | 43 | 44 | 45 | 46 | 47 | 48 | 49 | 50 | 51 | 52 | 53 | 54 | 55 | 141 | 142 | 143 | -------------------------------------------------------------------------------- /Calculator using Tkinter/calc.py: -------------------------------------------------------------------------------- 1 | from tkinter import * 2 | from tkinter import ttk 3 | 4 | 5 | class Calculator: 6 | 7 | calc_value = 0.0 8 | div_trigger = False 9 | mult_trigger = False 10 | add_trigger = False 11 | sub_trigger = False 12 | 13 | def first_row_of_buttons(self, root): 14 | self.button7 = ttk.Button(root, text="7", command=lambda: self.button_press('7')).grid(row=1, column=0) 15 | self.button8 = ttk.Button(root, text="8", command=lambda: self.button_press('8')).grid(row=1, column=1) 16 | self.button9 = ttk.Button(root, text="9", command=lambda: self.button_press('9')).grid(row=1, column=2) 17 | 18 | self.button_div = ttk.Button(root, text="/", command=lambda: self.math_button_press('/')).grid(row=1, column=3) 19 | 20 | 21 | 22 | def second_row_of_buttons(self, root): 23 | self.button4 = ttk.Button(root, text="4", command=lambda: self.button_press('4')).grid(row=2, column=0) 24 | self.button5 = ttk.Button(root, text="5", command=lambda: self.button_press('5')).grid(row=2, column=1) 25 | self.button6 = ttk.Button(root, text="6", command=lambda: self.button_press('6')).grid(row=2, column=2) 26 | 27 | self.button_mult = ttk.Button(root, text="*", command=lambda: self.math_button_press('*')).grid(row=2, column=3) 28 | 29 | 30 | def third_row_of_buttons(self, root): 31 | self.button1 = ttk.Button(root, text="1", command=lambda: self.button_press('1')).grid(row=3, column=0) 32 | self.button2 = ttk.Button(root, text="2", command=lambda: self.button_press('2')).grid(row=3, column=1) 33 | self.button3 = ttk.Button(root, text="3", command=lambda: self.button_press('3')).grid(row=3, column=2) 34 | 35 | self.button_add = ttk.Button(root, text="+", command=lambda: self.math_button_press('+')).grid(row=3, column=3) 36 | 37 | def forth_row_of_buttons(self, root): 38 | self.button_ac = ttk.Button(root, text="AC", command=lambda: self.clear_button_press()).grid(row=4, column=0) 39 | self.button0 = ttk.Button(root, text="0", command=lambda: self.button_press('0')).grid(row=4, column=1) 40 | self.button_eq = ttk.Button(root, text="=", command=lambda: self.equal_button_press()).grid(row=4, column=2) 41 | 42 | self.button_sub = ttk.Button(root, text="-", command=lambda: self.math_button_press('-')).grid(row=4, column=3) 43 | 44 | def button_press(self, value): 45 | entry_val = self.number_entry.get() 46 | 47 | entry_val += value 48 | 49 | self.number_entry.delete(0, "end") 50 | 51 | self.number_entry.insert(0, entry_val) 52 | 53 | 54 | def isfloat(self, str_val): 55 | try: 56 | float(str_val) 57 | return True 58 | except ValueError: 59 | return False 60 | 61 | def math_button_press(self, value): 62 | if self.isfloat(str(self.number_entry.get())): 63 | self.div_trigger = False 64 | self.mult_trigger = False 65 | self.add_trigger = False 66 | self.sub_trigger = False 67 | 68 | self.calc_value = float(self.entry_value.get()) 69 | 70 | if value=="/": 71 | self.div_trigger = True 72 | elif value=="+": 73 | self.add_trigger = True 74 | elif value=="-": 75 | self.sub_trigger = True 76 | elif value=="*": 77 | self.mult_trigger = True 78 | 79 | self.number_entry.delete(0, "end") 80 | 81 | def clear_button_press(self): 82 | self.number_entry.delete(0, "end") 83 | 84 | def equal_button_press(self): 85 | if self.add_trigger or self.mult_trigger or self.div_trigger or self.sub_trigger: 86 | 87 | if self.add_trigger: 88 | solution = self.calc_value + float(self.entry_value.get()) 89 | elif self.sub_trigger: 90 | solution = self.calc_value - float(self.entry_value.get()) 91 | elif self.div_trigger: 92 | solution = self.calc_value / float(self.entry_value.get()) 93 | elif self.mult_trigger: 94 | solution = self.calc_value * float(self.entry_value.get()) 95 | 96 | self.number_entry.delete(0, "end") 97 | self.number_entry.insert(0, solution) 98 | 99 | def __init__(self, root): 100 | self.entry_value = StringVar(root, value="") 101 | root.title("Calculator") 102 | root.geometry("700x540") 103 | root.resizable(width=False, height=False) 104 | 105 | style = ttk.Style() 106 | style.configure("TButton", font="Serif 15", padding=10) 107 | style.configure("TEntry", font="Serif 18", padding=10) 108 | 109 | self.number_entry = ttk.Entry(root, textvariable=self.entry_value, width=50) 110 | self.number_entry.grid(row=0, columnspan=4) 111 | 112 | self.first_row_of_buttons(root) 113 | self.second_row_of_buttons(root) 114 | self.third_row_of_buttons(root) 115 | self.forth_row_of_buttons(root) 116 | 117 | if __name__ == '__main__': 118 | root = Tk() 119 | calc = Calculator(root) 120 | root.mainloop() -------------------------------------------------------------------------------- /Student Registration Portal/signin.php: -------------------------------------------------------------------------------- 1 | query($sql) == true){ 28 | //echo "succesfully Inserted"; 29 | } 30 | 31 | else{ 32 | echo "ERROR: $sql
$con->error"; 33 | } 34 | 35 | $con->close(); 36 | } 37 | ?> 38 | 39 | 40 | 41 | 42 | 43 | 44 | Sinhgad Students Signup 45 | 46 | 47 | 48 | 49 | 50 | 51 |
Sinhgad Logo
52 | 53 |
54 | 55 | 56 |
57 |

Student Sign-in Form

58 |
59 | 60 |
61 |

62 | 63 |

64 | 65 |

66 | 67 | 68 |

69 | 70 |

71 | 72 | 73 |

74 | 75 |

76 | 77 | 78 |

79 | 80 |


81 | 82 | 83 | 84 | 85 | 91 |


92 | 93 | 94 | 95 | 101 |


102 | 103 | 104 |

105 | 106 |

107 | 108 | 109 | 110 | 111 |

112 |
113 |
114 | I already have a account, Log in !! 115 | 116 |
117 | 118 |
119 | 122 | 123 | 124 | -------------------------------------------------------------------------------- /My First Firebase app/index.js: -------------------------------------------------------------------------------- 1 | // Import stylesheets 2 | import './style.css'; 3 | // Firebase App (the core Firebase SDK) is always required and must be listed first 4 | import firebase from 'firebase/app'; 5 | 6 | // Add the Firebase products that you want to use 7 | import 'firebase/auth'; 8 | import 'firebase/firestore'; 9 | 10 | import * as firebaseui from 'firebaseui'; 11 | 12 | // Document elements 13 | const startRsvpButton = document.getElementById('startRsvp'); 14 | const guestbookContainer = document.getElementById('guestbook-container'); 15 | 16 | const form = document.getElementById('leave-message'); 17 | const input = document.getElementById('message'); 18 | const guestbook = document.getElementById('guestbook'); 19 | const numberAttending = document.getElementById('number-attending'); 20 | const rsvpYes = document.getElementById('rsvp-yes'); 21 | const rsvpNo = document.getElementById('rsvp-no'); 22 | 23 | var rsvpListener = null; 24 | var guestbookListener = null; 25 | 26 | async function main() { 27 | // Add Firebase project configuration object here 28 | var firebaseConfig = { 29 | apiKey: 'AIzaSyBVC9dRCLyoM_8KQZMc8p2sp8cI_G_XxtY', 30 | authDomain: 'fir-web-codelab-70a00.firebaseapp.com', 31 | projectId: 'fir-web-codelab-70a00', 32 | storageBucket: 'fir-web-codelab-70a00.appspot.com', 33 | messagingSenderId: '892808587269', 34 | appId: '1:892808587269:web:6d0aa1410d75b32fd6146c', 35 | measurementId: 'G-7DM8ZQTKZ6' 36 | }; 37 | 38 | // Initialize Firebase 39 | firebase.initializeApp(firebaseConfig); 40 | // var firebaseConfig = {}; 41 | 42 | // firebase.initializeApp(firebaseConfig); 43 | 44 | // FirebaseUI config 45 | const uiConfig = { 46 | credentialHelper: firebaseui.auth.CredentialHelper.NONE, 47 | signInOptions: [ 48 | // Email / Password Provider. 49 | firebase.auth.EmailAuthProvider.PROVIDER_ID 50 | ], 51 | callbacks: { 52 | signInSuccessWithAuthResult: function(authResult, redirectUrl) { 53 | // Handle sign-in. 54 | // Return false to avoid redirect. 55 | return false; 56 | } 57 | } 58 | }; 59 | 60 | // Initialize the FirebaseUI widget using Firebase 61 | const ui = new firebaseui.auth.AuthUI(firebase.auth()); 62 | 63 | // Listen to RSVP button clicks 64 | startRsvpButton.addEventListener('click', () => { 65 | if (firebase.auth().currentUser) { 66 | // User is signed in; allows user to sign out 67 | firebase.auth().signOut(); 68 | } else { 69 | // No user is signed in; allows user to sign in 70 | ui.start('#firebaseui-auth-container', uiConfig); 71 | } 72 | }); 73 | 74 | // Listen to the current Auth state 75 | firebase.auth().onAuthStateChanged(user => { 76 | if (user) { 77 | startRsvpButton.textContent = 'LOGOUT'; 78 | // Show guestbook to logged-in users 79 | guestbookContainer.style.display = 'block'; 80 | subscribeGuestbook(); 81 | subscribeCurrentRSVP(user); 82 | } else { 83 | startRsvpButton.textContent = 'RSVP'; 84 | // Hide guestbook for non-logged-in users 85 | guestbookContainer.style.display = 'none'; 86 | unsubscribeGuestbook(); 87 | unsubscribeCurrentRSVP(); 88 | } 89 | }); 90 | 91 | // Listen to the form submission 92 | form.addEventListener('submit', e => { 93 | // Prevent the default form redirect 94 | e.preventDefault(); 95 | // Write a new message to the database collection "guestbook" 96 | firebase 97 | .firestore() 98 | .collection('guestbook') 99 | .add({ 100 | text: input.value, 101 | timestamp: Date.now(), 102 | name: firebase.auth().currentUser.displayName, 103 | userId: firebase.auth().currentUser.uid 104 | }); 105 | // clear message input field 106 | input.value = ''; 107 | // Return false to avoid redirect 108 | return false; 109 | }); 110 | 111 | // Listen to RSVP responses 112 | rsvpYes.onclick = () => { 113 | // Get a reference to the user's document in the attendees collection 114 | const userDoc = firebase 115 | .firestore() 116 | .collection('attendees') 117 | .doc(firebase.auth().currentUser.uid); 118 | 119 | // If they RSVP'd yes, save a document with attending: true 120 | userDoc 121 | .set({ 122 | attending: true 123 | }) 124 | .catch(console.error); 125 | }; 126 | 127 | rsvpNo.onclick = () => { 128 | // Get a reference to the user's document in the attendees collection 129 | const userDoc = firebase 130 | .firestore() 131 | .collection('attendees') 132 | .doc(firebase.auth().currentUser.uid); 133 | 134 | // If they RSVP'd yes, save a document with attending: true 135 | userDoc 136 | .set({ 137 | attending: false 138 | }) 139 | .catch(console.error); 140 | }; 141 | 142 | // Listen for attendee list 143 | firebase 144 | .firestore() 145 | .collection('attendees') 146 | .where('attending', '==', true) 147 | .onSnapshot(snap => { 148 | const newAttendeeCount = snap.docs.length; 149 | 150 | numberAttending.innerHTML = newAttendeeCount + ' people going'; 151 | }); 152 | } 153 | main(); 154 | 155 | // Listen to guestbook updates 156 | function subscribeGuestbook() { 157 | // Create query for messages 158 | guestbookListener = firebase 159 | .firestore() 160 | .collection('guestbook') 161 | .orderBy('timestamp', 'desc') 162 | .onSnapshot(snaps => { 163 | // Reset page 164 | guestbook.innerHTML = ''; 165 | // Loop through documents in database 166 | snaps.forEach(doc => { 167 | // Create an HTML entry for each document and add it to the chat 168 | const entry = document.createElement('p'); 169 | entry.textContent = doc.data().name + ': ' + doc.data().text; 170 | guestbook.appendChild(entry); 171 | }); 172 | }); 173 | } 174 | 175 | // Unsubscribe from guestbook updates 176 | function unsubscribeGuestbook() { 177 | if (guestbookListener != null) { 178 | guestbookListener(); 179 | guestbookListener = null; 180 | } 181 | } 182 | 183 | // Listen for attendee list 184 | function subscribeCurrentRSVP(user) { 185 | rsvpListener = firebase 186 | .firestore() 187 | .collection('attendees') 188 | .doc(user.uid) 189 | .onSnapshot(doc => { 190 | if (doc && doc.data()) { 191 | const attendingResponse = doc.data().attending; 192 | 193 | // Update css classes for buttons 194 | if (attendingResponse) { 195 | rsvpYes.className = 'clicked'; 196 | rsvpNo.className = ''; 197 | } else { 198 | rsvpYes.className = ''; 199 | rsvpNo.className = 'clicked'; 200 | } 201 | } 202 | }); 203 | } 204 | 205 | function unsubscribeCurrentRSVP() { 206 | if (rsvpListener != null) { 207 | rsvpListener(); 208 | rsvpListener = null; 209 | } 210 | rsvpYes.className = ''; 211 | rsvpNo.className = ''; 212 | } 213 | -------------------------------------------------------------------------------- /My First Firebase app/LICENSE.txt: -------------------------------------------------------------------------------- 1 | 2 | Apache License 3 | Version 2.0, January 2004 4 | http://www.apache.org/licenses/ 5 | 6 | TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION 7 | 8 | 1. Definitions. 9 | 10 | "License" shall mean the terms and conditions for use, reproduction, 11 | and distribution as defined by Sections 1 through 9 of this document. 12 | 13 | "Licensor" shall mean the copyright owner or entity authorized by 14 | the copyright owner that is granting the License. 15 | 16 | "Legal Entity" shall mean the union of the acting entity and all 17 | other entities that control, are controlled by, or are under common 18 | control with that entity. For the purposes of this definition, 19 | "control" means (i) the power, direct or indirect, to cause the 20 | direction or management of such entity, whether by contract or 21 | otherwise, or (ii) ownership of fifty percent (50%) or more of the 22 | outstanding shares, or (iii) beneficial ownership of such entity. 23 | 24 | "You" (or "Your") shall mean an individual or Legal Entity 25 | exercising permissions granted by this License. 26 | 27 | "Source" form shall mean the preferred form for making modifications, 28 | including but not limited to software source code, documentation 29 | source, and configuration files. 30 | 31 | "Object" form shall mean any form resulting from mechanical 32 | transformation or translation of a Source form, including but 33 | not limited to compiled object code, generated documentation, 34 | and conversions to other media types. 35 | 36 | "Work" shall mean the work of authorship, whether in Source or 37 | Object form, made available under the License, as indicated by a 38 | copyright notice that is included in or attached to the work 39 | (an example is provided in the Appendix below). 40 | 41 | "Derivative Works" shall mean any work, whether in Source or Object 42 | form, that is based on (or derived from) the Work and for which the 43 | editorial revisions, annotations, elaborations, or other modifications 44 | represent, as a whole, an original work of authorship. For the purposes 45 | of this License, Derivative Works shall not include works that remain 46 | separable from, or merely link (or bind by name) to the interfaces of, 47 | the Work and Derivative Works thereof. 48 | 49 | "Contribution" shall mean any work of authorship, including 50 | the original version of the Work and any modifications or additions 51 | to that Work or Derivative Works thereof, that is intentionally 52 | submitted to Licensor for inclusion in the Work by the copyright owner 53 | or by an individual or Legal Entity authorized to submit on behalf of 54 | the copyright owner. For the purposes of this definition, "submitted" 55 | means any form of electronic, verbal, or written communication sent 56 | to the Licensor or its representatives, including but not limited to 57 | communication on electronic mailing lists, source code control systems, 58 | and issue tracking systems that are managed by, or on behalf of, the 59 | Licensor for the purpose of discussing and improving the Work, but 60 | excluding communication that is conspicuously marked or otherwise 61 | designated in writing by the copyright owner as "Not a Contribution." 62 | 63 | "Contributor" shall mean Licensor and any individual or Legal Entity 64 | on behalf of whom a Contribution has been received by Licensor and 65 | subsequently incorporated within the Work. 66 | 67 | 2. Grant of Copyright License. Subject to the terms and conditions of 68 | this License, each Contributor hereby grants to You a perpetual, 69 | worldwide, non-exclusive, no-charge, royalty-free, irrevocable 70 | copyright license to reproduce, prepare Derivative Works of, 71 | publicly display, publicly perform, sublicense, and distribute the 72 | Work and such Derivative Works in Source or Object form. 73 | 74 | 3. Grant of Patent License. Subject to the terms and conditions of 75 | this License, each Contributor hereby grants to You a perpetual, 76 | worldwide, non-exclusive, no-charge, royalty-free, irrevocable 77 | (except as stated in this section) patent license to make, have made, 78 | use, offer to sell, sell, import, and otherwise transfer the Work, 79 | where such license applies only to those patent claims licensable 80 | by such Contributor that are necessarily infringed by their 81 | Contribution(s) alone or by combination of their Contribution(s) 82 | with the Work to which such Contribution(s) was submitted. If You 83 | institute patent litigation against any entity (including a 84 | cross-claim or counterclaim in a lawsuit) alleging that the Work 85 | or a Contribution incorporated within the Work constitutes direct 86 | or contributory patent infringement, then any patent licenses 87 | granted to You under this License for that Work shall terminate 88 | as of the date such litigation is filed. 89 | 90 | 4. Redistribution. You may reproduce and distribute copies of the 91 | Work or Derivative Works thereof in any medium, with or without 92 | modifications, and in Source or Object form, provided that You 93 | meet the following conditions: 94 | 95 | (a) You must give any other recipients of the Work or 96 | Derivative Works a copy of this License; and 97 | 98 | (b) You must cause any modified files to carry prominent notices 99 | stating that You changed the files; and 100 | 101 | (c) You must retain, in the Source form of any Derivative Works 102 | that You distribute, all copyright, patent, trademark, and 103 | attribution notices from the Source form of the Work, 104 | excluding those notices that do not pertain to any part of 105 | the Derivative Works; and 106 | 107 | (d) If the Work includes a "NOTICE" text file as part of its 108 | distribution, then any Derivative Works that You distribute must 109 | include a readable copy of the attribution notices contained 110 | within such NOTICE file, excluding those notices that do not 111 | pertain to any part of the Derivative Works, in at least one 112 | of the following places: within a NOTICE text file distributed 113 | as part of the Derivative Works; within the Source form or 114 | documentation, if provided along with the Derivative Works; or, 115 | within a display generated by the Derivative Works, if and 116 | wherever such third-party notices normally appear. The contents 117 | of the NOTICE file are for informational purposes only and 118 | do not modify the License. You may add Your own attribution 119 | notices within Derivative Works that You distribute, alongside 120 | or as an addendum to the NOTICE text from the Work, provided 121 | that such additional attribution notices cannot be construed 122 | as modifying the License. 123 | 124 | You may add Your own copyright statement to Your modifications and 125 | may provide additional or different license terms and conditions 126 | for use, reproduction, or distribution of Your modifications, or 127 | for any such Derivative Works as a whole, provided Your use, 128 | reproduction, and distribution of the Work otherwise complies with 129 | the conditions stated in this License. 130 | 131 | 5. Submission of Contributions. Unless You explicitly state otherwise, 132 | any Contribution intentionally submitted for inclusion in the Work 133 | by You to the Licensor shall be under the terms and conditions of 134 | this License, without any additional terms or conditions. 135 | Notwithstanding the above, nothing herein shall supersede or modify 136 | the terms of any separate license agreement you may have executed 137 | with Licensor regarding such Contributions. 138 | 139 | 6. Trademarks. This License does not grant permission to use the trade 140 | names, trademarks, service marks, or product names of the Licensor, 141 | except as required for reasonable and customary use in describing the 142 | origin of the Work and reproducing the content of the NOTICE file. 143 | 144 | 7. Disclaimer of Warranty. Unless required by applicable law or 145 | agreed to in writing, Licensor provides the Work (and each 146 | Contributor provides its Contributions) on an "AS IS" BASIS, 147 | WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or 148 | implied, including, without limitation, any warranties or conditions 149 | of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A 150 | PARTICULAR PURPOSE. You are solely responsible for determining the 151 | appropriateness of using or redistributing the Work and assume any 152 | risks associated with Your exercise of permissions under this License. 153 | 154 | 8. Limitation of Liability. In no event and under no legal theory, 155 | whether in tort (including negligence), contract, or otherwise, 156 | unless required by applicable law (such as deliberate and grossly 157 | negligent acts) or agreed to in writing, shall any Contributor be 158 | liable to You for damages, including any direct, indirect, special, 159 | incidental, or consequential damages of any character arising as a 160 | result of this License or out of the use or inability to use the 161 | Work (including but not limited to damages for loss of goodwill, 162 | work stoppage, computer failure or malfunction, or any and all 163 | other commercial damages or losses), even if such Contributor 164 | has been advised of the possibility of such damages. 165 | 166 | 9. Accepting Warranty or Additional Liability. While redistributing 167 | the Work or Derivative Works thereof, You may choose to offer, 168 | and charge a fee for, acceptance of support, warranty, indemnity, 169 | or other liability obligations and/or rights consistent with this 170 | License. However, in accepting such obligations, You may act only 171 | on Your own behalf and on Your sole responsibility, not on behalf 172 | of any other Contributor, and only if You agree to indemnify, 173 | defend, and hold each Contributor harmless for any liability 174 | incurred by, or claims asserted against, such Contributor by reason 175 | of your accepting any such warranty or additional liability. 176 | 177 | END OF TERMS AND CONDITIONS 178 | 179 | APPENDIX: How to apply the Apache License to your work. 180 | 181 | To apply the Apache License to your work, attach the following 182 | boilerplate notice, with the fields enclosed by brackets "[]" 183 | replaced with your own identifying information. (Don't include 184 | the brackets!) The text should be enclosed in the appropriate 185 | comment syntax for the file format. We also recommend that a 186 | file or class name and description of purpose be included on the 187 | same "printed page" as the copyright notice for easier 188 | identification within third-party archives. 189 | 190 | Copyright 2020 Google LLC 191 | 192 | Licensed under the Apache License, Version 2.0 (the "License"); 193 | you may not use this file except in compliance with the License. 194 | You may obtain a copy of the License at 195 | 196 | http://www.apache.org/licenses/LICENSE-2.0 197 | 198 | Unless required by applicable law or agreed to in writing, software 199 | distributed under the License is distributed on an "AS IS" BASIS, 200 | WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 201 | See the License for the specific language governing permissions and 202 | limitations under the License. -------------------------------------------------------------------------------- /My First Firebase app/.vscode/settings.json: -------------------------------------------------------------------------------- 1 | { 2 | // "editor.theme": "vs-dark", 3 | /** 4 | * Render vertical lines at the specified columns. 5 | * Defaults to empty array. 6 | */ 7 | // "editor.rulers": [], 8 | /** 9 | * A string containing the word separators used when doing word navigation. 10 | * Defaults to `~!@#$%^&*()-=+[{]}\\|;:\'",.<>/? 11 | */ 12 | // "editor.wordSeparators": "`~!@#$%^&*()-=+[{]}\\\\|;:\\'\",.<>/?", 13 | /** 14 | * Enable Linux primary clipboard. 15 | * Defaults to true. 16 | */ 17 | // "editor.selectionClipboard": true, 18 | /** 19 | * Control the rendering of line numbers. 20 | * If it is a function, it will be invoked when rendering a line number and the return value will be rendered. 21 | * Otherwise, if it is a truey, line numbers will be rendered normally (equivalent of using an identity function). 22 | * Otherwise, line numbers will not be rendered. 23 | * Defaults to true. 24 | */ 25 | // "editor.lineNumbers": "on", 26 | /** 27 | * Should the corresponding line be selected when clicking on the line number? 28 | * Defaults to true. 29 | */ 30 | // "editor.selectOnLineNumbers": true, 31 | /** 32 | * Control the width of line numbers, by reserving horizontal space for rendering at least an amount of digits. 33 | * Defaults to 5. 34 | */ 35 | // "editor.lineNumbersMinChars": 5, 36 | /** 37 | * Enable the rendering of the glyph margin. 38 | * Defaults to true in vscode and to false in monaco-editor. 39 | */ 40 | // "editor.glyphMargin": true, 41 | /** 42 | * The width reserved for line decorations (in px). 43 | * Line decorations are placed between line numbers and the editor content. 44 | * You can pass in a string in the format floating point followed by "ch". e.g. 1.3ch. 45 | * Defaults to 10. 46 | */ 47 | // "editor.lineDecorationsWidth": 10, 48 | /** 49 | * When revealing the cursor, a virtual padding (px) is added to the cursor, turning it into a rectangle. 50 | * This virtual padding ensures that the cursor gets revealed before hitting the edge of the viewport. 51 | * Defaults to 30 (px). 52 | */ 53 | // "editor.revealHorizontalRightPadding": 30, 54 | /** 55 | * Render the editor selection with rounded borders. 56 | * Defaults to true. 57 | */ 58 | // "editor.roundedSelection": true, 59 | /** 60 | * Control the behavior and rendering of the minimap. 61 | */ 62 | // "editor.minimap": { 63 | // "enabled": false 64 | // }, 65 | /** 66 | * Display overflow widgets as `fixed`. 67 | * Defaults to `false`. 68 | */ 69 | // "editor.fixedOverflowWidgets": false, 70 | /** 71 | * The number of vertical lanes the overview ruler should render. 72 | * Defaults to 2. 73 | */ 74 | // "editor.overviewRulerLanes": 2, 75 | /** 76 | * Controls if a border should be drawn around the overview ruler. 77 | * Defaults to `true`. 78 | */ 79 | // "editor.overviewRulerBorder": true, 80 | /** 81 | * Control the cursor animation style, possible values are 'blink', 'smooth', 'phase', 'expand' and 'solid'. 82 | * Defaults to 'blink'. 83 | */ 84 | // "editor.cursorBlinking": "blink", 85 | /** 86 | * Zoom the font in the editor when using the mouse wheel in combination with holding Ctrl. 87 | * Defaults to false. 88 | */ 89 | // "editor.mouseWheelZoom": false, 90 | /** 91 | * Control the cursor style, either 'block' or 'line'. 92 | * Defaults to 'line'. 93 | */ 94 | // "editor.cursorStyle": "line", 95 | /** 96 | * Control the width of the cursor when cursorStyle is set to 'line' 97 | */ 98 | // "editor.cursorWidth": 1, 99 | /** 100 | * Enable font ligatures. 101 | * Defaults to false. 102 | */ 103 | // "editor.fontLigatures": false, 104 | /** 105 | * Disable the use of `will-change` for the editor margin and lines layers. 106 | * The usage of `will-change` acts as a hint for browsers to create an extra layer. 107 | * Defaults to false. 108 | */ 109 | // "editor.disableLayerHinting": false, 110 | /** 111 | * Disable the optimizations for monospace fonts. 112 | * Defaults to false. 113 | */ 114 | // "editor.disableMonospaceOptimizations": false, 115 | /** 116 | * Should the cursor be hidden in the overview ruler. 117 | * Defaults to false. 118 | */ 119 | // "editor.hideCursorInOverviewRuler": false, 120 | /** 121 | * Enable that scrolling can go one screen size after the last line. 122 | * Defaults to true. 123 | */ 124 | // "editor.scrollBeyondLastLine": true, 125 | /** 126 | * Enable that scrolling can go beyond the last column by a number of columns. 127 | * Defaults to 5. 128 | */ 129 | // "editor.scrollBeyondLastColumn": 5, 130 | /** 131 | * Enable that the editor animates scrolling to a position. 132 | * Defaults to false. 133 | */ 134 | // "editor.smoothScrolling": false, 135 | /** 136 | * Enable that the editor will install an interval to check if its container dom node size has changed. 137 | * Enabling this might have a severe performance impact. 138 | * Defaults to false. 139 | */ 140 | // "editor.automaticLayout": false, 141 | /** 142 | * Control the wrapping of the editor. 143 | * When `wordWrap` = "off", the lines will never wrap. 144 | * When `wordWrap` = "on", the lines will wrap at the viewport width. 145 | * When `wordWrap` = "wordWrapColumn", the lines will wrap at `wordWrapColumn`. 146 | * When `wordWrap` = "bounded", the lines will wrap at min(viewport width, wordWrapColumn). 147 | * Defaults to "off". 148 | */ 149 | // "editor.wordWrap": "on", 150 | /** 151 | * Control the wrapping of the editor. 152 | * When `wordWrap` = "off", the lines will never wrap. 153 | * When `wordWrap` = "on", the lines will wrap at the viewport width. 154 | * When `wordWrap` = "wordWrapColumn", the lines will wrap at `wordWrapColumn`. 155 | * When `wordWrap` = "bounded", the lines will wrap at min(viewport width, wordWrapColumn). 156 | * Defaults to 80. 157 | */ 158 | // "editor.wordWrapColumn": 0, 159 | /** 160 | * Force word wrapping when the text appears to be of a minified/generated file. 161 | * Defaults to true. 162 | */ 163 | // "editor.wordWrapMinified": true, 164 | /** 165 | * Control indentation of wrapped lines. Can be: 'none', 'same', 'indent' or 'deepIndent'. 166 | * Defaults to 'same' in vscode and to 'none' in monaco-editor. 167 | */ 168 | // "editor.wrappingIndent": "same", 169 | /** 170 | * Configure word wrapping characters. A break will be introduced before these characters. 171 | * Defaults to '{([+'. 172 | */ 173 | // "editor.wordWrapBreakBeforeCharacters": "{([+", 174 | /** 175 | * Configure word wrapping characters. A break will be introduced after these characters. 176 | * Defaults to ' \t})]?|&,;'. 177 | */ 178 | // "editor.wordWrapBreakAfterCharacters": " \t})]?|&,;", 179 | /** 180 | * Configure word wrapping characters. A break will be introduced after these characters only if no `wordWrapBreakBeforeCharacters` or `wordWrapBreakAfterCharacters` were found. 181 | * Defaults to '.'. 182 | */ 183 | // "editor.wordWrapBreakObtrusiveCharacters": ".", 184 | /** 185 | * Performance guard: Stop rendering a line after x characters. 186 | * Defaults to 10000. 187 | * Use -1 to never stop rendering 188 | */ 189 | // "editor.stopRenderingLineAfter": -1, 190 | /** 191 | * Configure the editor's hover. 192 | */ 193 | // "editor.hover": { 194 | /** 195 | * Enable the hover. 196 | * Defaults to true. 197 | */ 198 | // "enabled": true, 199 | /** 200 | * Delay for showing the hover. 201 | * Defaults to 300. 202 | */ 203 | // "delay": 300, 204 | /** 205 | * Is the hover sticky such that it can be clicked and its contents selected? 206 | * Defaults to true. 207 | */ 208 | // "sticky": true 209 | // }, 210 | /** 211 | * Enable detecting links and making them clickable. 212 | * Defaults to true. 213 | */ 214 | // "editor.links": true, 215 | /** 216 | * Enable inline color decorators and color picker rendering. 217 | */ 218 | // "editor.colorDecorators": true, 219 | /** 220 | * Enable custom contextmenu. 221 | * Defaults to true. 222 | */ 223 | // "editor.contextmenu": true, 224 | /** 225 | * A multiplier to be used on the `deltaX` and `deltaY` of mouse wheel scroll events. 226 | * Defaults to 1. 227 | */ 228 | // "editor.mouseWheelScrollSensitivity": 1, 229 | /** 230 | * The modifier to be used to add multiple cursors with the mouse. 231 | * Defaults to 'alt' 232 | */ 233 | // "editor.multiCursorModifier": "alt", 234 | /** 235 | * Merge overlapping selections. 236 | * Defaults to true 237 | */ 238 | // "editor.multiCursorMergeOverlapping": true, 239 | /** 240 | * Configure the editor's accessibility support. 241 | * Defaults to 'auto'. It is best to leave this to 'auto'. 242 | */ 243 | // "editor.accessibilitySupport": "auto", 244 | /** 245 | * Suggest options. 246 | */ 247 | // "editor.suggest": { 248 | /** 249 | * Enable graceful matching. Defaults to true. 250 | */ 251 | // "filterGraceful": true, 252 | /** 253 | * Prevent quick suggestions when a snippet is active. Defaults to true. 254 | */ 255 | // "snippetsPreventQuickSuggestions": true 256 | // }, 257 | /** 258 | * Enable quick suggestions (shadow suggestions) 259 | * Defaults to true. 260 | */ 261 | // "editor.quickSuggestions": true, 262 | /** 263 | * Quick suggestions show delay (in ms) 264 | * Defaults to 500 (ms) 265 | */ 266 | // "editor.quickSuggestionsDelay": 500, 267 | /** 268 | * Parameter hint options. 269 | */ 270 | // "editor.parameterHints": true, 271 | /** 272 | * Render icons in suggestions box. 273 | * Defaults to true. 274 | */ 275 | // "editor.iconsInSuggestions": true, 276 | /** 277 | * Options for auto closing brackets. 278 | * Defaults to language defined behavior. 279 | */ 280 | // "editor.autoClosingBrackets": true, 281 | /** 282 | * Enable auto indentation adjustment. 283 | * Defaults to false. 284 | */ 285 | // "editor.autoIndent": false, 286 | /** 287 | * Enable format on type. 288 | * Defaults to false. 289 | */ 290 | // "editor.formatOnType": false, 291 | /** 292 | * Enable format on paste. 293 | * Defaults to false. 294 | */ 295 | // "editor.formatOnPaste": false, 296 | /** 297 | * Controls if the editor should allow to move selections via drag and drop. 298 | * Defaults to false. 299 | */ 300 | // "editor.dragAndDrop": false, 301 | /** 302 | * Enable the suggestion box to pop-up on trigger characters. 303 | * Defaults to true. 304 | */ 305 | // "editor.suggestOnTriggerCharacters": true, 306 | /** 307 | * Accept suggestions on ENTER. 308 | * Defaults to 'on'. 309 | */ 310 | // "editor.acceptSuggestionOnEnter": "on", 311 | /** 312 | * Accept suggestions on provider defined characters. 313 | * Defaults to true. 314 | */ 315 | // "editor.acceptSuggestionOnCommitCharacter": true, 316 | /** 317 | * Enable snippet suggestions. Default to 'true'. 318 | */ 319 | // "editor.snippetSuggestions": "top", 320 | /** 321 | * Copying without a selection copies the current line. 322 | */ 323 | // "editor.emptySelectionClipboard": true, 324 | /** 325 | * Enable word based suggestions. Defaults to 'true' 326 | */ 327 | // "editor.wordBasedSuggestions": true, 328 | /** 329 | * The history mode for suggestions. 330 | */ 331 | // "editor.suggestSelection": "recentlyUsedByPrefix", 332 | /** 333 | * Enable selection highlight. 334 | * Defaults to true. 335 | */ 336 | // "editor.selectionHighlight": true, 337 | /** 338 | * Enable semantic occurrences highlight. 339 | * Defaults to true. 340 | */ 341 | // "editor.occurrencesHighlight": true, 342 | /** 343 | * Show code lens 344 | * Defaults to true. 345 | */ 346 | // "editor.codeLens": true, 347 | /** 348 | * Control the behavior and rendering of the code action lightbulb. 349 | */ 350 | // "editor.lightbulb": { 351 | // "enabled": true 352 | // }, 353 | /** 354 | * Enable code folding 355 | * Defaults to true. 356 | */ 357 | // "editor.folding": true, 358 | /** 359 | * Selects the folding strategy. 'auto' uses the strategies contributed for the current document, 'indentation' uses the indentation based folding strategy. 360 | * Defaults to 'auto'. 361 | */ 362 | // "editor.foldingStrategy": "auto", 363 | /** 364 | * Controls whether the fold actions in the gutter stay always visible or hide unless the mouse is over the gutter. 365 | * Defaults to 'mouseover'. 366 | */ 367 | // "editor.showFoldingControls": "mouseover", 368 | /** 369 | * Enable highlighting of matching brackets. 370 | * Defaults to true. 371 | */ 372 | // "editor.matchBrackets": true, 373 | /** 374 | * Enable rendering of whitespace. 375 | * Defaults to none. 376 | */ 377 | // "editor.renderWhitespace": "none", 378 | /** 379 | * Enable rendering of control characters. 380 | * Defaults to false. 381 | */ 382 | // "editor.renderControlCharacters": false, 383 | /** 384 | * Enable rendering of indent guides. 385 | * Defaults to true. 386 | */ 387 | // "editor.renderIndentGuides": true, 388 | /** 389 | * Enable highlighting of the active indent guide. 390 | * Defaults to true. 391 | */ 392 | // "editor.highlightActiveIndentGuide": true, 393 | /** 394 | * Enable rendering of current line highlight. 395 | * Defaults to all. 396 | */ 397 | // "editor.renderLineHighlight": "all", 398 | /** 399 | * Inserting and deleting whitespace follows tab stops. 400 | */ 401 | // "editor.useTabStops": true, 402 | /** 403 | * The font family 404 | */ 405 | // "editor.fontFamily": "Fira Code, Menlo, Monaco, 'Courier New', monospace", 406 | /** 407 | * The font weight 408 | */ 409 | // "editor.fontWeight": "normal", 410 | /** 411 | * The font size 412 | */ 413 | // "editor.fontSize": 12, 414 | /** 415 | * The line height 416 | */ 417 | // "editor.lineHeight": 18, 418 | /** 419 | * The letter spacing 420 | */ 421 | // "editor.letterSpacing": 0, 422 | /** 423 | * Controls fading out of unused variables. 424 | */ 425 | // "editor.showUnused": true 426 | } 427 | -------------------------------------------------------------------------------- /Talking paragraph Using HTML & CSS/index.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | Talking Paragraph 9 | 10 | 11 |
12 |

13 | Lorem ipsum, dolor sit amet consectetur adipisicing elit. Labore tempore explicabo distinctio incidunt voluptates quod exercitationem, laborum rerum ratione molestias nam architecto necessitatibus saepe et maxime sapiente sint atque sit laboriosam voluptate est quibusdam earum quam nemo. Doloremque eius repellat vel molestiae aut. Nihil velit magnam ducimus fuga eaque tempora nam ratione dolorum vero laudantium obcaecati, libero minus minima? Ratione, asperiores repellendus nihil quis aperiam soluta sequi fuga consequatur cupiditate, labore aspernatur laudantium tenetur doloribus nostrum quaerat officia. Illo beatae eveniet officia, repellat fugit molestiae velit accusamus, asperiores iure, laudantium facere reprehenderit. Dolorum, laboriosam quis iure hic illo repellendus temporibus iusto asperiores ut qui accusantium quaerat esse impedit corrupti veritatis! Dignissimos esse doloribus magnam necessitatibus in nobis et quisquam placeat odit, tenetur eius error officia cumque, magni ex optio facere veritatis cum, tempore nihil aliquid expedita! Ut neque ex explicabo corrupti rerum repudiandae inventore. Harum nemo maiores beatae! Nulla totam qui velit animi est dolores, magni quisquam iste eligendi veritatis! Excepturi cupiditate ipsam nulla quo, necessitatibus veniam perferendis quis velit praesentium sed iusto numquam deleniti adipisci quam, ad voluptatum magnam quidem! Vel quisquam in, esse possimus dignissimos mollitia sapiente at eligendi aperiam officiis dolores, repudiandae est. Exercitationem fugiat possimus praesentium, maxime eum deserunt asperiores odit neque iure rerum vero. Commodi id accusamus possimus atque repellat porro soluta facere, voluptas error deserunt incidunt maiores blanditiis iste fugit nesciunt pariatur aliquid aut suscipit, consequatur delectus dolores molestiae nostrum earum. Hic odit ducimus deserunt assumenda exercitationem eaque autem excepturi, placeat veritatis, ea quas consequatur similique? Repellendus ad itaque natus unde beatae vitae reiciendis, nostrum error quam magni deserunt pariatur quibusdam illum sequi officia, magnam aliquid possimus praesentium dolor fugiat inventore veniam, dicta animi non. Vel doloremque ea quaerat necessitatibus asperiores delectus mollitia? Molestias quia repudiandae omnis laudantium, itaque vel aperiam iusto vitae architecto voluptatum illo praesentium non veritatis et nihil eligendi expedita repellat dignissimos pariatur a laboriosam nam ea! Illum quod nisi, dolor cumque vitae possimus nesciunt voluptate, cum veniam vel iste aliquid, nam repellat repudiandae error doloremque quam? Veniam vel nihil perferendis illo? Minima ratione sed, possimus obcaecati voluptatibus officia voluptate at magni neque tempora asperiores, consequatur molestiae optio! Quae, quidem? Blanditiis voluptatum odit mollitia! Repellat dicta itaque assumenda quos odio illo, veniam quibusdam consequatur officia ipsam, necessitatibus ad et ducimus excepturi, id ipsa sequi recusandae! Nulla provident, autem vel officia explicabo quam neque molestiae, reprehenderit qui dolor quibusdam ea odio ad, non nisi perspiciatis ducimus fugiat voluptates laborum pariatur maxime consequuntur! Odit, vero quisquam. Modi, sunt, minus voluptatem illo dolor doloremque consectetur dolorem explicabo ullam a perspiciatis distinctio ad aperiam similique ex at alias sapiente cumque optio? Debitis hic sint accusantium doloremque tempora nesciunt placeat quisquam! Accusantium, quod omnis nihil eum et, sunt impedit officia suscipit deleniti aut eaque error voluptatem autem dolores itaque ex eius non dicta sapiente recusandae veniam! Illo voluptates dolor quia adipisci quo ut, consectetur itaque rerum odit vel! Voluptatum vitae dolores eveniet placeat officia, architecto enim esse unde? Incidunt obcaecati tenetur eum consequuntur sed deserunt voluptate. 14 | Lorem ipsum, dolor sit amet consectetur adipisicing elit. Labore tempore explicabo distinctio incidunt voluptates quod exercitationem, laborum rerum ratione molestias nam architecto necessitatibus saepe et maxime sapiente sint atque sit laboriosam voluptate est quibusdam earum quam nemo. Doloremque eius repellat vel molestiae aut. Nihil velit magnam ducimus fuga eaque tempora nam ratione dolorum vero laudantium obcaecati, libero minus minima? Ratione, asperiores repellendus nihil quis aperiam soluta sequi fuga consequatur cupiditate, labore aspernatur laudantium tenetur doloribus nostrum quaerat officia. Illo beatae eveniet officia, repellat fugit molestiae velit accusamus, asperiores iure, laudantium facere reprehenderit. Dolorum, laboriosam quis iure hic illo repellendus temporibus iusto asperiores ut qui accusantium quaerat esse impedit corrupti veritatis! Dignissimos esse doloribus magnam necessitatibus in nobis et quisquam placeat odit, tenetur eius error officia cumque, magni ex optio facere veritatis cum, tempore nihil aliquid expedita! Ut neque ex explicabo corrupti rerum repudiandae inventore. Harum nemo maiores beatae! Nulla totam qui velit animi est dolores, magni quisquam iste eligendi veritatis! Excepturi cupiditate ipsam nulla quo, necessitatibus veniam perferendis quis velit praesentium sed iusto numquam deleniti adipisci quam, ad voluptatum magnam quidem! Vel quisquam in, esse possimus dignissimos mollitia sapiente at eligendi aperiam officiis dolores, repudiandae est. Exercitationem fugiat possimus praesentium, maxime eum deserunt asperiores odit neque iure rerum vero. Commodi id accusamus possimus atque repellat porro soluta facere, voluptas error deserunt incidunt maiores blanditiis iste fugit nesciunt pariatur aliquid aut suscipit, consequatur delectus dolores molestiae nostrum earum. Hic odit ducimus deserunt assumenda exercitationem eaque autem excepturi, placeat veritatis, ea quas consequatur similique? Repellendus ad itaque natus unde beatae vitae reiciendis, nostrum error quam magni deserunt pariatur quibusdam illum sequi officia, magnam aliquid possimus praesentium dolor fugiat inventore veniam, dicta animi non. Vel doloremque ea quaerat necessitatibus asperiores delectus mollitia? Molestias quia repudiandae omnis laudantium, itaque vel aperiam iusto vitae architecto voluptatum illo praesentium non veritatis et nihil eligendi expedita repellat dignissimos pariatur a laboriosam nam ea! Illum quod nisi, dolor cumque vitae possimus nesciunt voluptate, cum veniam vel iste aliquid, nam repellat repudiandae error doloremque quam? Veniam vel nihil perferendis illo? Minima ratione sed, possimus obcaecati voluptatibus officia voluptate at magni neque tempora asperiores, consequatur molestiae optio! Quae, quidem? Blanditiis voluptatum odit mollitia! Repellat dicta itaque assumenda quos odio illo, veniam quibusdam consequatur officia ipsam, necessitatibus ad et ducimus excepturi, id ipsa sequi recusandae! Nulla provident, autem vel officia explicabo quam neque molestiae, reprehenderit qui dolor quibusdam ea odio ad, non nisi perspiciatis ducimus fugiat voluptates laborum pariatur maxime consequuntur! Odit, vero quisquam. Modi, sunt, minus voluptatem illo dolor doloremque consectetur dolorem explicabo ullam a perspiciatis distinctio ad aperiam similique ex at alias sapiente cumque optio? Debitis hic sint accusantium doloremque tempora nesciunt placeat quisquam! Accusantium, quod omnis nihil eum et, sunt impedit officia suscipit deleniti aut eaque error voluptatem autem dolores itaque ex eius non dicta sapiente recusandae veniam! Illo voluptates dolor quia adipisci quo ut, consectetur itaque rerum odit vel! Voluptatum vitae dolores eveniet placeat officia, architecto enim esse unde? Incidunt obcaecati tenetur eum consequuntur sed deserunt voluptate. 15 | Lorem ipsum, dolor sit amet consectetur adipisicing elit. Labore tempore explicabo distinctio incidunt voluptates quod exercitationem, laborum rerum ratione molestias nam architecto necessitatibus saepe et maxime sapiente sint atque sit laboriosam voluptate est quibusdam earum quam nemo. Doloremque eius repellat vel molestiae aut. Nihil velit magnam ducimus fuga eaque tempora nam ratione dolorum vero laudantium obcaecati, libero minus minima? Ratione, asperiores repellendus nihil quis aperiam soluta sequi fuga consequatur cupiditate, labore aspernatur laudantium tenetur doloribus nostrum quaerat officia. Illo beatae eveniet officia, repellat fugit molestiae velit accusamus, asperiores iure, laudantium facere reprehenderit. Dolorum, laboriosam quis iure hic illo repellendus temporibus iusto asperiores ut qui accusantium quaerat esse impedit corrupti veritatis! Dignissimos esse doloribus magnam necessitatibus in nobis et quisquam placeat odit, tenetur eius error officia cumque, magni ex optio facere veritatis cum, tempore nihil aliquid expedita! Ut neque ex explicabo corrupti rerum repudiandae inventore. Harum nemo maiores beatae! Nulla totam qui velit animi est dolores, magni quisquam iste eligendi veritatis! Excepturi cupiditate ipsam nulla quo, necessitatibus veniam perferendis quis velit praesentium sed iusto numquam deleniti adipisci quam, ad voluptatum magnam quidem! Vel quisquam in, esse possimus dignissimos mollitia sapiente at eligendi aperiam officiis dolores, repudiandae est. Exercitationem fugiat possimus praesentium, maxime eum deserunt asperiores odit neque iure rerum vero. Commodi id accusamus possimus atque repellat porro soluta facere, voluptas error deserunt incidunt maiores blanditiis iste fugit nesciunt pariatur aliquid aut suscipit, consequatur delectus dolores molestiae nostrum earum. Hic odit ducimus deserunt assumenda exercitationem eaque autem excepturi, placeat veritatis, ea quas consequatur similique? Repellendus ad itaque natus unde beatae vitae reiciendis, nostrum error quam magni deserunt pariatur quibusdam illum sequi officia, magnam aliquid possimus praesentium dolor fugiat inventore veniam, dicta animi non. Vel doloremque ea quaerat necessitatibus asperiores delectus mollitia? Molestias quia repudiandae omnis laudantium, itaque vel aperiam iusto vitae architecto voluptatum illo praesentium non veritatis et nihil eligendi expedita repellat dignissimos pariatur a laboriosam nam ea! Illum quod nisi, dolor cumque vitae possimus nesciunt voluptate, cum veniam vel iste aliquid, nam repellat repudiandae error doloremque quam? Veniam vel nihil perferendis illo? Minima ratione sed, possimus obcaecati voluptatibus officia voluptate at magni neque tempora asperiores, consequatur molestiae optio! Quae, quidem? Blanditiis voluptatum odit mollitia! Repellat dicta itaque assumenda quos odio illo, veniam quibusdam consequatur officia ipsam, necessitatibus ad et ducimus excepturi, id ipsa sequi recusandae! Nulla provident, autem vel officia explicabo quam neque molestiae, reprehenderit qui dolor quibusdam ea odio ad, non nisi perspiciatis ducimus fugiat voluptates laborum pariatur maxime consequuntur! Odit, vero quisquam. Modi, sunt, minus voluptatem illo dolor doloremque consectetur dolorem explicabo ullam a perspiciatis distinctio ad aperiam similique ex at alias sapiente cumque optio? Debitis hic sint accusantium doloremque tempora nesciunt placeat quisquam! Accusantium, quod omnis nihil eum et, sunt impedit officia suscipit deleniti aut eaque error voluptatem autem dolores itaque ex eius non dicta sapiente recusandae veniam! Illo voluptates dolor quia adipisci quo ut, consectetur itaque rerum odit vel! Voluptatum vitae dolores eveniet placeat officia, architecto enim esse unde? Incidunt obcaecati tenetur eum consequuntur sed deserunt voluptate. 16 | Lorem ipsum, dolor sit amet consectetur adipisicing elit. Labore tempore explicabo distinctio incidunt voluptates quod exercitationem, laborum rerum ratione molestias nam architecto necessitatibus saepe et maxime sapiente sint atque sit laboriosam voluptate est quibusdam earum quam nemo. Doloremque eius repellat vel molestiae aut. Nihil velit magnam ducimus fuga eaque tempora nam ratione dolorum vero laudantium obcaecati, libero minus minima? Ratione, asperiores repellendus nihil quis aperiam soluta sequi fuga consequatur cupiditate, labore aspernatur laudantium tenetur doloribus nostrum quaerat officia. Illo beatae eveniet officia, repellat fugit molestiae velit accusamus, asperiores iure, laudantium facere reprehenderit. Dolorum, laboriosam quis iure hic illo repellendus temporibus iusto asperiores ut qui accusantium quaerat esse impedit corrupti veritatis! Dignissimos esse doloribus magnam necessitatibus in nobis et quisquam placeat odit, tenetur eius error officia cumque, magni ex optio facere veritatis cum, tempore nihil aliquid expedita! Ut neque ex explicabo corrupti rerum repudiandae inventore. Harum nemo maiores beatae! Nulla totam qui velit animi est dolores, magni quisquam iste eligendi veritatis! Excepturi cupiditate ipsam nulla quo, necessitatibus veniam perferendis quis velit praesentium sed iusto numquam deleniti adipisci quam, ad voluptatum magnam quidem! Vel quisquam in, esse possimus dignissimos mollitia sapiente at eligendi aperiam officiis dolores, repudiandae est. Exercitationem fugiat possimus praesentium, maxime eum deserunt asperiores odit neque iure rerum vero. Commodi id accusamus possimus atque repellat porro soluta facere, voluptas error deserunt incidunt maiores blanditiis iste fugit nesciunt pariatur aliquid aut suscipit, consequatur delectus dolores molestiae nostrum earum. Hic odit ducimus deserunt assumenda exercitationem eaque autem excepturi, placeat veritatis, ea quas consequatur similique? Repellendus ad itaque natus unde beatae vitae reiciendis, nostrum error quam magni deserunt pariatur quibusdam illum sequi officia, magnam aliquid possimus praesentium dolor fugiat inventore veniam, dicta animi non. Vel doloremque ea quaerat necessitatibus asperiores delectus mollitia? Molestias quia repudiandae omnis laudantium, itaque vel aperiam iusto vitae architecto voluptatum illo praesentium non veritatis et nihil eligendi expedita repellat dignissimos pariatur a laboriosam nam ea! Illum quod nisi, dolor cumque vitae possimus nesciunt voluptate, cum veniam vel iste aliquid, nam repellat repudiandae error doloremque quam? Veniam vel nihil perferendis illo? Minima ratione sed, possimus obcaecati voluptatibus officia voluptate at magni neque tempora asperiores, consequatur molestiae optio! Quae, quidem? Blanditiis voluptatum odit mollitia! Repellat dicta itaque assumenda quos odio illo, veniam quibusdam consequatur officia ipsam, necessitatibus ad et ducimus excepturi, id ipsa sequi recusandae! Nulla provident, autem vel officia explicabo quam neque molestiae, reprehenderit qui dolor quibusdam ea odio ad, non nisi perspiciatis ducimus fugiat voluptates laborum pariatur maxime consequuntur! Odit, vero quisquam. Modi, sunt, minus voluptatem illo dolor doloremque consectetur dolorem explicabo ullam a perspiciatis distinctio ad aperiam similique ex at alias sapiente cumque optio? Debitis hic sint accusantium doloremque tempora nesciunt placeat quisquam! Accusantium, quod omnis nihil eum et, sunt impedit officia suscipit deleniti aut eaque error voluptatem autem dolores itaque ex eius non dicta sapiente recusandae veniam! Illo voluptates dolor quia adipisci quo ut, consectetur itaque rerum odit vel! Voluptatum vitae dolores eveniet placeat officia, architecto enim esse unde? Incidunt obcaecati tenetur eum consequuntur sed deserunt voluptate. 17 | 18 | 19 |

20 |
21 | 22 | --------------------------------------------------------------------------------
Student Roll.No:
Student Name:
Branch Of Engineering :
Year Of Engineering :
Contact No:
Email :