Skip to content

🌦️ ForeCast360: Weather prediction and forecasting system using time-series deep learning, live weather data, and an interactive dashboard for accurate, accessible forecasts.

License

Notifications You must be signed in to change notification settings

samyuktha2005/ForeCast360

Folders and files

NameName
Last commit message
Last commit date

Latest commit

Β 

History

4 Commits
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 

Repository files navigation

Forecast360

🌦️ Weather Prediction Web Application

A full-stack weather prediction web application built with React (TypeScript) on the frontend and Firebase Authentication for user login. It integrates mapping and user interface components to provide location-based weather insights.


πŸ” Project Structure


weather\_prediction/
β”œβ”€β”€ frontend/
β”‚   β”œβ”€β”€ src/
β”‚   β”‚   β”œβ”€β”€ App.tsx          # Main routing and authentication handling
β”‚   β”‚   β”œβ”€β”€ main.tsx         # React app entry point
β”‚   β”‚   β”œβ”€β”€ pages/           # Contains Home and Dashboard views
β”‚   β”‚   β”œβ”€β”€ components/
β”‚   β”‚   β”‚   └── Auth.tsx     # Authentication logic (login/signup)
β”‚   β”‚   └── firebase/
β”‚   β”‚       └── config.ts    # Firebase authentication config
β”‚   β”œβ”€β”€ public/              # Static assets
β”‚   β”œβ”€β”€ node\_modules/        # React dependencies
β”‚   β”œβ”€β”€ package.json         # Project dependencies and scripts
β”‚   └── index.css            # Global styles


πŸš€ Features

  • 🌐 Routing with React Router DOM
  • πŸ” Firebase-based Authentication (login/signup with session persistence)
  • πŸ“ Map-based location selection for weather lookup
  • πŸ“ˆ Real-time weather prediction results (presumably powered via external API or backend model)
  • πŸ“Š Dashboard visualization for predicted results
  • ⚑ Responsive design using Tailwind CSS
  • πŸ’‘ Context-aware conditional rendering (based on auth state)

🧠 How It Works

  • App.tsx handles all routing. It uses Firebase's onAuthStateChanged method to watch for authentication state changes.
  • Routes:
    • / β†’ Home page (open to all)
    • /auth β†’ Login/Signup page (for guests)
    • /dashboard β†’ Protected page (only for logged-in users)
  • main.tsx is the entry point where the app is bootstrapped using React 18’s createRoot() API.

πŸ› οΈ Tech Stack

Frontend

  • βš›οΈ React (with TypeScript)
  • 🌐 React Router DOM for navigation
  • 🎨 Tailwind CSS for responsive UI
  • πŸ”₯ Firebase Authentication for secure login
  • πŸ—ΊοΈ Lucide React for icon support
  • ⚑ Vite for fast development and build

Dev Tools & Utilities

  • ESLint & Prettier (presumed from modern stack structure)
  • Vite plugin support (via Tailwind, Lucide, etc.)

πŸ”§ Setup Instructions

  1. Install Dependencies

    cd weather_prediction/frontend
    npm install
    
  2. Configure Firebase

    • Create a Firebase project at firebase.google.com
    • Copy your web app config into frontend/src/firebase/config.ts
  3. Run the App

    npm run dev
  4. Open your browser at http://localhost:3000


πŸ›‘οΈ Protected Routing Example

<Route path="/dashboard" element={user ? <Dashboard /> : <Auth />} />

Users cannot access the dashboard unless authenticated.


πŸ“ Explore Further

  • src/pages/Dashboard.tsx – Weather display logic
  • src/components/ui/MapPicker.tsx – Interactive location selection

🀝 Contributing

Contributions are welcome! Feel free to fork this repository, make improvements, and submit a pull request. Whether it's bug fixes, performance enhancements, or new features, all help is appreciated.


πŸ“„ License

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


πŸ™ Acknowledgements


πŸ“¬ Contact

If you have any questions, feedback, or suggestions, feel free to reach out:


About

🌦️ ForeCast360: Weather prediction and forecasting system using time-series deep learning, live weather data, and an interactive dashboard for accurate, accessible forecasts.

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published