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.
Some few requirements before you can use PodCity:
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.
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 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 is quite simple and is a matter or running the following command:
python manage.py test
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.
We use SemVer for versioning. For the versions available, see the tags in this repository.
- Django
- Python
- Docker
- Docker Compose
- Postgres
- Pip
- Virtualenv
- Django AP Scheduler
- Feed Parser
- Django Environ
- Lusina - Initial Work
This project is licensed under the MIT License - see the LICENSE file for details