/MoviesCollectionManager

Movies Collection Manager allows you to choose your movies and put them in collections, share with friends and see which streaming services contain the movies.

Primary LanguageDart

PROJECT MOVED

This project was moved to GitLab and next commits will be there first.

Movies Collection Manager

Movies Collection Manager allows you to choose your movies and put them in collections, share with friends and see which streaming services contain the movies.

The Project is collecting data of the API The Movie Database. The Movie Database, better known by the acronym TMDb, is a free and open source database about movies and series.

screenshot_home

Use Cases

User can:

  • See a movies list.
  • Use a Search Bar to look for movies in the list.
  • Favorite a movie.
  • See in which streaming services the movie is available to watch.
  • See a Collection list.
  • Manage Collections
    • Create a Collection of movies.
    • Change Collection properties.
    • Delete a Collection.
  • Edit Collections
    • Select movies and put into a Collection already created.
    • Remove movies from a Collection.
    • Select movies and put into a new Collection.
  • Share Collections with friends.
  • Share a link to a movie.

Future User Cases

  • Search a movie on the Internet
  • Store search in cache
  • Suggestions with Lasted Search
  • Export list
  • Save App data in a cloud of the user
  • Retrieves App data

App Design

https://www.figma.com/file/p7dCXduT1B2EyMsqnPqnAX/Movies-Collection-Manager?node-id=51195%3A4667

Simple Macro Road Map

  • App Design in Material You Design

    • Mobile Design
      • Smartphone design
      • Tablet design
    • Desktop/TV Design
  • Architecture (Clean Arch)

  • Feature, Domain, Data, Use Cases, Core

  • Data Sources definition

  • Define model data to match the provided by the API

  • Infrastructure implementation and

  • Infrastructure Tests

  • Use Cases Implementation

  • Use Cases Test

  • Refactoring

    • Dependency Injection (GetIt)
    • Functional Programming for Error Handling (Dartz)
    • Class Equality (Equatable)

Controllers

  • Definition of States

    • Implementation of States
    • Implementation of Controllers
    • Implementation of Services
  • Cache in Persistent local database

Views

  • Implementation of screens

    • Mobile First
      • Screen navigation
      • Movies Page
      • Collections Page
      • account Page
      • Controllers
  • Implementation of Themes

  • Internationalizing Texts

  • Responsive Layout Refactoring

    • Mobile Layout
    • Tablet Layout
    • Desktop Layout
  • Adaptive Layout Refactoring

    • Keyboard
    • Mouse

Tests

  • Screen Tests
    • Screen Tests by Code
    • Screen Tests in Emulators
    • Screen Tests in Devices

Publication

  • Sign App
  • App Icon
  • Prepare Google Play Art
  • Google Play Profile

Known issues

  • ListTile on MovieScreen is not memory adaptive
  • Button "Filters" in search bar is not working

Bug Fix

  • No-Internet connection crashes the app when first run
  • No-Internet connection message when first run
  • Scroll Up/Down FAB not working on the end of the scroll

Future

  • Refactor localization .arb files to a standard.

  • Prepare Code for other platforms

    • Code for iOS
    • Code for Windows
    • Code for Linux
  • To work in teams the project it will be divided as in the following image. To create a Multi-Repo in the future if necessary.

micro_app_arch