movieGrand Circus · 2020

Angular Movie App

First Grand Circus Angular Project

Angular Movie App
infoBackground

Build an Angular project around a provided API, in a group of 3

Challenges

  1. 1.Display results from the API based on user-selected search criteria.
  2. 2.Allow users to mark “favorite” results.
  3. 3.Display a list of favorites, and allow the user to remove items from this list.
YEAR2020
DURATION7 days
TEAMGroup of 3 · Team leader
STACKAngular, The Movie Database API
travel_exploreActions

Research & planning

We started with a content audit of earlier projects and popular movie sites to figure out what our app should be. Then I started concepting, and as team leader I focused on how the project was organized.

WIREFRAME · RESULTS
WIREFRAME · RESULTS
WIREFRAME · EXPANDED RESULT
WIREFRAME · EXPANDED RESULT

Agile

This was our first Angular project, our skill levels varied, and we had a short deadline, so we brought Agile (mostly Scrum) into how we worked.

We held daily scrums when we could to set priorities, and kept a sprint backlog in Trello. On harder tasks we pair programmed, one driver and one navigator, so we could cover each other's weak spots.

paletteDesign

Vision

Movie Night lets users filter a big catalog of movies and build a watchlist. We picked the name and design because they fit what the app is for: putting together a quick movie night list with simple filters that match your taste.

Colors

#5F2A87
#7C51A1
#8940CB
Gradient
#2C1A42
#F70202
#212121

Typography

RobotoABCDEFGHIJKLMNabcdefghijklmnop

Elements

LOGO
LOGO
NAVIGATION
NAVIGATION
MOVIE DISPLAY
MOVIE DISPLAY
BUTTON
BUTTON
SEARCH INPUT
SEARCH INPUT
devicesDesign

Responsive screens

DESKTOP
DESKTOP
TABLET
TABLET
MOBILE
MOBILE
MOVIE DETAILS
MOVIE DETAILS
WATCHLIST
WATCHLIST
codeActions

Code

Angular & data flow

The app uses The Movie Database API to pull the data we filter on. Functions in the Angular service fetch from the API's endpoint URLs. That gives us a large list of movies plus their details, genres, release years, and more, and parameters let us turn those into search criteria in the search bar.

To render the data, we used dependency injection to put the service into several components and subscribe to it. Each component could then display the data however it needed. The movie-list component renders the fetched list of movies, and the search-criteria component filters that list by genre, year, and rating.

flagConclusion

My first major Angular project

This was the first big Angular project I'd worked on, and I'd only been learning the framework for a couple of weeks. The API was hard to work with, since filtering the data meant writing a lot of our own parameters.

It also made me think fast to hit deadlines. Dependency injection and displaying data looked intimidating at first, but I picked them up quickly. Looking back, I'd like to redesign it and add more features.

I learned a lot, both about working on a team and about Angular.

Movie Night on mobile, tablet, and laptop
workNext project
Personal project · 2026

Dishmatch: finding somewhere to sit down and eat