@@ -27,18 +27,21 @@ Flutter Movie App built with Riverpod, Clean Architecture, and GoRouter that sho
2727- 🎯 Recommended Movies
2828- 🔍 Search Movies
2929- 👤 Artist/Actor Detail Page with navigation from movie cast
30+ - ❤️ Favorite Movies (saved locally using Hive database)
3031
3132### TV Series
3233- 📺 Airing Today, On The Air, Popular & Upcoming TV series sections
3334- 🔍 TV Series Detail Pages with Cast & Crew
3435- 🎯 Recommended TV Series
3536- 🔍 Search TV Series
3637- 👤 Artist/Actor Detail Page with navigation from TV series cast
38+ - ❤️ Favorite TV Series (saved locally using Hive database)
3739
3840### Celebrity
3941- 🌟 Popular and Trending Celebrities/Persons sections
4042- 🔍 Celebrity Search functionality
4143- 👤 Celebrity Detail Page with navigation from movie/tv cast
44+ - ❤️ Favorite Celebrities (saved locally using Hive database)
4245
4346### Common Features
4447- 📃 Pagination (infinite scroll)
@@ -48,6 +51,7 @@ Flutter Movie App built with Riverpod, Clean Architecture, and GoRouter that sho
4851- 🧪 Riverpod State Management
4952- 🌐 Network layer using Dio with Logging
5053- 🚀 Smooth UX with loading indicators
54+ - ❤️ Favorite Management with Local Storage (Hive)
5155
5256## Architecture
5357
@@ -61,6 +65,7 @@ Flutter Movie App built with Riverpod, Clean Architecture, and GoRouter that sho
6165
6266## Project Directory
6367
68+ ```
6469```
6570flutter_movie_clean_architecture/
6671├── lib/
@@ -69,8 +74,12 @@ flutter_movie_clean_architecture/
6974│ │ │ └── app_constant.dart
7075│ │ ├── network/
7176│ │ │ └── dio_provider.dart
72- │ │ └── utils/
73- │ │ └── utils.dart
77+ │ │ ├── utils/
78+ │ │ │ └── utils.dart
79+ │ │ └── hive/
80+ │ │ ├── favorite_model.dart
81+ │ │ ├── favorite_model.g.dart
82+ │ │ └── hive_helper.dart
7483│ ├── features/
7584│ │ ├── celebrity/
7685│ │ │ ├── data/
@@ -144,43 +153,45 @@ flutter_movie_clean_architecture/
144153│ │ │ └── widgets/
145154│ │ │ ├── movie_card.dart
146155│ │ │ └── movie_search.dart
147- │ │ └── tv_series/
148- │ │ ├── data/
149- │ │ │ ├── datasources/
150- │ │ │ │ └── tv_series_remote_data_source.dart
151- │ │ │ ├── models/
152- │ │ │ │ ├── tv_series_detail_model.dart
153- │ │ │ │ ├── tv_series_model.dart
154- │ │ │ │ └── tv_series_credit_model.dart
155- │ │ │ └── repositories/
156- │ │ │ └── tv_series_repository_impl.dart
157- │ │ ├── domain/
158- │ │ │ ├── entities/
159- │ │ │ │ ├── tv_series.dart
160- │ │ │ │ └── tv_series_detail.dart
161- │ │ │ ├── repositories/
162- │ │ │ │ └── tv_series_repository.dart
163- │ │ │ └── usecases/
164- │ │ │ ├── get_airing_today.dart
165- │ │ │ ├── get_on_the_air.dart
166- │ │ │ ├── get_popular_tv_series.dart
167- │ │ │ ├── get_upcoming_tv_series.dart
168- │ │ │ ├── get_tv_series_detail.dart
169- │ │ │ ├── get_tv_series_credits.dart
170- │ │ │ ├── get_recommended_tv_series.dart
171- │ │ │ └── get_tv_series_search.dart
172- │ │ └── presentation/
173- │ │ ├── pages/
174- │ │ │ ├── airing_today_page.dart
175- │ │ │ ├── on_the_air_page.dart
176- │ │ │ ├── popular_tv_series_page.dart
177- │ │ │ ├── tv_series_detail_page.dart
178- │ │ │ ├── tv_series_main_page.dart
179- │ │ │ └── upcoming_tv_series_page.dart
180- │ │ ├── providers/
181- │ │ │ ├── tv_series_provider.dart
182- │ │ └── widgets/
183- │ │ └── tv_series_card.dart
156+ │ │ ├── tv_series/
157+ │ │ │ ├── data/
158+ │ │ │ │ ├── datasources/
159+ │ │ │ │ │ └── tv_series_remote_data_source.dart
160+ │ │ │ │ ├── models/
161+ │ │ │ │ │ ├── tv_series_detail_model.dart
162+ │ │ │ │ │ ├── tv_series_model.dart
163+ │ │ │ │ │ └── tv_series_credit_model.dart
164+ │ │ │ │ └── repositories/
165+ │ │ │ │ └── tv_series_repository_impl.dart
166+ │ │ │ ├── domain/
167+ │ │ │ │ ├── entities/
168+ │ │ │ │ │ ├── tv_series.dart
169+ │ │ │ │ │ └── tv_series_detail.dart
170+ │ │ │ │ ├── repositories/
171+ │ │ │ │ │ └── tv_series_repository.dart
172+ │ │ │ │ └── usecases/
173+ │ │ │ │ ├── get_airing_today.dart
174+ │ │ │ │ ├── get_on_the_air.dart
175+ │ │ │ │ ├── get_popular_tv_series.dart
176+ │ │ │ │ ├── get_upcoming_tv_series.dart
177+ │ │ │ │ ├── get_tv_series_detail.dart
178+ │ │ │ │ ├── get_tv_series_credits.dart
179+ │ │ │ │ ├── get_recommended_tv_series.dart
180+ │ │ │ │ └── get_tv_series_search.dart
181+ │ │ │ └── presentation/
182+ │ │ │ ├── pages/
183+ │ │ │ │ ├── airing_today_page.dart
184+ │ │ │ │ ├── on_the_air_page.dart
185+ │ │ │ │ ├── popular_tv_series_page.dart
186+ │ │ │ │ ├── tv_series_detail_page.dart
187+ │ │ │ │ ├── tv_series_main_page.dart
188+ │ │ │ │ └── upcoming_tv_series_page.dart
189+ │ │ │ ├── providers/
190+ │ │ │ │ ├── tv_series_provider.dart
191+ │ │ │ └── widgets/
192+ │ │ │ └── tv_series_card.dart
193+ │ │ └── favorites/
194+ │ │ └── favorites_page.dart
184195│ ├── routing/
185196│ │ └── app_router.dart
186197│ └── main.dart
@@ -194,6 +205,7 @@ flutter_movie_clean_architecture/
194205├── analysis_options.yaml
195206└── flutter_movie_clean_architecture.iml
196207```
208+ ```
197209
198210## Clone the repository
199211
@@ -212,12 +224,23 @@ flutter pub get
212224flutter pub run build_runner build --delete-conflicting-outputs
213225```
214226
227+ This command generates code for:
228+ - Freezed models (immutable data classes)
229+ - JsonSerializable (JSON serialization/deserialization)
230+ - Hive adapters (local database models)
231+
215232## Run the app
216233
217234``` bash
218235flutter run
219236```
220237
238+ After running the app, you can:
239+ - Browse movies, TV series, and celebrities
240+ - View detailed information about each item
241+ - Save your favorite items using the heart icon on detail pages
242+ - Access your saved favorites through the Favorites tab
243+
221244
222245## Built With 🛠
223246- [ Flutter] ( https://flutter.dev ) - Google’s UI toolkit for building natively compiled applications for mobile, web, and desktop from a single codebase.
@@ -227,6 +250,8 @@ flutter run
227250- [ Freezed] ( https://pub.dev/packages/freezed ) - A code generator for immutable classes that helps with union types/pattern matching in Dart.
228251- [ JsonSerializable] ( https://pub.dev/packages/json_serializable ) - Generates code for converting between Dart objects and JSON, making serialization easy.
229252- [ Logger / DioLogger] ( https://pub.dev/packages/logger ) - Easy and pretty logging package for debugging; use ` DioLogger ` to log Dio HTTP requests and responses.
253+ - [ Hive] ( https://pub.dev/packages/hive ) - Lightweight and blazing fast key-value database written in pure Dart.
254+ - [ Hive Flutter] ( https://pub.dev/packages/hive_flutter ) - Extension for Hive that enables Flutter specific features.
230255
231256## 👨 Developed By
232257
0 commit comments