feedcast / scott

:briefcase: The Podcast Regional Manager
https://api.feedcast.io
Apache License 2.0
22 stars 5 forks source link
aggregator api audio audio-analysis docker favorite-podcasts feed feed-reader feedcast mongodb podcast podcast-manager rails redis ruby scott sidekiq

Scott

:briefcase: The Podcast Manager

## Badges [![Build Status](https://travis-ci.org/feedcast/scott.svg?branch=master)](https://travis-ci.org/feedcast/scott) [![Code Climate](https://codeclimate.com/github/marceloboeira/feedcast/badges/gpa.svg)](https://codeclimate.com/github/marceloboeira/feedcast) [![Test Coverage](https://codeclimate.com/github/marceloboeira/feedcast/badges/coverage.svg)](https://codeclimate.com/github/marceloboeira/feedcast/coverage) ## Contributing Please consider reading our [Contribution Guide](https://github.com/feedcast/contributing) before anything else. ## Setup It is expected to have already installed: * Ruby (rbenv/rvm) * ffmpeg (background audio analysis) * MongoDB * Redis * Docker (if you don't want to install Mongo/Redis) If you are in a mac you can install the non-ruby or database dependencies by running `brew bundle`. Run `make install` to install the dependencies and set the default environment variables. Run `make seed` to add sample channels. ### Environment variables We are currently using [Figaro](https://github.com/laserlemon/figaro) to manage the environment variables. The variables can be defined at `config/application.yml` and the default template setup with the list of all variables is available at `config/application.default.yml`. The command `make install` already copies the default file template to `config/application.yml`. ## Showtime If you are using MongoDB locally, make sure it is already running, otherwise, if you are using docker, run `make compose` to start the Docker containers. Finally, run `make start` to start the server. The server will start at `http://localhost:5000` by default. To stop the docker compose daemon safely (without destroying the instances), use `make decompose` To run the console, use `make console` ### Admin Area The application is using [Rails Admin](https://github.com/sferik/rails_admin). The admin area can be accessed at `http://localhost:5000/admin` by default. ### Workers We are now using sidekiq to manage our asynchronous jobs. Sidekiq dashboard can be accessed at `http://localhost:5000/admin/jobs` by default. #### Endpoints * `GET /channels?page=N&per_page=Y` - Returns the list of all channels * `GET /channels/:slug` - Returns the channel * `GET /channels/:slug/episodes?page=N&per_page=Y` - Returns the channel's episodes * `GET /episodes?page=N&per_page=Y` - Returns the list of all episodes * `GET /episodes/:channel_slug/:episode_slug` - Returns the specific episode * `GET /episodes/:channel_slug/:episode_slug/next/:amount` - Returns the queue of next episodes for the given one * `GET /categories/:slug?page=N&per_page=Y` - Returns the list of categories