Case Study
myFlix! - Movie Database

Overview

This web application was developed using the MERN stack. It gives users access to information about different movies, directors, and genres. Users can sign up, update their personal information, and create a list of their favorite movies.

Purpose and Context

The Movie Database was part of the Full Stack Web Development course at CareerFoundry and demonstrates me mastering the full-stack JavaScript development.

Objective

My goal was to create a challenging full-stack project that I could add to my professional portfolio. Therefore, for this application, I built both the complete server-side and client-side from scratch.

Approach

Server-Side

At first I created a RESTful API by using NodeJS and Express.
The API interacts with a non-relational database (MongoDB).
The HTTP methods like GET, POST, etc. are used to access the API.
For retrieving data and storing it in the database, CRUD methods are used.
The movie information is provided by the API in JSON format.

In order to test the API, I used Postman. Then I included a user authentication and authorization code, using basic HTTP authentication and JWT authentication.

Client-Side

After I had completed the API, I started working on the interface that users would need when making requests to, and receiving responses from, the server-side. This single-page-application (SPA) is responsive and developed with React and React-Redux.
It comes with different interface views, such as:

  • Login View, Registration View, and Profile View (here the users can update their user data and list of favorites)
  • Main View that shows the complete list of all movies
  • Movie View that provides data about a single movie, the user can optionally add this movie to their favorites list

Login View

Registration View

Profile View

Main View

Movie View

Users’ Favorites List

Challenges

This was my most challenging project so far. It took me quite a while, but with the help of my great mentor, it went really well. After I changed from Terminal to MongoDB Atlas, I really made progress editing my Database on the client-side. In the beginning I had some trouble understanding how React and Redux work. This project took a lot of effort and some mentor calls.

Duration

This project took me longer than estimated, as I was still learning how to learn.  However, with the guidance of my tutor and mentor, I was able to get the project completed. As I have honed my learning ability, I take considerably less time to complete projects.  

Credits

Role: Lead Developer

Tutor: Ebere Iweala

Mentor: Akunna Nwosu

This project also showed me how essential it is to stay focused at all levels, all the time. When I completed this project I was quite happy and proud, and, to be frank, also relieved. For the future I am planning to add some more movies and further information about the directors and actors.