Skip to content

Ankitnotnani/ChronoClime

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

1 Commit
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

ChronoClime 🌦️

NASA Space Apps Challenge 2025 — Grand Finalist

A hyper-local, personalised weather intelligence app that goes beyond standard forecasts. ChronoClime uses the ACIS (Activity-Centric Impact Score) — a custom 1–10 risk metric — to help you plan activities around weather, not around raw numbers.

Built with React + TypeScript + Vite, with optional ESP8266 IoT gateway integration for hardware-based location input.


What Makes It Different

Standard weather apps tell you it's 28°C and partly cloudy. ChronoClime tells you whether that day is a 9/10 for cycling or a 3/10 for a picnic — and why. It combines temperature, wind, precipitation, humidity, UV, and AQI into a single, activity-specific score, then finds your Optimal Day across the forecast window automatically.


Features

  • ACIS Scoring — personalised 1–10 weather suitability score per activity
  • Optimal Day Finder — automatically identifies the best day for your planned activity
  • Activity Planner — supports trekking, cycling, photography, beach days, camping, picnics, and more
  • AI Weather Chatbot — context-aware assistant for weather queries
  • Living Forecast — animated, real-time forecast with dynamic weather backgrounds
  • ESP8266 IoT Gateway — optional hardware integration for GPS-based location input
  • Satellite Connection Animation — visual feedback for IoT data sync
  • Favourites & Notifications — save locations and receive weather alerts
  • Share — share forecasts and activity plans

Tech Stack

Layer Tech
Frontend React 18 · TypeScript · Vite · Tailwind CSS
Animation Framer Motion
Maps Leaflet · React-Leaflet
Weather API OpenWeatherMap API
IoT Hardware ESP8266 (NodeMCU) · Arduino
Backend Sync Google Apps Script · Google Sheets
Database Supabase
HTTP Axios

Project Structure

ChronoClime/
├── src/
│   ├── components/         # UI components
│   │   ├── ACISResults     # ACIS score display
│   │   ├── ActivityPlanner # Activity selection & planning
│   │   ├── ChatBot         # AI weather assistant
│   │   ├── DayDetail       # Detailed day view
│   │   ├── ESP8266Status   # IoT connection status
│   │   ├── LivingForecast  # Animated forecast view
│   │   ├── LocationInput   # Location search
│   │   └── ...
│   ├── services/           # API & data services
│   │   ├── weatherService  # OpenWeatherMap integration
│   │   ├── aiService       # AI chatbot service
│   │   ├── esp8266Service  # IoT gateway service
│   │   └── ...
│   └── utils/
│       ├── weatherData     # Data models & ACIS logic
│       └── chatbot         # Chatbot context utilities
├── public/videos/          # Weather background videos
├── esp8266_weather_gateway.ino  # Arduino firmware
├── google-apps-script.js   # Google Sheets sync script
└── ESP8266_SETUP_GUIDE.md  # IoT hardware setup

Getting Started

Prerequisites

  • Node.js v18+
  • npm
  • OpenWeatherMap API key (free at openweathermap.org)
  • (Optional) ESP8266 NodeMCU board for IoT mode

1. Clone the repo

git clone https://github.com/Ankitnotnani/ChronoClime.git
cd ChronoClime

2. Install dependencies

npm install

3. Set up environment variables

Create a .env file in the root directory:

VITE_OPENWEATHER_API_KEY=your_openweathermap_api_key_here

Never commit your .env file — it's already in .gitignore.

4. Run the app

npm run dev

Open http://localhost:5173 in your browser.


ESP8266 IoT Setup (Optional)

ChronoClime supports an ESP8266 NodeMCU as a hardware weather gateway for GPS-based location input.

See ESP8266_SETUP_GUIDE.md for full setup instructions.

Quick overview:

  1. Open esp8266_weather_gateway.ino in Arduino IDE
  2. Update WiFi credentials in the sketch before uploading
  3. Upload to your NodeMCU board
  4. Update the ESP8266 IP address in src/services/esp8266Service.ts
  5. Start the webapp — the satellite connection animation will appear

Google Sheets Integration (Optional)

ChronoClime can sync weather data to Google Sheets for logging and analysis.

See GOOGLE_SHEETS_SETUP.md for setup instructions.


Build for Production

npm run build

Output goes to the dist/ folder. Deploy to Vercel, Netlify, or any static host.


My Contribution

Built as part of the NASA Space Apps Challenge 2025 team entry (Grand Finalist). My specific contributions:

  • Designed and implemented the ACIS scoring algorithm — the core differentiator of the app
  • Built the Activity Planner component and activity preference system
  • Integrated the OpenWeatherMap API and weather data pipeline
  • Developed the ESP8266 IoT gateway integration and satellite animation
  • Built the AI chatbot service and context-aware weather assistant

Team

Built for NASA Space Apps Challenge 2025 by the ChronoClime team, UPES Dehradun.


License

MIT License — see LICENSE for details.

About

Hyper-local weather app with custom ACIS activity-risk scoring — NASA Space Apps 2025 Grand Finalist

Topics

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors