GithubHelp home page GithubHelp logo

disco-tv's Introduction

Disco-Tv

Disco-Tv is a Single-Page-Application that utilizes the TMDB-API, enabling for search and discovery of TV shows

Checkout the deployed version on Heroku

Features

  • Access a list popular TV shows that is updated on a daily basis
  • Get detailed information for specific a TV show
  • Search for a specific TV show to retrieve detailed information

Tech

Disco-TV was built with:

Other resources used:

To-Do:

  • Return list of popular TV shows from TMDB API
  • Create ability to search TV shows with use of a search bar
  • Return list of related TV shows with given search params
  • Return more information upon selecting a specific TV show
  • Create Rspec tests for controller actions
Problem:

Generate an application that enables users to view and request data provided by the TMDB Api, while providing a user-friendly and intuitive UI.

Solution:

Create a Single Page Application that utilizes the Rails web-framework for the backend, paired with a library or service to establish connections and requests to the TMDB Api, enabling a controller to utilize the service or library methods, providing all resources needed to a single page that will handle all frontend UI.

Reasoning for Technical Choices:

When debating the development structure for this project, there were two main approaches I was considering:

  1. Create a SPA using the Rails framework for the backend, and create a library or service that handles the connections/requests to the TMDB api, allowing for a controller to perform actions utilizing inherited methods from the generated library or service. With this setup, a bundler such as Webpacker would be used to allow a React based frontend to handle the UI, while being able to utilize Rails helpers and the proper JavaScript tags in a single view.

  2. Create a Rails application in API-only mode, paired with a library or service that handles the connections/requests to the TMDB api, allowing for the api controller to perform actions containing inherited methods from the created library or service. Then essentially create an entirely separate app to serve as a client-app for the Frontend. With this approach I would need to restructure some of the configuration, and add back some of the middleware that was stripped from the use of the API-only mode. Along with the adding back some middleware, I would also need to configure the apps to run on separate serves, and set up the client-app to utilize a proxy directing it to the port being used by the rails server.

After considering the options, and taking in the time constraints, the requirements for this project, and my current development skills, I decided to take the route of creating this project as a Single Page Application.

Additions to be Made:

In the current state of this project, it does not yet include any unit tests targeting the front-end. With the front-end developed using React, a JavaScript library, I have looked into Jest and other testing frameworks specifically for creating tests for JS based UIs, and plan to familiarize myself with the toolsets on how to develop proper unit tests.

With Additional Time:

If initializing this project with a long-term development process in mind, I would take the time and approach of setting up a Rails backend to handle user authentication, sessions, and connections with the TMDB Api, and develop a React frontend as a completely separate app. The reason being is that it would make it more conducive for other developers to help by separating the environments, whether they be more experience in frontend or backend development.

disco-tv's People

Contributors

vanwykjd avatar

Watchers

 avatar  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.