Git Product home page Git Product logo

uade-movie-app's People

Contributors

dependabot[bot] avatar mauro-codes avatar pawap90 avatar plaspoumaderes avatar

Stargazers

 avatar  avatar  avatar

Watchers

 avatar  avatar  avatar

Forkers

binitlrivas

uade-movie-app's Issues

Prevent user to perform certain action until it's logged in

There are some actions that the user won't be able to perform until it's loggedIn.
These actions are:

  • Visit "My lists" screen
  • Visit "Profile" screen
  • Rate a movie/series
  • Add movies/series to their lists

We need to intersect this actions and show a modal that let the user know that it must be logged in to proceed. We can use the DecisionModal component.
If the user choose to log in, we need to handle the redirection to the login screen
If the user choose to cancel, the modal will disappear but the action won't be performed.

Update Profile data

The user profile screen is fully mocked and allows users to change their name.

Pending:

  • Email should not be editable. Extend the ProfileAttribute component to handle "disabled" mode
  • Add LastName field
  • Add login to send the user data to the backend API
  • Handle errors in the update process using the MessageModal component

Error getting "upcoming" series

Problem
The endpoint /tv/upcoming doesn't exist and is being called.

Error message
Unhandled Rejection (TypeError): can't access property "map", responseJson.results is undefined

   229 | 	const responseJson = await response.json();
   230 | 
   231 | 	// Parse results to model
>232 | 	const series = await Promise.all(
^233 | 		responseJson.results.map(async movie =>
  234 | 			new MovieModel(
  235 | 				movie.id,

Setup tab bar navigation

A tab bar navigation must be added to be able to switch between home, my lists and profile screens

MyLists

  • Replace hardcoded data with real data from the backend API
  • Hide "delete list" button in the default list. User cannot delete their default list.
  • Implement the delete functionality to let the users delete their own custom lists.
  • Handle errors if the delete process fails
  • Refresh screen after delete a list

Search navigation

Allow the header navigation to redirect to search results screen with a search term as parameter

Logout

  • Add a "Logout" button in the user profile screen
  • Update global state setting isLoggedIn as false
  • Remove jwt from the storage
  • Handle redirect to the login page

Rate a movie/series

  • Build a modal that will be shown when the user tap the "Rate" button in the Media details screen.
    • This modal will let the user choose a rate between 1 and 5 stars. The user will need to add a comment to be able to rate the movie/series.
    • The submit button should be disabled until the user enters a rate and a comment.
    • Handle errors in the process
    • Handle Media Details screen refresh to show the new comment in the list of user comments
  • Replace hardcoded comments with real comments from the backend API

Login Screen

  • Add LoginScreen component

  • LoginScreen should only be available in the navigation stack if the user is not logged in

  • Add LoggedIn flag using redux

  • Send user credentials to the Backend API

  • Handle errors if authentication fails

  • Handle redirection to Home screen

  • Add a "navigate without login" button in the LoginScreen to allow users to get back to the home page without login in to the app.

List details

  • Replace list details data with real data, As the movies API doesn't allow to get multiple movies at once, we'll need to iterate through each item on the list and get the movies details by id ๐Ÿคข
  • Implement the delete functionality to let the users delete a specific movie or series from one of their lists.
  • Handle errors if the delete process fails
  • Implement the "move to other list" functionality using a new custom modal with a dropdown. The user will be able to select an existing list from the dropdown or create a new list by name.
  • Handle errors if the process of update/create fails

Register screen

Add RegisterScreen component
RegisterScreen should only be available in the navigation stack if the user is not logged in
Send user data to the Backend API
Handle errors if register fails
Handle redirection to Login screen (or auto-login - TBD)

MediaList Screen

  • This screen will receive a mediaType and a category (topRated, popular, upcoming or airingToday)
  • Will show a list of movies o series with infinite scroll.
  • We need to handle the tap action to redirect the user to the media details screen.

Spinners

Display spinners whenever the content is loading

Share Media Item

Allow users to share media items from MediaItem cards and MediaDetailScreen

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.