Skip to content

An interactive web app built for the 2025 NASA Space Apps Challenge that forecasts the likelihood of adverse weather conditions (heat, cold, wind, rain, discomfort) for a chosen location and date. Combines Earth observation data with data analysis and visualization to help users plan outdoor activities with confidence.

License

Notifications You must be signed in to change notification settings

Omar-Mega-Byte/404_WeatherNotFound

Folders and files

NameName
Last commit message
Last commit date

Latest commit

Β 

History

132 Commits
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 

🌦️ 404_WeatherNotFound: Will It Rain On My Parade?

An intelligent weather prediction platform for seamless outdoor event planning.
Proudly developed for the NASA Space Apps Challenge 2025.

Java Spring Boot React MySQL License

πŸ“‹ Table of Contents

🌟 Overview

"Weather Vision" is an intelligent weather prediction application designed to help users make informed decisions about outdoor events and activities. Built for the NASA Space Apps Challenge 2025, this application leverages advanced weather data and machine learning to provide personalized weather forecasts tailored for outdoor event planning.

The application addresses the critical need for accurate, event-specific weather predictions by combining multiple weather data sources with intelligent analysis to deliver actionable insights for event planners, outdoor enthusiasts, and anyone organizing weather-sensitive activities.

πŸ“Έ Screenshots

Login Page Register Page
Login Page Register Page
Dashboard Location Management
Dashboard Location Management
Home 1 Home 2
Home1 Home2

✨ Features

  • πŸ” User Authentication & Profile Management
  • πŸ“ Location-Based Weather Services
  • πŸ“Š Analytics & Performance Metrics
  • 🌍 Multi-Source Weather Data Integration
  • πŸ“ˆ Real-Time Weather Updates

πŸ› οΈ Technology Stack

Backend

  • Java 21 - Programming language
  • Spring Boot 3.5.5 - Application framework
  • Spring Security - Authentication & authorization
  • Spring Data JPA - Data persistence
  • MySQL 8.0+ - Primary database
  • Maven - Dependency management
  • Swagger/OpenAPI 3 - API documentation

Frontend

  • React 18.2.0 - UI framework
  • React Router DOM - Client-side routing
  • Axios - HTTP client
  • Modern CSS - Styling

Development Tools

  • Git - Version control
  • Maven - Build tool
  • npm/yarn - Package management

οΏ½ Project Structure

The project is organized into two main parts: a Spring Boot backend and a React frontend.

/
β”œβ”€β”€ frontend/              # React frontend application
β”‚   β”œβ”€β”€ public/
β”‚   └── src/
β”‚       β”œβ”€β”€ components/    # Reusable React components
β”‚       β”œβ”€β”€ pages/         # Page components
β”‚       └── services/      # API service clients
β”œβ”€β”€ src/                   # Spring Boot backend application
β”‚   └── main/
β”‚       └── java/
β”‚           └── com/weather_found/weather_app/
β”‚               β”œβ”€β”€ config/
β”‚               └── modules/ # Business logic modules
└── pom.xml                # Backend dependencies (Maven)

οΏ½πŸ“‹ Prerequisites

Before running this application, make sure you have the following installed on your system:

Required Software

Verify Installation

java --version
mvn --version
node --version
npm --version
mysql --version

πŸš€ Installation & Setup

1. Clone the Repository

git clone https://github.com/Omar-Mega-Byte/404_WeatherNotFound.git
cd 404_WeatherNotFound

2. Database Setup

Connect to MySQL and run the following command:

CREATE DATABASE weather_app;

Backend Setup

  1. Navigate to Backend Directory: The root of the project is the backend directory.
  2. Configure Database Connection: Edit src/main/resources/application.yml with your MySQL username and password.
  3. Install Dependencies: mvn clean install

Frontend Setup

  1. Navigate to Frontend Directory: cd frontend
  2. Install Dependencies: npm install

πŸƒβ€β™‚οΈ Running the Application

Start Backend Server

From the project root, run:

mvn spring-boot:run

The backend will be available at http://localhost:8080.

Start Frontend Server

From the frontend directory, run:

npm start

The frontend will be available at http://localhost:3000.

πŸ“š API Documentation

Once the backend is running, interactive API documentation is available via Swagger UI:

βš™οΈ Environment Configuration

Backend Environment Variables

You can configure the application using environment variables or by modifying the application.yml file.

Variable Default Description
SERVER_PORT 8080 Backend server port
MYSQL_USER root MySQL username
MYSQL_PASSWORD your_password MySQL password
JWT_SECRET change-this-secret JWT signing key

Frontend Environment Variables

Create a .env file in the frontend/ directory:

REACT_APP_API_BASE_URL=http://localhost:8080

πŸ›°οΈ NASA Data Integration

This project leverages meteorological data from NASA's Prediction of Worldwide Energy Resources (POWER) project. The POWER project provides solar and meteorological data sets from NASA research for support of renewable energy, building energy efficiency, and agricultural needs.

Our application specifically utilizes the POWER API to fetch daily time series data for given geographical coordinates.

  • API Endpoint: https://power.larc.nasa.gov/api/temporal/daily/point
  • Parameters Used: latitude, longitude, start_date, end_date, and various meteorological parameters like T2M (temperature), PRECTOTCORR (precipitation), etc.

This data is crucial for our weather prediction models, providing reliable and comprehensive information to deliver accurate forecasts.

πŸ† About the Hackathon

This project is a proud submission to the NASA Space Apps Challenge 2025. Our team, "404_WeatherNotFound", took on the challenge to harness NASA's vast repository of Earth observation data to solve a real-world problem: the uncertainty of weather for outdoor activities.

Our mission was to create a tool that empowers users to plan events with confidence, transforming complex atmospheric data into simple, actionable insights. We believe that by making weather prediction more personal and precise, we can help people connect more safely and enjoyably with the world around them. This project represents our passion for technology, data science, and the endless possibilities of space exploration.

🀝 Contributing

We welcome contributions! Please see CONTRIBUTING.md for details on how to get started.

  1. Fork the repository.
  2. Create a feature branch (git checkout -b feature/your-feature).
  3. Commit your changes (git commit -m 'Add some feature').
  4. Push to the branch (git push origin feature/your-feature).
  5. Open a Pull Request.

πŸ“„ License

This project is licensed under the MIT License - see the LICENSE file for details.

About

An interactive web app built for the 2025 NASA Space Apps Challenge that forecasts the likelihood of adverse weather conditions (heat, cold, wind, rain, discomfort) for a chosen location and date. Combines Earth observation data with data analysis and visualization to help users plan outdoor activities with confidence.

Topics

Resources

License

Code of conduct

Contributing

Stars

Watchers

Forks