A comprehensive React.js application for generating professional weather reports with interactive charts, PDF export functionality, and modern UI design.
- Real-time Weather Data: Get current weather conditions and forecasts for any location worldwide
- Interactive Charts: Beautiful visualizations using Recharts for temperature and humidity trends
- PDF Export: Download comprehensive weather reports as professional PDF documents
- Map Integration: Select locations using Google Maps API (simulated in demo)
- Report History: Save and manage your weather reports with localStorage
- Dark/Light Theme: Toggle between dark and light themes
- Responsive Design: Works perfectly on mobile, tablet, and desktop devices
- Modern UI: Built with TailwindCSS for a professional and clean interface
- Node.js (version 14 or higher)
- npm or yarn package manager
-
Clone the repository
git clone https://github.com/gandhamprakashtech/ClimaGraph cd ClimaGraph -
Install dependencies
npm install
-
Start the development server
npm start
-
Open your browser Navigate to
http://localhost:3000to view the application.
Create a .env file in the root directory to configure API keys:
REACT_APP_OPENWEATHER_API_KEY=your_openweather_api_key_here
REACT_APP_GOOGLE_MAPS_API_KEY=your_google_maps_api_key_here-
OpenWeatherMap API:
- Visit OpenWeatherMap
- Sign up for a free account
- Get your API key
- Add it to your
.envfile
-
Google Maps API (Optional):
- Visit Google Cloud Console
- Enable Maps JavaScript API
- Create an API key
- Add it to your
.envfile
Note: The application works with mock data if no API keys are provided, making it perfect for demo purposes.
src/
โโโ components/ # Reusable UI components
โ โโโ Header.js # Navigation header
โ โโโ Footer.js # Footer component
โโโ contexts/ # React Context providers
โ โโโ ThemeContext.js # Theme management
โ โโโ WeatherContext.js # Weather data management
โโโ pages/ # Application pages
โ โโโ Home.js # Landing page
โ โโโ WeatherReport.js # Weather report page
โ โโโ History.js # Saved reports page
โ โโโ About.js # About page
โ โโโ Contact.js # Contact page
โโโ App.js # Main application component
โโโ index.js # Application entry point
โโโ index.css # Global styles and TailwindCSS
- React.js - UI library
- React Router - Client-side routing
- TailwindCSS - Utility-first CSS framework
- Recharts - Charting library for data visualization
- jsPDF - PDF generation
- html2canvas - HTML to canvas conversion
- React Hot Toast - Notification system
- Lucide React - Icon library
- Search bar for city names
- Google Maps integration for location selection
- Feature highlights and statistics
- Call-to-action sections
- Current weather conditions
- Interactive temperature and humidity charts
- Detailed weather metrics
- PDF export functionality
- Save report option
- View saved weather reports
- Refresh weather data for saved locations
- Delete old reports
- Statistics and analytics
- Application information
- Technology stack details
- Mission and features
- Responsive design showcase
- Contact form with validation
- Contact information
- FAQ section
- Business hours
The application supports dark and light themes. Theme preferences are saved in localStorage and automatically applied on page load.
All styles are built with TailwindCSS. You can customize the design by modifying the Tailwind configuration in tailwind.config.js.
The primary color scheme can be customized in the Tailwind config:
- Primary: Blue shades
- Dark mode: Gray shades
- Accent: Purple gradients
- Fetched from OpenWeatherMap API
- Cached in React Context
- Mock data available for demo purposes
- Reports saved in browser localStorage
- Maximum 10 reports stored
- Automatic cleanup of old reports
npm run build- Build the project
- Upload the
buildfolder to Netlify - Configure environment variables in Netlify dashboard
- Connect your GitHub repository to Vercel
- Configure environment variables
- Deploy automatically on push
- API keys should be kept secure and not committed to version control
- The application processes data client-side
- No sensitive data is stored on external servers
- All user data remains in the browser
- Fork the repository
- Create a feature branch
- Make your changes
- Test thoroughly
- Submit a pull request
This project is open source and available under the MIT License.
If you encounter any issues or have questions:
- Check the FAQ section in the Contact page
- Review the console for error messages
- Ensure all dependencies are installed correctly
- Verify API keys are properly configured
- User authentication with Firebase
- Weather alerts and notifications
- City comparison feature
- Weather news integration
- Advanced charting options
- Export to different formats (Excel, CSV)
- Weather widget for websites
- Mobile app version
ClimaGraph - Professional Weather Reports Made Simple ๐ค๏ธ