SkyGuru is a weather web application designed to provide users with detailed weather forecasts for specific cities and their potential impact on users' agendas.
The goal of the project is to help travelers plan their trips by forecasting weather conditions on specific travel dates. The application provides:
- Weather forecasts for cities.
- Insights into weather conditions affecting scheduled events.
- Persistent event information with dynamically updated weather data.
- Home Page: Search weather information for any city in selected countries.
- Schedule Page: Add calendar events to check weather forecasts for event days and locations.
- API Integration: Uses the OpenWeather API to retrieve real-time weather data.
Technical Note: The free API supports weather forecasts up to five days in advance.
The project was designed to cater to varying skill levels among team members, offering opportunities to work on API integration, UI design, and modular programming.
- Frameworks & Tools: Built using Flask for backend, HTML, and Tailwind CSS for frontend.
- Version Control: Collaborated via GitHub for task management and code integration using a branching model.
-
UI Design
- Simple, user-friendly interface with HTML and Tailwind CSS.
- Intuitive layout for users of all technical levels.
-
OpenWeather API Integration
- Modular design for API integration.
- Environment variable setup for secure API key management.
-
Functional Search Bar
- City-based search with input validation.
-
Weather Data Display
- Real-time weather conditions with visual icons.
-
Calendar Feature
- Users can schedule events.
- Event data stored locally as JSON objects.
- Automatic deletion of outdated events.
-
Country Dropdown
- Enhanced search functionality with country selection.
- Dictionary-based country code management.
-
UI & Code Optimization
- Added radio buttons for date selection.
- Improved maintainability and modularity.
-
Event-Weather Integration
- Dynamically display weather conditions for scheduled events.
- Enhanced UI with event-specific weather icons.
-
Branding
- Branded as SkyGuru with a custom logo.
-
Error Handling
- Improved stability with error handlers and debugging.
-
Testing and Documentation
- Comments added for readability.
- Comprehensive testing and bug fixes.
- Training team members in Python and Git.
- Time estimation and scope adjustment.
- Git branch integration.
- Balancing functionality with UI aesthetics.
- Dynamic weather rendering.
- File-based event persistence.
- Add user-specific login screens.
- Support full calendar imports.
- Allow dual-location weather tracking.
- Provide hourly weather data for day-night differences.
- Optimize API calls for faster event rendering.
- Enhance error handling with informative pop-ups.
- Focused on API integration and modularity.
- Developed country dropdown using dictionaries.
- Added comments to improve code clarity.
- Designed dynamic weather condition displays.
- Enhanced UI for better user experience.
- Developed and integrated the SkyGuru logo.
- Created search-input UI and calendar section.
- Improved input responsiveness with dropdown features.
- Conducted thorough testing.
- Led team coordination and integration.
- Developed initial boilerplate and restructured code.
- Implemented event functionality with file persistence.
- Debugged and fine-tuned the final product.
-
Clone the repository:
git clone https://github.com/joshua2705/Flask-webapp.git
-
Navigate to the project directory:
cd Flask-webapp -
Install dependencies:
pip install -r requirements.txt
-
Run the application:
flask run
or
python -m flask run
-
Open the displayed link in your browser.




