A Flutter app where users can record daily journal entries along with the weather for that day. The app fetches weather data from a public API and allows users to browse, filter, and view their past entries. This project showcases API integration, local storage, state management, and a clean user experience.
Create daily weather-linked journal entries. Browse, filter, and manage your entries with secure PIN authentication and a modern, responsive UI.
- Flutter & Dart
- Local storage: Hive, SharedPreferences, Flutter Secure Storage
- Public REST API: OpenWeatherMap
- State management: Provider
- PIN setup and session management (auto-lock, session timeout)
- Create, edit, delete journal entries
- Fetch and display weather data (live, location-based)
- Filter by date and weather
- Journal list and detail views
- Local data storage (Hive)
- Error handling and loading indicators
- Smooth navigation and transitions
- Dark mode support
- Unit & widget tests
- Weather-based themes
- Home Screen: Journal list, filter, create entry, live weather background
- Create Entry: Text input, live weather, save, city name
- Entry Detail: Full text, weather, city name, edit/delete
- PIN Screen: Secure login
lib/models/– Data models (journal, weather)lib/providers/– State management (auth, journal, theme)lib/services/– API, storage, weather logiclib/screens/– UI screenslib/widgets/– Reusable UI componentslib/utils/– Constants, themes
-
Clone the repo:
git clone <your-repo-url> cd flutter_weather_journal
-
Install dependencies:
flutter pub get
-
Run the app:
flutter run
(Supports Android, iOS, Web, Windows, MacOS, Linux)
-
API Key:
- Get a free API key from OpenWeatherMap
- Add your API key in
lib/services/weather_service.dart
- Run all tests:
flutter test - Includes unit and widget tests for core logic and UI
- Build release APK:
flutter build apk --release
- Submit the APK and source code as per instructions
MIT



