Published on

The movie database application

Authors
  • avatar
    Name
    Pruthvi Duvva
    Twitter

The movie DB

Requirements

  • Search for a movie
  • See details about movie
  • My list / My favorites
  • Reminders

Functinal requirements

  • Search for a movie
  • Details of movie
  • Reminders

Non Functional requirements

  • Fav list
  • Now playing
  • Popular movies/tv shows
  • Persistance

Based on the requirements lets draw High level diagram.

HLD

Cache: Cache will act as SSOT (Single source of truth).
DI graph: Dependency Injection graph.
Navigator: Navigator module which handles navigation, backstack handling etc. SearchUseCase: Handles search movie feature. ReminderUseCase: Handles reminder to watch movie feature. DetailsUseCase: Handles Movie details. ExploreUserCase: Handles explore screen with popular and now playing movies.

Underlying architecture for application would be Clean architecture

LLD

Design mocks

LLD

Schema

{
    id: String,
    name: String,
    image_url: String,
    slug: String, // For more details about movie
    rating:Int,
    description:String,
    genres: List<String>,
    adult: Boolean,
    language: String,
    release_date: String
}