I set myself a small project to put into practice my recent knowledge of React and Redux, from on project learning and fellow colleagues. The goal was to create a cinema website for a fictional client, using an online Movie database API to display data, and create a Redux store to save favourite movies for the user.
This is a Work in Progress, and hasn't been fully fleshed out yet. The site will include, movies by month, movies by genre, favourite list, search and information about the cinema.
So far this project has given me a greater understanding of the life cycle of a React component, as well as best practices of presentational and functional components. I have gained more understanding of how Redux fits into a project, and how it can be utilised to store data before updating the API, subsequently giving a better user experience.
This project was to focus mainly on putting into practice the new skills I have gained, so the design developed as I built the App.
The homepage contains an opening paragraph to give the user a taste, through language, of the kind of experience they can expect at YoYo Cinema.
I laid out the homepage with a list of all movies this month and next, via a GET to the API, to give the user an overview of what movies they can expect. I added a favourite to each movie, which will be stored in the Redux store, to allow the user to easily access movies they want to see.
I also added a banner to draw the user to top rated upcoming movies, encouraging them to visit the site more often.
To limit the chance a user might navigate away from the site to find out about the Movie I included a lot of content, actors, synopsis, ratings and trailers, that a user might want to decide to see a movie. I also want to include social sharing for the movie.
I have also given users ease of access to other movies of the same genre, via genre tags and 'explore more'. The goal is to give the user an easy way to navigate movies encouraging them to go to YoYo cinema.
Due to the restraints of the API I am unable to add showtimes, I might build a state in the store for these locally.