Movie App

Case study

Overview

Movie App is a web app built using the MERN stack. It provides users with information about movies, directors, and genres. Users are able to create an account, update their personal data, browse movies and create a list of favorites.

Context and Objective

The app was a personal project developed during my CareerFoundry Full-stack program. The aim was to build the entire app from scratch, working both on its back end and front end. The front end was developed in two versions, one using React and the other using Angular (both can be seen in my portfolio).

Picture of MovieApp main page

Approach

Server-side

I created a RESTful API using Node.js and Express, that interacts with MongoDB (a non-relational database). The API can be accessed via Ajax requests (HTTP methods such as GET or POST). To retrieve data from and store data in the database, CRUD methods are used. The API provides movie information in JSON format. Postman was used for testing the API. For authentication and authorization, I used basic HTTP authorization and JWT authentication.

Client-side

When the server side was done, the next step was to build a responsive interface through which users can communicate with the server side (by making requests and receiving responeses). The client side was built using React and React Bootstrap. It provides users with the following views:

  • Login / Signup view
  • Main view – shows a list of all movies and the search bar
  • Single Movie view – shows data about the chosen movie and allows users to add the movie to their favorites
  • Profile View – shows user’s data, their list of favorite movies (where they can also remove a movie from favorites) and form for updating their data
Postman was used for testing the API. For authentication and authorization, I used basic HTTP authorization and JWT authentication.

Picture of MovieApp login page
Picture of MovieApp main page
Picture of MovieApp single movie page
Picture of MovieApp user profile page

Challenges

This project was really challenging for me, as it was my first encounter with using the terminal, as well as with React. Developing both server-side and client-side of an app was not an easy feat for someone with my level of knowledge at that time, but achieving it was all the more rewarding. I encountered many challenges while building this web app, but solving them brought me so much knolwedge in things I was unfamiliar with before. Perhaps the most challenging part was getting familiar with React, but it deffinitely gave me an insight into how powerful and useful React is, which made me want to deepen my knowledge and skills in this library.

Duration

Due to the fact that this was the most challenging project in this CareerFoundry program, it took me longer to finish it than the rest of the projects in the program (around two months).

Credits

  • My role: Lead developer
  • Tutor: Blaise Bakundukize
  • Mentor: Ramadhan Aheebwa