{"id":28490722,"url":"https://github.com/dawidolko/weather-app-laravel-react","last_synced_at":"2026-04-15T18:32:19.305Z","repository":{"id":286378218,"uuid":"931678460","full_name":"dawidolko/Weather-App-Laravel-React","owner":"dawidolko","description":"Student internship project. Weather application uses OpenWeatherAPI.","archived":false,"fork":false,"pushed_at":"2026-02-15T20:38:13.000Z","size":81992,"stargazers_count":2,"open_issues_count":0,"forks_count":1,"subscribers_count":1,"default_branch":"main","last_synced_at":"2026-03-29T01:28:35.313Z","etag":null,"topics":["api","company","interships","laravel","mysql","openweathermap-api","practices","react","weather"],"latest_commit_sha":null,"homepage":"https://www.youtube.com/watch?v=WTi2i2wHPt0","language":"PHP","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/dawidolko.png","metadata":{"files":{"readme":"README.md","changelog":"CHANGELOG","contributing":null,"funding":".github/FUNDING.yml","license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null,"notice":null,"maintainers":null,"copyright":null,"agents":null,"dco":null,"cla":null},"funding":{"github":["dawidolko"],"patreon":null,"open_collective":null,"ko_fi":null,"tidelift":null,"community_bridge":null,"liberapay":null,"issuehunt":null,"lfx_crowdfunding":null,"polar":null,"buy_me_a_coffee":null,"thanks_dev":null,"custom":null}},"created_at":"2025-02-12T17:16:21.000Z","updated_at":"2026-03-01T16:50:58.000Z","dependencies_parsed_at":"2025-04-06T04:41:59.025Z","dependency_job_id":null,"html_url":"https://github.com/dawidolko/Weather-App-Laravel-React","commit_stats":null,"previous_names":["dawidolko/weather-app-laravel-react"],"tags_count":1,"template":false,"template_full_name":null,"purl":"pkg:github/dawidolko/Weather-App-Laravel-React","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/dawidolko%2FWeather-App-Laravel-React","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/dawidolko%2FWeather-App-Laravel-React/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/dawidolko%2FWeather-App-Laravel-React/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/dawidolko%2FWeather-App-Laravel-React/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/dawidolko","download_url":"https://codeload.github.com/dawidolko/Weather-App-Laravel-React/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/dawidolko%2FWeather-App-Laravel-React/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":31854751,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-04-15T15:24:51.572Z","status":"ssl_error","status_checked_at":"2026-04-15T15:24:39.138Z","response_time":63,"last_error":"SSL_read: unexpected eof while reading","robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":false,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["api","company","interships","laravel","mysql","openweathermap-api","practices","react","weather"],"created_at":"2025-06-08T07:10:05.062Z","updated_at":"2026-04-15T18:32:19.289Z","avatar_url":"https://github.com/dawidolko.png","language":"PHP","funding_links":["https://github.com/sponsors/dawidolko"],"categories":[],"sub_categories":[],"readme":"# Weather-App-Laravel-React\n\n\u003e 🚀 **Real-Time Weather Application** - Build modern weather platforms with Laravel backend, React frontend, and automated data updates\n\n## 📋 Description\n\nWelcome to the **Weather App** repository! This full-stack application retrieves real-time weather data from the OpenWeatherMap API for 10 selected Polish cities, automatically updates every 30 minutes, and stores historical data in a local database. Built with a powerful Laravel backend and dynamic React frontend, this project demonstrates modern web development practices for data-driven applications.\n\nThis repository showcases best practices in RESTful API design, scheduled task automation, React component architecture, and efficient data persistence. Perfect for learning full-stack development with Laravel and React integration.\n\n## 📁 Repository Structure\n\n```\n\nWeather-App-Laravel-React/\n├── 📁 backend/ # Laravel backend application\n│ ├── 📁 app/\n│ │ ├── 🎮 Http/\n│ │ │ └── Controllers/ # API controllers\n│ │ ├── 📦 Models/ # Eloquent models\n│ │ └── 🔧 Console/\n│ │ └── Commands/ # Scheduled commands\n│ ├── 📁 config/ # Configuration files\n│ ├── 📁 database/\n│ │ ├── 🌱 seeders/ # Database seeders\n│ │ └── 🔄 migrations/ # Database migrations\n│ ├── 📁 routes/\n│ │ ├── 🌐 web.php # Web routes\n│ │ ├── 🔌 api.php # API endpoints\n│ │ ├── 📡 channels.php # Broadcasting channels\n│ │ └── ⚙️ console.php # Console commands\n│ ├── 📁 public/ # Public assets\n│ ├── 📁 resources/ # Views and assets\n│ ├── 📁 storage/ # Application storage\n│ ├── 📁 tests/ # Unit and feature tests\n│ ├── ⚙️ .env.example # Environment template\n│ ├── 🎯 artisan # Laravel CLI\n│ ├── 📦 composer.json # PHP dependencies\n│ └── 🔧 webpack.mix.js # Asset compilation\n├── 📁 frontend/ # React frontend application\n│ ├── 📁 public/\n│ │ ├── 📄 index.html # Main HTML file\n│ │ └── 🎨 favicon.ico # App favicon\n│ ├── 📁 src/\n│ │ ├── ⚛️ components/ # React components\n│ │ ├── 📄 pages/ # Page components\n│ │ ├── 🎨 App.css # Application styles\n│ │ ├── 💻 App.js # Main React component\n│ │ ├── 📐 index.css # Global styles\n│ │ └── 🚀 index.js # React entry point\n│ ├── 📦 package.json # Node.js dependencies\n│ └── 🔒 package-lock.json # Dependency lock file\n├── 📁 docs/ # Project documentation\n├── 📁 database/ # Database diagrams and files\n├── 🔧 start.sh # Linux/macOS startup script\n├── 🔧 start.bat # Windows startup script\n└── 📖 README.md # Project documentation\n\n```\n\n## 🚀 Getting Started\n\n### 1. Clone the Repository\n\n```bash\ngit clone https://github.com/dawidolko/Weather-App-Laravel-React.git\ncd Weather-App-Laravel-React\n```\n\n### 2. Backend Setup (Laravel)\n\n#### Linux/macOS:\n\n```bash\ncd backend\nbash ../start.sh\n```\n\n#### Windows:\n\n```bash\ncd backend\nstart.bat\n```\n\n#### Manual Setup:\n\n```bash\n# Install PHP dependencies\ncomposer install\n\n# Create environment file\ncp .env.example .env\n\n# Generate application key\nphp artisan key:generate\n\n# Configure database in .env file\n# Add OpenWeatherMap API key to .env\n\n# Run database migrations\nphp artisan migrate\n\n# (Optional) Seed database\nphp artisan db:seed\n```\n\n### 3. Frontend Setup (React)\n\n#### Linux/macOS:\n\n```bash\ncd frontend\nbash ../start.sh\n```\n\n#### Windows:\n\n```bash\ncd frontend\nstart.bat\n```\n\n#### Manual Setup:\n\n```bash\n# Install Node.js dependencies\nnpm install\n```\n\n### 4. Start the Application\n\n#### Start Laravel Backend:\n\n```bash\ncd backend\nphp artisan serve\n```\n\n- Backend API runs at [http://localhost:8000](http://localhost:8000)\n\n#### Start React Frontend:\n\n```bash\ncd frontend\nnpm start\n```\n\n- Frontend application runs at [http://localhost:3000](http://localhost:3000)\n\n## ⚙️ System Requirements\n\n### **Essential Tools:**\n\n- **PHP** (version 8.0 or higher)\n- **Composer** for PHP dependency management\n- **Node.js** (version 14.0 or higher)\n- **npm** or **yarn** for JavaScript packages\n- **MySQL** or compatible database system\n- **Git** for version control\n\n### **Development Environment:**\n\n- **Laravel** (latest version)\n- **React** (latest version)\n- **Code Editor** (VS Code, PhpStorm, WebStorm)\n- **API Testing Tool** (Postman, Insomnia)\n\n### **External Services:**\n\n- **OpenWeatherMap API Key** (free registration at [openweathermap.org](https://openweathermap.org/api))\n- Valid API credentials configured in `.env` file\n\n### **Recommended Extensions:**\n\n- **Laravel** and **PHP** IntelliSense\n- **React Developer Tools** browser extension\n- **ESLint** for JavaScript code quality\n- **Prettier** for code formatting\n- **Thunder Client** or **REST Client** for API testing\n\n### **Laravel Ecosystem:**\n\n- **Eloquent ORM** for database operations\n- **Task Scheduler** for automated weather updates\n- **Laravel Mix** for asset compilation\n- **Guzzle HTTP Client** for API requests\n\n## ✨ Key Features\n\n### **🌤️ Real-Time Weather Data**\n\n- Fetches current weather conditions for 10 Polish cities\n- Temperature, humidity, wind speed, and atmospheric pressure\n- Weather descriptions and icon representations\n- Accurate and up-to-date meteorological information\n\n### **⏰ Automated Updates**\n\n- Scheduled data refresh every 30 minutes\n- Laravel Task Scheduler for background job execution\n- Automatic API calls without manual intervention\n- Efficient cron-based automation\n\n### **💾 Data Persistence**\n\n- Historical weather data storage in MySQL database\n- Archival records for trend analysis\n- Query optimization for fast data retrieval\n- Efficient database schema design\n\n### **🔌 RESTful API**\n\n- Clean API endpoints for weather data access\n- JSON response format for easy consumption\n- Proper HTTP status codes and error handling\n- CORS configuration for frontend integration\n\n### **⚛️ Dynamic React Frontend**\n\n- Modern component-based architecture\n- Real-time data rendering without page refreshes\n- Responsive design for all device sizes\n- Interactive weather visualization\n\n### **🎨 User Interface**\n\n- Clean and intuitive weather display\n- City-based weather cards or lists\n- Visual weather icons and indicators\n- Mobile-friendly responsive layout\n\n## 🛠️ Technologies Used\n\n- **Laravel** - Robust PHP framework for backend\n- **React** - Modern JavaScript library for UI\n- **MySQL** - Reliable relational database\n- **OpenWeatherMap API** - Weather data provider\n- **Eloquent ORM** - Database abstraction layer\n- **Axios** - HTTP client for API requests\n- **Laravel Task Scheduler** - Automated job execution\n- **Composer** - PHP dependency management\n- **NPM** - Node.js package management\n- **Webpack Mix** - Asset compilation and bundling\n\n## 🌍 API Configuration\n\n### **1. OpenWeatherMap API Key**\n\nSign up at [openweathermap.org](https://openweathermap.org/api) to obtain a free API key.\n\nAdd your API key to the `.env` file:\n\n```env\nOPENWEATHER_API_KEY=your_api_key_here\n```\n\n### **2. City Configuration**\n\nThe application targets 10 major Polish cities by default. You can modify city IDs in the configuration or database table.\n\nRefer to the [OpenWeatherMap city list](http://bulk.openweathermap.org/sample/city.list.json.gz) for valid city IDs.\n\n### **3. Update Frequency**\n\nWeather data updates automatically every 30 minutes via Laravel's task scheduler. To modify the frequency, edit the scheduled task in `app/Console/Kernel.php`.\n\n## 📊 Project Status\n\n✅ **Completed** - Fully functional weather application with automated updates!\n\n## 🤝 Contributing\n\nContributions are highly welcomed! Here's how you can help:\n\n- 🐛 **Report bugs** - Found an issue? Let us know!\n- 💡 **Suggest improvements** - Have ideas for better features?\n- 🔧 **Submit pull requests** - Share your enhancements and solutions\n- 📖 **Improve documentation** - Help make the project clearer\n\nFeel free to open issues or reach out through GitHub for any questions or suggestions.\n\n## 👨‍💻 Author\n\nCreated by **Dawid Olko** - Part of the full-stack web development series.\n\n## 📄 License\n\nThis project is open source and available under the [MIT License](LICENSE).\n\n---\n\n⭐ **Found this helpful?** Give it a star and share with fellow full-stack developers!\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fdawidolko%2Fweather-app-laravel-react","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fdawidolko%2Fweather-app-laravel-react","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fdawidolko%2Fweather-app-laravel-react/lists"}