Case Study about myFlix! - Movie Database full-stack project

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 & Context

The Movie Database was part of the 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 can add to my professional portfolio.
Therefore, for this application, I built from scratch both
the complete server-side and client-side.

screenshot of movie list


























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.

postman_unauthorized


postman_authorized









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, profile view (here the users can update their user data and list of favorites)
> mainview/overview that shows all 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

logingview
movieview
profileview

Challanges

This was my most challenging project. It took my 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 way longer than estimated, as I was still learning how to learn. With the guidance of my tutor and mentor, I was able to get the project completed.


Credits

Role: Lead Developer
Tutor: Ebere Iweala
Mentor: Akunna Nwosu


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