Skip to content

Pass the Podcorn is a podcast review app where users can listen to trailers for podcasts and if they’ve already seen the podcast, they can leave a review!

Notifications You must be signed in to change notification settings

marshmallowdefender/Pass-The-Podcorn

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

97 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Pass-The-Podcorn

Pass the Podcorn is a podcast review app where users can see various podcasts and leave a review on a podcast if they've heard it before! They will have full CRUD capabilities with whatever podcasts they’ve created and can also add new podcasts and reviews.

screen shot 2018-08-26 at 11 19 24 pm

Motivation

We wanted a resource to share podcasts. We thought this would be a cool project to work on for our group project considering that all of us really love listening to them.

General Approach

For this project, we decided that starting out with a basic ERD would be the easiest way to approach it. After drawing out an ERD and stating the relationships between the two tables, we broke our app into two components: An app directory with files to control the back-end and a client directory with files to control the front end. For our backend, we set up a seed file and schema file, where we hard-coded data into to build our database for testing.

From there we set about building up the app where we would define our models, controllers and routes for CRUD on both podcasts and reviews.

For the client side, which will be our front-end we used create-react-app to create our Pass The Podcorn app.

After creating both a functional front-end and back-end, we used CSS and Bulma to style and format our app.

App Link

http://pass-the-podcorn.surge.sh/

MVP

  1. CRUD functionality for podcasts
  2. CRUD functionality for reviews

ICE-Box

  1. User/Authentication
  2. Reccomended Podcasts
  3. Trailer/Podcast synopsis

Code Example

// Filters podcast by Genre
    let filteredList = [];
    this.props.filter === 'All' ? filteredList = this.props.podcasts
      :
      filteredList = this.props.podcasts.filter(podcast => {
        return podcast.genre === this.props.filter
      })
    
      // Allows the updated podcast list to be searchable from the search bar
    let afterSearch = filteredList.filter(podcast => podcast.title.toLowerCase().includes(this.state.search.toLowerCase()));
    return (
      <div className="container-grid main podcasts">
        <h2 className="heading-1">Podcasts</h2>
        <SortButtons search={this.handleChange} filterFunction={this.props.filterFunction} searchBar={this.state.search} />
        {afterSearch.map(podcast => (
          <div className="list-container" key={podcast.id}>
            <a onClick={(e) => this.props.view(podcast.id, [podcast])}>
            <img src={podcast.poster_url} alt="Podcast Poster"/>
            <p className='podcastList' key={podcast.id}><span className="podcastTitle">{podcast.title}</span><br/>Creator: {podcast.creator}</p>
            </a>
          </div>))}
      </div>
    )
  }
}

Appshots & Wireframes

erd Wireframe Wireframe Wireframe Wireframe Wireframe

More can be found in the Wireframes folder.

User Stories

  1. As a person who doesn't like to read stories, I would like to find and listen to people tell stories on podcasts..

  2. As a user I want to see a list of reviews for a certain podcast of my choosing.

  3. As a person with a long commute to work I would like to find new podcasts to listen to on the subway.

  4. As an avid podcast listener I would like to share my love for podcasts by writing reviews and sharing favorite moments from my favorite podcasts.

  5. As a user I want to see a collection of podcasts.

  6. As a user I want to sort the podcasts by genre.

  7. As a user I want to see a description of each podcast.

  8. As a user I want to see reviews of a podcast.

  9. As a user I want to add / edit / delete a podcast.

  10. As a user I want to review a podcast.

Built with

  • Visual Studio Code
  • EJS
  • Express
  • Morgan
  • Heroku
  • React
  • React-dom
  • React-scripts
  • Cors
  • Nodemon
  • PG-Promise
  • Body-Parser
  • Bulma
  • Balsamiq
  • CSS-Grid

How to Use:

To test it out yourself, feel free to fork and clone this repo.

Unsolved Problems:

  1. User Authentication

Things to be added later:

  1. User Authentication
  2. Thumbs up and down for reviews
  3. Delete and edit reviews with user authentication

Credits

Idea for the podcasts

Design of the wireframes

CSS

License

GA © Ashley Thompson, Daylan Seid, William Wilson, Samatha Persad, Shua Wolff

About

Pass the Podcorn is a podcast review app where users can listen to trailers for podcasts and if they’ve already seen the podcast, they can leave a review!

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published