Skip to content

AndrejGockov/movietrackr

Repository files navigation

Home Page

movietrackr

Movietrackr is an app for saving, rating and writing reviewing for your favorite movies using TheMovieDB API and Firebase.

Screenshots

Home Page Search Page

Movie Details 1 Movie Details 2

Movie Details 3 Movie Details 4

Profile Page Ratings

Watch Later Watch Later

Features

  • Authentication with Firebase
  • Posting reviews on movies
  • Adding movies to Watch Later
  • Looking up movies
  • Movie Details page
  • Profile page
  • Settings page
  • Custom widgets
  • Updating account (Username, Bio)
  • Opening other apps from links (YouTube, Browsers)

Packages

Package Usage
http Making HTTP requests
firebase_core To use the Firebase Core API
firebase_auth To use the Firebase Auth API
firebase_database To use the Firebase Databse API
flutter_dotenv Adding and using .env files
google_fonts Using fonts from fonts.google.com
photo_view Opening and zooming in on pictures
google_nav_bar Navbar for main_screen
country_flags Using country flag icon
url_launcher Opening other apps from links
font_awesome_flutter Icon package
flutter_launcher_icons Updating the app's icon
flutter_native_splash Native splash for when opening the app

Design Patterns

  • Singleton - for objects that communicate with TheMovieDB API and Firebase

License

This project is licensed under the terms of the MIT license.

Installing and running

  1. Clone the repository
  2. Register an account on TheMovieDB and create your API Key.
  3. Create a .env file in the root directory and add the your API Key:
API_KEY=-YOUR API_KEY-
  1. Create a Firebase project and add an Android and IOS app.
  2. Go to Authentication, then to Sign-in Method and add Email/Password
  3. Go to Realtime Database and add the following rules:
{
  "rules": {
    "reviews": {
      ".read": true,
      "$movieId": {
        ".indexOn": ["timestamp"],
        "$userId": {
          ".write": "auth != null && auth.uid == $userId",
          ".validate": "newData.hasChildren(['content', 'rating', 'username', 'timestamp'])"
        }
      }
    },
    "users": {
      "$userId": {
        ".read": "auth != null && auth.uid == $userId",
        ".write": "auth != null && auth.uid == $userId",
          "bio": {
          ".validate": "newData.isString() && newData.val().length <= 150"
        }
      }
    }
  }
}

About

Movietrackr is a mobile app where users review, save and discover new movies

Topics

Resources

Stars

Watchers

Forks

Releases

Packages

Contributors

Languages