Weather App Using Javascript, HTML, Css
Weather App Using Javascript, HTML, Css
EDUCATION
VIVEKANAND EDUCATION SOCIETY POLYTECHNIC
MICRO PROJECT
Academic year: 2019-2020
WHEATHER APP
--------------------------------------------------------------------------------------------------------------
Group Details:
Name of Group Roll
Sr.No Enrollment No
members No
1 Shadab Khan 69 1900040166
1
MAHARASHTRA STATE BOARD OF TECHNICAL EDUCATION
Certificate
This is to certify that Miss/Mr. Shadab Khan, Deepesh Kunkulol, Jyoti Kolhe,
Gaurav Thombare, Pratham Shah Roll No. 69,72,73,75,78 of 5th Semester of
diploma in COMPUTER Engineering of Institute, VES POLYTECHNIC (Code:
0004) has completed the Micro Project satisfactorily in Subject – CLIENT SIDE
SCRIPTING (22519) for the academic year 2019- 2020. as prescribed in the
curriculum.
Seal of
Institution
2
Annexure – I
1. Create interactive web pages using program flow control structure [✔]
2. Implement Arrays and functions in javascript [✔]
3. Create event based web forms using javascript [✔]
4. Use javascript for handling cookies [ ]
5. Create interactive webpage using regular expressions for validations.[ ]
6. Create menu and navigation in webpage [ ]
3.0 Proposed Methodology
3
4.0 Action Plan (Sequence and time required for major activities for 8 Weeks)
Sr. No. Details of activity Planned Start Planned Finish Name of Responsible
date date Team Members
1 Finalization of project
Title and Scope
3 Design procedure
(algorithm)
4 Draw Design
5 Coding
6 Coding
8 Demonstration of project
and final submission
Making of report
4
5.0 Resources Required
S. No. Name of Specifications Qty Remarks
Resource/material
5
Annexure – II A
1.0 Rationale
Importance :
JavaScript is limited featured client side programming language. JavaScript runs at the client
end through the user's browser without sending message back and forth to the server. It is
widely used by the developers to do things such as build dynamic webpages, respond to events,
create interactive forms, validate data that the visitors enters into a form, control the browser etc.
This course helps student to create highly interactive web pages using these features.Client-side
JavaScript is the most common form of the language. The script should be included in or
referenced by an HTML document for the code to be interpreted by the browser.It means that a
web page need not be a static HTML, but can include programs that interact with the user,
control the browser, and dynamically create HTML content.The JavaScript client-side
mechanism provides many advantages over traditional CGI server-side scripts. For example,
you might use JavaScript to check if the user has entered a valid e-mail address in a form
field.The JavaScript code is executed when the user submits the form, and only if all the entries
are valid, they would be submitted to the Web Server.JavaScript can be used to trap user-
initiated events such as button clicks, link navigation, and other actions that the user initiates
explicitly or implicitly.
6
4.0 Literature Review
Client-Side JavaScript :
Client-side JavaScript is the most common form of the language. The script should be
included in or referenced by an HTML document for the code to be interpreted by the
browser.
It means that a web page need not be a static HTML, but can include programs that
interact with the user, control the browser, and dynamically create HTML content.
The JavaScript client-side mechanism provides many advantages over traditional CGI
server-side scripts. For example, you might use JavaScript to check if the user has
entered a valid e-mail address in a form field.
The JavaScript code is executed when the user submits the form, and only if all the
entries are valid, they would be submitted to the Web Server.
JavaScript can be used to trap user-initiated events such as button clicks, link
navigation, and other actions that the user initiates explicitly or implicitly.
7
Advantages of JavaScript:
The merits of using JavaScript are −
1. Less server interaction − You can validate user input before sending the page off
to the server. This saves server traffic, which means less load on your server.
2. Immediate feedback to the visitors − They don't have to wait for a page reload to
see if they have forgotten to enter something.
3. Increased interactivity − You can create interfaces that react when the user
hovers over them with a mouse or activates them via the keyboard.
4. Richer interfaces − You can use JavaScript to include such items as drag-and-
drop components and sliders to give a Rich Interface to your site visitors.
Limitations of JavaScript:
We cannot treat JavaScript as a full-fledged programming language. It lacks the
following important features −
1. Client-side JavaScript does not allow the reading or writing of files. This has been
kept for security reason.
2. JavaScript cannot be used for networking applications because there is no such
support available.
3. JavaScript doesn't have any multi-threading or multiprocessor capabilities.
8
5.0 Actual Methodology Followed
Description :
We learn how to build a simple, yet fully functional weather app with
JavaScript.First things first, we have find a provider that will let us incorporate its
weather data into our app. Luckily enough, there are several different providers out
there for developing weather apps. Most of them include a free package along with
premium subscriptions that scale depending on the services/features. In our case,
we’re going to use OpenWeatherMap, one of the most popular free choices. To
take advantage of its capabilities, first, we have sign up for an API key
The first section will include a heading, a search form, and an empty span element.
This element will become visible with an appropriate message under certain
conditions. Specifically, if there isn’t any weather data available for a requested
city or the data for this city are already known.
With the markup for the app ready, we’ll forge on with the CSS. The first step, as
always, is to specify some CSS variables and common reset styles:
On Form Submission
Each time a user submits the form by pressing the Enter key we’ll do two things:
1. Stop the form from submitting, hence prevent reloading the page.
2. Grab the value which is contained in the search field.
9
CODING:
1. index.html
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8" />
<meta name="viewport" content="width=device-width, initial-scale=1.0" />
<title> Weather App</title>
<link rel="stylesheet" href="style1.css" />
<script src="script.js" defer></script>
</head>
<body>
<div class="abc">
<form id="form">
<input
type="text"
id="search"
placeholder="Search by location"
autocomplete="off" />
<p id="write">City , Country</p>
</form>
<main id="main"></main>
</div>
</body>
</html>
10
2. Style.css
*{
box-sizing: border-box;
}
Body
{
padding: 0px;
margin: 0px;
/*background-image: url("weather.jpg");*/
background: linear-gradient( rgba(100, 77, 202, 0.37), rgba(231, 237, 238, 0.418) ),
url('weather.jpg');
background-repeat: no-repeat;
background-size: cover;
background-position: top center;
min-height: 100vh;
}
.column
{
float: left;
padding: 0px;
margin: 0px;
}
.column.side
{width: 50%;
}
.abc
{
text-align: center;
}
#demo{
padding: 5px;
margin:5px;
font-size: 50px;
font-weight: bold;
font-family: Times New Roman;
color: white;
}
11
#demo1{
padding: 5px;
margin: 5px;
font-size: 40px;
font-weight: bold;
font-family: Comic Sans MS;
color: white;
}
input[type=text]{
background-color: #fff;
border: none;
border-radius: 30px;
box-shadow: 0 4px 10px rgba(0, 0, 0, 0.2);
font-family: Comic Sans MS;
font-size: 1.5rem;
padding: 1.5rem;
min-width: 350px;
}
input:focus {
outline: none;
}
#main{
text-align: center;
font-family: Comic Sans MS;
font-size: 40px;
font-weight: bold;
color: black;
}
#write{
margin: 0px;
padding: 0px;
font-size: 40px;
color: black;
font-weight:bold;
font-family:Comic Sans MS;
}
12
h1{
padding: 0px;
font-size: 60px;
text-shadow: 6px 6px 8px red;
text-align: right;
padding-bottom: 30px;
text-align:center;
color: yellow;
13
3. script.js
const apikey = "4d8fb5b93d4af21d66a2948710284366";
const main = document.getElementById("main");
const form = document.getElementById("form");
const search = document.getElementById("search");
Const url = (city) =>
`https://api.openweathermap.org/data/2.5/weather?q=${city}&appid=${apikey`;
async function getWeatherByLocation(city)
{
const resp = await fetch(url(city), { origin: "cors" });
const respData = await resp.json();
console.log(respData);
addWeatherToPage(respData);
}
function addWeatherToPage(data)
{
const temp = KtoC(data.main.temp);
const weather = document.createElement("div");
weather.classList.add("weather");
weather.innerHTML = `
<h2><img src="https://openweathermap.org/img/wn/${data.weather[0].icon}@2x.png" />
${temp}°C
<img src="https://openweathermap.org/img/wn/${data.weather[0].icon}@2x.png" /></h2>
<small>${data.weather[0].main}</small> `;
// cleanup
main.innerHTML = "";
main.appendChild(weather);
}
function KtoC(K)
{
return Math.floor(K - 273.15);
}
form.addEventListener("submit", (e) => {
e.preventDefault();
var a = document.getElementById("search").value;
document.getElementById("write").innerHTML = a;
const city = search.value;
14
if (city)
{
getWeatherByLocation(city);
}
});
var myVar = setInterval(myTimer, 0);
function myTimer() {
var d = new Date();
var t = d.toLocaleTimeString();
document.getElementById("demo").innerHTML = t;
}
Myfunction();
function Myfunction(){
var day;
switch(new Date().getDay()){
case 0:
day="Sunday";
break;
case 1:
day="Monday";
break;
case 2:
day="Tuesday";
break;
case 3:
day="Wednesday";
break;
case 4:
day="Thursday";
break;
15
case 5:
day="Friday";
break;
case 6:
day="Saturday";
break;
}
var month;
switch(new Date().getMonth()){
case 0:
month="January";
break;
case 1:
month="February";
break;
case 2:
month="March";
break;
case 3:
month="April";
break;
case 4:
month="May";
break;
case 5:
month="June";
break;
case 6:
month="July";
break;
16
case 7:
month="August";
break;
case 8:
month="September";
break;
case 9:
month="October";
break;
case 10:
month="November";
break;
case 11:
month="December";
break;
}
var date=new Date().getDate()
document.getElementById("demo1").innerHTML = day+", "+month+" "+date;
17
6.0 Actual Resources Used
Computer (i3-i5
Hardware computer preferable),RAM
1 1 I3 Processsor
system minimum 2 GB and
onwards but not limited to
3 Software 1 x86
Notepad++
18
7.0 OUTPUT
19
20
8.0 Skills developed out of this project.
3. Documentation of Project
4. Time management
5. Technical Writing
6. Team work
7. Problem solving
1. Websites
2. Web application
3. Information
21
Annexure - III
22
Annexure – IV
Sr.
Characteristic to be Poor Average Good Excellent
No Sub Total
assessed
. ( Marks1-3 ) (Marks 4-5 ) (Marks 6-8) ( Marks9-10)
(A) Process and Product Assessment (Convert Above Total marks out of 6 Marks)
1 Relevance to the course
2 Information Collection
3 Project Proposal
6 Quality of Prototype/Model
7 Report Preparation
(B) Individual Presentation / Viva (Convert above total marks out of 4 marks)
8 Presentation
9 Defense
23
Total Marks
Process and Product Assessment Individual Presentation / Viva (4
Roll No.
(6 Marks) Marks)
10
69
72
73
75
78
Signature________________
24