Skip to content

A clone of the 99% Invisible site built with Angular 5, Firebase and the Listen Notes API

Notifications You must be signed in to change notification settings

paigewilliams/99-percent-invisible

Repository files navigation

99 Percent Invisible Clone

January 25th, 2019

Contributors

Paige Williams

Description

This is a an exercise in re-building a site using Angular. This is an attempt to replicate the beautiful 99% invisible site. I chose this site because I love the design, and I felt that the complexity of it would be a good challenge. The small details like audio footer that follows as you scroll through the page and the tasteful hover effects create simple intrigue to the site.

THIS IS A REPLICA AND IS NOT THE REAL SITE! THIS WAS CREATED FOR EDUCATIONAL PURPOSES!

This project was generated with Angular CLI version 1.6.5.

View the app deployed here!

Planning

  1. Draw a diagram of the site

alt text

  1. Draw the flow of the components

alt text

  1. Begin building components

  2. Create Layout of page with components

  3. Build out individual components

  4. Style individual components

To do 2/1:

  1. Make API call to Listen API that returns 10 99% Invisible Episodes

  2. Create an Episode Object for each episode with the following properties: - audio - description - pub_date_ms - title

  3. Save each episode in firebase Database

  4. For each item in database create a card component

  5. Populate card component with properties

  6. Embed audio into card component

Next steps:

  1. Create routes for each episode

  2. Create route episode page that has card components

  3. Add categories for each episodes

  4. Order by category

  5. Replicate playlist footer

Desired Features

  • Deployed to Firebase
  • Database with podcasts and articles
  • Pipes to filter podcasts and articles -- functional search bar and links to filter by category
  • Embedded audio
  • Replicate playlist footer
  • Implement Listen Notes API
  • Create animation with logo
  • Create view for episodes and articles
  • Dynamic routing to specific episode view

Objectives

  • Project includes a detailed README with information on all completed features as well as features to be added.
  • Project includes a detailed commit history that clearly shows at least eight hours of work between 8 and 5 on Friday. You are also welcome to put additional work into your project outside of that time frame.
  • Project demonstrates understanding of this week's concepts. If prompted, you are able to discuss your code with an instructor using correct terminology.

Setup and Installation

Building the Project

  • In the terminal, navigate to local directory and run:
git clone https://github.com/paigewilliams/99-percent-invisible.git
  • In the terminal, go to project directory and install dependencies with:
npm install -g angular/[email protected]

Development server

Run ng serve for a dev server. Navigate to http://localhost:4200/. The app will automatically reload if you change any of the source files.

Code scaffolding

Run ng generate component component-name to generate a new component. You can also use ng generate directive|pipe|service|class|guard|interface|enum|module.

Build

Run ng build to build the project. The build artifacts will be stored in the dist/ directory. Use the -prod flag for a production build.

Running unit tests

Run ng test to execute the unit tests via Karma.

Running end-to-end tests

Run ng e2e to execute the end-to-end tests via Protractor.

Further help

To get more help on the Angular CLI use ng help or go check out the Angular CLI README.

Legal

Copyright (c) 2019 Paige Williams

About

A clone of the 99% Invisible site built with Angular 5, Firebase and the Listen Notes API

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published