💼 The Podcast Manager
Please consider reading our Contribution Guide before anything else.
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.
We are currently using 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
.
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
The application is using Rails Admin.
The admin area can be accessed at http://localhost:5000/admin
by default.
We are now using sidekiq to manage our asynchronous jobs.
Sidekiq dashboard can be accessed at http://localhost:5000/admin/jobs
by default.
GET /channels?page=N&per_page=Y
- Returns the list of all channelsGET /channels/:slug
- Returns the channelGET /channels/:slug/episodes?page=N&per_page=Y
- Returns the channel's episodesGET /episodes?page=N&per_page=Y
- Returns the list of all episodesGET /episodes/:channel_slug/:episode_slug
- Returns the specific episodeGET /episodes/:channel_slug/:episode_slug/next/:amount
- Returns the queue of next episodes for the given oneGET /categories/:slug?page=N&per_page=Y
- Returns the list of categories