Movies an Tv Shows App
This project was created based on a technical test for Leal.co
This project as made with Clean Architecture structure and TDD behavior.
Main approaches:
- Only the Login button works
- The login data is hard coded and only works with specific inputs
- The API key and other variables stuff are written inside the code for test purposes
- I made 6/8 pages
Start working
- Download the base code ?
- Install the Pub dependencies ✅
flutter pub get
- Run test ?
flutter test
- Start project to see it working ?
This application get different list of todays Tv Shows.
See my work:
Folders structure
Lib Folder
?lib
┣ ?core
┃ ┣ ?error
┃ ┃ ┣ ?exceptions.dart
┃ ┃ ┣ ?failures.dart
┃ ┃ ┗ ?messages.dart
┃ ┣ ?routes
┃ ┃ ┗ ?routes.dart
┃ ┣ ?theme
┃ ┃ ┗ ?theme_data.dart
┃ ┣ ?usecases
┃ ┃ ┗ ?usecase.dart
┃ ┣ ?util
┃ ┃ ┣ ?dialog_messages.dart
┃ ┃ ┣ ?failure_to_message.dart
┃ ┃ ┣ ?image_path_generator.dart
┃ ┃ ┣ ?modify_text_length.dart
┃ ┃ ┣ ?set_stars.dart
┃ ┃ ┗ ?url_path_converter.dart
┃ ┗ ?widgets
┃ ┃ ┣ ?information_container.dart
┃ ┃ ┣ ?list_separator.dart
┃ ┃ ┣ ?movie_detail_button.dart
┃ ┃ ┣ ?movies_action_button.dart
┃ ┃ ┣ ?movies_button.dart
┃ ┃ ┣ ?movies_image.dart
┃ ┃ ┣ ?movies_text_field.dart
┃ ┃ ┗ ?movies_title.dart
┣ ?features
┃ ┣ ?auth
┃ ┃ ┣ ?data
┃ ┃ ┃ ┣ ?datasources
┃ ┃ ┃ ┃ ┣ ?auth_local_data_source.dart
┃ ┃ ┃ ┃ ┗ ?auth_remote_data_source.dart
┃ ┃ ┃ ┣ ?models
┃ ┃ ┃ ┃ ┗ ?auth_model.dart
┃ ┃ ┃ ┗ ?repositories
┃ ┃ ┃ ┃ ┗ ?auth_repository_impl.dart
┃ ┃ ┣ ?domain
┃ ┃ ┃ ┣ ?entities
┃ ┃ ┃ ┃ ┗ ?auth.dart
┃ ┃ ┃ ┣ ?repositories
┃ ┃ ┃ ┃ ┗ ?auth_repository.dart
┃ ┃ ┃ ┗ ?usecases
┃ ┃ ┃ ┃ ┣ ?log_out.dart
┃ ┃ ┃ ┃ ┗ ?login.dart
┃ ┃ ┗ ?presentation
┃ ┃ ┃ ┣ ?bloc
┃ ┃ ┃ ┃ ┣ ?auth_bloc
┃ ┃ ┃ ┃ ┃ ┣ ?auth_bloc.dart
┃ ┃ ┃ ┃ ┃ ┣ ?auth_event.dart
┃ ┃ ┃ ┃ ┃ ┗ ?auth_state.dart
┃ ┃ ┃ ┃ ┗ ?blocs.dart
┃ ┃ ┃ ┣ ?pages
┃ ┃ ┃ ┃ ┣ ?loading_page.dart
┃ ┃ ┃ ┃ ┗ ?welcome_page.dart
┃ ┃ ┃ ┗ ?widgets
┃ ┃ ┃ ┃ ┗ ?background_container.dart
┃ ┗ ?tv_show
┃ ┃ ┣ ?data
┃ ┃ ┃ ┣ ?datasources
┃ ┃ ┃ ┃ ┗ ?tv_show_remote_data_source.dart
┃ ┃ ┃ ┣ ?models
┃ ┃ ┃ ┃ ┗ ?tv_show_model.dart
┃ ┃ ┃ ┗ ?repositories
┃ ┃ ┃ ┃ ┗ ?tv_show_repository_impl.dart
┃ ┃ ┣ ?domain
┃ ┃ ┃ ┣ ?entities
┃ ┃ ┃ ┃ ┗ ?tv_show.dart
┃ ┃ ┃ ┣ ?repositories
┃ ┃ ┃ ┃ ┗ ?tv_show_repository.dart
┃ ┃ ┃ ┗ ?usecases
┃ ┃ ┃ ┃ ┣ ?get_airing_today_tv_shows.dart
┃ ┃ ┃ ┃ ┣ ?get_details_tv_shows.dart
┃ ┃ ┃ ┃ ┣ ?get_popular_tv_shows.dart
┃ ┃ ┃ ┃ ┗ ?get_recommended_tv_shows.dart
┃ ┃ ┗ ?presentation
┃ ┃ ┃ ┣ ?bloc
┃ ┃ ┃ ┃ ┗ ?tv_show
┃ ┃ ┃ ┃ ┃ ┣ ?tv_show_bloc.dart
┃ ┃ ┃ ┃ ┃ ┣ ?tv_show_event.dart
┃ ┃ ┃ ┃ ┃ ┗ ?tv_show_state.dart
┃ ┃ ┃ ┣ ?pages
┃ ┃ ┃ ┃ ┣ ?details_page.dart
┃ ┃ ┃ ┃ ┣ ?favorites_page.dart
┃ ┃ ┃ ┃ ┣ ?home_page.dart
┃ ┃ ┃ ┃ ┣ ?navigator_page.dart
┃ ┃ ┃ ┃ ┣ ?poster_detail_page.dart
┃ ┃ ┃ ┃ ┣ ?recent_detail_page.dart
┃ ┃ ┃ ┃ ┗ ?recent_page.dart
┃ ┃ ┃ ┗ ?widgets
┃ ┃ ┃ ┃ ┣ ?movie_list.dart
┃ ┃ ┃ ┃ ┣ ?movie_page_layout.dart
┃ ┃ ┃ ┃ ┣ ?movie_poster.dart
┃ ┃ ┃ ┃ ┗ ?movie_view.dart
┣ ?generated_plugin_registrant.dart
┣ ?injection_dependency_container.dart
┗ ?main.dart
Test Folder
?test
┣ ?core
┃ ┗ ?util
┃ ┃ ┣ ?failure_to_message_test.dart
┃ ┃ ┣ ?image_path_generator_test.dart
┃ ┃ ┣ ?modify_text_length_test.dart
┃ ┃ ┣ ?set_stars_test.dart
┃ ┃ ┗ ?url_path_converter_test.dart
┣ ?features
┃ ┣ ?auth
┃ ┃ ┣ ?data
┃ ┃ ┃ ┣ ?datasources
┃ ┃ ┃ ┃ ┣ ?auth_local_data_source_test.dart
┃ ┃ ┃ ┃ ┗ ?auth_remote_data_source_test.dart
┃ ┃ ┃ ┣ ?models
┃ ┃ ┃ ┃ ┗ ?auth_model_test.dart
┃ ┃ ┃ ┗ ?repository
┃ ┃ ┃ ┃ ┗ ?auth_repository_impl_test.dart
┃ ┃ ┣ ?domain
┃ ┃ ┃ ┗ ?usecases
┃ ┃ ┃ ┃ ┣ ?log_out_test.dart
┃ ┃ ┃ ┃ ┗ ?login_test.dart
┃ ┃ ┗ ?presentation
┃ ┃ ┃ ┗ ?bloc
┃ ┃ ┃ ┃ ┗ ?auth_bloc
┃ ┃ ┃ ┃ ┃ ┗ ?auth_bloc_test.dart
┃ ┗ ?tv_show
┃ ┃ ┣ ?data
┃ ┃ ┃ ┣ ?datasource
┃ ┃ ┃ ┃ ┗ ?tv_show_remote_data_source_test.dart
┃ ┃ ┃ ┣ ?models
┃ ┃ ┃ ┃ ┗ ?tv_show_model_test.dart
┃ ┃ ┃ ┗ ?repositories
┃ ┃ ┃ ┃ ┗ ?tv_show_repository_impl_test.dart
┃ ┃ ┣ ?domain
┃ ┃ ┃ ┗ ?usecases
┃ ┃ ┃ ┃ ┣ ?get_airing_today_tv_shows_test.dart
┃ ┃ ┃ ┃ ┣ ?get_details_tv_show_test.dart
┃ ┃ ┃ ┃ ┣ ?get_popular_tv_shows_test.dart
┃ ┃ ┃ ┃ ┗ ?get_recommended_tv_shows_test.dart
┃ ┃ ┗ ?presentation
┃ ┃ ┃ ┗ ?bloc
┃ ┃ ┃ ┃ ┗ ?tv_show
┃ ┃ ┃ ┃ ┃ ┗ ?tv_show_bloc_test.dart
┗ ?fixtures
┃ ┣ ?auth.json
┃ ┣ ?fixture.dart
┃ ┣ ?tests_values.dart
┃ ┣ ?tv_show.json
┃ ┗ ?tv_shows.json