Skip to content

SanctumLabs/podcity

Repository files navigation

PodCity

PodCity is a simple web application that aggregates podcasts from various sources and feeds them to you. Inspiration comes from people who listen to multiple podcasts and want one place to access them all and also inspiration ideally just comes from apps like Apple Podcasts, Google Podcasts, Spotify and the likes.

This uses the RSS standard to aggregate the feeds as most feeds follow this standard, making the aggregation process simpler.

Pre-requisites

Some few requirements before you can use PodCity:

Docker and Docker Compose

Docker is being used to run the web application and the database. In this case however, all you will need to use it for is to run the database.

Ensure you have docker installed and that you have docker-compose installed as well. Check here and here for more information.

This is not a hard requirement, but you can also use Postgres locally installed to run the database. If you prefer to change the database engine, like MySQL, then more code changes will need to be made.

Python 3+, Pip and Virtualenv

This application runs on Python 3+, so make sure you have Python 3+ installed in you local development machine. Check here for more information. Also, you will need Pip and virtualenv installed.

Getting Started

Getting started is quite simple and requires few steps to get started.

After cloning the repository, you will need to run the following commands in the root directory of the repository:

virtualenv .venv
source .venv/bin/activate
pip install -r requirements.txt

Sets up virtualenv for the project and installs the dependencies.

Set up the environment variables for the application:

cp .env.sample .env

After this, you can change the values in the .env file to your liking.

Now you can run the database with docker compose(if you have it installed and if this is the preferred way for running the database).

docker-compose up

if on linux

docker compose up

If running on MacOS

Running Tests

Running tests is quite simple and is a matter or running the following command:

python manage.py test

Running the Application

Now, for the fun part, running the application. Running the application requires the following steps:

python manage.py makemigrations
python manage.py migrate

First run migrations to ensure that the database is up-to date.

python manage.py createsuperuser

Create a super-user to be able to access Admin panel. Follow the prompts from the command line.

Next step is to run the commands to fetch podcasts and feed them into the database. This can be done as below:

python manage.py feedjob

This command will fetch the podcasts and feed them into the database. Checkout more of the code here

Now, you can run the application with the following command:

python manage.py runserver

You can now be able to access the Admin Panel here and the application here.

That's it! You should now be able to use PodCity to aggregate podcasts from various sources and feed them to you.

Adding more podcasts is as simple as adding them to Feed Job.

Versioning

We use SemVer for versioning. For the versions available, see the tags in this repository.

Built With

Authors

License

This project is licensed under the MIT License - see the LICENSE file for details

forthebadge forthebadge