Your task is to create a functional and user-friendly Weather app using Flutter. The app should accurately retrieve and display weather information based on the user's location or a location of their choice. Users should be able to view the current weather conditions, such as temperature, humidity, wind speed, and weather description (e.g., sunny, rainy, cloudy). All weather data should be fetched from a reliable weather API and displayed in a user-friendly manner.
-
Group Work: You and your group members are expected to work collaboratively on the capstone project. Each group member should contribute to the project, and collaboration among group members is encouraged to deliver a well-rounded and polished application.
-
Version Control (Git): Create a Git repository for your project. Commit frequently with descriptive messages to show your progress throughout the development.
-
Clean Code: Write code that is clear, well-organized, and follows standard coding conventions. Use meaningful variable and function names to enhance code readability. Maintain a consistent coding style across the project. Consider implementing the Clean Architecture principles to organize your codebase, separating concerns into different layers (e.g., presentation, domain, data) for better maintainability and scalability.
- Project Submission Deadline: 9/11/2023 – 9:59 AM
-
Correct Structure: Ensure that the application is built with the appropriate structure. Follow Flutter's best practices for organizing code and project files.
-
Code Quality:
- The project code should follow Flutter's best practices for organizing code and project files.
- Your code should be clean, well-structured, and easy to understand.
- Use meaningful variable and function names to enhance code readability.
-
Data Representation: Treat weather data as objects using a model. Create a model class to define the structure of weather information.
-
App Design and User Experience:
- The app should have an intuitive and visually appealing user interface.
- Ensure that the design elements, colors, and fonts are consistent and pleasing to the eye.
- Users should be able to navigate the app easily and access all features without confusion.
- Use appropriate icons and graphics to represent weather conditions and forecast details.
-
Error Handling: Implement proper error handling mechanisms for cases where the weather API data is not available or errors occur during data retrieval.
- Dark Mode: Implement a dark mode option in the Weather app, allowing users to switch between light and dark themes based on their preferences. Ensure that the dark mode is visually appealing and does not compromise the app's user experience.
- Location Autocomplete: Enhance the user experience by adding location autocomplete functionality to the app's search feature. Utilize a location-based API or service to provide suggestions as users type, making it easier for them to select their desired location.
- Weather Animations: Add subtle animations to the app's UI to create a more engaging and dynamic user experience. For example, you could animate weather icons, temperature changes, or background transitions based on weather conditions.
- Weather Forecast: Extend the app to display weather forecasts for the upcoming days, allowing users to plan ahead and stay prepared for changing weather conditions.
-
GitHub Submission:
- Create a Fork from the project’s GitHub repository.
- Create a new branch with your name.
- Commit frequently with descriptive messages to show your progress.
- Finally, create a Pull Request to the project’s original repository containing your solution.
-
Readme File:
- Provide a README.md file in the root directory of your riles.
- Provide a detailed and well-structured description of the project in the README file, including the following sections:
- Project Overview.
- Screenshots: Include relevant screenshots of the app to showcase its appearance and functionalities. Visuals can help users understand the app's design and layout.
- Dart Tutorials
- Flutter Documentation
- Flutter Tutorial by GeeksforGeeks
Good luck with your exam project! If you have any general questions or need guidance, don't hesitate to reach out to the instructor. Happy coding!