Personal Movie Database

Getting Started

This project uses webpack to build the application and host it locally on port 3000. create-react-app was used to setup the dev environment and prototype quickly without having to manually configure the necessary boilerplate.

  1. [Install Node.js] (https://nodejs.org/en/download/)
  2. Clone the repository

    $ git clone https://github.com/grahamjx/moviedb

  3. Navigate to the project folder and run npm install
  $> cd /path/to/your-project-folder
  $> npm install
  1. Run the start script from project directory. This will transpile and bundle the assets using webpack and Babel-loader and then serve the app locally.

    $ nmp start

  2. Open a browser and visit localhost:3000

  3. You can also check it out at http://grahamjx.github.io/moviedb

###React

The app is made up mostly of containers that communicate with the redux state store. Some of the containers could be broken down and made into functional components with the props being passed from a parent container. This is something that could be implemented when doing a refactor and cleaning up this initial implementation and design a bit.

###Redux

Redux is used to track app level state.

###Lokijs

Lokijs is a in-memory JavaScript Datastore with persistence. It is highly performant and uses mongo style querying for a familar endpoint. It is used in this application for persisting favorites across sessions. It was a unique challenge and something worth experimenting with in future applications.

###Api

Data for this is app is provided by the Open Movie Database API. Requests don’t require a key and do contain a large set of movies and tv shows. Unfortunately, the endpoint can be rather slow causing the app to occasionally “lag” on more obscure searches.

###Improvements