# Cinemapedia ## Docs - [Domain layer](https://mintlify.wiki/juuaaann456/DMI-Practica06/architecture/domain-layer.md): The domain layer defines the core business rules of Cinemapedia through entities, abstract datasources, and repository contracts. - [Infrastructure layer](https://mintlify.wiki/juuaaann456/DMI-Practica06/architecture/infrastructure-layer.md): The infrastructure layer implements the domain contracts, handling HTTP requests to TheMovieDB API, JSON deserialization, and mapping to domain entities. - [Architecture overview](https://mintlify.wiki/juuaaann456/DMI-Practica06/architecture/overview.md): Cinemapedia uses a three-layer clean architecture to separate concerns between data fetching, business logic, and UI rendering. - [Presentation layer](https://mintlify.wiki/juuaaann456/DMI-Practica06/architecture/presentation-layer.md): The presentation layer manages UI state with Riverpod providers and renders movies through screens and widgets built with Flutter. - [Environment Configuration](https://mintlify.wiki/juuaaann456/DMI-Practica06/configuration/environment.md): Set up API keys and sensitive configuration using a .env file loaded at startup by flutter_dotenv. - [Routing Configuration](https://mintlify.wiki/juuaaann456/DMI-Practica06/configuration/routing.md): Declare and navigate app screens using GoRouter with named routes and path parameters. - [Theme Configuration](https://mintlify.wiki/juuaaann456/DMI-Practica06/configuration/theme.md): Configure the app-wide visual theme using the AppTheme class built on Flutter's Material 3 design system. - [Home Screen](https://mintlify.wiki/juuaaann456/DMI-Practica06/features/home-screen.md): The main screen of Cinemapedia, displaying a scrollable layout with a featured slideshow and multiple horizontal movie category lists. - [Movie Categories](https://mintlify.wiki/juuaaann456/DMI-Practica06/features/movie-categories.md): The five movie categories available in Cinemapedia, how they map to TheMovieDB API endpoints, and how infinite pagination works. - [Navigation](https://mintlify.wiki/juuaaann456/DMI-Practica06/features/navigation.md): How Cinemapedia uses GoRouter to define routes and navigate between the home screen and individual movie detail screens. - [Installation](https://mintlify.wiki/juuaaann456/DMI-Practica06/getting-started/installation.md): Clone the Cinemapedia repository, configure your API key, and run the app. - [Prerequisites](https://mintlify.wiki/juuaaann456/DMI-Practica06/getting-started/prerequisites.md): Everything you need before setting up Cinemapedia on your machine. - [Cinemapedia](https://mintlify.wiki/juuaaann456/DMI-Practica06/introduction.md): A Flutter mobile app for browsing movies from TheMovieDB — explore what's playing now, upcoming releases, top-rated films, and more. - [Movie Entity](https://mintlify.wiki/juuaaann456/DMI-Practica06/reference/models/movie-entity.md): Domain entity that represents a movie throughout the Cinemapedia app. Pure Dart class with no framework dependencies. - [MovieDB Response Models](https://mintlify.wiki/juuaaann456/DMI-Practica06/reference/models/moviedb-response.md): Infrastructure models that deserialize TheMovieDB API responses and a mapper that converts them to domain Movie entities. - [Movies Providers](https://mintlify.wiki/juuaaann456/DMI-Practica06/reference/providers/movies-providers.md): Riverpod providers that manage paginated movie lists for now playing, popular, upcoming, top rated, and Mexican movies. - [Repository Provider](https://mintlify.wiki/juuaaann456/DMI-Practica06/reference/providers/repository-provider.md): Riverpod provider that wires the MovieRepositoryImpl and MoviedbDataSource together and makes them available to the rest of the app. - [MovieHorizontalListview](https://mintlify.wiki/juuaaann456/DMI-Practica06/reference/widgets/movie-horizontal-listview.md): A horizontally scrolling list of movie poster cards with optional title, subtitle, and infinite-scroll support. - [MovieSlideshow](https://mintlify.wiki/juuaaann456/DMI-Practica06/reference/widgets/movie-slideshow.md): An auto-playing banner carousel that displays movie backdrop images at the top of the home screen. - [Shared widgets](https://mintlify.wiki/juuaaann456/DMI-Practica06/reference/widgets/shared-widgets.md): App-wide UI components used across screens: CustomAppbar, CustomBottomNavigationbar, and FullscreenLoader.