Project Report
Project Report
on
Weather Website
Submitted by
of
BACHELOR OF SCIENCE
in
COMPUTER SCIENCE
under the guidance of
(Semester V )
(2024 – 2025)
1
CERTIFICATE
This is to certify that Mr. Omkar Shivaji Karhale of T.Y.B.Sc (Semester-V) class has satisfactorily
completed the Project Weather Website, to be submitted in the partial fulfillment for the award of Bachelor
of Science in Computer Science during the academic year 2024 – 2025.
Date of Submission:
____________________ _______________________
___________________ __________________________
2
DECLARATION
I, Omkar Shivaji Karhale, hereby declare that the project entitled “Weather
Website” submitted in the partial fulfillment for the award of Bachelor of
Science in Computer Science during the academic year 2024 – 2025 is my
original work and the project has not formed the basis for the award of any
degree, associateship, fellowship or any other similar titles.
Signature of the Student:
Place:
Date:
3
ACKNOWLEDGEMENT
I extend my sincere gratitude to my parents and my family for providing me with the necessary
A heartfelt thank you to my esteemed Project Guide, Professor Pallavi Awate, for her invaluable
guidance and unwavering supervision, which played a pivotal role in the successful completion
of the project.
insights, advice on web application documentation, features, and suggestions for enhancing the
Special thanks to all the students whose challenges and issues I observed, inspiring the
4
PREFACE
In an era where access to real-time information is paramount, understanding
weather patterns and forecasts has become increasingly vital for daily decision-
making. This project aims to harness the power of web technologies to provide
users with an accessible platform for obtaining current weather data and forecasts.
This weather website, developed using HTML, CSS, and JavaScript, represents
my effort to blend technical skills with practical application. Through this project,
I sought to create a user-friendly interface that not only delivers accurate weather
information but also enhances the overall user experience.
I hope this project serves as a useful tool for users seeking weather information,
and I look forward to further enhancing its features and functionality in future
iterations.
The project is an ongoing endeavor, and as with any software, there is always
room for improvement. While this report aims to provide accurate information,
continuous review and refinement are integral to its evolution.
5
TABLE OF CONTENTS
Sr.No Contents Page No.
1 Title 7
2 Abstract 8
3 Introduction 9
4 Tools and technologies 10
5 Target audience and scope 11
6 Gantt chart 12
7 Requirements
a. System requirements 13-15
b. Function requirements
c. Non. Functional requirements
8 Feasibility analysis 16-17
9 System design
a. Flow chart
b. Data-Flow-Diagram 18-20
c. Use-Case-Diagram
d. Class Diagram
10 Implementation
a. Development setup 21-31
b. Folder structure
c. Code snippets
11 Testing
a. API testing 32-34
b. Frontend testing
12 Results 35-36
13 Conclusion and future scope 37-38
14 References 39
6
TITLE
A web-based application
ABSTRACT
This project presents the development of a comprehensive weather website that leverages
modern web technologies—specifically HTML, CSS, and JavaScript—to provide users with
accurate and up-to-date meteorological information. With the growing importance of real-
time weather data in daily decision-making, this application serves as a reliable tool for users
to access essential weather details for any location worldwide.
The website features an intuitive user interface that allows users to enter their desired location
and retrieve pertinent weather information, including current temperature, humidity, wind
speed, and a brief weather description. Utilizing a third-party weather API, the application
fetches real-time data, ensuring that users receive the most current information available. The
use of asynchronous JavaScript allows for seamless data retrieval and user interaction,
enabling a fluid experience without the need for page refreshes.
In addition to current weather conditions, the website offers extended forecasts, empowering
users to plan their activities with confidence. The design incorporates responsive web
principles, ensuring that the website is accessible and functional across a variety of devices,
including desktops, tablets, and smartphones. This adaptability enhances user experience by
providing consistent functionality regardless of the device being used.
The project emphasizes best practices in web development, including clean coding standards,
modular design, and effective use of CSS for aesthetic appeal. User feedback mechanisms are
also integrated, allowing for continuous improvement of the application based on real-world
usage and preferences.
Overall, this weather website not only fulfills a practical need but also serves as an
educational project that showcases the application of web development concepts. By merging
technical skills with user-focused design, this project exemplifies the potential of web
technologies to deliver valuable information in a user-friendly manner. Future enhancements
may include the addition of features such as localized weather alerts, user-generated content,
and advanced visualization tools, further expanding the website’s functionality and user
engagement.
INTRODUCTION
This project report presents the development of a weather website created using HTML, CSS, and JavaScript.
The website provides users with up-to-date weather information, including temperature, humidity, wind
speed, and weather conditions for various locations worldwide. The site leverages a user-friendly interface
that displays real-time data in an easily interpretable format, making it accessible and appealing for users of
all ages.
The core purpose of this project was to design a responsive and interactive website that not only displays
weather data but also offers an engaging user experience. By utilizing HTML for structuring content, CSS for
styling, and JavaScript for dynamic functionality, the project showcases how web technologies can be
combined to build an informative and visually appealing web application. Additionally, the website
incorporates API integration to fetch live weather data, ensuring that users always receive the latest
information.
Purpose
The purpose of this weather website project is to create a responsive and interactive platform that provides
users with accurate and up-to-date weather information. By leveraging the foundational web technologies of
HTML, CSS, and JavaScript, this project aims to deliver a seamless and visually appealing user experience
while showcasing real-time weather data.
The website serves as both a functional tool and an educational project, demonstrating how these
technologies can be integrated to create a practical web application. The site is designed to be accessible,
user-friendly, and informative, enabling users to check current weather conditions easily and intuitively. The
project highlights how API integration can enhance a web application’s functionality by delivering dynamic
content, making this weather website not only a useful resource for users but also a valuable exercise in
modern web development techniques.
1) HTML: HTML, or Hypertext Markup Language, is the standard language used for creating and structuring
content on the web. It provides the foundation for web pages by defining elements like headings, paragraphs,
images, links, and other media. HTML acts as the skeleton of a webpage, organizing the content in a way that
browsers can interpret and display to users.
2) CSS : CSS, or Cascading Style Sheets, is a style sheet language used to control the presentation and layout of
web pages. While HTML provides the structure and content, CSS is responsible for the visual appearance,
including colors, fonts, spacing, alignment, and overall layout. This separation of content and style enables
more efficient, maintainable, and flexible web design.
3) JavaScript : JavaScript (JS) is a versatile, high-level programming language primarily used to create
interactive and dynamic content on websites. Unlike HTML and CSS, which define a webpage’s structure and
style, JavaScript adds functionality, allowing users to interact with a website in real time. JavaScript can
respond to user actions, modify webpage content, validate form inputs, animate elements, and much more.
4) Open Weather Map API : The Open Weather API is a powerful tool that provides access to a wide range
of weather data for locations around the world. It allows developers to integrate real-time weather information
into their applications, websites, and other digital services. Open Weather offers a variety of endpoints that
supply data such as current weather conditions, forecasts, historical data, and more, making it an ideal choice
for building weather-related applications.
1. Current Weather Data: The API provides up-to-date weather information for specific cities or
geographical coordinates. This includes data on temperature, humidity, wind speed, precipitation,
atmospheric pressure, and general weather conditions.
2. Weather Forecasts: OpenWeather offers short-term (hourly) and long-term (daily) forecasts, giving
users an overview of upcoming weather conditions. The API supports both 5-day and 16-day
forecasts, making it suitable for planning purposes.
3. Historical Data: The API also provides historical weather data, which can be useful for analyzing
past weather patterns, conducting research, or generating insights for specific locations over time.
4. Weather Alerts: The OpenWeather API includes weather alerts and notifications for severe
conditions like thunderstorms, heavy rainfall, snow, or extreme temperatures. This feature is
especially valuable for apps focused on safety and preparedness.
5. Global Coverage: The API covers cities, towns, and regions worldwide, with data available for
millions of locations. This makes it versatile and suitable for applications with an international user
base.
6. Air Pollution and Other Specialized Data: Beyond standard weather information, OpenWeather
also provides data on air quality, UV index, and other specialized meteorological parameters,
enabling more comprehensive environmental monitoring.
10
The weather website is designed to cater to a broad range of users who seek accessible and accurate weather
information. Key target audiences include:
1. General Public: Individuals looking for a quick and reliable way to check current weather conditions
and forecasts for their location or other regions. This group values ease of use and straightforward
navigation.
2. Travelers: People planning trips or commutes who need to monitor weather conditions to ensure safe
and comfortable travel. The website provides up-to-date information to help users make informed
decisions.
3. Outdoor Enthusiasts: Users who engage in outdoor activities like hiking, biking, and sports. This
group relies on accurate weather forecasts to plan activities and avoid adverse weather conditions.
4. Students and Educators: Individuals involved in studying weather patterns, climate, or
environmental science can use the website as a learning tool. It offers a practical application of web
development and demonstrates real-time data integration.
5. General Web Users Interested in Technology: As an educational project, the website also targets
individuals interested in learning about web development technologies. By using HTML, CSS, and
JavaScript, it serves as a practical example of how to build a functional and interactive website.
Scope:
The scope of this weather website project includes the following elements:
1. Real-Time Weather Data: The website will provide current weather information, including
temperature, humidity, wind speed, and general weather conditions for any specified location. This
data will be dynamically updated using JavaScript and the OpenWeather API.
2. Weather Forecasts: Users will be able to access short-term weather forecasts, providing insights into
future weather conditions. This feature helps users make informed decisions based on upcoming
weather changes.
3. Responsive Design: The website will be built with responsive design principles to ensure that it is
accessible and functional on various devices, including desktops, tablets, and smartphones. This is
achieved through CSS media queries and flexible layouts.
4. User-Friendly Interface: The website will prioritize a clean, simple, and intuitive interface, allowing
users to easily navigate between different weather data sections. This enhances the overall user
experience, ensuring that the site is accessible to all.
5. Educational Value: The project will demonstrate the use of web technologies like HTML, CSS, and
JavaScript in a practical context. By integrating an API and using JavaScript for dynamic content, it
serves as a learning resource for those interested in web development.
6. Scalability and Extensibility: While the initial project will focus on basic weather information, the
structure will allow for future expansion. Additional features, such as air quality data, severe weather
alerts, and historical weather information, can be easily integrated as needed.
11
GANTT CHART
12
REQUIRMENTS
System Requirements
Development Requirements:
1. Hardware:
o Processor: A modern, multi-core processor (Intel i3 or equivalent and above) is
recommended for efficient multitasking.
o RAM: At least 4 GB of RAM; however, 8 GB or more is preferable for
smoother development, especially when using multiple tools simultaneously.
o Storage: 500 MB of available storage space for project files, code editors, and
libraries.
o Display: A screen resolution of at least 1366x768 pixels for optimal interface
design and previewing.
2. Software:
o Operating System: Compatible with Windows, macOS, or Linux. Any modern
operating system should suffice.
o Web Browser: A modern, standards-compliant browser such as Google
Chrome, Mozilla Firefox, Microsoft Edge, or Safari for testing and previewing
the website.
o Code Editor: A code editor or Integrated Development Environment (IDE) like
Visual Studio Code to write and edit HTML, CSS, and JavaScript code.
o API Access: Access to the OpenWeather API (or similar) for weather data
retrieval, requiring an API key for authorization.
o Local Server (Optional): A local development server like Live Server (a Visual
Studio Code extension) to preview and test the website with live reloading.
3. Internet Connection:
o A stable internet connection is necessary for accessing the weather API and
fetching real-time data. It’s also required for initial setup, including downloading
dependencies and code libraries if needed.
13
Functional Requirements
1. Weather Data Retrieval:
o The website should retrieve real-time weather data for a specified location using the
OpenWeather API.
o It should display essential weather information, including:
Current temperature
Humidity levels
Wind speed
General weather conditions (e.g., clear, cloudy, rainy)
Weather icon representing the current conditions
2. Location Search Functionality:
o The website should allow users to search for weather information by entering a city name or
geographic coordinates.
o It should provide error messages or notifications if an invalid location is entered or if data is
unavailable.
3. Weather Forecast:
o The website should display a short-term weather forecast (e.g., 3-hour intervals) for up to 24
hours or more, if available from the OpenWeather API.
4. User Interface and Display:
o The website should have a clean, responsive design that adjusts to various device screen sizes
(desktop, tablet, and mobile).
o It should visually distinguish between different weather conditions using icons, colors, and
layout changes.
o The website should refresh weather data automatically or provide a refresh button for users to
update the data manually.
5. API Key Management:
o The API key used to access OpenWeather data should be stored securely, with minimal
exposure in the code to prevent unauthorized use.
o Implement measures to manage and handle API usage limits, with appropriate notifications if
the limit is reached.
6. Browser Compatibility:
o The website should be compatible with major modern browsers, such as Google Chrome,
Mozilla Firefox, Safari, and Microsoft Edge.
o It should support basic HTML5, CSS3, and JavaScript ES6 features for consistent behavior
across browsers.
14
Non-Functional Requirements
1. Performance:
o The website should load within 3 seconds under normal network conditions, ensuring users
can access weather data quickly.
o The API requests should be optimized to minimize response time, ideally under 1 second for
retrieving weather data.
2. Scalability:
o The architecture of the website should be designed to accommodate future growth, such as
the addition of more features (e.g., historical data, advanced analytics) without significant
rework.
3. Usability:
o The website should have an intuitive user interface that allows users to navigate easily and
find the information they need without confusion.
o User feedback mechanisms should be implemented, such as visual indicators for loading data,
to enhance user experience.
4. Accessibility:
o The website should comply with Web Content Accessibility Guidelines (WCAG) 2.1,
ensuring that users with disabilities can access and use the site effectively. This includes:
Alternative text for images and icons.
Proper semantic HTML markup.
Keyboard navigation support.
Sufficient color contrast for readability.
5. Reliability:
o The website should handle API failures gracefully, providing informative error messages to
users without crashing.
o It should have fallback mechanisms or cached data to provide a basic level of functionality
even when real-time data is temporarily unavailable.
6. Security:
o User input should be validated to prevent injection attacks (e.g., XSS) and ensure that only
valid data is processed.
o The API key used for accessing the OpenWeather API should be securely managed, avoiding
exposure in the client-side code and ensuring it is kept confidential.
7. Compatibility:
o The website should be compatible with the latest versions of major web browsers (Google
Chrome, Mozilla Firefox, Microsoft Edge, and Safari) and function correctly across different
operating systems (Windows, macOS, Linux).
o The site should also be responsive, providing an optimal viewing experience on various
devices (desktops).
15
FESIABLITY ANALYSIS
Feasibility Analysis
1. Technical Feasibility:
Technological Requirements:
o The project requires basic web technologies (HTML, CSS, JavaScript) that are widely supported and
easy to learn.
o Access to the OpenWeather API for weather data retrieval is readily available and well-documented,
making integration straightforward.
Development Tools:
o Development can be done using popular code editors (like Visual Studio Code) and browsers (like
Chrome or Firefox), which are accessible on various operating systems.
o There are no significant technical hurdles anticipated as the technology stack is simple and widely
used in web development.
Performance Considerations:
o The website's performance should be acceptable, provided that API requests are optimized and
efficient.
o Responsive design can be implemented using CSS media queries, ensuring compatibility across
devices.
2. Economic Feasibility:
3. Operational Feasibility:
User Acceptance:
o The target audience includes casual users seeking reliable weather information, outdoor enthusiasts,
travelers, and students, all of whom are likely to appreciate a user-friendly, well-designed website.
4. Legal Feasibility:
SYSTEM DESIGN
Flow Chart:
Start
Input Location
Refresh option
1
End
18
User
Input Location
Validate Location
User
Fetch weather data
Result
19
Class Diagram :
WeatherData
-temperature
-humidity
-windspeed
-description
-timestamp
+fetchWeatherdata()
+displayWeather()
20
IMPLEMENTATION
1)Development setup:
a. IDE and Browser setup:
Search for and install Go Live Extention to perform HTML,CSS and JS code and Output.
1)Open the Chrome or any browser search for Open Weather API
5)Pick up the API url and put in the JS section in your code
21
2)Folder Strucutre:
Frontend :
22
3)Code Snippets:
1. Frontend
index.html:
<!DOCTYPE html>
<html lang="en">
<head>
<title>Document</title>
</head>
<body>
<div class="container">
<div class="search-box">
<div class="errornm"></div>
</div>
<div class="weather-box">
<div class="box"> 23
<div class="info-weather">
<div class="weather">
<p class="temperature">0<span>°C</span></p>
</div>
</div>
</div>
</div>
<div class="weather-details">
<div class="humidity">
<div class="info-humidity">
<span>0%</span>
</div>
<p>Humidity</p>
</div>
<div class="wind">
<div class="info-wind">
<span>0Km/h</span>
</div>
<p>wind Speed</p>
</div>
</div>
<div class="box"> 24
</div> -->
</div>
</div>
<script src="script.js"></script>
</body>
</html>
Style.css:
@import url("https://fonts.googleapis.com?css2?
family=Poppins:wght@300;400;500;600700;800;900&display=swap");
*{
margin: 0;
padding: 0;
body {
display: flex;
justify-content: center;
align-items: center; 25
min-height: 100vh;
.container {
position: relative;
width: 400px;
height: 555px;
backdrop-filter: blur(7px);
border-radius: 20px;
padding: 20px;
color: #fff;
.search-box {
position: relative;
width: 77%;
height: 55px;
display: flex;
align-items: center;
.search-box i {
position: absolute;
left: 10px;
font-size: 28px; 26
.search-box input {
position: absolute;
width: 100%;
height: 100%;
background: transparent;
outline: none;
border-radius: 10px;
font-size: 22px;
color: #fff;
font-weight: 500;
text-transform: uppercase;
}
.search-box input::placeholder {
color: #fff;
text-transform: capitalize;
.search-box button {
position: absolute;
left: 100%;
width: 40%;
height: 100%;
background: transparent; 27
border: none;
outline: none;
font-size: 28px;
color: #fff;
cursor: pointer;
/* .weather-box,
.weather-details
.not-found{
visibility: hidden;
}
.weather-box.active,
.weather-details.active,
.not-found.active{
visibility: visible;
} */
.weather-box img {
width: 60%;
padding-top: 0px;
28
.image {
padding-top: 0px;
padding-bottom: 0px;
.weather-box .temperature {
position: absolute;
font-size: 24px;
margin-left: 4px;
.weather-box .description {
font-size: 22px;
font-weight: 500;
text-transform: capitalize;
.weather-details .humidity,
.weather-details .wind {
padding-right: 20px;
justify-content: flex-end;
.weather-details i {
font-size: 56px;
margin-right: 10px;
.weather-details p {
font-size: 14px;
font-weight: 500;
}
body #myVideo {
position: fixed;
right: 0;
bottom: 0;
min-width: 100%;
min-height: 100%;
.weather-details .wind {
padding-left: 20px; 30
justify-content: flex-start;
text-align: center;
/* .errornm{
position: absolute;
top:23px;
left:23px;
width: 10%;
height:10%
} */
/* .not-found{
position: absolute;
top: 0;
left: 0;
width: 100%;
text-align: center;
margin-top: 110px;
.not-found img{
width: 65%;
.not-found p{
font-size: 20px;
font-weight: 500;
margin-top: 12px; } */ 31
TESTING
a)API Testing :
Using API Open Weather API in VS Code I performed the testing API
32
Frontend UI Testing:
1)Responsive testing:
Layout Adaptability:
The website layout should automatically adjust based on screen size. This includes the resizing or
repositioning of elements like search bars, weather displays, navigation menus, and footers.
For smaller screens, elements might stack vertically or reduce in size to maintain readability and
usability.
Grid systems and media queries in CSS are essential to ensure components are arranged correctly on
various screen sizes.
Scalability of Content:
Content such as text, images, icons, and weather graphics should scale appropriately without
overlapping or distortion.
For example, weather icons should remain visible and clear, and text should be legible without
requiring the user to zoom in.
Media queries can be used to specify different font sizes, image resolutions, and container dimensions
for different screen sizes.
33
34
RESULTS
A successful weather website delivers a seamless user experience by accurately providing weather data and
displaying it in a visually appealing, easy-to-navigate interface. The following are the key outcomes and
characteristics of a well-executed weather website:
Reliable Data: The website successfully integrates with the OpenWeather API (or similar service)
and consistently provides accurate, up-to-date weather information for cities worldwide.
Detailed Weather Information: Users have access to comprehensive weather details, including
temperature, humidity, wind speed, and precipitation. For extended forecasts, users can view
upcoming weather trends, such as a 5-day forecast.
Error Handling: The website gracefully handles errors, such as invalid city names or API errors, by
providing clear and user-friendly error messages, ensuring users understand when something has gone
wrong.
Device Compatibility: The website is fully responsive, delivering a consistent experience across a
wide range of devices and screen sizes, including desktops, tablets, and smartphones. Elements adjust
fluidly, maintaining functionality and readability in portrait and landscape orientations.
Usability on All Screen Sizes: Key features, such as search bars, navigation, and settings, are
accessible and easy to use across all devices. Touch-friendly elements are incorporated, making the
website easy to interact with on mobile devices.
Efficient Layout: The website’s layout is well-organized, with key information prominently
displayed, enabling users to quickly access the information they need. This enhances the user
experience and ensures a smooth, intuitive interface.
Optimized Loading Speed: The website loads quickly, thanks to optimized code, compressed
images, and efficient API calls. This is especially critical for users on mobile networks or slower
internet connections.
Minimal Downtime: By effectively managing API requests and implementing robust error handling,
the website maintains high availability and responsiveness, even during peak usage times.
Simple Navigation: The website provides straightforward navigation, allowing users to easily search
for cities, toggle between Celsius and Fahrenheit, and access additional settings like language
preferences.
Informative Visuals: Weather icons, color-coded temperature indicators, and other visual cues make
the information more engaging and help users quickly grasp current conditions and forecasts.
Customization Options: Features such as theme toggles (light/dark mode), unit preferences, and
multi-language support enhance usability and make the website adaptable to user preferences.
35
5. Enhanced User Engagement
Intuitive Search and Location Detection: Users can quickly find weather information for any city
using a responsive search bar, and location detection features allow users to retrieve weather data for
their current location with ease.
36
CONCLUSION AND FUTURE SCOPE
A weather website built using HTML, CSS, JavaScript, and the OpenWeather API offers a reliable platform
for delivering real-time weather data to users in a straightforward and visually appealing format. By
leveraging a responsive design, such a website ensures accessibility and usability across a wide range of
devices, from desktops to mobile phones. This project demonstrates the effectiveness of using fundamental
web technologies to create a feature-rich application capable of providing essential weather details like
temperature, humidity, and wind speed.
This website successfully achieves its goal of offering an intuitive, user-friendly experience where users can
quickly access weather information for any city worldwide. With efficient API integration, error handling,
and performance optimizations, the website remains fast, reliable, and engaging, setting a strong foundation
for further development.
Future Scope
While the current implementation provides essential weather information and a solid user experience, there
are several potential enhancements that can expand the website’s capabilities and improve user satisfaction:
Conclusion
Overall, a weather website utilizing HTML, CSS, JavaScript, and the OpenWeather API provides a strong
foundation for a dynamic, user-friendly weather platform. By exploring these future development
opportunities, the website can continue to evolve, offering increasingly valuable features and a more
personalized user experience.
38
REFERENCES
1) https://boxicons.com/
2) https://www.freepik.com/author/pikisuperstar
3) https://www.freepik.com/
4) https://openweathermap.org/
5) https://codehalweb.com/
39