qit: Listen to Programming Podcasts by Topic
qit...get it? get it? Like...Queue I.T.!
Ok so yeah, the title needs work, but the idea is to let programmers find and listen to podcasts by topic.
Check out a preview here: https://qit.cloud
Running the website
# Start Postgres and the API cd qit-api docker-compose up -d cd ../website npm install npm start
Running in "production:
Well, that's a bit complicated right now. The website is in netlify, the API is hosted in linode, the search engine, the podcast-feed-loader is a scheduled serverless function, the proxy is in heroku, and the db is in elephantsql. Phew!
More on how to get this setup...later.
As for what settings are available to you, there are a bunch of env variables to know about. Everything works with the defaults, but these provide greater control and optional features. These are available for the site:
REACT_APP_BASE_SEARCH_URL REACT_APP_BASE_API_URL || 'http://localhost:3005/api/v1', REACT_APP_CORS_PROXY || 'https://cors-anywhere.herokuapp.com/', REACT_APP_MAX_SEARCH_RESULTS || 200, REACT_APP_SEARCH_API_KEY || '18EA821D408444FCF3DC3EC4F3790FEC', REACT_APP_PLAYBACK_RATES REACT_APP_AIRBRAKE_PROJECTID REACT_APP_AIRBRAKE_PROJECTKEY
You can see what is available for the api in the qit-api/production-setup/.env file
Podcast Feed Loader
Check out the podcast-feed-loader project for a listing there.
Linting the React website
This website uses the Standard style guide, you can run the linter with the command below but we'll also zap you with a pre-commit hook before you check any semi-colon in.
E2E the React website
With the Dev Server running
To run cypress interactive mode, run the following commands:
cd website npm run cypress:open <click run all tests on the GUI>
To run cypress headless mode, run the following commands:
cd website npm run cypress:run
Without the Dev Server running
cd website npm run local:e2e
Vladimir`s version of docker
Before running dockers, run
docker network create codingblocks
so that in future containers are able to see each others, within this network
Spin docker containers
Go to desired folder.
# test docker enviroment bindings before creating containers docker-compose config # start local development docker-compose -f docker-compose.yml -f docker-compose.local.yml up -d # start regular docker docker-compose build && docker-compose up [ OPTIONAL ] -d (if console is not needed)
Command to stop container:
# to stop containers docker-compose stop
How can I add a new podcast?
The search engine gets populated via a different github project, the QIT Podcast Feed Loader project.