All Projects → danjac → jcasts

danjac / jcasts

Licence: MIT license
Simple podcast MVP

Programming Languages

HTML
75241 projects
python
139335 projects - #7 most used programming language

Projects that are alternatives of or similar to jcasts

saddle
SADDLE: Scala Data Library
Stars: ✭ 23 (-14.81%)
Mutual labels:  pandas
tutorials
Short programming tutorials pertaining to data analysis.
Stars: ✭ 14 (-48.15%)
Mutual labels:  pandas
obsplus
A Pandas-Centric ObsPy Expansion Pack
Stars: ✭ 28 (+3.7%)
Mutual labels:  pandas
onelinerhub
2.5k code solutions with clear explanation @ onelinerhub.com
Stars: ✭ 645 (+2288.89%)
Mutual labels:  pandas
DataProfiler
What's in your data? Extract schema, statistics and entities from datasets
Stars: ✭ 843 (+3022.22%)
Mutual labels:  pandas
pytd
Treasure Data Driver for Python
Stars: ✭ 15 (-44.44%)
Mutual labels:  pandas
laravellte
Fully customizable and tests supported Laravel admin dashboard 2.0
Stars: ✭ 202 (+648.15%)
Mutual labels:  alpinejs
online-course-recommendation-system
Built on data from Pluralsight's course API fetched results. Works with model trained with K-means unsupervised clustering algorithm.
Stars: ✭ 31 (+14.81%)
Mutual labels:  pandas
datasets
🤗 The largest hub of ready-to-use datasets for ML models with fast, easy-to-use and efficient data manipulation tools
Stars: ✭ 13,870 (+51270.37%)
Mutual labels:  pandas
datar
A Grammar of Data Manipulation in python
Stars: ✭ 142 (+425.93%)
Mutual labels:  pandas
cognipy
In-memory Graph Database and Knowledge Graph with Natural Language Interface, compatible with Pandas
Stars: ✭ 31 (+14.81%)
Mutual labels:  pandas
htmx-talk-2021
Code examples and slides from my 2021 talk Server-Side is Dead! Long Live Server-Side (+ HTMX), presented at DjangoCon and Code Code Code
Stars: ✭ 18 (-33.33%)
Mutual labels:  htmx
guild
Guild - Build Your Guild and award employees with Crypto 💰
Stars: ✭ 3 (-88.89%)
Mutual labels:  alpinejs
xpandas
Universal 1d/2d data containers with Transformers functionality for data analysis.
Stars: ✭ 25 (-7.41%)
Mutual labels:  pandas
ml-workflow-automation
Python Machine Learning (ML) project that demonstrates the archetypal ML workflow within a Jupyter notebook, with automated model deployment as a RESTful service on Kubernetes.
Stars: ✭ 44 (+62.96%)
Mutual labels:  pandas
weaverbird
A visual data pipeline builder with various backends
Stars: ✭ 65 (+140.74%)
Mutual labels:  pandas
Python-Data-Visualization
D-Lab's 3 hour introduction to data visualization with Python. Learn how to create histograms, bar plots, box plots, scatter plots, compound figures, and more, using matplotlib and seaborn.
Stars: ✭ 42 (+55.56%)
Mutual labels:  pandas
awesome-podcast-episodes
List of some of the most informational podcast episodes for developers
Stars: ✭ 35 (+29.63%)
Mutual labels:  podcasts
dataquest-guided-projects-solutions
My dataquest project solutions
Stars: ✭ 35 (+29.63%)
Mutual labels:  pandas
PandasVersusExcel
Python数据分析入门,数据分析师入门
Stars: ✭ 120 (+344.44%)
Mutual labels:  pandas

This is the source code for a simple, easy to use podcatcher web application. You are free to use this source to host the app yourself.

desktop

Running Radiofeed on your local machine

Radiofeed requires the following dependencies:

  • Python 3.10+
  • Node 16+
  • Poetry

Additional requirements

For ease of local development a docker-compose.yml is provided which includes:

  • PostgreSQL
  • Redis
  • Mailhog

Just run docker-compose:

docker-compose build && docker-compose up -d

You can use these images if you want, or use a local install of PostgreSQL or Redis.

Current tested versions are PostgresSQL 14+ and Redis 6.2+.

Django setup

Copy the file .env.example to .env and set the variables accordingly. These settings should work as-is with the Docker containers defined in docker-compose.yml.

To install dependencies:

poetry install

We'll assume all Python commands from this point are run in your Poetry environment.

Install the NLTK corpora:

xargs python -m nltk.downloader <./nltk.txt

Finally, run migrations:

python manage.py migrate

You can also install default iTunes categories and approx 1000+ sample podcasts from fixtures:

python manage.py loaddata podcasts \
    radiofeed/podcasts/fixtures/categories.json.gz \
    radiofeed/podcasts/fixtures/podcasts.json.gz

This should provide some useful data to get started with.

Frontend setup

To install frontend dependencies just run npm ci.

Running development environment

The easiest way to spin up your local development environment is using Honcho:

honcho -f Procfile.local start

This will start up:

  • Django development server
  • Background workers
  • tailwindcss and webpack for building frontend assets on the fly

Honcho should be installed in your virtualenv.

Tests can be run with pytest:

python -m pytest

Use mypy for type-checking:

python -m mypy radiofeed

Deployment

The following environment variables should be set in your production installation. Some providers may set some of these automatically e.g. DATABASE_URL:

DJANGO_SETTINGS_MODULE='radiofeed.settings.production'
DATABASE_URL=''
REDIS_URL=''
ADMIN_URL='some-random-url/'
ADMINS='[email protected]'
ALLOWED_HOSTS='my-domain'
MAILGUN_API_KEY='<mailgun_api_key>'
MAILGUN_SENDER_DOMAIN='my-domain'
SECRET_KEY='<secret>'
SENTRY_URL='<sentry-url>'
CONTACT_EMAIL='[email protected]'

A Procfile is provided for Heroku-like deployments (including Dokku, Railway etc).

Crons

In production you should set up the following cron jobs to run these Django commands (with suggested schedules and arguments):

Parse podcast RSS feeds:

*/6 * * * * python manage.py feed_updates

Generate similar recommendations for each podcast:

15 6 * * * python manage.py recommendations

Send podcast recommendations to users:

15 9 * * 1 python manage.py recommendations --email

An app.json configuration with these cron schedules is included for Dokku deployment.

Updating dependencies

To upgrade Python dependencies just use Poetry:

poetry update

This will update poetry.lock which should be commmitted to the repo. Refer to Poetry docs for more details.

If you are using Heroku, Dokku or similar for deployment you should also re-generate the requirements.txt file, as Heroku will automatically detect and reinstall any changes:

poetry export --without-hashes -o requirements.txt

You can update frontend dependencies as usual with npm:

npm update

Again, the updated package-lock.json file should be committed to the repo.

Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].