GithubHelp home page GithubHelp logo

swsprague / happy-little-backend Goto Github PK

View Code? Open in Web Editor NEW
1.0 1.0 0.0 94 KB

SEI-03, Project 2 - The Bob Ross-O-Mizer: Back End

Home Page: https://happy-little-backend.herokuapp.com/

License: Other

Ruby 92.55% HTML 5.75% Shell 1.70%

happy-little-backend's Introduction

The Bob Ross-O-Mizer

PROJECT SYNOPSIS:

I wanted to create a Bob Ross video hub and randomizer, in which users can (eventually) access all 31 seasons of the show, make custom playlists with their favorite episodes, and be able to press a "Random" button that will cue a random episode of the show each time it's pressed. Eventually I'd like to communicate directly with the Youtube API to acquire the episodes and embed them into my app, but form now I'm using the Youtube Embed iFrame functionality to populate the videos.

I came up with the idea through my love of Bob Ross's show, The Joy of Painting. I wanted to create something that would cut out the process of navigating Youtube to track down episodes of the show, and would be solely dedicated to presenting the show with an easy-to-use site. The main motivation for this was honestly my own personal use for it, as I watch The Joy of Painting on a daily basis, oftentimes in order to help me go to sleep.

I've spoken with many people about their love of the show, but I've been surprised to learn that most people are unaware the show is available to watch in its entirety for free on Youtube. So I decided for the sake of both myself and others I'd create a simple application that cuts out the clutter and distractions of Youtube and only focuses on the show.

Front-end Github:

Front-end URL:

Back-end Github:

Back-end URL:

Enjoy these ugly hand-drawn ERD / wireframes!

ERD:

ERD

WIREFRAME:

Part 1

WIREFRAME

Part 2

p2

Technologies Used:

- Javascript
- jQuery
- Handlebars
- Rails
- SQL / PostGresSQL
- Ruby
- HTML
- AJAX
- JSON
- Git / Github
- Grit
- Determination
- Blood
- Sweat
- Heroku
- Grunt Serve

USER STORIES:

As a user, I want to sign up using an email and password, and be able to sign in with these credentials as well.

As a user, I want to sign out easily and securely.

As a user, I want to be able to change my password as necessary.

As a user, I want to be able to view episodes and choose one I want to watch.

As a user, I want to be able to create an episode playlist by selecting episodes to add to my lists.

As a user, I want to be able to remove an episode from a playlist I've created.

As a user, I want to be able to view my previously created playlists.

As a user, I want to be able to delete my previously created playlists.

As a user, I want to be able to update the title of my playlist.

As a user, I want to be able to play a random episode of the show at the press of a button.

TABLES / COLUMNS:

Users

| ID | Email | Playlist | ---- | ---- | ---- | ---- | integer | string | array

Playlists
ID user_id videos
integer integer array
Join Table: Playlist_Videos
ID playlist_id video_id
integer reference reference
Videos
ID name episode_Number season_number
integer string integer integer

ROUTING:

post - sign-up
post - sign-in
delete - sign-out
patch - change-pw
get - list all videos in a season - index
get - a single episode - show
get - a random episdoe - show
get - all user playlists - index
get - one playlist - show
post - create new playlist - create
patch - change playlist name
delete - delete a playlist

Future Features:

- Styling!
- Remove Episodes from Playlist without deleting playlist
- Block Adding Duplicate Episodes to Playlists
- Add 'Add To Playlist' Functionality to all Episodes Upon Indexing.
- Show "change password" and "password hints" if Sign-In Fails More Than Three Times

happy-little-backend's People

Contributors

swsprague avatar

Stargazers

Béthy (Tee) avatar

Watchers

James Cloos avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.